• Aucun résultat trouvé

Algorithmique des graphes 11 — Branch and bound Anthony Labarre 5 mai 2021

N/A
N/A
Protected

Academic year: 2022

Partager "Algorithmique des graphes 11 — Branch and bound Anthony Labarre 5 mai 2021"

Copied!
130
0
0

Texte intégral

(1)

Algorithmique des graphes

11 — Branch and bound

Anthony Labarre

5 mai 2021

(2)

Introduction vertex cover tsp Conclusions

Motivations

• Les probl` emes qu’on a couverts jusqu’` a pr´ esent ´ etaient tous faciles . . .

• . . . d’un point de vue algorithmique ; ce qui signifie qu’on arrive ` a les r´ esoudre en temps polynomial en la taille de l’entr´ ee ;

• De (tr` es) nombreux autres probl` emes sont “difficiles” : on ne connaˆıt pas d’algorithme efficace pour les r´ esoudre ;

• Aujourd’hui, on va voir comment s’y prendre pour r´ esoudre des probl` emes a priori difficiles ;

2

(3)

Introduction vertex cover tsp Conclusions

Motivations

• Les probl` emes qu’on a couverts jusqu’` a pr´ esent ´ etaient tous faciles . . .

• . . . d’un point de vue algorithmique ; ce qui signifie qu’on arrive ` a les r´ esoudre en temps polynomial en la taille de l’entr´ ee ;

• De (tr` es) nombreux autres probl` emes sont “difficiles” : on ne connaˆıt pas d’algorithme efficace pour les r´ esoudre ;

• Aujourd’hui, on va voir comment s’y prendre pour r´ esoudre

des probl` emes a priori difficiles ;

(4)

Introduction vertex cover tsp Conclusions

Motivations

• Les probl` emes qu’on a couverts jusqu’` a pr´ esent ´ etaient tous faciles . . .

• . . . d’un point de vue algorithmique ; ce qui signifie qu’on arrive ` a les r´ esoudre en temps polynomial en la taille de l’entr´ ee ;

• De (tr` es) nombreux autres probl` emes sont “difficiles” : on ne connaˆıt pas d’algorithme efficace pour les r´ esoudre ;

• Aujourd’hui, on va voir comment s’y prendre pour r´ esoudre des probl` emes a priori difficiles ;

4

(5)

Introduction vertex cover tsp Conclusions

Motivations

• Les probl` emes qu’on a couverts jusqu’` a pr´ esent ´ etaient tous faciles . . .

• . . . d’un point de vue algorithmique ; ce qui signifie qu’on arrive ` a les r´ esoudre en temps polynomial en la taille de l’entr´ ee ;

• De (tr` es) nombreux autres probl` emes sont “difficiles” : on ne connaˆıt pas d’algorithme efficace pour les r´ esoudre ;

• Aujourd’hui, on va voir comment s’y prendre pour r´ esoudre

des probl` emes a priori difficiles ;

(6)

Introduction vertex cover tsp Conclusions

Techniques pour les probl` emes difficiles

Comme on l’a vu, on doit g´ en´ eralement choisir entre :

1 r´ esoudre le probl` eme vite :

• heuristiques ;

• approximations avec garanties ;

• . . .

2 r´ esoudre le probl` eme bien :

• programmation dynamique ;

• recherche exhaustive ;

• branch and bound ;

• SAT, programmation lin´ eaire, . . . (voir l’an prochain)

• algorithmes param´ etr´ es ;

• . . .

6

(7)

Introduction vertex cover tsp Conclusions

Techniques pour les probl` emes difficiles

Comme on l’a vu, on doit g´ en´ eralement choisir entre :

1 r´ esoudre le probl` eme vite :

• heuristiques ;

• approximations avec garanties ;

• . . .

2 r´ esoudre le probl` eme bien :

• programmation dynamique ;

• recherche exhaustive ;

• branch and bound ;

• SAT, programmation lin´ eaire, . . . (voir l’an prochain)

• algorithmes param´ etr´ es ;

• . . .

(8)

Introduction vertex cover tsp Conclusions

Techniques pour les probl` emes difficiles

Comme on l’a vu, on doit g´ en´ eralement choisir entre :

1 r´ esoudre le probl` eme vite :

• heuristiques ;

• approximations avec garanties ;

• . . .

2 r´ esoudre le probl` eme bien :

• programmation dynamique ;

• recherche exhaustive ;

• branch and bound ;

• SAT, programmation lin´ eaire, . . . (voir l’an prochain)

• algorithmes param´ etr´ es ;

• . . .

8

(9)

Introduction vertex cover tsp Conclusions

Techniques pour les probl` emes difficiles

Comme on l’a vu, on doit g´ en´ eralement choisir entre :

1 r´ esoudre le probl` eme vite :

• heuristiques ;

• approximations avec garanties ;

• . . .

2 r´ esoudre le probl` eme bien :

• programmation dynamique ;

• recherche exhaustive ;

• branch and bound ;

• SAT, programmation lin´ eaire, . . . (voir l’an prochain)

• algorithmes param´ etr´ es ;

• . . .

(10)

Introduction vertex cover tsp Conclusions

Techniques pour les probl` emes difficiles

Comme on l’a vu, on doit g´ en´ eralement choisir entre :

1 r´ esoudre le probl` eme vite :

• heuristiques ;

• approximations avec garanties ;

• . . .

2 r´ esoudre le probl` eme bien :

• programmation dynamique ;

• recherche exhaustive ;

• branch and bound ;

• SAT, programmation lin´ eaire, . . . (voir l’an prochain)

• algorithmes param´ etr´ es ;

• . . .

10

(11)

Introduction vertex cover tsp Conclusions

Techniques pour les probl` emes difficiles

Comme on l’a vu, on doit g´ en´ eralement choisir entre :

1 r´ esoudre le probl` eme vite :

• heuristiques ;

• approximations avec garanties ;

• . . .

2 r´ esoudre le probl` eme bien :

• programmation dynamique ;

• recherche exhaustive ;

• branch and bound ;

• SAT, programmation lin´ eaire, . . . (voir l’an prochain)

• algorithmes param´ etr´ es ;

• . . .

(12)

Introduction vertex cover tsp Conclusions

Techniques pour les probl` emes difficiles

Comme on l’a vu, on doit g´ en´ eralement choisir entre :

1 r´ esoudre le probl` eme vite :

• heuristiques ;

• approximations avec garanties ;

• . . .

2 r´ esoudre le probl` eme bien :

• programmation dynamique ;

• recherche exhaustive ;

• branch and bound ;

• SAT, programmation lin´ eaire, . . . (voir l’an prochain)

• algorithmes param´ etr´ es ;

• . . .

12

(13)

Introduction vertex cover tsp Conclusions

Techniques pour les probl` emes difficiles

Comme on l’a vu, on doit g´ en´ eralement choisir entre :

1 r´ esoudre le probl` eme vite :

• heuristiques ;

• approximations avec garanties ;

• . . .

2 r´ esoudre le probl` eme bien :

• programmation dynamique ;

• recherche exhaustive ;

• branch and bound ;

• SAT, programmation lin´ eaire, . . . (voir l’an prochain)

• algorithmes param´ etr´ es ;

• . . .

(14)

Introduction vertex cover tsp Conclusions

Techniques pour les probl` emes difficiles

Comme on l’a vu, on doit g´ en´ eralement choisir entre :

1 r´ esoudre le probl` eme vite :

• heuristiques ;

• approximations avec garanties ;

• . . .

2 r´ esoudre le probl` eme bien :

• programmation dynamique ;

• recherche exhaustive ;

• branch and bound ;

• SAT, programmation lin´ eaire, . . . (voir l’an prochain)

• algorithmes param´ etr´ es ;

• . . .

14

(15)

Introduction vertex cover tsp Conclusions

Techniques pour les probl` emes difficiles

Comme on l’a vu, on doit g´ en´ eralement choisir entre :

1 r´ esoudre le probl` eme vite :

• heuristiques ;

• approximations avec garanties ;

• . . .

2 r´ esoudre le probl` eme bien :

• programmation dynamique ;

• recherche exhaustive ;

• branch and bound ;

• SAT, programmation lin´ eaire, . . . (voir l’an prochain)

• algorithmes param´ etr´ es ;

• . . .

(16)

Introduction vertex cover tsp Conclusions

Techniques pour les probl` emes difficiles

Comme on l’a vu, on doit g´ en´ eralement choisir entre :

1 r´ esoudre le probl` eme vite :

• heuristiques ;

• approximations avec garanties ;

• . . .

2 r´ esoudre le probl` eme bien :

• programmation dynamique ;

• recherche exhaustive ;

• branch and bound ;

• SAT, programmation lin´ eaire, . . . (voir l’an prochain)

• algorithmes param´ etr´ es ;

• . . .

16

(17)

Introduction vertex cover tsp Conclusions

Techniques pour les probl` emes difficiles

Comme on l’a vu, on doit g´ en´ eralement choisir entre :

1 r´ esoudre le probl` eme vite :

• heuristiques ;

• approximations avec garanties ;

• . . .

2 r´ esoudre le probl` eme bien :

• programmation dynamique ;

• recherche exhaustive ;

• branch and bound ;

• SAT, programmation lin´ eaire, . . . (voir l’an prochain)

(18)

Introduction vertex cover tsp Conclusions

Techniques pour les probl` emes difficiles

• On va voir aujourd’hui comment r´ esoudre des probl` emes difficiles de mani` ere exacte ;

• La technique connue sous le nom de branch and bound [3] est tr` es g´ en´ erale et s’applique ` a beaucoup de probl` emes ;

• On va l’illustrer sur deux probl` emes difficiles c´ el` ebres : vertex cover et traveling salesperson (tsp) ;

18

(19)

Introduction vertex cover tsp Conclusions

Techniques pour les probl` emes difficiles

• On va voir aujourd’hui comment r´ esoudre des probl` emes difficiles de mani` ere exacte ;

• La technique connue sous le nom de branch and bound [3]

est tr` es g´ en´ erale et s’applique ` a beaucoup de probl` emes ;

• On va l’illustrer sur deux probl` emes difficiles c´ el` ebres :

vertex cover et traveling salesperson (tsp) ;

(20)

Introduction vertex cover tsp Conclusions

Techniques pour les probl` emes difficiles

• On va voir aujourd’hui comment r´ esoudre des probl` emes difficiles de mani` ere exacte ;

• La technique connue sous le nom de branch and bound [3]

est tr` es g´ en´ erale et s’applique ` a beaucoup de probl` emes ;

• On va l’illustrer sur deux probl` emes difficiles c´ el` ebres : vertex cover et traveling salesperson (tsp) ;

20

(21)

Introduction vertex cover tsp Conclusions

Le probl` eme vertex cover

vertex cover

Entr´ ee : un graphe (non orient´ e, non pond´ er´ e) G = (V , E ) ; Sortie : un sous-ensemble U ⊆ V tel que :

1 ∀ {u, v } ∈ E : |{u, v } ∩ U | ≥ 1 ;

2 |U| est minimum ;

Autrement dit : U couvre toutes les arˆ etes de G . Exemple 1

0

1 2

3

4 5 6

(22)

Introduction vertex cover tsp Conclusions

Le probl` eme vertex cover

vertex cover

Entr´ ee : un graphe (non orient´ e, non pond´ er´ e) G = (V , E ) ; Sortie : un sous-ensemble U ⊆ V tel que :

1 ∀ {u, v } ∈ E : |{u, v } ∩ U | ≥ 1 ;

2 |U| est minimum ;

Autrement dit : U couvre toutes les arˆ etes de G . Exemple 1

0

1 2

3

4 5 6

22

(23)

Introduction vertex cover tsp Conclusions

Le probl` eme vertex cover

vertex cover

Entr´ ee : un graphe (non orient´ e, non pond´ er´ e) G = (V , E ) ; Sortie : un sous-ensemble U ⊆ V tel que :

1 ∀ {u, v } ∈ E : |{u, v } ∩ U | ≥ 1 ;

2 |U| est minimum ;

Autrement dit : U couvre toutes les arˆ etes de G . Exemple 1

0

1 2

3

4 5 6

(24)

Introduction vertex cover tsp Conclusions

Le probl` eme vertex cover

vertex cover

Entr´ ee : un graphe (non orient´ e, non pond´ er´ e) G = (V , E ) ; Sortie : un sous-ensemble U ⊆ V tel que :

1 ∀ {u, v } ∈ E : |{u, v } ∩ U | ≥ 1 ;

2 |U| est minimum ;

Autrement dit : U couvre toutes les arˆ etes de G .

Exemple 1

0

1 2

3

4 5 6

24

(25)

Introduction vertex cover tsp Conclusions

Le probl` eme vertex cover

vertex cover

Entr´ ee : un graphe (non orient´ e, non pond´ er´ e) G = (V , E ) ; Sortie : un sous-ensemble U ⊆ V tel que :

1 ∀ {u, v } ∈ E : |{u, v } ∩ U | ≥ 1 ;

2 |U| est minimum ;

Autrement dit : U couvre toutes les arˆ etes de G . Exemple 1

0

1 2

3

4 5 6

(26)

Introduction vertex cover tsp Conclusions

Le probl` eme vertex cover

vertex cover

Entr´ ee : un graphe (non orient´ e, non pond´ er´ e) G = (V , E ) ; Sortie : un sous-ensemble U ⊆ V tel que :

1 ∀ {u, v } ∈ E : |{u, v } ∩ U | ≥ 1 ;

2 |U| est minimum ;

Autrement dit : U couvre toutes les arˆ etes de G . Exemple 1

0

1 2

3

4 5 6

26

(27)

Introduction vertex cover tsp Conclusions

vertex cover

Le probl` eme vertex cover n’a pas l’air m´ echant ; mais :

• il est NP-complet ⇒ l’existence d’un algorithme polynomial est tr` es peu probable ;

• mˆ eme si G est cubique, ou planaire de degr´ e maximum 3 ;

• la meilleure approximation a un taux de 2 ;

• il est tr` es peu probable qu’on puisse faire mieux que 2 ;

• on sait qu’on ne peut pas faire mieux que √

2 ≈ 1.4142 . . . ;

• le meilleur algorithme param´ etr´ e est en O (1.2738 k + kn) (k =

taille de la solution) ;

(28)

Introduction vertex cover tsp Conclusions

vertex cover

Le probl` eme vertex cover n’a pas l’air m´ echant ; mais :

• il est NP-complet ⇒ l’existence d’un algorithme polynomial est tr` es peu probable ;

• mˆ eme si G est cubique, ou planaire de degr´ e maximum 3 ;

• la meilleure approximation a un taux de 2 ;

• il est tr` es peu probable qu’on puisse faire mieux que 2 ;

• on sait qu’on ne peut pas faire mieux que √

2 ≈ 1.4142 . . . ;

• le meilleur algorithme param´ etr´ e est en O (1.2738 k + kn) (k = taille de la solution) ;

28

(29)

Introduction vertex cover tsp Conclusions

vertex cover

Le probl` eme vertex cover n’a pas l’air m´ echant ; mais :

• il est NP-complet ⇒ l’existence d’un algorithme polynomial est tr` es peu probable ;

• mˆ eme si G est cubique, ou planaire de degr´ e maximum 3 ;

• la meilleure approximation a un taux de 2 ;

• il est tr` es peu probable qu’on puisse faire mieux que 2 ;

• on sait qu’on ne peut pas faire mieux que √

2 ≈ 1.4142 . . . ;

• le meilleur algorithme param´ etr´ e est en O (1.2738 k + kn) (k =

taille de la solution) ;

(30)

Introduction vertex cover tsp Conclusions

vertex cover

Le probl` eme vertex cover n’a pas l’air m´ echant ; mais :

• il est NP-complet ⇒ l’existence d’un algorithme polynomial est tr` es peu probable ;

• mˆ eme si G est cubique, ou planaire de degr´ e maximum 3 ;

• la meilleure approximation a un taux de 2 ;

• il est tr` es peu probable qu’on puisse faire mieux que 2 ;

• on sait qu’on ne peut pas faire mieux que √

2 ≈ 1.4142 . . . ;

• le meilleur algorithme param´ etr´ e est en O (1.2738 k + kn) (k = taille de la solution) ;

30

(31)

Introduction vertex cover tsp Conclusions

vertex cover

Le probl` eme vertex cover n’a pas l’air m´ echant ; mais :

• il est NP-complet ⇒ l’existence d’un algorithme polynomial est tr` es peu probable ;

• mˆ eme si G est cubique, ou planaire de degr´ e maximum 3 ;

• la meilleure approximation a un taux de 2 ;

• il est tr` es peu probable qu’on puisse faire mieux que 2 ;

• on sait qu’on ne peut pas faire mieux que √

2 ≈ 1.4142 . . . ;

• le meilleur algorithme param´ etr´ e est en O (1.2738 k + kn) (k =

taille de la solution) ;

(32)

Introduction vertex cover tsp Conclusions

vertex cover

Le probl` eme vertex cover n’a pas l’air m´ echant ; mais :

• il est NP-complet ⇒ l’existence d’un algorithme polynomial est tr` es peu probable ;

• mˆ eme si G est cubique, ou planaire de degr´ e maximum 3 ;

• la meilleure approximation a un taux de 2 ;

• il est tr` es peu probable qu’on puisse faire mieux que 2 ;

• on sait qu’on ne peut pas faire mieux que √

2 ≈ 1.4142 . . . ;

• le meilleur algorithme param´ etr´ e est en O (1.2738 k + kn) (k = taille de la solution) ;

32

(33)

Introduction vertex cover tsp Conclusions

vertex cover

Le probl` eme vertex cover n’a pas l’air m´ echant ; mais :

• il est NP-complet ⇒ l’existence d’un algorithme polynomial est tr` es peu probable ;

• mˆ eme si G est cubique, ou planaire de degr´ e maximum 3 ;

• la meilleure approximation a un taux de 2 ;

• il est tr` es peu probable qu’on puisse faire mieux que 2 ;

• on sait qu’on ne peut pas faire mieux que √

2 ≈ 1.4142 . . . ;

• le meilleur algorithme param´ etr´ e est en O (1.2738 k + kn) (k =

taille de la solution) ;

(34)

Introduction vertex cover tsp Conclusions

Recherche exhaustive

• La recherche exhaustive porte bien son nom : pour r´ esoudre le probl` eme donn´ e, on passe en revue toutes les options

possibles ;

• Le temps de calcul est bien souvent prohibitif ;

• Le branch and bound s’appuie sur ce principe, mais “en mieux” ;

• Illustrons son principe sur notre exemple :

0

1 2

3

4 5 6

34

(35)

Introduction vertex cover tsp Conclusions

Recherche exhaustive

• La recherche exhaustive porte bien son nom : pour r´ esoudre le probl` eme donn´ e, on passe en revue toutes les options

possibles ;

• Le temps de calcul est bien souvent prohibitif ;

• Le branch and bound s’appuie sur ce principe, mais “en mieux” ;

• Illustrons son principe sur notre exemple :

0

1 2

3

4 5 6

(36)

Introduction vertex cover tsp Conclusions

Recherche exhaustive

• La recherche exhaustive porte bien son nom : pour r´ esoudre le probl` eme donn´ e, on passe en revue toutes les options

possibles ;

• Le temps de calcul est bien souvent prohibitif ;

• Le branch and bound s’appuie sur ce principe, mais “en mieux” ;

• Illustrons son principe sur notre exemple :

0

1 2

3

4 5 6

36

(37)

Introduction vertex cover tsp Conclusions

Recherche exhaustive

• La recherche exhaustive porte bien son nom : pour r´ esoudre le probl` eme donn´ e, on passe en revue toutes les options

possibles ;

• Le temps de calcul est bien souvent prohibitif ;

• Le branch and bound s’appuie sur ce principe, mais “en mieux” ;

• Illustrons son principe sur notre exemple :

0

1 2

3

4 5 6

(38)

Introduction vertex cover tsp Conclusions

Recherche exhaustive pour vertex cover

• Ecrivons un algorithme r´ ´ ecursif pour r´ esoudre vertex cover ; quels sont les cas de base ?

• s’il n’y a pas d’arˆ ete, il n’y a rien ` a couvrir ⇒ renvoyer ∅ ;

• Que faire dans le cas g´ en´ eral ?

• chaque sommet peut a priori faire partie de la solution ;

• donc, pour chaque sommet v :

• on construit la solution partielle {v } ;

• on cherche une solution optimale S 0 pour le graphe r´ esiduel G 0 = G \ {v } ;

• et on retient {v } ∪ S 0 si sa taille est inf´ erieure ` a ce qu’on connaˆıt d´ ej` a ;

38

(39)

Introduction vertex cover tsp Conclusions

Recherche exhaustive pour vertex cover

• Ecrivons un algorithme r´ ´ ecursif pour r´ esoudre vertex cover ; quels sont les cas de base ?

• s’il n’y a pas d’arˆ ete, il n’y a rien ` a couvrir ⇒ renvoyer ∅ ;

• Que faire dans le cas g´ en´ eral ?

• chaque sommet peut a priori faire partie de la solution ;

• donc, pour chaque sommet v :

• on construit la solution partielle {v } ;

• on cherche une solution optimale S 0 pour le graphe r´ esiduel G 0 = G \ {v } ;

• et on retient {v } ∪ S 0 si sa taille est inf´ erieure ` a ce qu’on

connaˆıt d´ ej` a ;

(40)

Introduction vertex cover tsp Conclusions

Recherche exhaustive pour vertex cover

• Ecrivons un algorithme r´ ´ ecursif pour r´ esoudre vertex cover ; quels sont les cas de base ?

• s’il n’y a pas d’arˆ ete, il n’y a rien ` a couvrir ⇒ renvoyer ∅ ;

• Que faire dans le cas g´ en´ eral ?

• chaque sommet peut a priori faire partie de la solution ;

• donc, pour chaque sommet v :

• on construit la solution partielle {v} ;

• on cherche une solution optimale S 0 pour le graphe r´ esiduel G 0 = G \ {v } ;

• et on retient {v } ∪ S 0 si sa taille est inf´ erieure ` a ce qu’on connaˆıt d´ ej` a ;

40

(41)

Introduction vertex cover tsp Conclusions

Recherche exhaustive pour vertex cover

• Ecrivons un algorithme r´ ´ ecursif pour r´ esoudre vertex cover ; quels sont les cas de base ?

• s’il n’y a pas d’arˆ ete, il n’y a rien ` a couvrir ⇒ renvoyer ∅ ;

• Que faire dans le cas g´ en´ eral ?

• chaque sommet peut a priori faire partie de la solution ;

• donc, pour chaque sommet v :

• on construit la solution partielle {v} ;

• on cherche une solution optimale S 0 pour le graphe r´ esiduel G 0 = G \ {v } ;

• et on retient {v } ∪ S 0 si sa taille est inf´ erieure ` a ce qu’on

connaˆıt d´ ej` a ;

(42)

Introduction vertex cover tsp Conclusions

Recherche exhaustive pour vertex cover

• Ecrivons un algorithme r´ ´ ecursif pour r´ esoudre vertex cover ; quels sont les cas de base ?

• s’il n’y a pas d’arˆ ete, il n’y a rien ` a couvrir ⇒ renvoyer ∅ ;

• Que faire dans le cas g´ en´ eral ?

• chaque sommet peut a priori faire partie de la solution ;

• donc, pour chaque sommet v :

• on construit la solution partielle {v} ;

• on cherche une solution optimale S 0 pour le graphe r´ esiduel G 0 = G \ {v } ;

• et on retient {v } ∪ S 0 si sa taille est inf´ erieure ` a ce qu’on connaˆıt d´ ej` a ;

42

(43)

Introduction vertex cover tsp Conclusions

Recherche exhaustive pour vertex cover

• Ecrivons un algorithme r´ ´ ecursif pour r´ esoudre vertex cover ; quels sont les cas de base ?

• s’il n’y a pas d’arˆ ete, il n’y a rien ` a couvrir ⇒ renvoyer ∅ ;

• Que faire dans le cas g´ en´ eral ?

• chaque sommet peut a priori faire partie de la solution ;

• donc, pour chaque sommet v :

• on construit la solution partielle {v} ;

• on cherche une solution optimale S 0 pour le graphe r´ esiduel G 0 = G \ {v } ;

• et on retient {v } ∪ S 0 si sa taille est inf´ erieure ` a ce qu’on

connaˆıt d´ ej` a ;

(44)

Introduction vertex cover tsp Conclusions

Recherche exhaustive pour vertex cover

• Ecrivons un algorithme r´ ´ ecursif pour r´ esoudre vertex cover ; quels sont les cas de base ?

• s’il n’y a pas d’arˆ ete, il n’y a rien ` a couvrir ⇒ renvoyer ∅ ;

• Que faire dans le cas g´ en´ eral ?

• chaque sommet peut a priori faire partie de la solution ;

• donc, pour chaque sommet v :

• on construit la solution partielle {v} ;

• on cherche une solution optimale S 0 pour le graphe r´ esiduel G 0 = G \ {v } ;

• et on retient {v } ∪ S 0 si sa taille est inf´ erieure ` a ce qu’on connaˆıt d´ ej` a ;

44

(45)

Introduction vertex cover tsp Conclusions

Recherche exhaustive pour vertex cover

• Ecrivons un algorithme r´ ´ ecursif pour r´ esoudre vertex cover ; quels sont les cas de base ?

• s’il n’y a pas d’arˆ ete, il n’y a rien ` a couvrir ⇒ renvoyer ∅ ;

• Que faire dans le cas g´ en´ eral ?

• chaque sommet peut a priori faire partie de la solution ;

• donc, pour chaque sommet v :

• on construit la solution partielle {v} ;

• on cherche une solution optimale S 0 pour le graphe r´ esiduel G 0 = G \ {v } ;

• et on retient {v } ∪ S 0 si sa taille est inf´ erieure ` a ce qu’on

connaˆıt d´ ej` a ;

(46)

Introduction vertex cover tsp Conclusions

Sch´ ema de la recherche exhaustive

0

1 2

3

4 5 6

0

1 2

3

4 5 6

0

1 2

3

4 5 6

0

1 2

3

4 5 6

0

1 2

3

4 5 6

0

1 2

3

4 5 6

0

1 2

3

4 5 6

0

1 2

3

4 5 6

0

1 2

3

4 5 6

0

1 2

3

4 5 6

0

1 2

3

4 5 6

0

1 2

3

4 5 6

0

1 2

3

4 5 6

0

1 2

3

4 5 6

0

1 2

3

4 5 6

0

1 2

3

4 5 6

0

1 2

3

4 5 6

.. .

46

(47)

Introduction vertex cover tsp Conclusions

Recherche exhaustive pour vertex cover

En pseudocode, cela donne :

Algorithme 1 : VCExhaustif (G )

Entr´ ees : un graphe G .

Sortie : un “vertex cover” de taille minimum pour G .

1 si G .nombre arˆ etes() = 0 alors renvoyer ∅;

2 S ← G.sommets();

3 pour chaque v ∈ G .sommets() faire

4 S 0 ← {v} ∪ VCExhaustif (G \ {v });

5 si |S 0 | < |S| alors S ← S 0 ;

6 renvoyer S;

Complexit´ e :

cet algorithme passe en revue toutes les permutations de V , donc on a du O (|V |!).

On peut faire mieux en g´ en´ erant tous les sous-ensembles de toutes les tailles ; mais ¸ ca donne quand mˆ eme du P n

k=1

n

k = O(2 n ).

(48)

Introduction vertex cover tsp Conclusions

Recherche exhaustive pour vertex cover

En pseudocode, cela donne :

Algorithme 1 : VCExhaustif (G )

Entr´ ees : un graphe G .

Sortie : un “vertex cover” de taille minimum pour G .

1 si G .nombre arˆ etes() = 0 alors renvoyer ∅;

2 S ← G.sommets();

3 pour chaque v ∈ G .sommets() faire

4 S 0 ← {v} ∪ VCExhaustif (G \ {v });

5 si |S 0 | < |S| alors S ← S 0 ;

6 renvoyer S;

Complexit´ e : cet algorithme passe en revue toutes les permutations de V , donc on a du O (|V |!).

On peut faire mieux en g´ en´ erant tous les sous-ensembles de toutes les tailles ; mais ¸ ca donne quand mˆ eme du P n

k=1

n

k = O(2 n ).

48

(49)

Introduction vertex cover tsp Conclusions

Recherche exhaustive pour vertex cover

En pseudocode, cela donne :

Algorithme 1 : VCExhaustif (G )

Entr´ ees : un graphe G .

Sortie : un “vertex cover” de taille minimum pour G .

1 si G .nombre arˆ etes() = 0 alors renvoyer ∅;

2 S ← G.sommets();

3 pour chaque v ∈ G .sommets() faire

4 S 0 ← {v} ∪ VCExhaustif (G \ {v });

5 si |S 0 | < |S| alors S ← S 0 ;

6 renvoyer S;

Complexit´ e : cet algorithme passe en revue toutes les permutations de V , donc on a du O (|V |!).

On peut faire mieux en g´ en´ erant tous les sous-ensembles de toutes les tailles ;

(50)

Introduction vertex cover tsp Conclusions

Borner la taille d’une solution optimale

• Dans tous les probl` emes d’optimisation, il est important de pouvoir borner la taille d’une solution ;

• Si OPT (·) d´ esigne la taille d’une solution optimale, alors :

1 une minoration est une fonction m telle que pour toute instance I , on a m(I ) ≤ OPT (I ) ;

2 une majoration est une fonction M telle que pour toute instance I , on a M (I ) ≥ OPT (I ) ;

• Id´ ealement, on veut que m(·) renvoie la plus grande valeur possible, et que M(·) renvoie la plus petite valeur possible ;

50

(51)

Introduction vertex cover tsp Conclusions

Borner la taille d’une solution optimale

• Dans tous les probl` emes d’optimisation, il est important de pouvoir borner la taille d’une solution ;

• Si OPT (·) d´ esigne la taille d’une solution optimale, alors :

1 une minoration est une fonction m telle que pour toute instance I , on a m(I ) ≤ OPT (I ) ;

2 une majoration est une fonction M telle que pour toute instance I , on a M (I ) ≥ OPT (I ) ;

• Id´ ealement, on veut que m(·) renvoie la plus grande valeur

possible, et que M(·) renvoie la plus petite valeur possible ;

(52)

Introduction vertex cover tsp Conclusions

Borner la taille d’une solution optimale

• Dans tous les probl` emes d’optimisation, il est important de pouvoir borner la taille d’une solution ;

• Si OPT (·) d´ esigne la taille d’une solution optimale, alors :

1 une minoration est une fonction m telle que pour toute instance I , on a m(I ) ≤ OPT (I ) ;

2 une majoration est une fonction M telle que pour toute instance I , on a M (I ) ≥ OPT (I ) ;

• Id´ ealement, on veut que m(·) renvoie la plus grande valeur possible, et que M(·) renvoie la plus petite valeur possible ;

52

(53)

Introduction vertex cover tsp Conclusions

Borner la taille d’une solution optimale

• Dans tous les probl` emes d’optimisation, il est important de pouvoir borner la taille d’une solution ;

• Si OPT (·) d´ esigne la taille d’une solution optimale, alors :

1 une minoration est une fonction m telle que pour toute instance I , on a m(I ) ≤ OPT (I ) ;

2 une majoration est une fonction M telle que pour toute instance I , on a M(I ) ≥ OPT (I ) ;

• Id´ ealement, on veut que m(·) renvoie la plus grande valeur

possible, et que M(·) renvoie la plus petite valeur possible ;

(54)

Introduction vertex cover tsp Conclusions

Borner la taille d’une solution optimale

• Dans tous les probl` emes d’optimisation, il est important de pouvoir borner la taille d’une solution ;

• Si OPT (·) d´ esigne la taille d’une solution optimale, alors :

1 une minoration est une fonction m telle que pour toute instance I , on a m(I ) ≤ OPT (I ) ;

2 une majoration est une fonction M telle que pour toute instance I , on a M(I ) ≥ OPT (I ) ;

• Id´ ealement, on veut que m(·) renvoie la plus grande valeur possible, et que M(·) renvoie la plus petite valeur possible ;

54

(55)

Introduction vertex cover tsp Conclusions

Limiter l’espace de recherche

• Si m(I ) = M (I ), alors on connaˆıt OPT (I ) ;

• Mais mˆ eme en cas d’in´ egalit´ e, ces quantit´ es nous permettent de r´ eduire l’espace de recherche ;

• Pour une instance I de vertex cover , on n’examine “que” les sous-ensembles de V de taille m(I), m(I) + 1, . . . , M (I ) ;

• Il reste ` a trouver des bornes satisfaisantes ;

• Dans le cas de vertex cover , les couplages qu’on d´ ej` a vus

vont nous aider ;

(56)

Introduction vertex cover tsp Conclusions

Limiter l’espace de recherche

• Si m(I ) = M (I ), alors on connaˆıt OPT (I ) ;

• Mais mˆ eme en cas d’in´ egalit´ e, ces quantit´ es nous permettent de r´ eduire l’espace de recherche ;

• Pour une instance I de vertex cover , on n’examine “que” les sous-ensembles de V de taille m(I), m(I) + 1, . . . , M (I ) ;

• Il reste ` a trouver des bornes satisfaisantes ;

• Dans le cas de vertex cover , les couplages qu’on d´ ej` a vus vont nous aider ;

56

(57)

Introduction vertex cover tsp Conclusions

Limiter l’espace de recherche

• Si m(I ) = M (I ), alors on connaˆıt OPT (I ) ;

• Mais mˆ eme en cas d’in´ egalit´ e, ces quantit´ es nous permettent de r´ eduire l’espace de recherche ;

• Pour une instance I de vertex cover, on n’examine “que”

les sous-ensembles de V de taille m(I), m(I) + 1, . . . , M (I ) ;

• Il reste ` a trouver des bornes satisfaisantes ;

• Dans le cas de vertex cover , les couplages qu’on d´ ej` a vus

vont nous aider ;

(58)

Introduction vertex cover tsp Conclusions

Limiter l’espace de recherche

• Si m(I ) = M (I ), alors on connaˆıt OPT (I ) ;

• Mais mˆ eme en cas d’in´ egalit´ e, ces quantit´ es nous permettent de r´ eduire l’espace de recherche ;

• Pour une instance I de vertex cover, on n’examine “que”

les sous-ensembles de V de taille m(I), m(I) + 1, . . . , M (I ) ;

• Il reste ` a trouver des bornes satisfaisantes ;

• Dans le cas de vertex cover , les couplages qu’on d´ ej` a vus vont nous aider ;

58

(59)

Introduction vertex cover tsp Conclusions

Limiter l’espace de recherche

• Si m(I ) = M (I ), alors on connaˆıt OPT (I ) ;

• Mais mˆ eme en cas d’in´ egalit´ e, ces quantit´ es nous permettent de r´ eduire l’espace de recherche ;

• Pour une instance I de vertex cover, on n’examine “que”

les sous-ensembles de V de taille m(I), m(I) + 1, . . . , M (I ) ;

• Il reste ` a trouver des bornes satisfaisantes ;

• Dans le cas de vertex cover , les couplages qu’on d´ ej` a vus

vont nous aider ;

(60)

Introduction vertex cover tsp Conclusions

Le rˆ ole des couplages

Rappel (cf. cours sur les flots) : un couplage dans un graphe G = (V , E) est un ensemble F ⊆ E d’arˆ etes deux ` a deux disjointes ; il est :

1 maximal si on ne peut pas lui rajouter d’arˆ etes,

2 maximum s’il n’existe aucun autre couplage poss´ edant plus d’arˆ etes.

Lemme 1

Les sommets couverts par un couplage maximal M forment une solution valide pour vertex cover .

D´ emonstration.

Si M est maximal, on ne peut par d´ efinition pas lui rajouter d’arˆ ete ; donc chaque arˆ ete poss` ede une extr´ emit´ e dans M, et s´ electionner tous les sommets de M permet de couvrir toutes les arˆ etes du graphe.

⇒ pour toute solution S de vertex cover , on a |S| ≤ 2|M|

.

60

(61)

Introduction vertex cover tsp Conclusions

Le rˆ ole des couplages

Rappel (cf. cours sur les flots) : un couplage dans un graphe G = (V , E) est un ensemble F ⊆ E d’arˆ etes deux ` a deux disjointes ; il est :

1 maximal si on ne peut pas lui rajouter d’arˆ etes,

2 maximum s’il n’existe aucun autre couplage poss´ edant plus d’arˆ etes.

Lemme 1

Les sommets couverts par un couplage maximal M forment une solution valide pour vertex cover .

D´ emonstration.

Si M est maximal, on ne peut par d´ efinition pas lui rajouter d’arˆ ete ; donc chaque arˆ ete poss` ede une extr´ emit´ e dans M, et s´ electionner tous les sommets de M permet de couvrir toutes les arˆ etes du graphe.

⇒ pour toute solution S de vertex cover , on a |S| ≤ 2|M|

(62)

Introduction vertex cover tsp Conclusions

Le rˆ ole des couplages

Rappel (cf. cours sur les flots) : un couplage dans un graphe G = (V , E) est un ensemble F ⊆ E d’arˆ etes deux ` a deux disjointes ; il est :

1 maximal si on ne peut pas lui rajouter d’arˆ etes,

2 maximum s’il n’existe aucun autre couplage poss´ edant plus d’arˆ etes.

Lemme 1

Les sommets couverts par un couplage maximal M forment une solution valide pour vertex cover .

D´ emonstration.

Si M est maximal, on ne peut par d´ efinition pas lui rajouter d’arˆ ete ; donc chaque arˆ ete poss` ede une extr´ emit´ e dans M, et s´ electionner tous les sommets de M permet de couvrir toutes les arˆ etes du graphe.

⇒ pour toute solution S de vertex cover , on a |S| ≤ 2|M|

.

62

(63)

Introduction vertex cover tsp Conclusions

Le rˆ ole des couplages

Rappel (cf. cours sur les flots) : un couplage dans un graphe G = (V , E) est un ensemble F ⊆ E d’arˆ etes deux ` a deux disjointes ; il est :

1 maximal si on ne peut pas lui rajouter d’arˆ etes,

2 maximum s’il n’existe aucun autre couplage poss´ edant plus d’arˆ etes.

Lemme 1

Les sommets couverts par un couplage maximal M forment une solution valide pour vertex cover .

D´ emonstration.

Si M est maximal, on ne peut par d´ efinition pas lui rajouter d’arˆ ete ; donc

chaque arˆ ete poss` ede une extr´ emit´ e dans M, et s´ electionner tous les sommets

de M permet de couvrir toutes les arˆ etes du graphe.

(64)

Introduction vertex cover tsp Conclusions

Le rˆ ole des couplages

Lemme 2

Soit S une solution pour vertex cover , et M un couplage maximal ; alors

|S| ≥ |M |.

D´ emonstration.

Si M est un couplage maximal, ses sommets couvrent toutes les arˆ etes du graphe. On est donc oblig´ e de s´ electionner au moins une extr´ emit´ e de chaque

´ el´ ement de M pour couvrir toutes les arˆ etes.

⇒ pour toute solution S de vertex cover , on a |S| ≥ |M|. Donc :

• mˆ eme la recherche exhaustive peut se limiter aux sous-ensembles de taille

|M|, |M| + 1, . . . , 2|M |.

• la recherche d’un couplage maximal nous donne une 2-approximation pour vertex cover , puisque |M | ≤ |S| ≤ 2|M| pour toute solution S.

64

(65)

Introduction vertex cover tsp Conclusions

Le rˆ ole des couplages

Lemme 2

Soit S une solution pour vertex cover , et M un couplage maximal ; alors

|S| ≥ |M |.

D´ emonstration.

Si M est un couplage maximal, ses sommets couvrent toutes les arˆ etes du graphe. On est donc oblig´ e de s´ electionner au moins une extr´ emit´ e de chaque

´ el´ ement de M pour couvrir toutes les arˆ etes.

⇒ pour toute solution S de vertex cover , on a |S| ≥ |M|. Donc :

• mˆ eme la recherche exhaustive peut se limiter aux sous-ensembles de taille

|M|, |M| + 1, . . . , 2|M |.

• la recherche d’un couplage maximal nous donne une 2-approximation

pour vertex cover , puisque |M | ≤ |S| ≤ 2|M| pour toute solution S.

(66)

Introduction vertex cover tsp Conclusions

Le rˆ ole des couplages

Lemme 2

Soit S une solution pour vertex cover , et M un couplage maximal ; alors

|S| ≥ |M |.

D´ emonstration.

Si M est un couplage maximal, ses sommets couvrent toutes les arˆ etes du graphe. On est donc oblig´ e de s´ electionner au moins une extr´ emit´ e de chaque

´ el´ ement de M pour couvrir toutes les arˆ etes.

⇒ pour toute solution S de vertex cover , on a |S| ≥ |M|. Donc :

• mˆ eme la recherche exhaustive peut se limiter aux sous-ensembles de taille

|M|, |M| + 1, . . . , 2|M |.

• la recherche d’un couplage maximal nous donne une 2-approximation pour vertex cover , puisque |M | ≤ |S| ≤ 2|M| pour toute solution S.

66

(67)

Introduction vertex cover tsp Conclusions

Le rˆ ole des couplages

Lemme 2

Soit S une solution pour vertex cover , et M un couplage maximal ; alors

|S| ≥ |M |.

D´ emonstration.

Si M est un couplage maximal, ses sommets couvrent toutes les arˆ etes du graphe. On est donc oblig´ e de s´ electionner au moins une extr´ emit´ e de chaque

´ el´ ement de M pour couvrir toutes les arˆ etes.

⇒ pour toute solution S de vertex cover , on a |S| ≥ |M|. Donc :

• mˆ eme la recherche exhaustive peut se limiter aux sous-ensembles de taille

|M|, |M| + 1, . . . , 2|M |.

• la recherche d’un couplage maximal nous donne une 2-approximation

pour vertex cover , puisque |M | ≤ |S| ≤ 2|M| pour toute solution S.

(68)

Introduction vertex cover tsp Conclusions

Le rˆ ole des couplages

Lemme 2

Soit S une solution pour vertex cover , et M un couplage maximal ; alors

|S| ≥ |M |.

D´ emonstration.

Si M est un couplage maximal, ses sommets couvrent toutes les arˆ etes du graphe. On est donc oblig´ e de s´ electionner au moins une extr´ emit´ e de chaque

´ el´ ement de M pour couvrir toutes les arˆ etes.

⇒ pour toute solution S de vertex cover , on a |S| ≥ |M|. Donc :

• mˆ eme la recherche exhaustive peut se limiter aux sous-ensembles de taille

|M|, |M| + 1, . . . , 2|M |.

• la recherche d’un couplage maximal nous donne une 2-approximation pour vertex cover , puisque |M| ≤ |S| ≤ 2|M| pour toute solution S.

68

(69)

Introduction vertex cover tsp Conclusions

Couplages et vertex cover

Reprenons comme exemple le graphe d´ ej` a vu : Exemple 2

0

1 2

3

4 5 6

• Les extr´ emit´ es du couplage nous donnent la solution {0, 1, 2, 3, 4, 6} ;

• On doit en prendre au moins la moiti´ e, donc on examinera les

sous-ensembles de taille 3, 4, 5, 6 ;

(70)

Introduction vertex cover tsp Conclusions

Couplages et vertex cover

Reprenons comme exemple le graphe d´ ej` a vu : Exemple 2

0

1 2

3

4 5 6

• Les extr´ emit´ es du couplage nous donnent la solution {0, 1, 2, 3, 4, 6} ;

• On doit en prendre au moins la moiti´ e, donc on examinera les sous-ensembles de taille 3, 4, 5, 6 ;

70

(71)

Introduction vertex cover tsp Conclusions

Couplages et vertex cover

Reprenons comme exemple le graphe d´ ej` a vu : Exemple 2

0

1 2

3

4 5 6

• Les extr´ emit´ es du couplage nous donnent la solution {0, 1, 2, 3, 4, 6} ;

• On doit en prendre au moins la moiti´ e, donc on examinera les

sous-ensembles de taille 3, 4, 5, 6 ;

(72)

Introduction vertex cover tsp Conclusions

Couplages et vertex cover

Reprenons comme exemple le graphe d´ ej` a vu : Exemple 2

0

1 2

3

4 5 6

• Les extr´ emit´ es du couplage nous donnent la solution {0, 1, 2, 3, 4, 6} ;

• On doit en prendre au moins la moiti´ e, donc on examinera les sous-ensembles de taille 3, 4, 5, 6 ;

72

(73)

Introduction vertex cover tsp Conclusions

Comment trouver un couplage maximal ?

• On peut trouver un couplage maximum en O(|E | p

|V |) [4] ;

• Mais nous pouvons nous contenter d’un couplage maximal, que l’on peut obtenir comme suit :

1 on d´ emarre avec un couplage M vide ;

2 tant que E n’est pas vide : extraire une arˆ ete {u, v } que l’on rajoute ` a M, et supprimer u et v ;

• Complexit´ e : O(|E |) ;

(74)

Introduction vertex cover tsp Conclusions

Comment trouver un couplage maximal ?

• On peut trouver un couplage maximum en O(|E | p

|V |) [4] ;

• Mais nous pouvons nous contenter d’un couplage maximal, que l’on peut obtenir comme suit :

1 on d´ emarre avec un couplage M vide ;

2 tant que E n’est pas vide : extraire une arˆ ete {u, v } que l’on rajoute ` a M, et supprimer u et v ;

• Complexit´ e : O(|E |) ;

74

(75)

Introduction vertex cover tsp Conclusions

Comment trouver un couplage maximal ?

• On peut trouver un couplage maximum en O(|E | p

|V |) [4] ;

• Mais nous pouvons nous contenter d’un couplage maximal, que l’on peut obtenir comme suit :

1 on d´ emarre avec un couplage M vide ;

2 tant que E n’est pas vide : extraire une arˆ ete {u, v } que l’on rajoute ` a M, et supprimer u et v ;

• Complexit´ e : O(|E |) ;

(76)

Introduction vertex cover tsp Conclusions

Comment trouver un couplage maximal ?

• On peut trouver un couplage maximum en O(|E | p

|V |) [4] ;

• Mais nous pouvons nous contenter d’un couplage maximal, que l’on peut obtenir comme suit :

1 on d´ emarre avec un couplage M vide ;

2 tant que E n’est pas vide : extraire une arˆ ete {u, v } que l’on rajoute ` a M, et supprimer u et v ;

• Complexit´ e : O(|E |) ;

76

(77)

Introduction vertex cover tsp Conclusions

Comment trouver un couplage maximal ?

• On peut trouver un couplage maximum en O(|E | p

|V |) [4] ;

• Mais nous pouvons nous contenter d’un couplage maximal, que l’on peut obtenir comme suit :

1 on d´ emarre avec un couplage M vide ;

2 tant que E n’est pas vide : extraire une arˆ ete {u, v } que l’on rajoute ` a M, et supprimer u et v ;

• Complexit´ e : O(|E |) ;

(78)

Introduction vertex cover tsp Conclusions

Principe du branch and bound

• Le branch and bound suit le sch´ ema de la recherche exhaustive, mais en s’arrˆ etant de mani` ere anticip´ ee ;

• La minoration nous permet d’´ eviter l’exploration des solutions non prometteuses ;

• La majoration nous permet de d´ emarrer avec une meilleure solution que l’approche na¨ıve (de taille |V | pour vertex cover ) ;

• Et si la taille d’une solution S atteint la minoration, on sait qu’elle est optimale et on arrˆ ete les recherches ;

78

(79)

Introduction vertex cover tsp Conclusions

Principe du branch and bound

• Le branch and bound suit le sch´ ema de la recherche exhaustive, mais en s’arrˆ etant de mani` ere anticip´ ee ;

• La minoration nous permet d’´ eviter l’exploration des solutions non prometteuses ;

• La majoration nous permet de d´ emarrer avec une meilleure solution que l’approche na¨ıve (de taille |V | pour vertex cover ) ;

• Et si la taille d’une solution S atteint la minoration, on sait

qu’elle est optimale et on arrˆ ete les recherches ;

(80)

Introduction vertex cover tsp Conclusions

Principe du branch and bound

• Le branch and bound suit le sch´ ema de la recherche exhaustive, mais en s’arrˆ etant de mani` ere anticip´ ee ;

• La minoration nous permet d’´ eviter l’exploration des solutions non prometteuses ;

• La majoration nous permet de d´ emarrer avec une meilleure solution que l’approche na¨ıve (de taille |V | pour vertex cover ) ;

• Et si la taille d’une solution S atteint la minoration, on sait qu’elle est optimale et on arrˆ ete les recherches ;

80

(81)

Introduction vertex cover tsp Conclusions

Principe du branch and bound

• Le branch and bound suit le sch´ ema de la recherche exhaustive, mais en s’arrˆ etant de mani` ere anticip´ ee ;

• La minoration nous permet d’´ eviter l’exploration des solutions non prometteuses ;

• La majoration nous permet de d´ emarrer avec une meilleure solution que l’approche na¨ıve (de taille |V | pour vertex cover ) ;

• Et si la taille d’une solution S atteint la minoration, on sait

qu’elle est optimale et on arrˆ ete les recherches ;

(82)

Introduction vertex cover tsp Conclusions

Rˆ ole de la minoration

• La minoration nous permet d’´ eliminer certains candidats non prometteurs ;

• Le raisonnement est le suivant (pour un probl` eme de minimisation) :

• ` a chaque ´ etape de l’algorithme, on a une solution S pour l’instance I ;

• on construit une nouvelle solution partielle T , et il nous reste donc ` a r´ esoudre un sous-probl` eme sur l’instance I 0 ;

• on n’examine I 0 que si |T | + m(I 0 ) < |S | ;

82

(83)

Introduction vertex cover tsp Conclusions

Rˆ ole de la minoration

• La minoration nous permet d’´ eliminer certains candidats non prometteurs ;

• Le raisonnement est le suivant (pour un probl` eme de minimisation) :

• ` a chaque ´ etape de l’algorithme, on a une solution S pour l’instance I ;

• on construit une nouvelle solution partielle T , et il nous reste donc ` a r´ esoudre un sous-probl` eme sur l’instance I 0 ;

• on n’examine I 0 que si |T | + m(I 0 ) < |S | ;

(84)

Introduction vertex cover tsp Conclusions

Rˆ ole de la minoration

• La minoration nous permet d’´ eliminer certains candidats non prometteurs ;

• Le raisonnement est le suivant (pour un probl` eme de minimisation) :

• ` a chaque ´ etape de l’algorithme, on a une solution S pour l’instance I ;

• on construit une nouvelle solution partielle T , et il nous reste donc ` a r´ esoudre un sous-probl` eme sur l’instance I 0 ;

• on n’examine I 0 que si |T | + m(I 0 ) < |S | ;

84

(85)

Introduction vertex cover tsp Conclusions

Rˆ ole de la minoration

• La minoration nous permet d’´ eliminer certains candidats non prometteurs ;

• Le raisonnement est le suivant (pour un probl` eme de minimisation) :

• ` a chaque ´ etape de l’algorithme, on a une solution S pour l’instance I ;

• on construit une nouvelle solution partielle T , et il nous reste donc ` a r´ esoudre un sous-probl` eme sur l’instance I 0 ;

• on n’examine I 0 que si |T | + m(I 0 ) < |S | ;

(86)

Introduction vertex cover tsp Conclusions

Rˆ ole de la minoration

• La minoration nous permet d’´ eliminer certains candidats non prometteurs ;

• Le raisonnement est le suivant (pour un probl` eme de minimisation) :

• ` a chaque ´ etape de l’algorithme, on a une solution S pour l’instance I ;

• on construit une nouvelle solution partielle T , et il nous reste donc ` a r´ esoudre un sous-probl` eme sur l’instance I 0 ;

• on n’examine I 0 que si |T | + m(I 0 ) < |S | ;

86

(87)

Introduction vertex cover tsp Conclusions

Rˆ ole de la minoration pour vertex cover

Dans le cas de vertex cover ;

• on a une solution candidate S donn´ ee par les extr´ emit´ es du couplage maximal M ;

• on examine tous les sous-ensembles T ⊆ V de taille |M| ;

• on construit la nouvelle instance G 0 = G \ T , et l’on calcule un couplage maximal M 0 sur G 0 ;

• on n’examine G 0 que si |T | + |M 0 | < |S| ;

(88)

Introduction vertex cover tsp Conclusions

Rˆ ole de la minoration pour vertex cover

Dans le cas de vertex cover ;

• on a une solution candidate S donn´ ee par les extr´ emit´ es du couplage maximal M ;

• on examine tous les sous-ensembles T ⊆ V de taille |M| ;

• on construit la nouvelle instance G 0 = G \ T , et l’on calcule un couplage maximal M 0 sur G 0 ;

• on n’examine G 0 que si |T | + |M 0 | < |S| ;

88

(89)

Introduction vertex cover tsp Conclusions

Rˆ ole de la minoration pour vertex cover

Dans le cas de vertex cover ;

• on a une solution candidate S donn´ ee par les extr´ emit´ es du couplage maximal M ;

• on examine tous les sous-ensembles T ⊆ V de taille |M| ;

• on construit la nouvelle instance G 0 = G \ T , et l’on calcule un couplage maximal M 0 sur G 0 ;

• on n’examine G 0 que si |T | + |M 0 | < |S| ;

(90)

Introduction vertex cover tsp Conclusions

Rˆ ole de la minoration pour vertex cover

Dans le cas de vertex cover ;

• on a une solution candidate S donn´ ee par les extr´ emit´ es du couplage maximal M ;

• on examine tous les sous-ensembles T ⊆ V de taille |M| ;

• on construit la nouvelle instance G 0 = G \ T , et l’on calcule un couplage maximal M 0 sur G 0 ;

• on n’examine G 0 que si |T | + |M 0 | < |S| ;

90

(91)

Introduction vertex cover tsp Conclusions

Branch and bound pour vertex cover

En pseudocode, cela donne :

Algorithme 2 : VCBranchAndBound (G )

Entr´ ees : un graphe G .

Sortie : un “vertex cover” de taille minimum pour G .

1 si G .nombre arˆ etes() = 0 alors renvoyer ∅;

2 M ← couplage maximal pour G ;

3 S ← les sommets de M;

4 minoration ← |M|;

5 pour chaque sous-ensemble T de taille |M| de G .sommets() faire

6 si |S| = minoration alors renvoyer S;

7 G 0 ← G \ T ;

8 M 0 ← couplage maximal pour G 0 ;

9 si |T | + |M 0 | < |S| alors // solution prometteuse

10 S 0 ← T ∪ VCBranchAndBound (G 0 );

11 si |S 0 | < |S| alors S ← S 0 ;

(92)

Introduction vertex cover tsp Conclusions

voyageur de commerce

Prenons comme exemple le probl` eme suivant :

traveling salesperson ( voyageur de commerce ) Entr´ ee : un graphe non orient´ e pond´ er´ e G = (V , E , w ) ; Sortie : un chemin P tel que :

1 P est hamiltonien : on passe par chaque sommet exactement une fois ;

2 P est de poids minimum ;

(variantes : trouver un cycle plutˆ ot qu’un chemin ; utiliser un graphe orient´ e ; . . .)

92

(93)

Introduction vertex cover tsp Conclusions

voyageur de commerce

Prenons comme exemple le probl` eme suivant :

traveling salesperson ( voyageur de commerce ) Entr´ ee : un graphe non orient´ e pond´ er´ e G = (V , E , w ) ; Sortie : un chemin P tel que :

1 P est hamiltonien : on passe par chaque sommet exactement une fois ;

2 P est de poids minimum ;

(variantes : trouver un cycle plutˆ ot qu’un chemin ; utiliser un

graphe orient´ e ; . . .)

(94)

Introduction vertex cover tsp Conclusions

voyageur de commerce

Prenons comme exemple le probl` eme suivant :

traveling salesperson ( voyageur de commerce ) Entr´ ee : un graphe non orient´ e pond´ er´ e G = (V , E , w ) ; Sortie : un chemin P tel que :

1 P est hamiltonien : on passe par chaque sommet exactement une fois ;

2 P est de poids minimum ;

(variantes : trouver un cycle plutˆ ot qu’un chemin ; utiliser un graphe orient´ e ; . . .)

94

(95)

Introduction vertex cover tsp Conclusions

voyageur de commerce

Prenons comme exemple le probl` eme suivant :

traveling salesperson ( voyageur de commerce ) Entr´ ee : un graphe non orient´ e pond´ er´ e G = (V , E , w ) ; Sortie : un chemin P tel que :

1 P est hamiltonien : on passe par chaque sommet exactement une fois ;

2 P est de poids minimum ;

(variantes : trouver un cycle plutˆ ot qu’un chemin ; utiliser un

graphe orient´ e ; . . .)

(96)

Introduction vertex cover tsp Conclusions

tsp

Le probl` eme tsp n’a pas l’air m´ echant ; mais :

• il est NP-complet ⇒ l’existence d’un algorithme polynomial est tr` es peu probable ;

• mˆ eme dans la version “euclidienne” (les poids correspondent ` a des distances) ;

• il n’est pas approximable, sauf dans le cas euclidien :

• il existe une 3/2-approximation [1] ;

• on ne peut pas faire mieux que 123/122 ≈ 1.008 . . . [2] ;

96

(97)

Introduction vertex cover tsp Conclusions

tsp

Le probl` eme tsp n’a pas l’air m´ echant ; mais :

• il est NP-complet ⇒ l’existence d’un algorithme polynomial est tr` es peu probable ;

• mˆ eme dans la version “euclidienne” (les poids correspondent ` a des distances) ;

• il n’est pas approximable, sauf dans le cas euclidien :

• il existe une 3/2-approximation [1] ;

• on ne peut pas faire mieux que 123/122 ≈ 1.008 . . . [2] ;

(98)

Introduction vertex cover tsp Conclusions

tsp

Le probl` eme tsp n’a pas l’air m´ echant ; mais :

• il est NP-complet ⇒ l’existence d’un algorithme polynomial est tr` es peu probable ;

• mˆ eme dans la version “euclidienne” (les poids correspondent ` a des distances) ;

• il n’est pas approximable, sauf dans le cas euclidien :

• il existe une 3/2-approximation [1] ;

• on ne peut pas faire mieux que 123/122 ≈ 1.008 . . . [2] ;

98

(99)

Introduction vertex cover tsp Conclusions

tsp

Le probl` eme tsp n’a pas l’air m´ echant ; mais :

• il est NP-complet ⇒ l’existence d’un algorithme polynomial est tr` es peu probable ;

• mˆ eme dans la version “euclidienne” (les poids correspondent ` a des distances) ;

• il n’est pas approximable, sauf dans le cas euclidien :

• il existe une 3/2-approximation [1] ;

• on ne peut pas faire mieux que 123/122 ≈ 1.008 . . . [2] ;

(100)

Introduction vertex cover tsp Conclusions

tsp

Le probl` eme tsp n’a pas l’air m´ echant ; mais :

• il est NP-complet ⇒ l’existence d’un algorithme polynomial est tr` es peu probable ;

• mˆ eme dans la version “euclidienne” (les poids correspondent ` a des distances) ;

• il n’est pas approximable, sauf dans le cas euclidien :

• il existe une 3/2-approximation [1] ;

• on ne peut pas faire mieux que 123/122 ≈ 1.008 . . . [2] ;

100

(101)

Introduction vertex cover tsp Conclusions

tsp

Le probl` eme tsp n’a pas l’air m´ echant ; mais :

• il est NP-complet ⇒ l’existence d’un algorithme polynomial est tr` es peu probable ;

• mˆ eme dans la version “euclidienne” (les poids correspondent ` a des distances) ;

• il n’est pas approximable, sauf dans le cas euclidien :

• il existe une 3/2-approximation [1] ;

• on ne peut pas faire mieux que 123/122 ≈ 1.008 . . . [2] ;

Références

Documents relatifs

L’arbre couvrant que calcule Prim est de poids minimum Procédons par induction sur |V T |, en montrant qu’à chaque étape, il existe un ACPM Topt contenant T... Plus

les parcours largeur, profondeur et les arbres associés ; le calcul des composantes connexes ; la détection de cycle ; la reconnaissance des graphes bipartis ;... Correction

• L’algorithme de Bellman-Ford recherche également des raccourcis entre les sommets ; • Le fonctionnement est différent de celui de Dijkstra, qui cherchait des chemins

Introduction Les bases La m´ ethode de Ford-Fulkerson Coupes minimum Complexit´ e de l’algorithme

• Dans le cas o` u le graphe n’est pas biparti, le probl` eme reste soluble en temps polynomial mais l’algorithme est beaucoup plus complexe [2] ;. • Et si l’on veut des

3 combiner : combiner les solutions des sous-probl` emes pour obtenir la solution au probl` eme de d´ epart. • L’efficacit´ e de cette approche d´ epend fortement des complexit´ es

Introduction Principes Probl` eme de d´ ecoupe Distance d’´ edition Reconstruction des solutions optimales.. R´ esum´ e des ´ episodes pr´

Introduction Preuve du th´ eor` eme max-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti.. R´ esum´ e des ´ episodes pr´