Vous êtes sur la page 1sur 40

Programmation en nombres entiers

Licence Info 2003/2004

Recherche operationnelle p.1/31

PPL en nombres entiers


(LP ) zLP = max{cx : Ax b, x 0, x Rn } (IP ) zIP = max{cx : Ax b, x 0, x Zn }
(IP) est beaucoup plus difcile que (LP) (NP-complet) ` es beaucoup de problemes pratiques peuvent etre modelis sous forme de (IP)

Licence Info 2003/2004

Recherche operationnelle p.2/31

` dos Exemple : sac a


` dos de capacite b et de n objets. Le Nous disposons dun sac a ` cout dobjet j est cj , son poids est aj . Comment remplir le sac a dos en maximisant le cout ?

Licence Info 2003/2004

Recherche operationnelle p.3/31

` dos Exemple : sac a


` dos de capacite b et de n objets. Le Nous disposons dun sac a ` cout dobjet j est cj , son poids est aj . Comment remplir le sac a dos en maximisant le cout ? On introduit des variables xj lobjet j , xj

{0, 1} : xj = 1 on prend

= 0 on ne le prend pas.

Licence Info 2003/2004

Recherche operationnelle p.3/31

` dos Exemple : sac a


` dos de capacite b et de n objets. Le Nous disposons dun sac a ` cout dobjet j est cj , son poids est aj . Comment remplir le sac a dos en maximisant le cout ? On introduit des variables xj lobjet j , xj

{0, 1} : xj = 1 on prend

= 0 on ne le prend pas. max c1 x1 + + cn xn


s.c.

a 1 x1 + + a n xn b xj {0, 1}, j = 1, . . . , n Z+

Sil y a plusieurs objets de chaque type xj


Licence Info 2003/2004

Recherche operationnelle p.3/31

Exemple : le plus court chemin


min c1 x1 + c2 x2 + + c10 x10
x x x x s x x 3 6 x 7 2 4 x 5 x 8 x 9 t 10

s.c.

x1 + x 2 + x 3 = 1 x1 x 4 x 5 = 0 x3 x 6 x 7 = 0 x5 + x 2 + x 6 x 8 x 9 = 0 x4 + x8 x10 = 0 x10 + x9 + x7 = 1 x1 , . . . , x10 {0, 1}

Licence Info 2003/2004

Recherche operationnelle p.4/31

Exemple : voyageur de commerce


Trouver le plus court cycle hamiltonien dans un graphe G(V, E ).

min
s.c.

(i,j )E cij xij j V

xij = 2,

iV xij |U | 1, U V (i, j ) E

(i,j )V,iU,j U

xij {0, 1},

Licence Info 2003/2004

Recherche operationnelle p.5/31

Exemple : contraintes disjonctives


0 x1 , x2 d y max{x1 , x2 } y x1 ou y x2

Licence Info 2003/2004

Recherche operationnelle p.6/31

Exemple : contraintes disjonctives


0 x1 , x2 d y max{x1 , x2 } y x1 ou y x2 y x1 + d(1 z1 ) y x2 + d(1 z2 ) z1 + z 2 1 z1 , z2 {0, 1}

Licence Info 2003/2004

Recherche operationnelle p.6/31

Lien avec la programmation lineaire


P = {x : Ax b, x 0} zLP = max{cx : x P } zIP = max{cx : x P Zn }
eme. ` Theor eme. ` Theor eme. ` Theor ` conv(P Zn ) est un polyedre.

zIP = max{cx : x conv(P Zn )}. zLP zIP

Licence Info 2003/2004

Recherche operationnelle p.7/31

Illustration

Licence Info 2003/2004

Recherche operationnelle p.8/31

Relaxations
Soit

(P ) z = max{f (x) : x X }
` doptimisation. Relaxation de (P) est un probleme ` un probleme

(R) z = max{f (x) : x X }


tel que

XX f (x) f (x) pour x X


Exemple. (LP) est relaxation de (IP) Proposition.

zz

Licence Info 2003/2004

Recherche operationnelle p.9/31

Algorithme Branch-and-bound
P 0 P , z 0 , z , L {P 0 } tantque L = faire ` P i de L ((P i ) z i = max{f (x) : x X i }) retirer un probleme resoudre la relaxation Ri si Ri est inadmissible, continuer avec literation suivante i i soit x la solution optimale de R si z i z , continuer avec literation suivante si xi X i et f (xi ) > z alors z f (xi ), x xi
sinon i soit {X ij }k j =1 une division de X ` ` L avec z ij ajouter les problemes P ij a fin si fin tantque

= zi

Licence Info 2003/2004

Recherche operationnelle p.10/31

` Criteres delagage
(Ri est inadmissible) par inadmissibilite par majoration (z i xi par optimalite

z)

Xi

Licence Info 2003/2004

Recherche operationnelle p.11/31

Exemple (1)
max 2x1 + 5x2
s.c.

4x1 + x2 28 x1 + 4x2 27 x1 x 2 1 x1 , x 2 Z +

Licence Info 2003/2004

Recherche operationnelle p.12/31

Exemple (2)

(5.66, 5.33)

Licence Info 2003/2004

Recherche operationnelle p.13/31

Exemple (2)

(5.66, 5.33)

x1<=5

x1 >= 6

Licence Info 2003/2004

Recherche operationnelle p.13/31

Exemple (2)
(5, 5.5)

x1<=5

Licence Info 2003/2004

Recherche operationnelle p.13/31

Exemple (2)
x2 >= 6 (5, 5.5)

x2 <= 5

x1<=5

Licence Info 2003/2004

Recherche operationnelle p.13/31

Exemple (2)

(5, 5) x2 <= 5

x1<=5

Licence Info 2003/2004

Recherche operationnelle p.13/31

Exemple (2)
(3,6) x2 >= 6

x1 <= 5

Licence Info 2003/2004

Recherche operationnelle p.13/31

Exemple (2)

x1 >= 6

Licence Info 2003/2004

Recherche operationnelle p.13/31

Exemple (3)
1 x1<=5 2 x2<=5 3 x1=5,x2=5 zlp=35 solution entire z*=35 4 x1=5, x2=5.5 zlp=37.5 x2>=6 x1=3,x2=6 zlp=36 solution entire z*=36 5 x1=5.67, x2=5.33 zlp=38 x1>=6 inadmissible

Licence Info 2003/2004

Recherche operationnelle p.14/31

Programmation dynamique

Licence Info 2003/2004

Recherche operationnelle p.15/31

Principe
` dans un probleme ` eral plonger le probleme propose plus gen parametrique ` le probleme initial correspond aux valeurs precises des ` parametres ` eral par recurrence resoudre le probleme gen sur les ` parametres

Licence Info 2003/2004

Recherche operationnelle p.16/31

[Bellman 55] Principe doptimalite

C A B

Si

AB est un trajet optimal et si C est un point sur ce trajet, ` alors AC est un trajet optimal pour le sous-probleme correspondant.

Licence Info 2003/2004

Recherche operationnelle p.17/31

` dos en variables binaires (1) Sac a


n n

F (b, n) = max
j =1

cj xj :
j =1

aj xj b, xj {0, 1}

b du sac a ` dos sont des Le nombre dobjets n et la capacite ` parametres. ` Supposons quon conna t les solutions de tous les problemes avec nombre dobjets <
k

< g . On cherche k et capacite


k

F (g, k ) = max
j =1

cj xj :
j =1
Licence Info 2003/2004

aj xj g, xj {0, 1}
Recherche operationnelle p.18/31

` dos en variables binaires (2) Sac a


: On a deux possibilites On ne prend pas lobjet k (xk g. k 1 objets et capacite

= 0). Dans ce cas nous avons

= 1). Dans ce cas nous avons k 1 g ak objets et capacite


On prend lobjet k (xk Dou `

F (g, k ) = max{F (g, k 1), F (g ak , k 1) + ck }


avec F (g, 0)

= 0 et F (g, k ) = F (g, k 1) pour g < ak


Licence Info 2003/2004 Recherche operationnelle p.19/31

` dos en variables entieres Sac a


n n

F (b, n) = max
j =1

cj xj :
j =1

aj xj b, xj Z+

Recurrence

F (g, k ) = max{F (g, k 1), F (g ak , k ) + ck }


avec F (g, 0)

= 0 et F (g, k ) = F (g, k 1) pour g < ak

Licence Info 2003/2004

Recherche operationnelle p.20/31

Multiplication de matrices (1)


On admet que la multiplication dune m n-matrice et une ` laide de mnp operations. n p matrice se fait a des matrices Mi de dimension ` Probleme : Etant donne

ni ni+1 , i = 1, . . . , k , trouver lordre de multiplication


minimisant le nombre total doperations.

A24 , B43 , C35 A(BC ) 4 3 5 + 2 4 5 = 100 op erations (AB )C 2 4 3 + 2 3 5 = 54 op erations


Exemple :
Licence Info 2003/2004 Recherche operationnelle p.21/31

Multiplication de matrices (2)


Soit M (i, j ) le nombre doperations minimum pour calculer le produit Mi . . . Mj

M (i, j ) = min {M (i, l) + M (l + 1, j ) + ni nl+1 nj +1 }


ilj

avec M (i, i) Exemple :

=0

k = 5, n1 = 1, n2 = 2, n3 = 5, n4 = 10, n5 = 4,

n6 = 20.

Licence Info 2003/2004

Recherche operationnelle p.22/31

Comparaison de sequences biologiques

Licence Info 2003/2004

Recherche operationnelle p.23/31

Introduction
Sequences biologiques ADN - mot sur lalphabet {A, T, G, C } (20 lettres) proteine - mot sur lalphabet des acides amines Pourquoi comparer les sequences recherche de homologie ` prediction de genes recherche de fonction commune

Licence Info 2003/2004

Recherche operationnelle p.24/31

Alignement
Mise en correspondance de deux sequences

AC-TGCCGT-CA | ||| || | AATTGC-GTACG


enements ementaires Trois ev el insertion etion del substitution

Licence Info 2003/2004

Recherche operationnelle p.25/31

Score dalignement
` Matrice de score : donne le score de chaque paire de caract eres
A
-2 2 -1 -1 -1

T
-2 -1 2 -1 -1

G
-2 -1 -1 2 -1

C
-2 -1 -1 -1 2

Exemple : match = 2 mismatch = -1 indel = -2

A T G C

-2 -2 -2 -2

Score dalignement : la somme de scores de chaque position


sequence 1 sequence 2 score A A 2 C A -1 T -2 T T 2 G G 2 C C 2 C -2 G G 2 T T 2 A -2 C C 2 A G -1 score total 6
Recherche operationnelle p.26/31

Licence Info 2003/2004

` Probleme doptimisation
Trouver lalignement de score maximum
Alignement 1, score = 3 A A 2 C C 2 T -2 G G 2 G -2 C -2 T T 2 A -2 A A 2 T T 2 C G -1

Alignement 2, score = 6 A A 2 C C 2 G T -1 G G 2 C T -1 T A -1 A A 2 T T 2 C G -1

Licence Info 2003/2004

Recherche operationnelle p.27/31

Algorithme [Needleman & Wunsch]


= a1 a2 . . . am et b = b1 b2 . . . bn Soit S (i, j ) le score dalignement optimal de a1 . . . ai et b1 . . . bj . S (i 1, j ) + (ai , ) S (i, j ) = max S (i, j 1) + (, bj ) S (i 1, j 1) + (ai , bj )
Soit a avec

S (0, 0) = 0, S (i, 0) = S (i 1, 0) + (ai , ), S (0, j ) = S (0, j 1) + (, bj )

Licence Info 2003/2004

Recherche operationnelle p.28/31

Graphe dedition
` Le probleme peut etre vu comme la recherche de plus long chemin dans le graphe suivant
T A T C T G A T G C A T A insertion, cout=2 dltion, cout=2 match, cout=2 mismatch, cout=1

Licence Info 2003/2004

Recherche operationnelle p.29/31

Alignement local

rgion conserve

entre les ` Probleme : Quelles sont les regions de forte similarite deux sequences ? Formulation alternative : Trouver le plus long chemin entre deux sommets quelconques dans le graphe dedition.

Licence Info 2003/2004

Recherche operationnelle p.30/31

Algorithme [Smith & Waterman]


0 S (i 1, j ) + (a , ) i S (i, j ) = max S (i, j 1) + (, bj ) S (i 1, j 1) + (ai , bj ) = S (0, j ) = 0

avec S (i, 0)

On ajoute des arcs articielles de cout 0 entre la source et les autres sommets du graphe dedition.

Licence Info 2003/2004

Recherche operationnelle p.31/31