• Aucun résultat trouvé

Parallélisation de la méthode du "Branch and Cut" pour résoudre le problème du voyageur de commerce

N/A
N/A
Protected

Academic year: 2021

Partager "Parallélisation de la méthode du "Branch and Cut" pour résoudre le problème du voyageur de commerce"

Copied!
141
0
0

Texte intégral

(1)

HAL Id: tel-00004801

https://tel.archives-ouvertes.fr/tel-00004801

Submitted on 19 Feb 2004

HAL is a multi-disciplinary open access archive for the deposit and dissemination of sci-entific research documents, whether they are pub-lished or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers.

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d’enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.

résoudre le problème du voyageur de commerce

Mohamed Ekbal Bouzgarrou

To cite this version:

Mohamed Ekbal Bouzgarrou. Parallélisation de la méthode du ”Branch and Cut” pour résoudre le problème du voyageur de commerce. Modélisation et simulation. Institut National Polytechnique de Grenoble - INPG, 1998. Français. �tel-00004801�

(2)

THESE`

pr´esent´ee par

Mohamed Ekbal BOUZGARROU

pour obtenir le titre de DOCTEUR

de l’INSTITUT NATIONAL POLYTECHNIQUE DE GRENOBLE

(Arrˆet´e minist´eriel du 30 Mars 1992)

Formation Doctorale : Recherche Op´erationnelle Discipline : Informatique

Parall´elisation de la m´ethode du “Branch and Cut”

pour r´esoudre le probl`eme du voyageur de

commerce

Date de soutenance : 14 d´ecembre 1998

Composition du jury :

Rapporteurs : Afonso FERREIRA

Catherine ROUCAIROL

Examinateurs : Gerd FINKE

Denis NADDEF (directeur de th`ese) Denis TRYSTRAM (pr´esident du jury)

Th`ese pr´epar´ee au sein du Laboratoire de Mod´elisation et Calcul

(3)
(4)

`

A mes parents Mohamed et Sa¨ıda

(5)
(6)

Remerciements

Je tiens d’abord `a remercier les membres du jury.

Madame Catherine Roucairol, Professeur de l’universit´e de Versailles Saint Quentin en Yvelines d’avoir accept´e de rapporter mon travail. Ces nombreuses remarques constructives m’ont permis de valoriser la qualit´e de ce document.

Monsieur Afonso Ferreira, Charg´e de recherche au CNRS d’avoir accept´e de rapporter ma th`ese malgr´e son emploi du temps charg´e. Ses remarques ont ´et´e d’une grande importance pour am´eliorer la claret´e de ce manuscript.

Monsieur Gerd Finke, Professeur de l’Universit´e Joseph Fourrier de Grenoble d’avoir accept´e d’examiner mon travail.

Monsieur Denis Trystram, Professeur de l’Institut National Polytechnique de Grenoble d’avoir accept´e d’examiner mon travail, et de m’avoir accueilli au sein de l’´equipe Algorithmique parall`ele du LMC.

Monsieur Denis Naddef, Professeur de l’Institut National Polytechnique de Grenoble d’avoir accept´e de diriger mes recherches. Ses nombreux conseils, sa rigueur ainsi que sa disponibilit´e ont ´et´e de pr´ecieux atouts tout au long de ce travail.

Un grand merci `a Olivier Briant et Phillipe Augerat qui se sont livr´es `a la chasse aux fautes dans ce document. Leurs conseils et leur disponibilit´e m´eritent d’ˆetre particuli`erement salu´es.

Je voudrais aussi remercier mes coll`egues de bureau, Martha, Fran¸cois, Chris-tophe qui a chang´e de compagnie et le nouveau arrivant Renaud pour l’ambiance d´etendue et studieuse qui y r`egne.

Merci ´egalement `a Alfredo, Alexandre, Andrea, Benhur, Brigitte, Fran¸cois O., Gerson, Greg, Gustavo, H´el`ene, Jacques B., Jacques C., Jean Guillaume, Jean Louis, Jean Marc, Jo¨elle, Khadija, Marcello, Mathias, Nicolas, Phillipe W., Ro-berta, Thierry, Yves.

Merci aussi `a mes amis Basma, Lamia, Imed, Pascal, Rym, Sami, Takoua et Wassel pour leurs encouragements et leurs aides.

Finalement, je tiens `a remercier mes parents Mohamed et Sa¨ıda, ma sœur Chi-raz et mon fr`ere Ghanem pour leurs encouragements, ainsi que la famille Khalifa pour son aide et son hospitalit´e.

(7)
(8)

TABLE DES MATI `ERES vii

Table des mati`eres

Introduction 1

Structure du document . . . 2

1 Introduction `a la m´ethode du “Branch and Cut” 5 1.1 Programmation lin´eaire . . . 5

1.2 La m´ethode du “Branch and Bound” . . . 8

1.3 La m´ethode des plans de coupes . . . 9

1.4 La m´ethode du “Branch and Cut” . . . 13

1.5 Le pricing ou la g´en´eration de colonnes . . . 15

2 Approche poly´edrale du probl`eme du voyageur de commerce 17 2.1 Le probl`eme du voyageur de commerce . . . 17

2.2 Le polytope du probl`eme du voyageur de commerce . . . 19

2.3 Quelques facettes de

STSP(n)

. . . 20

2.3.1 In´egalit´es triviales et du sous-tour . . . 21

2.3.2 In´egalit´es de peignes . . . 21

2.3.3 In´egalit´es des chemins, d’´etoiles et bi-emboit´ees . . . 24

2.3.4 In´egalit´es d’´echelles . . . 26

2.3.5 In´egalit´es de bipartition . . . 27

2.3.6 Autres In´egalit´es . . . 28

3 La m´ethode du “Branch and Cut” 29 3.1 Introduction . . . 29

3.2 Initialisation . . . 31

3.3 R´esolution du programme lin´eaire . . . 32

3.4 S´eparation . . . 33

3.4.1 S´eparation par pool . . . 33

(9)

3.4.3 S´eparation des in´egalit´es de sous-tours . . . 35

3.4.4 Contractions valides . . . 36

3.4.5 Construction des cocycles . . . 37

3.4.6 S´eparation des peignes . . . 39

3.4.7 Autres s´eparations . . . 42

3.5 Recherche d’une borne sup´erieure . . . 46

3.6 Pricing et Fixation . . . 46

3.6.1 Fixation . . . 49

3.6.2 R´ealisabilit´e du programme lin´eaire . . . 49

3.7 Branchement . . . 51

3.8 Strat´egie de parcours . . . 53

4 Quelques notions de parall´elisme 55 4.1 Introduction . . . 55

4.2 Architecture des machines parall`eles . . . 56

4.2.1 Les architectures `a m´emoire partag´ee . . . 57

4.2.2 Les architectures `a m´emoire distribu´ee . . . 57

4.3 Approche de parall´elisation . . . 59

4.3.1 Sources du parall´elisme . . . 59

4.3.2 Grain de parall´elisme . . . 60

4.3.3 Les applications parall`eles irr´eguli`eres . . . 61

4.3.4 Ordonnancement . . . 61

4.3.5 Placement et r´egulation de charge . . . 62

4.4 Mesure des performances . . . 62

4.4.1 Acc´el´eration . . . 63

4.4.2 Efficacit´e . . . 63

5 Parall´elisation du “Branch and Bound” 65 5.1 L’algorithme du “Branch and Bound” . . . 65

5.2 Approche de parall´elisation . . . 67

5.2.1 Parall´elisation de l’´evaluation . . . 68

5.2.2 Explorations concurrentes . . . 69

5.2.3 Parall´elisation de la recherche arborescente . . . 70

5.3 Classification des algorithmes de recherche arborescente parall`ele 70 5.4 Equilibrage de charge dans un algorithme parall`ele de “Branch and Bound” distribu´e . . . 72

5.4.1 Strat´egie de l’ardoise . . . 73

(10)

TABLE DES MATI `ERES ix 5.4.3 Strat´egie des seuils . . . 74 5.5 Les anomalies de comportement des algorithmes parall`eles de “Branch

and Bound” . . . 75 5.6 Exemples d’exp´erimentations . . . 76 5.7 Plate-forme de programmation de “Branch and Bound” parall`ele . 79

5.7.1 BOB : “Une plate-forme Unifi´ee de D´eveloppement pour les Algorithmes de type Branch and Bound” . . . 79 5.7.2 ZRAM : “A Workbench and Program Library for Portable

Parallel Search Algorithms” . . . 80 5.7.3 PUBB : “Parallelization Utility for Branch and Bound

al-gorithms” . . . 82

6 Parall´elisation du “Branch and Cut” 85

6.1 Niveau de parall´elisme . . . 85 6.1.1 Parall´elisation de gros grain: Explorations concurrentes . . 86 6.1.2 Parall´elisation de grain moyen: Parall´elisation du parcours 87 6.1.3 Parall´elisation de grain fin: Parall´elisation de l’´evaluation . 87 6.2 Contrˆole de la recherche arborescente . . . 90 6.3 Communication et m´emoire . . . 95 6.4 M´ecanismes d’´equilibrage de charge . . . 97

7 R´esultats et conclusions 101

7.1 Introduction . . . 101 7.2 Comportement de l’algorithme du “Branch and Cut” . . . 102 7.3 R´esultats exp´erimentaux . . . 107

(11)
(12)

TABLE DES FIGURES xi

Table des figures

2.1 Exemple de peigne . . . 22

2.2 Intersection d’un peigne avec un cycle hamiltonien . . . 24

2.3 Exemple de chemin (

h = 6

,

t = 3

) . . . 25

2.4 Exemple d’´echelle . . . 27

2.5 un exemple d’arbre de clique et de bipartition (

h = 3

,

t = 7

) . . . 28

3.1 l’organigramme du “Branch and Cut” . . . 30

3.2 Exemples de contractions valides. . . 36

3.3 Exemple d’oreille. . . 38

3.4 Exemples de chaque liste. . . 40

3.5 Exemple d’in´egalit´es viol´ees d’arbre de clique . . . 43

3.6 Exemple d’in´egalit´es viol´ees d’´echelle . . . 45

3.7 Exemple d’in´egalit´es viol´ees de chemin avec deux manches . . . . 47

4.1 (a) Machine `a m´emoire partag´ee (b) Machine `a m´emoire distribu´e 57 4.2 Architecture mixte . . . 59

5.1 Structure de l’arbre complet d’´enum´eration du “Branch and Bound” 66 5.2 Structure de ZRAM . . . 81

5.3 Structure de PUBB . . . 83

6.1 Structure de l’algorithme de parall´elisation de l’´evalution . . . 89

6.2 Structure de l’algorithme parall`ele du “Branch and Cut” . . . 91

6.3 Structure d’un noeud de l’arbre du “Branch and Cut” . . . 96

6.4 D´ependances entre les types de processeurs dans la structure hi´e-rarchique de T.K Ralphs . . . 100

7.1 Variation de la valeur

vallp

au cours du temps dans chaque noeud de l’arbre du “Branch and Cut” . . . 103

(13)

7.2 Variation du nombre des contraintes dans chaque noeud de l’arbre du “Branch and Cut” au cours du temps . . . 105 7.3 Variation du nombre des variables dans chaque noeud de l’arbre

(14)

LISTE DES TABLEAUX xiii

Liste des tableaux

7.1 Pourcentage en temps de chaque ´etape de l’algorithme du “Branch and Cut” par rapport au temps total d’ex´ecution . . . 107 7.2 R´esultats exp´erimentaux obtenus par [JRR95] . . . 108 7.3 Variation du temps de calcul, de l’efficacit´e et du nombre de noeuds

dans l’arbre du “Branch and Cut” selon le nombre de processeurs utilis´es pour r´esoudre quelques instances difficiles du probl`eme du voyageur de commerce . . . 109 7.4 Comparaison des r´esultats obtenus en ex´ecutant l’algorithme du

“Branch and Cut” sur 8 processeurs avec des modes d’´equilibrage de charge diff´erents . . . 112

(15)
(16)

LISTE DES ALGORITHMES xv

Liste des Algorithmes

1 L’algorithme des plans de coupes . . . 11

2 L’algorithme du “Branch and Cut” . . . 14

3 L’algorithme de g´en´eration de colonnes . . . 16

(17)
(18)

1

Introduction

La r´esolution jusqu’`a l’optimalit´e de probl`emes d’optimisation combinatoire NP-difficiles n´ecessite une mise en œuvre de m´ethodes de plus en plus complexes qui consomment de plus en plus de puissance de calcul. Le calcul parall`ele offre la perspective de pouvoir r´eduire le temps de r´esolution de ces probl`emes et permet d’esp´erer aborder des instances de plus grande taille.

L’objectif de notre travail est de parall´eliser un algorithme de “Branch and Cut” pour pouvoir r´esoudre jusqu’`a l’optimalit´e des instances du probl`eme du voyageur de commerce sym´etrique.

Le probl`eme du voyageur de commerce est parmi les probl`emes les plus diffi-ciles de la recherche op´erationnelle et de l’optimisation combinatoire. Il consiste `a trouver un parcours de coˆut minimum passsant exactement une fois par tous les sommets d’un graphe. Ce probl`eme a ´et´e largement ´etudi´e dans plusieurs branches de la math´ematique, de l’informatiques et de la recherche op´erationnelle. Il pos-s`ede plusieurs applications dans les domaines industriels, informatique et de dis-tribution: probl`eme de tourn´ee de v´ehicule, probl`eme de construction des circuits imprim´es, parcours d’un robot dans un magasin, ordonnancement de tˆaches ayant des temps d’ex´ecution d´ependant de leurs pr´ec´edences...

Quand la th´eorie de la complexit´e a ´et´e d´evelopp´ee, le probl`eme du voyageur de commerce fut l’un des premiers `a ˆetre class´e NP-difficile par Karp en 1972. Depuis, plusieurs heuristiques et techniques algorithmiques ont ´et´e mises en place pour trouver des solutions `a ce probl`eme : la m´ethode du “Branch and Bound”, la m´ethode de la relaxation Lagrangienne, les m´ethodes d’am´eliorations du type Lin Kernigham, les m´etas heuristiques tels que le recuit simul´e ou les algorithmes g´en´etiques, et des algorithmes qui se basent sur l’´etude poly´edrale du probl`eme tels que la m´ethode des coupes poly´edrale.

Pendant les dix derni`eres ann´ees plusieurs ´etudes ont ´et´e men´ees pour parall´e-liser ces m´ethodes et notamment la m´ethode du “Branch and Bound”. Ces ´etudes ont permis de montrer l’apport possible du parall´elisme. Cependant les tailles des

(19)

instances r´esolues restent en de¸c`a des esp´erances.

L’´emergence de la m´ethode du “Branch and Cut” a permis de franchir un seuil dans la taille des instances r´esolues du probl`eme du voyageur de commerce. Cette m´ethode d’´enum´eration implicite conjugue l’effort de plusieurs autres m´ethodes, essentiellement la m´ethode des coupes poly´edrale, la m´ethode du “Branch and Bound” et la m´ethode de g´en´eration de colonnes. Elle a permis de r´esoudre de grandes instances du probl`eme du voyageur de commerce, mais elle s’est av´er´ee grande consommatrice de puissance de calcul. La parall´elisation de cette m´ethode permettra de r´eduire son coˆut prohibitif en temps de calcul tout en abordant des instances de plus en plus difficiles du probl`eme du voyageur de commerce.

L’objectif de notre travail est d’impl´ementer un algorithme parall`ele, efficace et portable de “Branch and Cut” pour r´esoudre des instances difficiles du probl`eme du voyageur de commerce. Les choix pris lors de la parall´elisation doivent prendre en compte le caract`ere fortement irr´egulier de l’algorithme du “Branch and Cut” ainsi que ses sp´ecificit´es par rapport `a d’autres m´ethodes classiques d’´enum´eration implicite, notamment l’algorithme du “Branch and Bound”.

Structure du document

Dans le premier chapitre, nous introduirons les m´ethodes de base qui com-posent l’algorithme du “Branch and Cut”. Nous commencerons par un bref rappel sur la programmation lin´eaire et l’algorithme du simplexe. Puis nous d´ecrirons la m´ethode du “Branch and Bound”. Nous d´etaillerons ensuite la m´ethode des plans de coupes et les concepts de base de la th´eorie poly´edrale. Nous pr´esenterons en-suite un algorithme simplifi´e de “Branch and Cut”. Nous terminerons ce chapitre par la m´ethode de g´en´eration de colonnes.

Le chapitre 2 sera consacr´e `a une approche poly´edrale de l’´etude du probl`eme du voyageur de commerce. Nous commencerons par une mod´elisation du pro-bl`eme sous la forme d’un programme lin´eaire en nombres entiers. Nous d´efinirons ensuite le polytope du probl`eme du voyageur de commerce et nous donnerons ses principales propri´et´es. Nous d´ecrirons enfin quelques facettes connues du poly-tope du probl`eme du voyageur de commerce.

Dans le troisi`eme chapitre, nous d´etaillerons toutes les ´etapes de notre algo-rithme du “Branch and Cut” pour r´esoudre le probl`eme du voyageur de commerce. Tout d’abord, nous pr´esenterons un organigramme g´eneral de l’algorithme. En-suite nous d´ecrirons les phases d’initialisation, et de r´esolution du programe li-n´eaire. Puis nous pr´esenterons la phase de g´en´eration de coupes poly´edrales

(20)

pro-3 venant d’heuristiques de s´eparations et de “pool”. Nous d´ecrirons ensuite l’´etape de “pricing” et de g´en´eration de coupes, et nous montrerons les possibilit´es de fixation de variables pendant cette ´etape. Nous terminerons enfin par une pr´esen-tation des strat´egies de branchement et de parcours de l’arbre du “Branch and Cut”.

Le chapitre 4 introduit le lecteur aux concepts de base du parall´elisme. Nous pr´esenterons ensuite dans le chapitre 5 un aper¸cu non exhaustif des ´etudes de pa-rall´elisation de l’algorithme du “Branch and Bound” d´edi´e `a la r´esolution de pro-bl`eme d’optimisation combinatoire. Nous rapporterons quelques exemples d’ex-p´erimentations et de plateformes de programmation de “Branch and Bound” pa-rall`ele.

Nous pr´esenterons dans le chapitre 6, notre m´ethodologie de parall´elisation de l’algorithme du “Branch and Cut”. Nous commencerons par ´etudier les diff´e-rents niveaux de parall´elisme possibles. Nous donnerons ensuite la strat´egie de contrˆole de la recherche arborescente que nous avons adopt´e. Nous montrerons enfin les m´ecanismes de contrˆole de communication et d’´equilibrage de charge et justifierons nos choix.

Dans le dernier chapitre, nous pr´esenterons les r´esultats de nos exp´erimen-tations. Nous commencerons par justifier l’irr´egularit´e du “Branch and Cut” en montrant son comportement s´equentiel. Nous pr´esenterons ensuite les r´esultats que nous avons obtenus avec notre algorithme parall`ele. Nous expliquerons ces r´esultats en insistant sur les sp´ecificit´es de notre impl´ementation.

Nous terminerons ce document par les perspectives et les directions de nos travaux futures.

(21)
(22)

5

Chapitre 1

Introduction `a la m´ethode du

“Branch and Cut”

Dans ce chapitre, nous d´ecrirons les m´ethodes de base qui composent l’algorithme du “Branch and Cut”. Nous commencerons par un bref rappel sur la programmation lin´eaire et l’algorithme du simplexe. Puis nous d´ecrirons la m´ethode du “Branch and Bound”. Nous d´etaillerons ensuite la m´ethode des plans de coupes et les concepts de base de la th´eorie poly´edrale. Nous pr´esenterons alors, un algorithme simplifi´e de “Branch and Cut”. Et nous terminerons ce chapitre par la m´ethode de g´en´eration de colonnes.

1.1

Programmation lin´eaire

Etant donn´es un ensemble

E =

f

e

1

;:::;e

n

get une fonction

c : E

!

IR

, qui associe `a chaque

e

i 2

E

un coˆut

c

i. Soit S

=

f

S

i 

E;i = 1:::N

g. Dans la plupart des probl`emes d’optimisations combinatoires, on cherche:

S

 i tel que

c(S

 i

) = min

1iN

c(S

i

) = min

1iN X ej 2S i

c

j On associe `a tout

S

2S un vecteur d’incidence

x

S 2f

0;1

g

jEj

d´efini par

x

S

=



x

Si

= 1

si

e

i 2

S

x

Si

= 0

si

e

i 2

=

S

Le probl`eme d’optimisation est ´equivalent `a:

min

f

c

t

x

S

:

S

2Sg

=

min

f

c

t

x : x

2

conv

f

x

S

:

S

2Sgg

(23)

o`u

conv

f

x

S

:

S

2 Sg est l’enveloppe convexe des vecteurs d’incidences des solutions du probl`eme. D’apr`es le r´esultat classique de Farkas, Weyl et Minkowski [Sch86], l’enveloppe convexe des vecteurs d’incidences peut ˆetre d´ecrite par un syst`eme fini d’in´equations lin´eaires, i.e.

conv

f

x

S

:

S

2Sg

=

f

x : Ax



b

g Ainsi ´etant donn´es une matrice

A

2

IR

m

n, un vecteur

b

2

IR

m et un vecteur coˆut

c

2

IR

n, le probl`eme revient `a trouver un vecteur

x



2

IR

n tel que:

c

t

x



=

min

f

c

t

x : Ax



b;x

2

IR

ng

La fonction

c

t

x : IR

n!

IR

est appel´ee fonction ´economique (ou objectif), les in´egalit´es dans le syst`eme

Ax



b

sont appel´ees contraintes,

x



est appel´e solu-tion optimale du programme lin´eaire

(P)

. Cette solution n’est pas n´ecessairement unique.

On peut r´esoudre efficacement ce type de probl`eme par la m´ethode du sim-plexe (voir [Chv83]) ou par la m´ethode des points int´erieurs (voir [LMS94]). Rappelons ici le principe de la m´ethode (primale et duale) du simplexe dont on utilisera plusieurs notions durant cette th`ese.

Pour chaque programme lin´eaire

(P)

nomm´e programme lin´eaire primal, on associe un programme lin´eaire dual

(D)

, dans lequel on doit trouver un vecteur

y

 2

IR

m, tel que:

y

 t

b = max

f

y



b : A

t

y = c;y



0

g

Notons que le dual de

(D)

est

(P)

. La relation entre ces deux programmes est donn´ee par le th´eor`eme suivant:

Th´eor`eme 1 Etant donn´es deux programmes lin´eaires duaux

(P)

et

(D)

.

– Si

(P)

et

(D)

ont des solutions r´ealisables alors ils ont des solutions opti-males, et les valeurs des solutions optimales sont ´egales.

– Si

(P)

n’admet pas de solution r´ealisable alors soit

(D)

n’admet pas de solution r´ealisable, soit

(D)

est non born´e.

(24)

1.1 Programmation lin´eaire 7 Tout programme lin´eaire

min

f

c

t

x : Ax



b;x



0

g peut ˆetre transform´e pour ne comporter que des ´equations, en ajoutant une variable

s

i appel´ee variable d’´ecart pour chaque contrainte, le programme lin´eaire s’´ecrit alors comme suit :

min

f

c

t

x :

,

A

,

I

 

x

s



=

b;



x

s

 2

IR

n+m + g

o`u

I

est la matrice identit´e

m



m

, et

s

est le vecteur des variables d’´ecarts. Notons que les deux programmes lin´eaires sont ´equivalents. On consid´erera do-r´enavant que les programmes lin´eaires sont ´ecrits sous cette forme. La matrice

A

d´efinissant les contraintes du programme lin´eaire est d´esormais de dimension

m



(m + n)

, la dimension du vecteur coˆut

c

est

m + n

tel que les

m

derniers ´el´ements de

c

sont nuls.

Une base

B

de la matrice

A

2

IR

m (m+n)

de plein rang, est une sous-matrice de

A

inversible de taille

m



m

. Les colonnes (variables) de

A

qui forment la matrice

B

sont dites de base, les autres

N

sont dites hors base. La colonne

d

de

A

telle que

B

,1

d

est le

r

ieme vecteur unitaire, est dite de base `a la

r

ieme ligne. Pour un vecteur

x

2

IR

m

+n, le vecteur

x

B est d´efini tel que

(x

B

)

r

=

x

i o`u

i

est la

i

ieme colonne de

A

dans

B

qui est de base `a la

r

ieme ligne. Le vecteur

x

N est l’autre partie de

x

correspondant aux colonnes de

N

. Une solution primale de base

x

2

IR

m

+n associ´ee `a la base courante est telle que

x

B

=

B

,1

b

et

x

N

= 0

. Si

B

,1

b



0

alors la base

B

est dite r´ealisable. La solution de base associ´ee est aussi r´ealisable. Le vecteur

y = c

tB

B

,1

est la solution duale de base associ´ee `a

B

. Th´eor`eme 2 Etant donn´es deux programmes lin´eaires duaux

(P)

et

(D)

. Les pro-positions suivantes sont ´equivalentes :

– La valeur de la solution optimale de

(P)

est





. – Il existe une solution de base r´ealisable

x



de

(P)

et une solution de base r´ealisable

y



de

(D)

telle que

c

t

x



=

y

t

b = 



– Il existe une solution de base r´ealisable

x



de

(P)

et une solution de base r´ealisable

y



de

(D)

telle que

y

t

(Ax



,

b) = 0

et

c

t

x



=





.

L’algorithme primal (respectivement dual) du simplexe d´emarre avec une base r´ealisable de

(P)

(respectivement de

(D)

) et it`ere en gardant la r´ealisabilit´e de la base tout en satisfant la troisi`eme condition du th´eor`eme. L’optimalit´e est atteinte quand on obtient une solution duale (respectivement primale) de base r´ealisable.

(25)

Le coˆut r´eduit d’une variable

x

i est ´egal `a

c

i,

c

tB

B

,1

a

:i o`u

a

:i est la

i

ieme colonne de

A

. Un programme lin´eaire est non born´e (donc son dual n’est pas r´ealisable) quand il existe une variable

x

i de coˆut r´eduit n´egatif et

B

,1

a

:i 

0

. Pour plus de d´etails sur la programmation lin´eaire et l’algorithme du simplexe, le lecteur est encourag´e `a consulter [Chv83].

Malheureusement, une grande partie des probl`emes r´eels ne se mod´elise pas sous la forme d’un programme lin´eaire pur. Dans plusieurs cas, les variables doivent prendre des valeurs enti`eres et les probl`emes qui en r´esultent sont sou-ventNP-difficiles. Nous pr´esenterons, dans la suite, des m´ethodes de r´esolution exacte de ces types de probl`emes.

1.2

La m´ethode du “Branch and Bound”

Plusieurs probl`emes d’optimisation combinatoire se formulent sous la forme d’un programme lin´eaire en nombres entiers (PLNE). Ils s’´ecrivent sous la forme

min

f

c

t

x : Ax



b;x

2

IN

ng. Une grande partie de ces probl`emes appartient `a la classe des probl`emesNP-difficiles.

La m´ethode du “Branch and Bound” est utilis´ee pour r´esoudre d’une fa¸con exacte des probl`emes de ce type. La m´ethode utilise deux concepts: le

branche-ment qui consiste `a diviser un ensemble de solutions en sous-ensembles et l’´eva-luation qui consiste `a borner ou minorer les solutions.

Dans le cas des PLNE, la m´ethode du “Branch and Bound” commence par r´esoudre la relaxation lin´eaire du programme lin´eaire, c’est `a dire en enlevant les conditions d’int´egralit´e sur les variables. Cette ´evaluation est toujours inf´erieure `a la valeur de la solution optimale du PLNE, puisque toute solution du PLNE est une solution de la relaxation lin´eaire. Par cons´equent si la solution optimale de la relaxation lin´eaire est enti`ere, alors c’est une solution optimale du PLNE. Sinon on effectue une op´eration de branchement en choisissant une variable

x

 i non enti`ere dans la solution optimale du programme lin´eaire que l’on a r´esolu. L’ensemble des solutions se divise alors en deux, celles pour lesquelles

x

i b

x

 ic et celles pour lesquelles

x

i b

x



ic

+ 1

. On ´evalue ensuite les nouveaux nœuds et ´eventuellement on ´elague ceux qui sont inutiles. Un nœud peut ˆetre ´elagu´e dans trois cas possibles:

– Le programme lin´eaire n’est pas r´ealisable.

– La valeur de la solution est sup´erieure `a la valeur de la meilleure solution r´ealisable trouv´ee, dans ce cas il est inutile de continuer la recherche dans

(26)

1.3 La m´ethode des plans de coupes 9 la sous-arborescence enracin´ee en ce nœud, puisque les bornes inf´erieures obtenues sont strictement croissantes suivant la profondeur de l’arbre du “Branch and Bound”.

– La solution est enti`ere, donc r´ealisable.

L’algorithme s’arrˆete quand on n’a plus de nœud `a ´evaluer.

L’arborescence obtenue par les branchements appliqu´es au probl`eme d’opti-misation

P

est appel´ee arbre du “Branch and Bound”, qu’on note

T = (N;E)

o`u

N

repr´esente l’ensemble des nœuds de l’arbre et

E

les arcs correspondant au processus de branchement. Il y a trois types de nœuds dans l’arbre du “Branch and Bound” pendant le d´eroulement de l’algorithme, le nœud courant qui est en train d’ˆetre ´evalu´e, des nœuds actifs qui sont dans la liste des nœuds qui doivent ˆetre trait´es, et des nœuds inactifs qui ont ´et´e ´elagu´es au cours du calcul. Quand la liste des nœuds actifs est vide, la meilleure solution r´ealisable obtenue est la solution optimale du probl`eme. Notons que le choix de la strat´egie de la s´election du nœud actif `a traiter influe lourdement sur la taille de l’arborescence du “Branch and Bound” visit´ee. De mˆeme pour le choix de la variable de branchement. Ces points seront d´evelopp´es ult´erieurement dans notre pr´esentation.

1.3

La m´ethode des plans de coupes

La description sous la forme d’un programme lin´eaire d’un probl`eme d’opti-misation combinatoire

P

peut ˆetre trop grande pour ˆetre repr´esent´ee explicitement en m´emoire ou pour tenir dans un solveur de programmes lin´eaires. Dans ce cas, il suffit de r´esoudre une relaxation du probl`eme d’optimisation

P

en enlevant la plu-part de ces contraintes. L’ensemble des solutions r´ealisables du probl`eme relax´e, qu’on nommera

R

, contient celui de

P

. Ainsi, pour un probl`eme de minimisation la valeur de la fonction ´economique d’une solution optimale de

R

est inf´erieure ou ´egale `a celle d’une solution optimale de

P

.

La m´ethode des plans de coupes consiste `a r´esoudre un probl`eme relax´e, puis `a essayer d’ajouter it´erativement des contraintes du probl`eme initial, viol´ees par la solution courante, jusqu’`a ce qu’il n’y en ait plus. Pour un probl`eme d’optimi-sation

min

f

c

t

x : Ax



b;x

2

IR

ng, la contrainte d´efinie par le couple

(f;f

0

)

,

f

2

IR

n

;f

0

2

IR

est dite viol´ee par la solution courante

x

, si

f

t

x < f

0et

f

t

y



f

0 pour tout

y

2 f

x : Ax



b

g. Ces contraintes sont appel´ees des plans de coupes. Quand l’algorithme s’arrˆete, il n’y a plus de contraintes viol´ees par la solution courante donc elle constitue une solution optimale du probl`eme initial.

(27)

Cette m´ethode n’impose pas d’avoir une liste exhaustive explicite des plans de coupes, mais seulement une m´ethode pour g´en´erer efficacement des contraintes valides viol´ees. L’identification de ces contraintes est appel´ee le probl`eme de

s´e-paration.

Le probl`eme de s´eparation:

Etant donn´es un ensemble de contraintes d’un programme lin´eaire et un vecteur

x

2

IR

n, il faut ou bien prouver que

x

satisfait toutes les

contraintes ou bien trouver une in´equation qui est viol´ee par

x

.

L’algorithme des plans de coupes est d´ecrit dans Algorithme 1. Il s’arrˆete quand il n’y a plus de contrainte viol´ee dans le syst`eme

Ax



b

. La solution du programme lin´eaire est optimale dans ce cas. Malheureusement dans le cas des programmes lin´eaires en nombres entiers cette solution peut ˆetre fractionnaire bien qu’il n’y ait plus d’in´equation viol´ee dans le syst`eme des contraintes

Ax



b

. Comment peut-on obtenir des plans de coupes pour des probl`emes en nombres en-tiers?

Pour ce faire, on va revenir `a la premi`ere formulation d’un probl`eme d’opti-misation combinatoire. En effet, on a vu au d´ebut de ce chapitre qu’un probl`eme peut s’´ecrire sous la forme de :

min

f

c

t

x : x

2

conv

f

x

S

:

S

2Sgg

o`u

x

S est le vecteur d’incidence d’une solution

S

du probl`eme et S d´efinit l’en-semble des solutions du probl`eme.

L’enveloppe convexe de l’ensemble des vecteurs d’incidence des solutions du probl`eme en nombres entiers d´efinit en g´en´eral un poly`edre born´e.

P = conv

f

x

S

:

S

2Sg

Avant de continuer notre expos´e, nous avons besoin de rappeler quelques ´el´e-ments de la th´eorie poly´edrale. Pour une compr´ehension compl`ete de ce domaine nous vous renvoyons vers [Chv83].

Un poly`edre P est un ensemble de points d´efini par un ensemble fini d’´equa-tions et d’in´equad’´equa-tions lin´eaires, il s’´ecrit sous la forme

P =

f

x

2

IR

n

:

Ax



b

g, o`u

A

2

IR

m

n et

b

2

IR

m. Un poly`edre est dit born´e si le

max

x 2P

k

x

k

<

1o`u k

:

kest une norme de

IR

n.

(28)

1.3 La m´ethode des plans de coupes 11

Algorithme 1 L’algorithme des plans de coupes

/* On veut r´esoudre le probl`eme d’optimisation combinatoire

min

f

c

t

x : Ax



b;x

2

IR

ngavec

A

2

IR

m n et

b

2

IR

m */

Initialiser le programme lin´eaire par le sous syst`eme de contraintes

(A

1

;b

1

)

avec

A

1 2

IR

m 1 n et

b

1 2

IR

m 1 avec

m

1

<< m

;

Calculer la solution optimale

x

du programme lin´eaire

c

t

x = min

f

c

t

x : A

1

x



b

1

;x

2

IR

ng;

Tant que Nombre-de-contrainte = rechercher-des-contraintes-viol´ees() faire /* On recherche les contraintes viol´ees par

x

dans le syst`eme

Ax



b

, le nombre de contraintes viol´ees est retourn´e dans la variables

Nombre-contrainte */

Ajouter l’ensemble des contraintes viol´ees d´efini par

(A

2

;b

2

)

au programme lin´eaire;

A

1

=



A

1

A

2  et

b

1

=



b

1

b

2  ;

Calculer la solution optimale

x

du programme lin´eaire

c

t

x = min

f

c

t

x :

A

1

x



b

1

;x

2

IR

ng; Fin Tant que

x



=

x

(29)

Un polytope est un poly`edre born´e. Il peut ˆetre d´efini comme l’enveloppe convexe d’un ensemble fini de points.

La dimension d’un poly`edre

P

, not´ee

dim(P)

est la dimension du plus petit espace affine contenant

P

. Il est dit de pleine dimension si

dim(P) = n

.

Une in´equation

fx



f

0 est dite valide si est seulement si

fx



f

0 pour tout

x

2 f

x

2

IR

n

:

Ax



b

g. Si l’intersection entre

P

etf

x

2

IR

n

:

fx = f

0

gest non vide et diff´erente de

P

alors

F =

f

x

2

P : fx = f

0

g est dite face propre de

P

d´efinie par l’in´equation valide

fx



f

0. Les faces propres

F

de dimension maximale c’est `a dire tel que

dim(F) = dim(P)

,

1

sont appel´ees facettes de P.

Tout poly`edre

P

peut ˆetre ´ecrit sous la forme d’un syst`eme form´e d’in´equa-tions lin´eaires. De plus, s’il est de pleine dimension alors il admet une description unique par des in´equations lin´eaires valides repr´esentant des facettes, `a une mul-tiplication pr`es de ses deux membres par un nombre positif. Dans le cas o`u

P

ne serait pas de pleine dimension, le poly`edre est d´efini par ses facettes, plus un syst`eme maximal ind´ependant d’´equations.

Pour r´esoudre un programme lin´eaire en nombres entiers par la m´ethode des plans de coupes, on peut tout d’abord utiliser des plans g´en´eraux de coupes de l’enveloppe convexe des solutions du probl`eme. Ces coupes ne sont pas sp´eci-fiques au probl`eme r´esolu, et peuvent ˆetre utilis´ees pour tous les probl`emes li-n´eaires en nombres entiers. Les plans de coupe de Gomory [Gom58] ou les coupes g´en´er´ees par la m´ethode dite du “lift and project” introduite par Balas, C´eria et Cornu´ejols [BCC93a, BCC93b, BCC94] en sont un exemple.

L’utilisation de ces plans s’av`ere souvent limit´ee pendant la r´esolution de bl`emes difficile. D’o`u l’int´erˆet de l’´etude des plans de coupes sp´ecifiques au pro-bl`eme r´esolu.

L’utilisation des facettes de l’enveloppe convexe de l’ensemble des solutions d’un probl`eme lin´eaire en nombres entiers comme plans de coupes donne des r´esultats tr`es satisfaisants. En effet, chaque facette du polytope induit une in´egalit´e valide. Les facettes d’un polytope sont les meilleurs plans de coupe qu’on puisse g´en´erer. Pendant la proc´edure de s´eparation on utilise soit des algorithmes exacts de s´eparation pour g´en´erer les facettes connues, soit des heuristiques de s´eparation qui ne garantissent malheureusement pas l’absence d’in´egalit´es viol´ees quand ils n’en trouvent pas.

Gr¨otschel, Lov`asz et Schrijver [GLS88] et Padberg et Rao[PR82] ont d´emon-tr´e qu’un probl`eme peut ˆetre r´esolu en un temps polynomial si et seulement si la s´eparation des contraintes d´efinissant le polytope se fait en temps polynomial.

Pour des probl`emes lin´eaires en nombres entiers appartenant `a la classe des probl`emes NP-difficiles, on ne connaˆıt pas la description lin´eaire compl`ete du

(30)

1.4 La m´ethode du “Branch and Cut” 13 polytope associ´e. Et mˆeme si on poss`ede une description partielle des facettes du polytope du probl`eme ´etudi´e, on ne connaˆıt pas d’algorithmes exacts de s´epa-ration pour toutes ces familles de facettes. Ainsi, souvent la m´ethode des plans de coupes s’arrˆete avant d’avoir trouv´e la solution optimale du probl`eme. Notons qu’on parlera dor´enavant de m´ethode de coupes poly´edrales quand on n’utilise que les facettes du polytope comme plans de coupes.

1.4

La m´ethode du “Branch and Cut”

On vient de voir qu’on ne peut souvent pas r´esoudre efficacement des pro-bl`emesNP-difficiles par la m´ethode des coupes poly´edrales. De mˆeme, bien que l’algorithme du “Branch and Bound” puisse ˆetre tr`es performant pour une certaine classe de probl`emes, par exemple le probl`eme de sac `a dos, il reste tr`es limit´e quand il est difficile de calculer une borne inf´erieure du probl`eme d’optimisation. C’est le cas des probl`emes poss`edant un nombre exponentiel d’in´equations dans leur formulation en un programme lin´eaire en nombres entiers.

L’algorithme du “Branch and Cut” est une m´ethode qui conjugue les efforts de l’algorithme du “Branch and Bound” et de la m´ethode des coupes poly´edrales. Ainsi, pour r´esoudre un programme lin´eaire en nombres entiers, le “Branch and Cut” commence par r´esoudre une relaxation du probl`eme puis il applique la m´e-thode des coupes poly´edrales sur la solution trouv´ee. Si celle-ci n’arrive pas a ob-tenir une solution enti`ere alors le probl`eme est divis´e en plusieurs sous-probl`emes qui seront r´esolus de la mˆeme fa¸con. L’algorithme de base est d´ecrit dans algo-rithme 2.

Une telle approche a ´et´e utilis´ee pour la premi`ere fois pour le probl`eme de “li-near ordering” par Gr¨otschel, Junger et Reinelt [GJR84]. Le terme de “Branch and Cut” ´etait introduit par Padberg et Rinaldi [PR87, PR91] pour un algorithme de r´e-solution du probl`eme du voyageur de commerce. Dans [PR91], Padberg et Rinaldi ont ´etabli le premier ´etat de l’art de cet algorithme, en introduisant des nouvelles proc´edures telles que la g´en´eration de colonnes, des proc´edures de s´eparation so-phistiqu´ees et une utilisation efficace du solveur du programme lin´eaire.

(31)

Algorithme 2 L’algorithme du “Branch and Cut”

/* On veut r´esoudre le probl`eme d’optimisation combinatoire

min

f

c

t

x : Ax



b;x

2

IR

ngavec

A

2

IR

m n et

b

2

IR

m */

Liste-des-probl`emes = vide;

Initialiser le programme lin´eaire par le sous syst`eme de contraintes

(A

1

;b

1

)

avec

A

1 2

IR

m 1 n et

b

1 2

IR

m 1 avec

m

1

<< m

; /* Etapes d’´evaluation d’un probl`eme */

Calculer la solution optimale

x

du programme lin´eaire

c

t

x = min

f

c

t

x : A

1

x



b

1

;x

2

IR

ng; Solution-courante = Appliquer-la-m´ethode-des-coupes-poly´edrales();

/* Fin ´etapes d’´evaluation */

Si Solution courante est r´ealisable alors

x



=

x

est la solution optimale de

min

f

c

t

x : Ax



b;x

2

IR

ng; Sinon

Ajouter le probl`eme dans Liste-des-probl`emes; Fin Si

Tant que Liste-des-probl`emes non vide faire S´electionner un probl`eme;

Brancher le probl`eme en deux ou plusieurs sous probl`emes;

R´esoudre les nouveaux sous probl`emes (en appliquant les ´etapes d’´evalua-tion);

(32)

1.5 Le pricing ou la g´en´eration de colonnes 15

1.5

Le pricing ou la g´en´eration de colonnes

Quand un programme lin´eaire admet un grand nombre de variables, il est tr`es difficile de le r´esoudre explicitement. Dans ce cas, on r´esout le programme lin´eaire sur un sous-ensemble de variables et on v´erifie ensuite si l’ajout d’une variable qui n’appartient pas au programme lin´eaire courant peut am´eliorer la solution op-timale. En effet pour un programme lin´eaire du type

min

f

c

t

x : Ax



b;x



0

g, une variable dont le coˆut r´eduit est n´egatif, peut am´eliorer la valeur de la solution optimale. Rappelons ici, que le coˆut r´eduit

r

j d’une variable j hors base est ´egal `a

c

j ,

y

t

a

:j o`u

a

:j 2

IR

m est la colonne associ´ee `a la variable j,

c

j est le coefficient dans la fonction ´economique correspondant `a une solution de base du programme lin´eaire et

y

2

IR

m la solution du dual. Le calcul du coˆut r´eduit d’une variable est appel´e “pricing”.

Comme dans la m´ethode des coupes poly´edrales, il est inutile d’avoir la liste explicite des variables pour l’algorithme de g´en´eration de colonnes. Il suffit d’avoir une m´ethode permettant de g´en´erer les variables du probl`eme initial qui ont un coˆut r´eduit n´egatif. Ce probl`eme porte le nom du probl`eme du “pricing”:

Le probl`eme de “pricing”:

Etant donn´ee une classe de variables d’un probl`eme lin´eaire et la valeur des variables duales de la solution de base. Il faut soit prouver que toutes les variables de cette classe ont un coˆut r´eduit positif, soit trouver une variable hors base dont le coˆut r´eduit est n´egatif.

L’algorithme de g´en´eration de colonnes est d´ecrit dans Algorithme 3. Il peut ˆetre int´egr´e dans la m´ethode du “Branch and Cut” pour pouvoir r´esoudre des pro-bl`emes d’optimisation difficiles avec un grand nombre de variables et de contraintes. La m´ethode obtenue porte le nom du ” Branch and Cut and Price ”. C’est l’algo-rithme qu’on va utiliser pour r´esoudre le probl`eme du voyageur de commerce. Mais pour ne pas alourdir notre texte, nous appellerons d´esormais cette m´ethode, l’algorithme du “Branch and Cut”.

(33)

Algorithme 3 L’algorithme de g´en´eration de colonnes

/* On veut r´esoudre le probl`eme d’optimisation combinatoire

min

f

c

t

x : Ax



b;x

2

IR

ngavec

A

2

IR

m n et

b

2

IR

m */ continue-le-pricing = vrai;

S´electionner un petit sous-ensemble J des variablesf

1::m

g; Tant que continue-le-pricing faire

Calculer la solution de base

x

J du programme lin´eaire

c

tJ

x

J

=

min

f

c

tJ

x

J

:

A

J

x

J 

b;x

J 

0;x

J 2

IR

jjj

get d´eterminer les valeurs des variables duales

y

;

Pour i qui n’est pas dans J faire

Si

r

i

=

c

i,

y

t

a

:i

0

alors

continue-le-pricing = faux;

Sinon

Ajouter la colonne j avec le

r

j

< 0

`a J; continue-le-pricing = vrai;

Sortir de la boucle Pour;

Fin Si Fin Pour

Fin Tant que

(34)

17

Chapitre 2

Approche poly´edrale du probl`eme

du voyageur de commerce

Ce chapitre est consacr´e `a une approche poly´edrale de l’´etude du pro-bl`eme du voyageur de commerce. Nous commencerons par une mod´eli-sation du probl`eme sous la forme d’un programme lin´eaire en nombres entiers. Nous d´efinirons ensuite le polytope du probl`eme du voyageur de commerce et nous donnerons ses principales propri´et´es. Nous d´ecrirons enfin quelques facettes connues du polytope du probl`eme du voyageur de commerce.

2.1

Le probl`eme du voyageur de commerce

Avant de donner la formulation du probl`eme du voyageur de commerce en programme lin´eaire en nombres entiers, rappelons quelques d´efinitions, qui nous serviront tout au long de cette th`ese.

Un graphe

G = (V;E)

est d´efini par l’ensemble de ses sommets

V

, et l’en-semble de ses arˆetes

E

. On note

K

n

= (V

n

;E

n

)

le graphe non orient´e complet sur n sommets.

Soit x une fonction coˆut de

E

!

IR

jEj

qui associe `a chaque arˆete

e

2

E

un coˆut

x

e. Pour tout

F



E

n, on note par

x(F)

la somme

P e2F

x

e.

Pour tout

S



V

n, on note par

(S) =

f

uv

2

E

n

:

u;v

2

S

gl’ensemble des arˆetes de

E

n dont les deux extr´emit´es sont dans

S

, et par

(S) =

f

uv

2

E

n

:

u

2

S;v

2

V

n,

S

gl’ensemble des arˆetes poss´edant exactement une seule extr´emit´e dans

S

. Par abus d’´ecriture on notera

(

f

v

g

) =

(v)

, pour tout

v

2

V

n.

(35)

Pour tout

S



V

n et

T



V

nn

S

, on note par

(S : T) = (T : S)

l’ensemble des arˆetes dont une extr´emit´e est dans

S

et l’autre dans

T

.

Pour un graphe

G = (V;E)

, on note

G(S)

le sous graphe induit par

S

. Et `a un vecteur

x

2

IR

jEj

on associe un graphe

G

x

= (V;E;x)

dont l’ensemble des arˆetes contient toutes les arˆetes de E qui ont une composante non nulle dans

x

. Le poids d’une arˆete

e

de

G

x est ´egal `a

x

e.

Soient

K

n

= (V

n

;E

n

)

le graphe non orient´e complet sur n sommets, et

c

2

IR

jEnj

une fonction qui associe `a chaque arˆete de

K

n une longueur

c

e. Le pro-bl`eme de voyageur de commerce consiste `a trouver un cycle hamiltonien

H



tel que

c(H



) =

min

f

c(H) : H

2 Hng, o`u Hn repr´esente l’ensemble des cycles hamiltoniens de

K

n.

Un cycle Hamiltonien est un sous graphe

H = (V

n

;E)

de

K

n satisfaisant: (a) chaque sommet de

H

est de degr´e 2. (2.1.2.1)

(b)

H

est connexe. (2.1.2.2)

On associe `a tout

H

2Hn un vecteur d’incidence unique

x

2f

0;1

g jEnj d´efini par:

x

He

=



1

si

e

2

E

0

sinon

Le probl`eme du voyageur de commerce s’´ecrit sous la forme du programme lin´eaire en nombres entiers suivant:

minimiser

c

T

x

sous

x((v)) = 2

pour tout

v

2

V

n (2.1.2.3)

x((S))



2

pour tout

S



V

n

;S

6

=

V

n

;S

6

= 

(2.1.2.4)

0



x

e 

1

pour tout

e

2

E

n (2.1.2.5)

x

e 2f

0;1

g pour tout

e

2

E

n (2.1.2.6)

L’´equation (2.1.2.3) signifie que chaque sommet est exactement incident `a 2 arˆetes, elle peut ˆetre ´ecrite sous la forme suivante:

A

n

x =

2 (2.1.2.7)

o`u

A

n est la matrice d’incidence de

K

n et 2 est un vecteur de

IR

n dont les compo-santes sont ´egales `a 2. Ces in´equations portent le nom d’´equations de degr´e.

(36)

2.2 Le polytope du probl`eme du voyageur de commerce 19 Les in´equations de sous-tour (2.1.2.4) assurent que

H

est connexe, puisque pour tout ensemble

S



V

n

;S

6

=

V

n

;S

6

= 

, le cocycle

(S)

intersecte au moins 2 fois un cycle hamiltonien. Ces in´equations peuvent s’´ecrire sous une forme ´equi-valente :

x( (S))

j

S

j,

1

pour tout

S



V

n

;S

6

=

V

n

;S

6

= 

(2.1.2.8) Les instances qui peuvent ˆetre r´esolues par la m´ethode du “Branch and Bound” avec ´evalution par un programme lin´eaire restent de petite taille. La raison est la diff´erence trop importante entre la valeur de la solution optimale de la relaxation lin´eaire et celle du PLNE. Pour combler cette diff´erence, il faut renforcer la des-cription lin´eaire du probl`eme. D’o`u la n´ecessit´e de l’´etude du polytope de ce pro-bl`eme pour pouvoir utiliser des m´ethodes plus sophistiqu´ees telle que le “Branch and Cut”. Nous d´efinirons dans la suite le polytope du probl`eme du voyageur de commerce et nous d´ecrirons quelques unes de ses facettes.

2.2

Le polytope du probl`eme du voyageur de

com-merce

Le polytope du voyageur de commerce sym´etrique

STSP(n)

est l’enveloppe convexe de l’ensemble des vecteurs d’incidence des cycles Hamiltoniens de

K

n.

STSP(n) = conv

f

x

H

:

H

2Hng

Les vecteurs d’incidences des cycles hamiltoniens forment les sommets du polytope

STSP(n)

. D’apr`es un r´esultat classique de Farkas, Weyl et Minkowski [Sch86],

STSP(n)

peut ˆetre d´ecrit par un syst`eme d’´equations et d’in´equations lin´eaires, i.e.

STSP(n)=

f

x : Ax



b

g, o`u chaque in´equation induit une facette de

STSP(n)

. Malheureusement on ne connaˆıt qu’une petite partie de la descrip-tion lin´eaire du probl`eme du voyageur de commerce, puisque aucune descripdescrip-tion lin´eaire compl`ete ne peut ˆetre donn´ee `a un probl`emeNP-difficile, `a moins que NP= co-NP(voir Karp et Papadimitriou [KP82]). Cependant une connaissance partielle de cette description permet souvent de trouver la solution optimale du probl`eme en utilisant la m´ethode du “Branch and Cut”. La description partielle du polytope

STSP(n)

fera l’objet de paragraphe suivant.

(37)

2.3

Quelques facettes de

STSP(n)

Le polytope du voyageur de commerce

STSP(n)

peut s’´ecrire sous la forme d’un syst`eme d’in´equations

Ax



b

repr´esentant les facettes du poly`edre, et un syst`eme minimal d’´equations

A

=

x = b

=

form´e par les ´equations de degr´e. Le po-lytope

STSP(n)

n’est pas de pleine dimension puisqu’il satisfait les contraintes de degr´e. En effet,

dim(STSP(n)) = m

,

n

avec

m =

j

E

nj

=

n(n,1) 2

. Donc les facettes qui forment le poly`edre du voyageur de commerce ne sont pas d´efinies d’une mani`ere unique `a une multiplication pr`es par un scalaire.

Th´eor`eme 3 Soit

P

un poly`edre qui n’est pas de pleine dimension, et soit

F

une facette de

P

, et

cx



c

0 une in´egalit´e repr´esentant

F

. L’in´equation

fx



f

0

repr´esente la mˆeme facette

F

si et seulement si

9

2

IR

 +et



2

IR

p o`u

p =

j

A

= jet tel que

(f;f

0

) = ( c + A

=

; c

0

+

b

=

)

Ainsi d’apr`es le th´eor`eme pr´ec´edent, si

hx



h

0est une in´egalit´e repr´esentant une facette du

STSP(n)

alors

fx



f

0 tel que

f = A

n

+ h

,

f

0

=



2

+ h

0 avec



> 0

et



2

IR

n d´efinit la mˆeme facette. On dit que les deux in´equations sont ´equivalentes.

En cons´equence les in´equations repr´esentant des facettes de

STSP(n)

sont d´ecrites sous plusieurs formes dans la litt´erature. Les facettes que nous pr´esente-rons dans ce document sont d´ecrites sous la forme suivante.

D´efinition 1 SoitS

=

f

S

1

;::: ;S

p

gune collection de sous ensemble de

V

n. Une

in´equation s’´ecrit sous une forme cocyclique si elle est ´ecrite comme suit :

p X

i=1

i

x((S

i

))



r(

S

)

o`u

i est un entier qui d´epend de

S

i2S et

r(

S

)

est une fonction de

min

f p X

i=1

ij

H

\

S

ij

;

pour tout

H

2Hg

Malheureusement, toutes les facettes du

STSP(n)

ne peuvent pas ˆetre ´ecrites sous une forme cocyclique, comme les in´egalit´es hypohamiltoniennes [CFN85] par exemple.

D´efinition 2 On dit qu’une in´egalit´e

fx



f

0 est triangulaire serr´ee ou TS si:

– les coefficients

f

e satisfont l’in´egalit´e triangulaire c.`a.d.

(38)

2.3 Quelques facettes de

STSP(n)

21

8

u

2

V

n 9

v

=

6

w

2

V

n,f

u

g

=

f(u;v) + f(u;w) = f(v;w)

Th´eor`eme 4 Soit

hx



h

0une in´egalit´e d´efinie sur

IR

jEnj

, on obtient une in´equa-tion

fx



f

0 triangulaire serr´ee ´equivalente `a

hx



h

0, si on pose:

f = A

n

+ h

et

f

0

=



2

+ h

0avec



> 0

et



u

= 2max

f

h(v;w)

,

h(u;v)

,

h(u;w)=v;w

2

V

n,f

u

g

;v

6

=

w

g D. Naddef et G. Rinaldi [NR91, NR92, NR93] ont utilis´e la forme triangu-laire serr´ee pour expliquer la relation entre

STSP(n)

et

GTSP(n)

le polytope repr´esentant l’enveloppe convexe des tours du graphe

G

.

Th´eor`eme 5 (Naddef et Rinaldi)

Toute facette de

STSP(n)

en forme TS est une facette de

GTSP(n)

.

Dans la suite nous pr´esenterons quelques facettes connues du probl`eme du voyageur de commerce.

2.3.1

In´egalit´es triviales et du sous-tour

Notons tout d’abord que les in´egalit´es du type

x

e

0;

8

e

2

E

sont des facettes triviales du

STSP(n)

[GP79].

Gr¨otschel et Padberg [GP79] ont prouv´e que les in´egalit´es du sous-tour

x((S))



2

, introduites par Dantzig, Fulkerson et Johnson [DFJ54], sont des facettes du

STSP(n)

. Leur validit´e est triviale. En effet, un cycle hamiltonien a au moins deux arˆetes en commun avec un cocycle associ´e `a

S

, pour tout

S



V

n

;S

6

= 

.

2.3.2

In´egalit´es de peignes

Les in´egalit´es de peignes (Comb Inequalities) sont d´efinies par la familleS

=

f

H;T

1

;::: ;T

2k+1

g de sous ensemble de

V

n tel que

s

= 1

pour tout

S

2 S et

(39)

H

est appel´e le manche ou la poign´ee et les

T

i sont appel´es des dents. Ils v´erifient les propri´et´es suivantes:

(i)

8

i = 1;:::;2k + 1

H

\

T

i 6

=

;

(ii)

8

i = 1;:::;2k + 1

T

in

H

6

=

;

(iii)

8

1



i < j



2k + 1 T

i\

T

j

=

; L’in´egalit´e s’´ecrit:

x((H)) +

2k+1 X i=1

x((T

i

))



6k + 4

Il existe des classes particuli`eres d’in´egalit´es de peignes. Ainsi, si on remplace la propri´et´e (i) par:

(i

0

)

8

i = 1;:::;2k + 1

j

H

\

T

ij

= 1

alors les in´egalit´es portent le nom de Chv

a



tal comb [Chv73]. Si toutes les dents

sont de cardinalit´e 2, alors les in´egalit´es se nomment in´egalit´e des 2-couplages. Gr¨otschel et Padberg [GP79] ont d´emontr´e que les in´egalit´es de peignes forment des facettes du

STSP(n)

quand

n



6

.

H H T1 T2 T3 T1 T2 T3 (a) (b) FIG. 2.1 – Exemple de peigne

(40)

2.3 Quelques facettes de

STSP(n)

23 La figure 2.1 montre un exemple de peigne avec

k = 1

. Notons qu’on utili-sera dans les figures repr´esentant des facettes de

STSP(n)

les conventions sui-vantes: les ensembles poss´edant un point noir doivent ˆetre non vides, ceux pos-s`edant un point blanc peuvent contenir des sommets et ceux ne pospos-s`edant aucun point doivent ˆetre vide. Un point ne repr´esente pas un sommet unique, mais un ensemble de sommets pouvant se trouver dans cette r´egion.

Notons que si on remplace l’un ou plusieurs des ensembles qui forment le peigne par leurs compl´ementaires, alors on obtient la mˆeme in´egalit´e (voir figure 2.1 (b)). En effet, le cocycle engendr´e par un ensemble de sommets est ´egal au cocycle engendr´e par son compl´ementaire, d’o`u l’in´egalit´e associ´ee ne change pas.

Rapporter les preuves de validit´e des in´egalit´es de peigne n’est pas l’objet de cette pr´esentation. On se contentera de donner une explication intuitive de cette va-lidit´e inspir´ee de l’article de Naddef et Pochet [NP98]. Cette explication peut per-mettre de comprendre pourquoi la familleS qui d´efinit les in´egalit´es sous forme cocyclique est partitionn´ee en deux sous ensembles form´es d’un manche et de plusieurs dents.

Supposons que k=1. Si le cocycle engendr´e par une dent

T

i intersecte un cycle hamiltonien

,

en exactement deux arˆetes, alors le cocycle du manche intersecte

,

en au moins trois arˆetes, voir figure 2.2 (a). Or sachant qu’un cocycle non vide intersecte un cycle hamiltonien en un nombre pair d’arˆetes, alorsj

,

\

(H)

j 

4

. D’o`u l’in´egalit´e de peigne est satisfaite dans ce cas par tout vecteur x repr´esentant un tel cycle hamiltonien. Supposons maintenant qu’il existe une dent

T

i? telle que j

,

\

(T

i

?

)

j 6

= 2

alors en appliquant le mˆeme principe, on a j

,

\

(T

i ?

)

j 

4

et le manche et les 2 autres dents ont au moins 2 arˆetes de leur cocycle dans

,

, voir figure 2.2 (b). D’o`u, de nouveau, l’in´egalit´e de peigne est satisfaite par tous les vecteurs x repr´esentant un cycle hamiltonien.

La preuve de la validit´e dans le cas g´en´eral peut ˆetre construite par induction sur le nombre des dents. Supposons que les in´egalit´es sont valides jusqu’`a un certain ordre

k

,

1



1

, et d´emontrons que ceci est vrai pour

k

. Soit un cycle hamiltonien

,

. Sij

,

\

(T

i

)

j

= 2

pour i=1, ..., 2k+1, alorsj

,

\

(H)

j 

2k + 1

. Or puisqu’un cocycle non vide intersecte un cycle hamiltonien en un nombre pair d’arˆetes alorsj

,

\

(H)

j

2k+2

, d’o`u la validit´e pour tout vecteur x repr´esentant un tel cycle hamiltonien. Supposons maintenant quej

,

\

(T

i?

)

j

4

, pour un

i

? donn´e, et par commodit´e supposons que

i

?

= 2k +1

. Par hypoth`ese de r´ecurrence on aj

,

\

(H)

j

+

P 2k,1 i=1 j

T

ij 

6k + 4

,

6

en ajoutantj

,

\

(T

2k+1

)

j 

4

et j

,

\

(T

2k

)

j

2

, on prouve la validit´e des in´egalit´es des peignes.}

(41)

T3 H T2 T1 T1 T3 H T2 (a) (b)

FIG. 2.2 – Intersection d’un peigne avec un cycle hamiltonien

plupart des in´egalit´es d´efinissant des facettes du

STSP(n)

pr´esent´ees ci-dessous.

2.3.3

In´egalit´es des chemins, d’´etoiles et bi-emboit´ees

Les in´egalit´es d’´etoiles (Star inequalities) ont ´et´e introduites par Fleischman [Fle88]. Cet ensemble d’in´egalit´es contient l’ensemble des in´egalit´es des chemins (Path inequalities) d´efinies par Cornu´ejols, Fonlupt et Naddef [CFN85], et il est contenu dans l’ensemble des in´egalit´es bi-emboit´ees (Binested inequalities) in-troduites par Naddef [Nad92]. On se limitera dans la suite `a la pr´esentation des in´egalit´es d’´etoiles.

Les in´egalit´es d’´etoiles sont d´efinies par la familleS

=

f

H

1

;:::;H

h

;T

1

;:::;T

t g, o`u t est un nombre impair. Ces ensembles doivent satisfaire les contraintes sui-vantes:

H

1 

H

2 

H

h

H

1 \

T

j 6

=

; pour

j = 1;:::;t

T

jn

H

h 6

=

; pour

j = 1;:::;t

(H

i+1 n

H

i

)

n St j=1

T

j

=

; 8

i;1



i



h

,

1

L’in´egalit´e d’´etoile s’´ecrit:

(42)

2.3 Quelques facettes de

STSP(n)

25 p X i=1

i

x((H

i

)) +

t X j=1

j

x((T

j

))



(t + 1)

p X i=1

i

+ 2

t X j=1

j o`u les

i et les

j sont des entiers qui v´erifient la condition suivante:

Si on d´efinit l’intervalle relatif `a une dent

T

j comme l’ensemble maximal des indices des manches qui ont une intersection avec

T

j, et si pour un intervalle

I =

f

`;` +1;:::;`+r

g, on appelle le poids de l’intervalle

P` +r

i=`

i; alors pour chaque dent

T

j, on a

j poids maximum d’un intervalle relatif `a

T

j.

T1 T2 T3 4 3 6 1 2 2 1 3 3 FIG. 2.3 – Exemple de chemin (

h = 6

,

t = 3

)

Quand tous les intervalles relatifs `a une dent

T

j ont les mˆemes poids, et quand les

j sont exactement ´egaux `a cette valeur, les in´egalit´es sont appel´ees in´egalit´es de chemins. La figure 2.3 montre un exemple d’in´egalit´e de chemin avec

h = 6

et

(43)

2.3.4

In´egalit´es d’´echelles

Les in´egalit´es d’´echelles (Ladder inequalities) sont d´efinies par la famille S

=

f

H

1

;H

2

;P

1

;P

2

;T

1

;::: ;T

t

;D

1

;::: ;D

m g

avec

t+m

est pair et au moins ´egal `a 2. Les ensembles

H

i

;P

i

;T

i et

D

i sont appel´es respectivement manches, dents pendantes, dents r´eguli`eres et dents d´eg´en´er´ees. Les in´egalit´es associ´ees `aS est:

2 X i=1

x((H

i

)) +

2 X i=1

x((P

i

)) +

t X j=1

x((T

j

)) +

m X j=1

2x((D

j

))

,

2x(H

1 \

P

1

:

H

2 \

P

2

)



2(2t + 3m + 4)

Remarquer que cette in´egalit´e n’est pas ´ecrite sous forme cocyclique `a cause du terme

x(H

1

\

P

1

:

H

2

\

P

2

)

. Les in´egalit´es d’´echelle d´efinissent des facettes de

STSP(n)

, (

n



8

) si :

H

1 \

H

2

=

;

H

1 \

P

1 6

=

;

;H

2 \

P

1

=

;

H

2 \

P

2 6

=

;

;H

1 \

P

2

=

;

P

1 n

H

1 6

=

;

;P

2 n

H

2 6

=

;

T

j\

H

i 6

=

; pour

i = 1;2;

pour

j



0

D

j \

H

i 6

=

; pour

i = 1;2;

pour

j



0

Ces in´egalit´es ont ´et´e introduites par Boyd et Cunningham [BC91]. La preuve qu’elles forment des facettes de

STSP(n)

a ´et´e donn´ee par Boyd, Cunningham, Queyranne et Wang [BCQW93]. Un exemple d’´echelle est montr´e dans la figure 2.4.

La mˆeme in´egalit´e est obtenue en rempla¸cant

H

2 par son compl´ement sur

V

n, voir figure 2.4. Dans ce cas les conditions que doivent v´erifier les

S

i sont:

H

1 

H

2

H

1 \

P

1 6

=

;

; H

2 

P

1

H

2 \

P

2 6

=

;

; H

1 \

P

2

=

;

P

1 n

H

1 6

=

;

; P

2 n

H

2 6

=

;

T

j \

H

1 6

=

;

; T

j n

H

2 6

=

; pour

j



0

D

j \

H

1 6

=

;

; D

j n

H

2 6

=

; pour

j



0

(44)

2.3 Quelques facettes de

STSP(n)

27 P1 P2 T1 D1 D1 T1 P2 P1 H2 H1 H2 H1 1 2 1 1 1 1 1 2 FIG. 2.4 – Exemple d’´echelle

L’in´egalit´e s’´ecrit alors sous la forme suivante:

2 X i=1

x((H

i

)) +

2 X i=1

x((P

i

)) +

t X j=1

x((T

j

)) +

m X j=1

2x((D

j

))

,

2x(P

1 \

H

1

:

P

2 n

H

2

)



2(2t + 3m + 4)

2.3.5

In´egalit´es de bipartition

Les in´egalit´es de bipartition (Bipartition inequalities) sont d´efinies par le sque-letteS

=

f

H

1

;:::;H

h

;T

1

;:::;T

t

get les coefficients

j associ´es aux dents

T

j. Ces ´el´ements v´erifient les propri´et´es suivantes:

H

i\

H

j

=

; pour

1



i < j



h

T

i\

T

j

=

; pour

1



i < j



t

T

j n

H

i 6

=

; pour

1



i



h

et

1



j



t

t

j

=

jf

i : T

j\

H

i 6

=

;gj

1

pour

1



j



t

h

i

=

jf

j : H

i\

T

j

=

6 ;gj

3

et impaire pour

1



i



h

j

= 1

si

T

j n

(

Sh i=1

H

i

)

6

=

; sinon

j

=

t

j

=(t

j,

1)

pour

1



j



t

(45)

a

T*

(a)

3/2 T*

(b)

FIG. 2.5 – un exemple d’arbre de clique et de bipartition (

h = 3

,

t = 7

)

nombre impair

h

i 

3

, de dents. L’in´egalit´e de bipartition s’´ecrit comme suit : h X i=1

x((H

i

)) +

t X j=1

j

x((T

j

))

 h X i=1

(h

i

+ 1) + 2

t X j=1

j

Ces in´egalit´es ont ´et´e introduites par Boyd and Cunningham [BC91] g´en´e-ralisant les in´egalit´es des arbres de cliques (Clique Tree inequalities) d´efinies par Gr¨otschel and Pulleyblank [GP86]. Les in´egalit´es d’arbres de cliques ne poss`edent pas de dent d´eg´en´er´ee, c’est `a dire une dent

T

j telle que

T

j n

(

Sh

i=1

H

i

) =

;. La figure 2.5 montre un exemple d’arbre de clique et de bipartition.

2.3.6

Autres In´egalit´es

Comme on ne connaˆıt pas toutes les facettes du

STSP(n)

, on essaye de d´efinir quelques op´erations qui permettent la cr´eation de nouvelles in´egalit´es `a partir des in´equations d´ej`a bien caract´eris´ees. Parmi ces op´erations on site la 2-somme de 2 in´equations de chemins, le clonage des arˆetes et le lifting des sommet (ou zero

node-lifting).

Ces op´erations ont permis de mettre en ´evidence quelques relations entre les in´equations ´ecrites sous la forme triangulaire serr´ee et d’autres in´egalit´es.

Figure

TABLE DES MATI ` ERES ix 5.4.3 Strat´egie des seuils . . . . . . . . . . . . . . . .
figure 2.5 montre un exemple d’arbre de clique et de bipartition.
figure 3.2): soit une chaˆıne de 1 dont les deux extr´emit´es u et v sont adjacentes au mˆeme sommet w tel que x uw +x vw = 1
Figure 4.5: Schematic overview of the parallel branch and cut algorithm

Références

Documents relatifs

I You can use the VRP solver to test new families of cuts for vehicle routing problems within

We note that for the last pool of 30 instances, none of the two exact methods converged to optimality within the time limit of 3600 seconds. Tables 3 and 4 confirm the superiority

Les expérimentations réalisées sur l’ensemble des instances de [3] montrent que notre algorithme est capable de résoudre un grand nombre d’instances de tailles

Simplexe Dantzig’47 non-polynomial tr`es rapide Ellipso¨ıde Khachiyan’79 polynomial tr`es lent Point int´erieur Karmarkar’84 polynomial rapide Remarques sur l’algorithme

(a) Mettre sous la forme d’un programme lin´eaire le probl`eme de la maximisation du nombre de dossiers trait´es. Comment

Then the total number of feasible routes with n requests and starting with exactly m pickup nodes is n!f (n, m). Suppose that the route starts with m pickups and then performs

In this paper, the dual feasible functions will be applied to the knapsack poly- topes associated to different constraints of (8)–(11), namely the demand con- straints (9),

However this problem class presented a better insight to when it is advantageous to jump-start the B&amp;C algorithm by solving the LP relaxations with the Volume Algorithm: