Vous êtes sur la page 1sur 38

UNIVERSITE FERHAT ABBAS SETIF 1

FACULTE DES SCIENCES

DEPARTEMENT DE MATHEMATIQUES

Programmation lineaire
En 0-1

Melizou Karima

Moussaoui Nouha

Gueham Salima

Zebar Ilhem

Pr.R.Zitouni

Decembre 2018
Table des matières
1 Introduction 4

2 Modélisation des problèmes d’optimisation 5

2.1 La programmation linéaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5


2.2 La programmation linéaire en nombre entier . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3 Les problèmes d’optimisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3.1 La classe des problèmes faciles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3.2 La classe des problèmes di¢ ciles . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.4 Les méthodes de résolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.4.1 Les méthodes exactes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.4.2 Les méthodes approchées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3 Le problème du voyageur de commerce 7


3.1 Historique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.2 Dé…nition du TSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.3 Formule du TSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.4 Modélisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.5 Méthodes de résolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.6 Méthode de Branch and Bound (B&B) : cas 0-1 . . . . . . . . . . . . . . . . . . . . . . . . 9
3.7 Algorithme de B&B : cas 0_1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.8 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

4 Problème d’a¤ectation 13
4.1 Formulation du problème : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

4.2 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

4.2.1 Techniques de solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15


4.2.2 Description de la méthode hongroise . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.3 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

5 Méthode de Balas pour les PL en 0-1 27


5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.2 Dé…nition des noeuds et séparation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

2
5.3 Choix de la decision de Séparation en un noeud . . . . . . . . . . . . . . . . . . . . . . . . 27
5.4 Algorithme de Balas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
5.5 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

6 Le problème de sac à dos 31

7 Histiore 32

8 Autres domaines concernés 32

9 Présentation du problème 32

10 Formulation mathématique 33
10.1 Procédé d’exploration systématique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
10.2 Méthodes de résolution le problème de sac à dos . . . . . . . . . . . . . . . . . . . . . . . 35
10.2.1 Méthode approchée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

Bibliographie 38

3
1 Introduction
Généralement on appele programmation mathématique un probléme d’optimisation d’un fonction
objectif de plusieurs variables en présense des contraintes, le programme est dite linéaire si la fonction
objectif et les contraintes sont toutes des combinaisons linéaire de variables, Il comporte n variables
non négatives m contraintes d’égalité ou d’inégalité . et la fonction objectif à optimiser, Des valeurs de
variables qui véri…ent toutes les contraintes forment une solution réalisable du programme linéaire.
Ce dernier noté à partir les variables associes au le probleme : Si les variables sont astreintes à être
entières , on a un programme linéaire en nombre entieres(PLNE), un programme linéaire mixte comprent
à la fois des variables continues et des variables entieres, et un programme linéaire classique .
un programme linéaire en 0-1 est un cas particulier de PLNE dont les variables . ne peuvent prendre
que deux valeurs 0-1 ces variables sont dites booléennes,binaire ou de décision . Ce dernier programme
faire l’objet du notre travail . Les deux programmes i :e les PLNE et les PL en 0-1 sont plus di¢ ciles à
résourdre que les PL ordinaires . Donc notre travail présente un cas particulier de PLNE appelé en 0-1
.

4
2 Modélisation des problèmes d’optimisation

Les problèmes d’optimisation peuvent être modélisés en utilisant :

2.1 La programmation linéaire

Un
8 programme linéaire a la forme suivante :
>
> min z = ct x
>
<
(PL) Ax = b
>
>
>
: x 0

2.2 La programmation linéaire en nombre entier

Un programme linéaire en nombre entier de dimension (m n) a la forme


suivante 8
:
>
> min z = ct x
>
<
(PLNE) Ax = b
>
>
>
: x2N
Ou A est une matrice (m n), b un vecteur de dimension m, c un vecteur de dimension n et x est un
vecteur inconnu.
Dans le cas particulier, ou les contraintes xj 2 N sont remplacées par xj 2 f0; 1g, on dit qu’on a un
programmation
8 linéaire en 0; 1 (binaire)
>
> min z = ct x
>
>
>
>
< Ax = b
(PLB)
>
> x 0
>
>
>
>
: x 2 f0; 1g

2.3 Les problèmes d’optimisation

On peut classer les problèmes d’optimisation en deux classes :


La classe des problèmes faciles et La classe des problèmes di¢ ciles.

2.3.1 La classe des problèmes faciles

Sont des problèmes faciles, à savoir :


– La programmation linéaire (PL).
– Le problème d’arbre de poids minimum.
– Le problème de ‡ot max.

5
– Le problème de ‡ot max de cout min.
– Le problème de cheminement.
– Le problème d’a¤ectation.

2.3.2 La classe des problèmes di¢ ciles

Sont des problèmes di¢ ciles, car on ne connait pas d’algorithmes


polynomiaux pour les résoudre, à titre d’exemple
– Le problème du voyageur de commerce (pvc).
– Le problème de coloration (des sommets et des arrêtes).
– Le problème d’ordonnancement.
– Le problème du sac à dos.
– La programmation linéaire en nombre entier (PLNE).

2.4 Les méthodes de résolution

On distingue deux types de méthodes de résolution pour les problèmes d’optimisation : Les
méthodes exactes et les méthodes approchées.

2.4.1 Les méthodes exactes

Les méthodes de résolution exactes sont nombreuses et se caractérisent par le fait qu’elles
permettent d’obtenir une ou plusieurs solutions dont l’optimalité est garantie. Parmi ces méthodes, on
trouve : La méthode de Branch and Bound consistant à faire une énumération implicite en séparant le
problème en sous problèmes et en évaluant ceux-ci à l’aide d’une relaxation jusqu’à trouver des problèmes
faciles à résoudre ou dont on sait avec certitude qu’ils ne peuvent pas contenir de solution optimale .

2.4.2 Les méthodes approchées

Dans certaines situations, il est nécessaire de disposer d’une solution de bonne qualité (c’est-‘a-dire
assez proche de l’optimale). Dans ce cas l’optimalité de la solution ne sera pas garantie.
Cependant, le temps nécessaire pour obtenir cette solution sera beaucoup plus faible et pourra même
être …xé (bien évidemment dans ce cas la qualité de la solution obtenue dépendra fortement du temps
laissé à l’algorithme pour l’obtenir). Typiquement, ce type de méthodes, dites heuristiques, est parti-
culièrement utile pour les problèmes nécessitant une solution en temps réel (ou très court) ou pour
résoudre des problèmes di¢ ciles sur des instances de grande taille. Elles peuvent aussi être utilisées a…n
d’initialiser une méthode exacte (Branch and Bound par exemple)

6
3 Le problème du voyageur de commerce

3.1 Historique

Le "problème du voyageur de commerce", ou TSP (Traveling Salesman Problem) est un des problèmes
les plus anciennement et largement étudiés en optimisation combinatoire (depuis le 19èm e siècle),est l’un
des plus connus dans le domaine de la recherche opérationnelle.
C’est déjà sous forme de jeu que William Rowan Hamilton a posé pour la 1ère fois ce problème, dès
1859.Et il est progrès pendant les ans, en1954, G. Dantzig, R. Fulkerson, et S. Johnson, ils ont donné
la solution exacte pour les 49 capitales des états américains. Dans les années 80 jusqu’à aujourd’hui :
diverses heuristiques et métaheuristiques.
Le TSP peut être formulé comme un problème de programmation linéaire en nombre entier. Il a des
applications directes dans le transport, la logistique, etc. Par exemple trouver le chemin le plus court
pour les bus de ramassage scolaire ou, pour le camion de ramassage des ordures.

3.2 Dé…nition du TSP

Un voyageur de commerce doit visiter n villes données en passant par chaque ville exactement une
fois. Il commence par une ville quelconque et termine en retournant à la ville de départ. Les distances
entre les villes sont connues. Il faut trouver le chemin qui minimise la distance parcourue. La notion de
distance peut-être remplacée par d’autres notions comme le temps qu’il met ou l’argent qu’il dépensé.cij
est le coût de déplacement de la ville i et la ville j.

7
3.3 Formule du TSP
8 P
n P
n
>
> min z = cij xij
>
>
>
> i=1 j=1
>
>
>
> sc
>
> 8
>
> P
n
>
> >
> xij = 1 i = 1:::n
>
> >
>
< >
> j=1
>
> j6=i
>
> Pn
>
> >
<
>
> xij = 1 j = 1:::n
>
> i=1
>
> > i6=j
>
> >
> P
>
> >
>
>
> >
> xij jSj 1 6= S f1:::ng ; 2 jSj n 1
>
> >
> i;j2S
>
> >
>
: : xij 2 f0; 1g i = 1:::n; j = 1:::n; i 6= j

Les deux premières contraintes traduisent le fait que chaque ville doit être visitée exactement une
fois ;
La troisième contrainte interdit les solutions composées de sous-tours disjoints, elle est généralement
appelée contrainte d’élimination des sous-tours.
xij = 1 si l’arc (i; j) est dans le circuit hamiltonien .
xij = 0 sinon.

3.4 Modélisation

On considère G = (X; U ), un graphe dans lequel X l’ensemble des sommets représente les
villes à visiter, ainsi que la ville de départ de la tournée, et U l’ensemble des arcs de G, représente
les parcours possibles entre les villes. À tout arc (i; j) 2 U , on associe la distance de parcours dij de la
ville i à la ville j. La longueur d’un chemin dans G est la somme des distances associées aux arcs de ce
chemin. Le TSP se ramène alors à la recherche d’un circuit hamiltonien (i.e., un chemin fermé passant
exactement une fois par chacun des sommets du graphe) de longueur minimale dans G. Dans le cas où
il existe certains arcs (i; j) 2 U pour lesquels dij = dji , on parle de TSP asymétrique.
(n 1)!
Un graphe complet à n sommets possède 2 cycles hamiltoniens.

3.5 Méthodes de résolution

Les algorithmes de résolution du TSP peuvent être répartis en deux classes :


– Les algorithmes exacts permettent de trouver la solution optimale, mais leur complexité est ex-
ponentielle. Les algorithmes les plus e¢ caces sont “cutting-plane”, “facet-…nding”et“branch and
bound”.
– Les algorithmes d’approximation (heuristiques) obtiennent de bonnes solutions mais ne donnent
aucune garantie sur l’optimalité de la solution trouvée.

8
Danc cette partie nous intéressons aux méthodes énumératives, c’est-à-dire des méthodes qui ex-
plorent l’espace des solutions pour trouver une solution de meilleur coût.
Les méthodes de Branch&Bound essayent d’éviter d’explorer entièrement l’espace des solutions en
utilisant les caractéristiques des solutions optimales et des estimations des coûts des solutions.

3.6 Méthode de Branch and Bound (B&B) : cas 0-1

La méthode par séparation et évaluation (nommée Branch and Bound en anglais) est notée B&B.
C’est une des méthodes qui permettent la résolution exacte de problèmes d’optimisation, notamment
les problèmes d’optimisation combinatoires dont on cherche à minimiser le coût de la recherche. B&B
propose un mécanisme de recherche très intelligent, grâce à lequel elle permet une bonne exploitation de
l’espace de recherche et l’aboutissement à la solution optimale plus rapidement que d’autres méthodes
exactes en combinant deux principes primordiaux : la séparation et l’évaluation.
Branchement (ou séparation) :
– Choisir un sommet dans l’arbre des solutions
– Puis choisir une variable non encore …xée relativement à ce sommet
– Générer les deux alternatives
Calcul de borne (ou évaluation) :
résoudre la relaxation PL en chaque sommet
Élagage (ou élimination) : utiliser l’information tirée de la résolution de la relaxation PL pour
éliminer toutes les solutions émanant du sommet courant .

3.7 Algorithme de B&B : cas 0_1

1: Initialisation :

1. Poser Z = 1 ;

2. Appliquer le calcul de borne et les critères d’élagage à la racine (aucune variable …xée).

2: Critère d’arrêt : s’il n’y a plus de sous-problèmes non élagués, arrêter.


3: Branchement :

1. Parmi les sous-problèmes non encore élagués, choisir celui qui a été créé le plus récemment (s’il y
a égalité, choisir celui de plus grande borne supérieure) ;

2. Appliquer le Test 1 : si le sous-problème est élagué, retourner en 2.

3. Brancher sur la prochaine variable non …xée.

9
4: Calcul de borne :

1. Résoudre la relaxation PL de chaque sous-problème ;

2. Arrondir la valeur optimale si tous les paramètres de l’objectif sont entiers.

5: Elagage : élaguer un sous-problème si

1. La borne supérieure est inférieure ou égale à Z

2. La relaxation PL n’a pas de solution réalisable ;

3. La solution optimale de la relaxation PL est entière : si la borne supérieure est strictement supé-
rieure à

est mise à jour et la solution de la relaxation PL devient la meilleure solution courante.


6: Retourner en 2

3.8 Exemple

Un voyageur commerce vit dans une ville A et doit visiter B, C et D.et on a les données suivantes :

AB = 120 AC = 140 AD = 180 BC = 70 BD = 100 CD = 110

On cherche donc le trajet le plus court qui part de A et y revient après avoir passé les 3 autres points.
On a donc la matrice suivante :
A B C D
A 1 120 140 180
B 120 1 70 100
C 140 70 1 110
D 180 100 110 1

1ère étape :
On soustrait de chaque ligne son minimum puis idem pour les colonnes
A B C D
A B C D A B C D
A 1 0 20 60
A 1 120 140 180 120 A 1 0 20 30
B 50 1 0 30
B 120 1 70 100 70 ! ! B 0 1 0 0
C 70 0 1 40
C 140 70 1 110 70 C 20 0 1 10
D 80 0 10 1
D 180 100 110 1 100 D 30 0 10 1
50 0 0 30

10
Le cout est :
P P
d= min(l) + min(c) = 360 + 80 = 440 = z
lignes colonnes
2ème étape : (AB)

A B C D
A B C D A B C D
A 1 1 1 1
A 1 1 1 1 A 1 1 1 1
B 1 1 0 0
B 1 1 0 0 0 ! ! B 1 1 0 0
C 10 1 1 0
C 20 1 1 10 10 C 0 1 1 0
D 20 1 0 1
D 30 1 10 1 10 D 10 1 0 1
10 0 0
Le cout est :
c(AB) + z + d2 = 0 + 440 + 30 = 470

3ème étape : (AC)


A B C D
A 1 1 1 1
B 1 1 1 0
C 1 0 1 10
D 30 0 1 1

La matrice est réduit donc le cout est :


c(AC) + z + d3 = 20 + 440 + 0 = 460

4ème étape : (AD)


A B C D
A 1 1 1 1
B 0 1 0 1
C 20 0 1 1
D 1 0 10 1

La matrice est réduit donc le cout est :


c(AD) + z + d4= 30 + 440 + 0 = 470
min(470; 460; 470) = 460 alors on choisit C

11
5ème étape : (CB)
A B C D A B C D A B C D
A 1 1 1 1 A 1 1 1 1 A 1 1 1 1
B 0 1 1 0 ! B 0 1 1 0 0 ! B 0 1 1 0
C 1 0 1 10 C 1 1 1 1 C 1 1 1 1
D 30 0 1 1 D 30 1 1 1 30 D 0 1 1 1

Le cout est :
c(CB) + z0 + d5 = 0 + 460 + 30 = 490

6ème étape : (CD)


A B C D A B C D
A 1 1 1 1 A 1 1 1 1
B 0 1 1 0 ! B 0 1 1 1
C 1 0 1 10 C 1 1 1 1
D 30 0 1 1 D 30 0 1 1

Le cout est :
c(CD) + z0 + d6 = 10 + 460 + 0 = 470

min(490; 470) = 470 on choisit D


7ème étape : (DB)
A B C D A B C D A B C D
A 1 1 1 1 A 1 1 1 1 A 1 1 1 1
B 0 1 0 1 ! B 0 1 0 1 ! B 0 1 0 1
C 20 0 1 1 C 20 1 1 1 C 0 1 1 1
D 1 0 10 1 D 1 1 1 1 D 1 1 1 1

Le cout est :
c(DB) + z" + d7 = 0 + 470 + 20 = 490
C’est …ni et la solution du plus court chemin est alors :
fA; C; D; B; Agdont la valeur est de 490km .
xAC = xCD = xDB = xBA = 1

12
4 Problème d’a¤ectation
Les problèmes d’a¤ectation sont des cas spéciaux du problème de transport consiste à a¤ecter les
éléments d’un ensemble à ceux d’un autre ensemble selon une approche biunivoque (un à un) de sorte
que la somme des coûts des a¤ectations soit minimale.

4.1 Formulation du problème :


8
> P
n P
n
>
> min z = cij xij
>
>
>
>
i=1 j=1
>
>
>
> sc
>
< 8
> P
n
>
> xij = 1 j = 1:::n
> >
>
>
> < i=1
>
> P
n
>
> xij = 1 i = 1:::n
>
> >
>
>
> >
>
j=1
>
: >
: xij 2 f0; 1g i = 1:::n; j = 1:::n

où xij = 1 si i est a¤ecté à j ; 0 autrement


cij = coût d’a¤ectation de i à j.

– Les 2 ensembles sont de même taille


Si ce n’est pas le cas, on peut y remédier en ajoutant des éléments (sommets) …ctifs et en dé…nissant
cij

13
= 08i ou j …ctif.
– Si i ne peut être a¤ecté à j pour quelque raison, alors mettre cij = 1 et xij sera 0

14
4.2 Exemple

Supposons que, dans une entreprise, n ouvriers puissent travailler indi¤éremment sur n machines,
mais avec plus ou moins d’e¢ cacité ; l’e¢ cacité peut se mesurer par le revenu provenant de la vente des
produits fabriqués par les divers ouvriers travaillant sur les di¤érentes machines.
Répartir les ouvriers sur les machines de la façon la plus e¢ cace est un problème d’a¤ectation.
Soit n unités à a¤ecter à n tâches ; une unité ne peut être a¤ectée qu’à une tâche et une tâche ne
peut employer qu’une unité.
L’unité i exécute la tâche j avec un coût ou un pro…t cij .
Comment doit-on a¤ecter chaque unité à une seule tâche pour que la rentabilité soit
optimale ?

4.2.1 Techniques de solution

Méthode hongroise développée par le mathématicien Kuhn


Kuhn; H. W. "The Hungarian Method for the Assignment Problem ".
Naval Research Logistics Quarterly, Vol. 2, pp. 83-97, 1955.

4.2.2 Description de la méthode hongroise

1.Soustraire l’élément minimum de la rangée i de chaque élément de la rangée i, pour tout i = 1, 2,


..., n.
2.Soustraire l’élément minimum de la colonne j de chaque élément de la colonne j, pour tout j = 1,
2, ..., n.
3.Examiner les rangées à partir de la première. S’il existe une rangée ne contenant qu’un seul zéro
non marqué, alors marque ce zéro en l’encadrant pour dénoter une a¤ectation. Éliminer les autres zéros
de la même colonne en les marquant (cases grises).
Répéter ce processus jusqu’à ce que toutes les rangées ne contiennent aucun zéro non marqué ou au
moins deux zéros non marqués.
4.Examiner les colonnes à partir de la première. S’il existe une colonne avec un seul zéro non marqué,
alors marquer ce zéro en l’encadrant pour dénoter une a¤ectation. Éliminer les autres zéros non marqués
de la même rangée en les marquant (cases grises). Répéter ce processus jusqu’à ce que toutes les colonnes
ne contiennent aucun zéro non marqué ou au moins deux zéros non marqués.
5.Répéter les étapes 3 et 4 successivement jusqu’à ce qu’une des trois conditions soit obtenue.
(a) Chaque rangée possède une a¤ectation ; alors cette a¤ectation est optimale. L’algorithme
prend …n.

15
(b) Il y a au moins deux zéros non marqués dans chaque rangée et chaque colonne ; alors faire
une a¤ectationarbitraire à un de ces zéros en l’encadrant et éliminer tous les autres zéros de la même
rangée et de la même colonne en les marquant (cases grises) puis aller à 3.
(c) Il n’y a aucun zéro non marqué et une a¤ectation complète n’a pas été faite ; alors passer à
l’étape 6
6.Cocher (f) toutes les rangées pour lesquelles des a¤ectations n’ont pas été faites.
7.Cocher (f) toutes les colonnes pas encore cochées et qui ont un zéro dans des rangées cochées.
8.Cocher (f) toutes les rangées pas encore cochées et qui ont des a¤ectations dans des colonnes
cochées.
9.Répéter les étapes 7 et 8 jusqu’à ce qu’il ne soit plus possible de cocher.
10.Tracer une ligne à travers toutes les rangées non cochées et toutes les colonnes cochées.
11.Parmi tous les éléments de la matrice qui ne sont pas couverts par une ligne, choisir l’élément
le plus petit et le soustraire de chaque élément non couvert et l’ajouter à chaque élément doublement
couvert (par une ligne verticale et horizontale).
Retourner à l’étape 3.

4.3 Exemple

Soit le problème d’a¤ectation avec la matrice de coûts suivante :

En appliquant les étapes 1 et 2, on obtient :

16
En appliquant l’étape 3, on obtient :

En appliquant l’étape 4, on obtient :

17
Aucun zéro non marqué et une a¤ectation complète n’a pas été faite ;
passer aux étapes 6 à 9.

18
Appliquons maintenant l’étape 10.

19
Appliquons l’étape 11. Le plus petit élément est 1.

20
Retournons aux étapes 3 et 4.

21
Aucun zéro non marqué et une a¤ectation complète n’a pas été faite ;
passer aux étapes 6 à 9.

22
Appliquons l’étape 10

23
Appliquons l’étape 11. Le plus petit élément est 1.

24
On retourne aux étapes 3 et 4.

25
Chaque rangée possède une a¤ectation ; elle est donc optimale.
L’algorithme est terminé et nous avons :
x14 = x28 = x35 = x42 = x57 = x66 = x71 = x83 = 1 ; 0 ailleurs.

26
5 Méthode de Balas pour les PL en 0-1

5.1 Introduction

La méthode de Balas est un bel exemple de méthode arborescente


…xant progressivement à 0 ou à 1 des variables xj . elle nécessite un PL sous
forme canonique avec c 0 . On peut toujours revenir à ce cas en remplaçant
la
8 variable xj par x0j =1 xj quand cj < 0.
> M in z = cx (c
> 0)
>
<
Ax b
>
>
>
: n
x 2 f0; 1g

5.2 Dé…nition des noeuds et séparation

Un noeud (ou sommet) St de l’arborescente correspond à une


solution partielle.c-à-d qu’un sous-ensemble F (t) de variables a été …xé
à 0 ou 1, les variables restantes formant l’ensemble L (t) des variables
libres . On distingue dans F (t) les variables …xées à 0, F0 (t) et celles
…xées à 1,F1 (t) . On choisit une variable xj deL (t) et on la …xe à 0 ou
bien à 1, ce qui donne deux …ls.

5.3 Choix de la decision de Séparation en un noeud

Comme dans toute méthode arborescente, aprés le choix du prochain


sommet St à séparer, il faut préciser quelle décision de séparation on va
appliquer, Il est certain que …xer une variable libre quelconque à 0 ou 1
convient, Soit Q (t) = fi nsi < 0gl’ensemble des lingues du PL courent
ayant un second membre négatif. Cet ensemble est non vide. sinon
x0 serait une solution réalisable et l’exploration de st aurait été abondonnée.
Notons R (t) l’ensemble des indices de variables libres ayant un coe¢ cient
négatif sur au moins une des lingne deQ (t),
R (t) = fj 2 L (t) ; 9i 2 Q (t) ; aij < 0g
par exemple :
8
>
> 7x1 + 2x2 + 4x3 3 (1)
>
<
2x1 3x2 5x3 2 (2)
>
>
>
: 8x
1 x2 4x3 3 (3)

27
Alors Q (t) = f2; 3g et R (t) = f2; 3g .Pour construire une solution
réalisable du PL courant, il faut donc choisir dans R (t) une variable et
la …xer à 1.Autant donc choisir une de ces variables pour séparer.
Balas a proposé une mesure emprique simple de la proximité d’une
X X
solution , P (t) < 0; P (t) = si = M in (0; si ) ,
i2Q(t) j 1;m
P (t)est donc la somme des seconds membres négatifs.Elles dépent du
nombre de ces seconds membres et de leurs valeurs : à nombre égal
de si < 0 , la présence de grands si va probablement demander plus de
…xations de variables à 1 , et donc plus de noeuds à examiner.la proximité
d’une solution si on …xe xj à 1 est alors :
P
P (t; j) = i=1;m M in (0; si aij ) :le terme si aij est simplement la
nouvelle valeur du second membre aprés forçage de xj à 1.Balas propose
pour la séparation la variable j qui augmente le plys la proximité d’une
solution si on la met à 1, c-à-d : la plus prometteuse pour trouves une
nouvelle solution rapidement : P (t; j ) = max fP (t; j)g
j2R(t)
Dans l’exemple,la séparation se fera ainsi sur x3 ,car R (t) = f2; 3g
P (t; 2) = min(0; 3 2) + min(0; 2 + 3) + min(0; 3 + 1) = 2
P (t; 3) = min(0; 3 4) + min(0; 2 + 5) + min(0; 3 + 4) = 1

5.4 Algorithme de Balas

-Conversion du probléme initial sous la forme standard d’un


probléme à minimiser CX ou C 0 sous les contraintes AX b
-Utilisation du test classique
si max(AX) b n’est pas supérieur ou égal à 0 alors le probléme
n’a pas du solution
-test d’implication : une a¢ ctation d’une variable libre à 0 ou 1
dans le cas ou l’autre a¢ ctation à un sous probléme nos admissible

28
5.5 Exemple

8
>
> M in 5x1 + 7x2 + 10x3 + 3x4 + x5
>
>
>
>
>
> x1 + 3x2 5x3 x4 + 4x5 2 (1)
>
<
2x1 6x2 + 3x3 + 2x4 2x5 0 (2)
>
>
>
>
>
> x2 2x3 + x4 + x5 1 (3)
>
>
>
: 5
x 2 f0; 1g

Traitement du noeud- racine S0 :


on a L (0) = 1::::5; Q (0) = f1; 3g etR (0) = f1; 3; 4g.
on a l’évaluation trivial ev (S0 ) = 0
S0 x1 = 1 x3 = 1 x4 = 1
x1 x2 x3 x4 x5 S0
2 1 3 1
1 3 5 1 4 2
0 2 3 2
2 6 3 2 2 0
1 1 1 2
0 1 2 1 1 1
P (0) 4 3 5
La matrice (1) represente Coe¢ cients et seconds membres du PL
courant
la matrice(2) represente second membre Si aij
Ici on sépare sur x3 = 1ou 0 ce qui donne d’abord le
noeud S1 pour x3 = 1 .Le noeud S4 avec x3 = 0.
Traitement du noeud S1 :
on a L (1) = 1; 2; 4; 5; F1 (1) = f3g ; Q (1) = f2g
etR (1) = f2; 5g. on a l’évaluation trivial ev (S0 ) = 10
S1 x2 = 1 x5 = 1
x1 x2 x4 x5 S1
3 0 1
1 3 1 4 3
3 3 1
2 6 2 2 3
1 0 0
0 1 1 1 1
P (1) 0 2
La matrice (1) represente Coe¢ cients et seconds membres du PL
courant
la matrice(2) represente second membre Si aij
on sépare sur x2 .Le noeud S2 obtenu pour x2 = 1
est en fait une premiére solution réalisable,Cette solution
est x = (0; 1; 1; 0; 0) de coût 17.

29
Traitement du noeud S3 :
il reste à traiter le …ls droit S3 deS1 ,correspondant
à x3 = 1 etx2 = 0;
on aL (3) = 1; 4; 5; F1 (3) = f3g ; F0 (3) = f2g ; Q (3) = f2g
etR (3) = f5g.
x1 x4 x5 S3
1 1 4 3
2 2 2 3
0 1 1 1
s’aperçoit que dans la deuxiéme contrainte,
t2 (somme des a2j < 0)= 2> 3.
on laisse donc tomber le noeud S3 car il n’a pas de solution
réalisable
Traitement du noeud S4 :
on remontre sur le noeud S0 , puis on construit le noeud
S4 correspondant àx3 = 0; etL (4) = 1; 2; 4; 5
x1 x2 x4 x5 S4
1 3 1 4 2
2 6 2 2 0
0 1 1 1 1
s’aperçoit que dans la troisiéme contrainte, t2 = 0 > 1.
il n’y a pas de solution .C’est la …n de la recherche arborescente.
– arborescente de la méthode de Balas

30
6 Le problème de sac à dos

Vous lisez un « article de qualité » .

Le problème du sac à dos : quelles boîtes choisir a…n de maximiser la somme emportée tout en ne
dépassant pas les 15 kg autorisés ?

31
7 Histiore
Le problème du sac à dos est l’un des 21 problèmes NP-complets de Richard Karp, exposés dans son
article de 1972. Il est intensivement étudié depuis le milieu du XX e siècle et on trouve des références dès
1897, dans un article de George Ballard Mathews (en). La formulation du problème est fort simple,
mais sa résolution est plus complexe. Les algorithmes existants peuvent résoudre des instances pratiques
de taille importante. Cependant, la structure singulière du problème, et le fait qu’il soitprésent en tant
que sous-problème d’autres problèmes plus généraux, en font un sujet de choix pour la recherche.

8 Autres domaines concernés


On l’utilise aussi pour modéliser les situations suivantes, quelquefois en tant que sous-problème :
– Dans des systèmes d’aide à la gestion de portefeuille
– Dans le chargement de bateau ou d’avion
– Dans la découpe de matériaux

9 Présentation du problème
L’énoncé de ce problème fameux est simple : « Étant donné plusieurs objets possédant chacun un
poids et une valeur et étant donné un poids maximum pour le sac, quels objets
faut-il mettre dans le sac de manière à maximiser la valeur totale sans dépasser le poids maximal
autorisé pour le sac ? »
Toute formulation de ce problème commence par un énoncé des données. Dans notre cas, nous avons
un sac à dos de poids maximal P et n objets. Pour chaque objet i, nous avons un poids Pi et une valeur
vi .
Ensuite, il nous faut dé…nir les variables qui représentent en quelque sorte les actions ou les décisions
qui amèneront à trouver une solution. On dé…nit la variable xi associée à un objet i de la façon suivante
: xi = 1 si l’objet i est mis dans le sac, et xi = 0 si l’objet i n’est pas mis dans le sac.
Puis il faut dé…nir les contraintes du problème. Ici, il n’y en a qu’une : la somme des poids de
tous les objets dans le sac doit être inférieure ou égale au poids maximal du sac à dos.
P
i=n
Cela s’écrit ici (xi Pi ) P
i=1

32
En…n, il faut exprimer la fonction qui traduit notre objectif : maximiser la valeur totale des objets
dans le sac. Pour n objets, cela s’écrit :

P
i=n
max (xi vi )
i=1

En général, on ajoute les contraintes suivantes a…n d’éviter les cas singuliers :
P
i=n
– pi > P on ne peut pas mettre tous les objets ;
i=1
– pi P 8i = f1:::::ng aucun objet n’est plus lourd que ce que le sac peut porter ;
– vi > 0 8i = f1:::::ng tout objet a une valeur et apporte un gain ;
– pi > 0 8i = f1:::::ng tout objet a un certain poids et consomme des ressources.

10 Formulation mathématique
Toute formulation commence par un énoncé des données. Dans notre cas, nous avons un sac à dos
de poids maximal P et n objets. Pour chaque objet i, nous avons un poids pi et une valeur vi
Le problème peut alors être reformulé comme la recherche d’un vecteur X contenu (les composantes
P
i=n
valant 0 ou 1), réalisant le maximum de la fonction valeur totale Z(x) sous la contrainte xi pi P
i=1

8
> P
i=n
>
> max Z(x) = x i vi
>
>
>
> i=1
>
> P
i=n
>
> xi pi P
<
8
i=1
> >
> 1
>
> >
<
>
>
>
> xi = ou i = 1 : n
>
> >
>
> >
>
: : 0

– Z(x) est appelée fonction objectif ;


P
i=n
– tout vecteur X véri…ant la contrainte xi p i P est dit réalisable ;
i=1
– si la valeur de Z(x) est maximale, alors X est dit optimal

33
10.1 Procédé d’exploration systématique

arbre d0exploration binaire

Cet examen systématique peut être réalisé à l’aide d’un arbre d’exploration binaire tel celui
représenté ci-contre (les triangles représentent des sous-arbres).
L’arbre se décrit en descendant depuis le sommet jusqu’au bas des triangles (les feuilles de l’arbre).
Chaque case correspond à un unique parcours possible. En suivant les indications portées le long des
arêtes de l’arbre, à chaque parcours correspond une suite Arbre d’exploration binaire de valeurs
pour x0 ; x1 ; ::::; xn ; formant un vecteur contenu.

Il est alors possible de reporter dans chaque case la valeur totale et le poids total du contenu cor-
respondant. Il ne reste plus qu’à éliminer les cases qui ne satisfont pas la contrainte, et à choisir parmi
celles qui restent celle (ou une de celles) qui donne la plus grande valeur à la fonction objectif.
À chaque fois qu’un objet est ajouté à la liste des objets disponibles, un niveau s’ajoute à l’arbre
d’exploration binaire, et le nombre de cases est multiplié par 2.
L’exploration de l’arbre et le remplissage des cases ont donc un coût qui croît exponentiellement avec
le nombre n d’objets.

34
10.2 Méthodes de résolution le problème de sac à dos

Il existe deux grandes catégories de méthodes de résolution de problème de sac à dos : les méthodes
exactes et les méthodes approchées. Les méthodes exactes permettent d’obtenir la solution optimale
à chaque fois, mais le temps de calcul peut être long si le problème est compliqué à résoudre. Les méthodes
approchées, encore appelées heuristiques, permettent d’obtenir rapidement une solution approchée, donc
pas nécessairement optimale. Nous allons détailler un exemple d’algorithme de résolution de chaque
catégorie.

10.2.1 Méthode approchée

Algorithme de Gloutons Dé…nition de la méthode


Un algorithme glouton (greedy algorithm en anglais, parfois appelé aussi algorithme gourmand) est
un algorithme qui suit le principe de faire, étape par étape, un choix optimum local.dans certains cas
cette approche permet d’arriver à un optimum global, mais dans le cas général c’est une heuristique.
L’illustration ci-contre montre un cas où ce principe est mis en échec

Le principe
L’idée est d’ajouter en priorité les objets les plus e¢ caces, jusqu’à saturation du sac :
le principe est le suivant :
– Calculer la valeur (pi = wi ) pour chaque objet i.
– Trier tous les objets par ordre décroissant de cette valeur.
– Sélectionner les objets un à un dans l’ordre du tri et ajouter l’objet sélectionné dans le sac si le
poids maximal reste respecté

35
Algorithme

trier les objets par ordre décroissant d’e¢ cacité


w_conso = 0
pour i de 1 à n
si w(i) + w_conso W alors
x(i) = 1
w_conso = w_conso + w(i)
sinon
jx(i) = 0
…n si
Fin pour
A¢ cher : X ;
ALGORITHME DE GLOUTON

Exemple

Pour quatre objets (n = 4) et un sac à dos d’un poids maximal de 30kg(P = 30), nous avons les
données suivantes :
Objets(i) 1 2 3 4
vi 7 4 3 3
pi 13 12 8 10
– ll faut dé…nir les contraintes du problème. Ici, il n’y en a qu’une : la somme des poids de tous
les objets dans le sac doit être inférieure ou égale au poids maximal du sac à dos .Cela s’écrit ici
P
i=4
xi pi P
i=1
x1 :p1 + x2 :p2 + x3 :p3 + x4 :p4 P , 13x1 + 12x2 + 8x3 + 10x4 30 :
– la fonction qui traduit notre objectif :
P
i=4
max x i vi
i=1

36
Déroulons Algorithme de glouton sur notre exemple :

a) Première étape :
Objets(i) 1 2 3 4
vi =pi 0:54 0:33 0:37 0:30
b) Deuxième étape
Objets(i) 1 2 3 4
vi 7 3 4 3
pi 13 8 12 10
vi =pi 0:54 0:37 0:33 0:30
c) Troisième étape :
– Objet 1 : on le met dans le sac vide, le poids du sac est alors de 13 et inférieur à 30 ;
– Objet 3 : on le met dans le sac car 13 + 8 = 21 est inférieur à 30 ;
– Objet 2 : on ne le met pas dans le sac car le poids total (33) dépasserait 30.
– Objet 4 : on ne le met pas dans le sac (poids total de 31).

La solution trouvée est donc de mettre l’objet 1 et l’objet 3 dans le sac, ce qui donne une valeur
de 10.

x1 = x3 = 1; x2 = x4 = 0

Cette solution n’est pas optimale, puisqu’une solution avec une valeur totale de 11 existe.
Néanmoins, cet algorithme reste rapide même si le nombre d’objets augmente considérablement.

37
Références
[1] Catherine Mancel, Modelisation et resolution de problemes d’optimisation combinatoire issus d’ap-
plications spatiales, (2005).

[2] Christina Artiguees, Méthodes de décomposition pour la programmation linéaire en nombre entiers,
(2014).

[3] Daniel Porumbel, Optimisation en nombre entiers, Contributions aux slides : Cédric Bentz.

[4] Pierre Fouilhoux, Optimisation Combinatoire : Programmation LInéaire et Algorithmes, Université


Pierre et Marie Curie, (2015).

[5] Wikipidia

38

Vous aimerez peut-être aussi