147
Algorithmes faiblement exponentiels Vangelis Th. Paschos JFRO 20 novembre 2012 Vangelis Th. Paschos Algorithmes faiblement exponentiels 1 / 61

Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes faiblement exponentiels

Vangelis Th. Paschos

JFRO20 novembre 2012

Vangelis Th. Paschos Algorithmes faiblement exponentiels 1 / 61

Page 2: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

1 La problématique

2 Programmation dynamique

3 Inclusion-exclusion

4 Algorithmes de branchementDescription généraleRègles de réductionMémoïsationBranchements multiplesMesurer pour conquérir

5 Trier et chercher

6 Recherche locale itérative

7 Quelques questions pour la fin

Vangelis Th. Paschos Algorithmes faiblement exponentiels 2 / 61

Page 3: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

La problématique

1 La problématique

2 Programmation dynamique

3 Inclusion-exclusion

4 Algorithmes de branchementDescription généraleRègles de réductionMémoïsationBranchements multiplesMesurer pour conquérir

5 Trier et chercher

6 Recherche locale itérative

7 Quelques questions pour la fin

Vangelis Th. Paschos Algorithmes faiblement exponentiels 3 / 61

Page 4: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

La problématique

Résoudre à l’optimum un problème NP-difficile

Les méthodes les plus populaires (et les plus anciennes) :

Enumération exhaustive

Méthodes polyédrales

Branch & . . .

Programmation dynamique

Vangelis Th. Paschos Algorithmes faiblement exponentiels 4 / 61

Page 5: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

La problématique

Quelques questions

Vangelis Th. Paschos Algorithmes faiblement exponentiels 5 / 61

Page 6: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

La problématique

Quelques questions

Quelle est la complexité de l’énumération exhaustive pour leproblème du STABLE, du TSP, de la COLORATION, du SAC-A-DOS,de l’ENSEMBLE DOMINANT D’ARÊTES, des problèmes desuppression d’arêtes, . . . ?

Vangelis Th. Paschos Algorithmes faiblement exponentiels 5 / 61

Page 7: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

La problématique

Quelques questions

Quelle est la complexité de l’énumération exhaustive pour leproblème du STABLE, du TSP, de la COLORATION, du SAC-A-DOS,de l’ENSEMBLE DOMINANT D’ARÊTES, des problèmes desuppression d’arêtes, . . . ?

D’un branch & bound pour la COUVERTURE ?

Vangelis Th. Paschos Algorithmes faiblement exponentiels 5 / 61

Page 8: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

La problématique

Quelques questions

Quelle est la complexité de l’énumération exhaustive pour leproblème du STABLE, du TSP, de la COLORATION, du SAC-A-DOS,de l’ENSEMBLE DOMINANT D’ARÊTES, des problèmes desuppression d’arêtes, . . . ?

D’un branch & bound pour la COUVERTURE ?

D’une méthode polyédrale pour l’arbre de Steiner ?

Vangelis Th. Paschos Algorithmes faiblement exponentiels 5 / 61

Page 9: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

La problématique

Quelques questions

Quelle est la complexité de l’énumération exhaustive pour leproblème du STABLE, du TSP, de la COLORATION, du SAC-A-DOS,de l’ENSEMBLE DOMINANT D’ARÊTES, des problèmes desuppression d’arêtes, . . . ?

D’un branch & bound pour la COUVERTURE ?

D’une méthode polyédrale pour l’arbre de Steiner ?

Comment maîtriser l’explosion combinatoire de ces méthodes?

Vangelis Th. Paschos Algorithmes faiblement exponentiels 5 / 61

Page 10: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

La problématique

Quelques questions

Quelle est la complexité de l’énumération exhaustive pour leproblème du STABLE, du TSP, de la COLORATION, du SAC-A-DOS,de l’ENSEMBLE DOMINANT D’ARÊTES, des problèmes desuppression d’arêtes, . . . ?

D’un branch & bound pour la COUVERTURE ?

D’une méthode polyédrale pour l’arbre de Steiner ?

Comment maîtriser l’explosion combinatoire de ces méthodes?

Comment la quantifier le plus précisément possible ?

Vangelis Th. Paschos Algorithmes faiblement exponentiels 5 / 61

Page 11: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

La problématique

Et une réponse

Deux paradigmes principaux :

Vangelis Th. Paschos Algorithmes faiblement exponentiels 6 / 61

Page 12: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

La problématique

Et une réponse

Deux paradigmes principaux :

Algorithmes (exacts ; pour les approchés il faut attendre cetaprès-midi) modérément exponentiels

Vangelis Th. Paschos Algorithmes faiblement exponentiels 6 / 61

Page 13: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

La problématique

Et une réponse

Deux paradigmes principaux :

Algorithmes (exacts ; pour les approchés il faut attendre cetaprès-midi) modérément exponentiels

Algorithmes paramétrés (pour cela il faut attendre à peu près uneheure)

Vangelis Th. Paschos Algorithmes faiblement exponentiels 6 / 61

Page 14: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

La problématique

Et une réponse

Deux paradigmes principaux :

Algorithmes (exacts ; pour les approchés il faut attendre cetaprès-midi) modérément exponentiels

Algorithmes paramétrés (pour cela il faut attendre à peu près uneheure)

On verra quelques techniques majeures de l’algorithmiquemodérément exponentielle

Vangelis Th. Paschos Algorithmes faiblement exponentiels 6 / 61

Page 15: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

La problématique

Rappels rapides et notations (en vrac)

O∗(·) : ignore les termes polynomiaux dans les expressions decomplexitéDans un graphe G(V ,E) : n = |V | et m = |E |

Ressources principales dans les algorithmes exacts :

temps

espace

La récurrence T (n) =∑

i6p T (n − ci) vérifie T (n) = O∗(cn) où c est laplus grande solution positive de l’équation :

i6p

x−ci = 1

Vangelis Th. Paschos Algorithmes faiblement exponentiels 7 / 61

Page 16: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Programmation dynamique

1 La problématique

2 Programmation dynamique

3 Inclusion-exclusion

4 Algorithmes de branchementDescription généraleRègles de réductionMémoïsationBranchements multiplesMesurer pour conquérir

5 Trier et chercher

6 Recherche locale itérative

7 Quelques questions pour la fin

Vangelis Th. Paschos Algorithmes faiblement exponentiels 8 / 61

Page 17: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Programmation dynamique

L’idée de base et le principe de BELLMAN

C’est une des plus vieilles techniques pour produire des algorithmesexacts plus efficaces que l’énumération exhaustive

Vangelis Th. Paschos Algorithmes faiblement exponentiels 9 / 61

Page 18: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Programmation dynamique

L’idée de base et le principe de BELLMAN

C’est une des plus vieilles techniques pour produire des algorithmesexacts plus efficaces que l’énumération exhaustive

Décomposer le problème en des sous-problèmes plus petits, garderen mémoire les solutions optimales de tous ces sous-problèmes et . . .

Vangelis Th. Paschos Algorithmes faiblement exponentiels 9 / 61

Page 19: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Programmation dynamique

L’idée de base et le principe de BELLMAN

C’est une des plus vieilles techniques pour produire des algorithmesexacts plus efficaces que l’énumération exhaustive

Décomposer le problème en des sous-problèmes plus petits, garderen mémoire les solutions optimales de tous ces sous-problèmes et . . .

BELLMAN, 1949Composer une solution optimale du problème en combinant les

solutions (optimales) de ses sous-problèmes

Vangelis Th. Paschos Algorithmes faiblement exponentiels 9 / 61

Page 20: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Programmation dynamique

TSP (1)

Chercher un chemin hamiltonien de poids minimum entre lesommet 1 (arbitrairement fixé) et tout i 6= 1 et rajouter l’arête (i ,1)afin d’obtenir un cycle

Retenir le plus « léger » parmi les n − 1 cycles ainsi produits

∀U ⊂ V , ∀i ∈ U (i 6= 1)P(U, i) : le chemin hamiltonien le plus « léger » entre 1 et i dans U

Vangelis Th. Paschos Algorithmes faiblement exponentiels 10 / 61

Page 21: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Programmation dynamique

TSP (2)

La récurrence (HELD & KARP, 1962)∃j ∈ U tel que j est l’avant dernier sommet dans P(U, i)

Par conséquent, calculer P(U, i) revient à calculer P(U \ {i}, j),∀j ∈ U \ {i}, i.e. :

P(U, i) = minj∈Uj 6=1,i

{P(U \ {i}, j) + w(j , i)}

Vangelis Th. Paschos Algorithmes faiblement exponentiels 11 / 61

Page 22: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Programmation dynamique

TSP (2)

La récurrence (HELD & KARP, 1962)∃j ∈ U tel que j est l’avant dernier sommet dans P(U, i)

Par conséquent, calculer P(U, i) revient à calculer P(U \ {i}, j),∀j ∈ U \ {i}, i.e. :

P(U, i) = minj∈Uj 6=1,i

{P(U \ {i}, j) + w(j , i)}

Calculer P(U, i) revient à examiner tous les possibles U ⊆ V

Vangelis Th. Paschos Algorithmes faiblement exponentiels 11 / 61

Page 23: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Programmation dynamique

TSP (2)

La récurrence (HELD & KARP, 1962)∃j ∈ U tel que j est l’avant dernier sommet dans P(U, i)

Par conséquent, calculer P(U, i) revient à calculer P(U \ {i}, j),∀j ∈ U \ {i}, i.e. :

P(U, i) = minj∈Uj 6=1,i

{P(U \ {i}, j) + w(j , i)}

Calculer P(U, i) revient à examiner tous les possibles U ⊆ V

On a donc une complexité O∗(2n)

Vangelis Th. Paschos Algorithmes faiblement exponentiels 11 / 61

Page 24: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Inclusion-exclusion

1 La problématique

2 Programmation dynamique

3 Inclusion-exclusion

4 Algorithmes de branchementDescription généraleRègles de réductionMémoïsationBranchements multiplesMesurer pour conquérir

5 Trier et chercher

6 Recherche locale itérative

7 Quelques questions pour la fin

Vangelis Th. Paschos Algorithmes faiblement exponentiels 12 / 61

Page 25: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Inclusion-exclusion

Le principe d’inclusion-exclusion

Une méthode très récente basée non pas sur la structure desinstances mais plutôt sur une analyse combinatoire des propriétés dela solution

Idée de baseReformuler la solution d’un problème comme expression d’une fonctionproprement algébrique et tenter de calculer celle-ci rapidement

Elle a été appliqué surtout à des problèmes de graphes

Vangelis Th. Paschos Algorithmes faiblement exponentiels 13 / 61

Page 26: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Inclusion-exclusion

COLORATION

Vangelis Th. Paschos Algorithmes faiblement exponentiels 14 / 61

Page 27: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Inclusion-exclusion

COLORATION

Soit V , I deux ensembles et (Vi)i∈I une famille de sous-ensemblesde V :

i∈I

Vi

=∑

i∈I

|Vi |−∑

i 6=j∈I

|Vi ∩ Vj | + . . . + (−1)|I|+1

i∈I

Vi

C’est la formule de l’union d’ensemblesPar passage au complémentaire :

i∈I

(V \ Vi)

=

i∈I

Vi

=∑

X⊂I

(−1)|X |

i∈X

Vi

Vangelis Th. Paschos Algorithmes faiblement exponentiels 14 / 61

Page 28: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Inclusion-exclusion

Appliquons-la à la COLORATION

V : l’ensemble des sommets du graphe G (instance de COLORATION)F : la famille des stables de G

Vi ⊂ Fk : l’ensemble des familles de k stables dont la réunion necouvre pas le sommet i (on permet à une famille de compter plusieursfois le même stable)Alors :

Vi : l’ensemble des k-unions de stables qui couvrent i⋂n

i=1 Vi : l’ensemble des k-unions de stables qui couvrent V⋂

i∈V Vi 6= ∅, i.e.,∣

i∈V Vi

∣ > 0⇐⇒ il existe au moins une famillede k stables qui couvre V , une k-coloration

Vangelis Th. Paschos Algorithmes faiblement exponentiels 15 / 61

Page 29: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Inclusion-exclusion

Comment calculer⋂n

i=1 Vi ?

Vangelis Th. Paschos Algorithmes faiblement exponentiels 16 / 61

Page 30: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Inclusion-exclusion

Comment calculer⋂n

i=1 Vi ?

Rappelons-nous que∣

i∈V Vi

∣ =∑

X⊂V (−1)|X |∣

i∈X Vi

Poser f (X ) = (−1)|X |∣

i∈X Vi

Vangelis Th. Paschos Algorithmes faiblement exponentiels 16 / 61

Page 31: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Inclusion-exclusion

Comment calculer⋂n

i=1 Vi ?

Rappelons-nous que∣

i∈V Vi

∣ =∑

X⊂V (−1)|X |∣

i∈X Vi

Poser f (X ) = (−1)|X |∣

i∈X Vi

COLORATION revient à calculer∑

X⊆V f (X )

Vangelis Th. Paschos Algorithmes faiblement exponentiels 16 / 61

Page 32: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Inclusion-exclusion

Comment calculer⋂n

i=1 Vi ?

Rappelons-nous que∣

i∈V Vi

∣ =∑

X⊂V (−1)|X |∣

i∈X Vi

Poser f (X ) = (−1)|X |∣

i∈X Vi

COLORATION revient à calculer∑

X⊆V f (X )

Une famille des stables appartient à Vi ⇐⇒ i n’appartient à aucunde ses stables

Par conséquent, elle appartient à⋂

i∈X Vi ⇐⇒ chacun de sesstables est totalement disjoint de X

Vangelis Th. Paschos Algorithmes faiblement exponentiels 16 / 61

Page 33: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Inclusion-exclusion

Suite du calcul

Cette propriété est vérifiable indépendamment pour chaque stable :

i∈X

Vi

= |S ∈ F ,S ∩ X = ∅|k

f (X ) = (−1)|X |

i∈X

Vi

= (−1)|X | |S ∈ F ,S ∩ X = ∅|k

Vangelis Th. Paschos Algorithmes faiblement exponentiels 17 / 61

Page 34: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Inclusion-exclusion

COLORATION et espace polynomial

Vangelis Th. Paschos Algorithmes faiblement exponentiels 18 / 61

Page 35: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Inclusion-exclusion

COLORATION et espace polynomial

Calculer f (X ) indépendamment ∀X

Vangelis Th. Paschos Algorithmes faiblement exponentiels 18 / 61

Page 36: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Inclusion-exclusion

COLORATION et espace polynomial

Calculer f (X ) indépendamment ∀X

|S ∈ F ,S ∩ X = ∅| est le nombre de stables dans legraphe G[V \ X ]

Vangelis Th. Paschos Algorithmes faiblement exponentiels 18 / 61

Page 37: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Inclusion-exclusion

COLORATION et espace polynomial

Calculer f (X ) indépendamment ∀X

|S ∈ F ,S ∩ X = ∅| est le nombre de stables dans legraphe G[V \ X ]

Il peut être calculé (ainsi que f (X )) en O∗(2|V\X |) (et espace

polynomial)

Vangelis Th. Paschos Algorithmes faiblement exponentiels 18 / 61

Page 38: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Inclusion-exclusion

COLORATION et espace polynomial

Calculer f (X ) indépendamment ∀X

|S ∈ F ,S ∩ X = ∅| est le nombre de stables dans legraphe G[V \ X ]

Il peut être calculé (ainsi que f (X )) en O∗(2|V\X |) (et espace

polynomial)

X⊆V

f (X ) = O∗

X⊆V

2|V\X |

= O∗

(

n∑

i=0

(

n

i

)

2n−i

)

= O∗ (3n)

Il peut être amélioré

Vangelis Th. Paschos Algorithmes faiblement exponentiels 18 / 61

Page 39: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Inclusion-exclusion

COLORATION et espace exponentiel

Vangelis Th. Paschos Algorithmes faiblement exponentiels 19 / 61

Page 40: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Inclusion-exclusion

COLORATION et espace exponentiel

IdéeCalculer simultanément f (X ) par programmation dynamique

Vangelis Th. Paschos Algorithmes faiblement exponentiels 19 / 61

Page 41: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Inclusion-exclusion

COLORATION et espace exponentiel

IdéeCalculer simultanément f (X ) par programmation dynamique

Soit Y ⊆ V et i ∈ Y

Un stable S ∈ Y soit contient i (et pas ses voisins Γ(i)), soit necontient pas i :

|S ∈ F ,S ⊆ Y | = |S ∈ F ,S ⊆ Y \ {Γ [i ]}| + |S ∈ F ,S ⊆ Y \ {i}|

Vangelis Th. Paschos Algorithmes faiblement exponentiels 19 / 61

Page 42: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Inclusion-exclusion

COLORATION et espace exponentiel

IdéeCalculer simultanément f (X ) par programmation dynamique

Soit Y ⊆ V et i ∈ Y

Un stable S ∈ Y soit contient i (et pas ses voisins Γ(i)), soit necontient pas i :

|S ∈ F ,S ⊆ Y | = |S ∈ F ,S ⊆ Y \ {Γ [i ]}| + |S ∈ F ,S ⊆ Y \ {i}|

Cette formule calcule |S ∈ F ,S ⊆ Y | (considérant |Y| en ordrecroissant) en temps et espace O∗(2n)

Poser X = V \ Y et calculer f (X )

Vangelis Th. Paschos Algorithmes faiblement exponentiels 19 / 61

Page 43: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement

1 La problématique

2 Programmation dynamique

3 Inclusion-exclusion

4 Algorithmes de branchementDescription généraleRègles de réductionMémoïsationBranchements multiplesMesurer pour conquérir

5 Trier et chercher

6 Recherche locale itérative

7 Quelques questions pour la fin

Vangelis Th. Paschos Algorithmes faiblement exponentiels 20 / 61

Page 44: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Description générale

1 La problématique

2 Programmation dynamique

3 Inclusion-exclusion

4 Algorithmes de branchementDescription généraleRègles de réductionMémoïsationBranchements multiplesMesurer pour conquérir

5 Trier et chercher

6 Recherche locale itérative

7 Quelques questions pour la fin

Vangelis Th. Paschos Algorithmes faiblement exponentiels 21 / 61

Page 45: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Description générale

Le principe

Réduire récursivement l’instance en des sous-instances (plus petites)jusqu’à ce que l’instance survivante soit résoluble en temps polynomial

Vangelis Th. Paschos Algorithmes faiblement exponentiels 22 / 61

Page 46: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Description générale

Le principe

Réduire récursivement l’instance en des sous-instances (plus petites)jusqu’à ce que l’instance survivante soit résoluble en temps polynomial

Espace polynomial

Peu de branches =⇒ complexité réduite

Mais . . . le même sous-problème peut être traité plusieurs fois

Vangelis Th. Paschos Algorithmes faiblement exponentiels 22 / 61

Page 47: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Description générale

STABLE

1 Etant donné un sommet i , soit il fait partie d’un stable maximumet Γ(i) n’en fait pas partie, soit i lui-même n’en fait pas partie

2 Dans un graphe de degré maximum ∆ 6 2 (collection des cycleset des chemins) STABLE est résoluble en temps polynomial

Vangelis Th. Paschos Algorithmes faiblement exponentiels 23 / 61

Page 48: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Description générale

STABLE

1 Etant donné un sommet i , soit il fait partie d’un stable maximumet Γ(i) n’en fait pas partie, soit i lui-même n’en fait pas partie

2 Dans un graphe de degré maximum ∆ 6 2 (collection des cycleset des chemins) STABLE est résoluble en temps polynomial

1 :⇐⇒ T (n) 6 T (n − (∆+ 1)) + T (n − 1)2 :⇐⇒ ∆ > 3

Vangelis Th. Paschos Algorithmes faiblement exponentiels 23 / 61

Page 49: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Description générale

STABLE

1 Etant donné un sommet i , soit il fait partie d’un stable maximumet Γ(i) n’en fait pas partie, soit i lui-même n’en fait pas partie

2 Dans un graphe de degré maximum ∆ 6 2 (collection des cycleset des chemins) STABLE est résoluble en temps polynomial

1 :⇐⇒ T (n) 6 T (n − (∆+ 1)) + T (n − 1)2 :⇐⇒ ∆ > 3

T (n) 6 T (n − 1) + T (n − 4)⇐⇒ T (n) = O∗ (1,385n)

Vangelis Th. Paschos Algorithmes faiblement exponentiels 23 / 61

Page 50: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Règles de réduction

1 La problématique

2 Programmation dynamique

3 Inclusion-exclusion

4 Algorithmes de branchementDescription généraleRègles de réductionMémoïsationBranchements multiplesMesurer pour conquérir

5 Trier et chercher

6 Recherche locale itérative

7 Quelques questions pour la fin

Vangelis Th. Paschos Algorithmes faiblement exponentiels 24 / 61

Page 51: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Règles de réduction

Règles de réduction

Configurations particulières où on peut réduire davantage l’instance entemps polynomial

Vangelis Th. Paschos Algorithmes faiblement exponentiels 25 / 61

Page 52: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Règles de réduction

Règles de réduction

Configurations particulières où on peut réduire davantage l’instance entemps polynomial

En prenant A, alors B, C et D

sont retirés

On ajoute H (isolé) et E (dedegré 1)

F est retiré, G et I rajoutés

A

B C D

E

F

G H

I

Si on a cela pour chaque branchement : T (n) 6 T (n − 9) + T (n − 1)

Vangelis Th. Paschos Algorithmes faiblement exponentiels 25 / 61

Page 53: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Mémoïsation

1 La problématique

2 Programmation dynamique

3 Inclusion-exclusion

4 Algorithmes de branchementDescription généraleRègles de réductionMémoïsationBranchements multiplesMesurer pour conquérir

5 Trier et chercher

6 Recherche locale itérative

7 Quelques questions pour la fin

Vangelis Th. Paschos Algorithmes faiblement exponentiels 26 / 61

Page 54: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Mémoïsation

Troquer de l’espace pour du temps

Vangelis Th. Paschos Algorithmes faiblement exponentiels 27 / 61

Page 55: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Mémoïsation

Troquer de l’espace pour du temps

La solution d’un même sous-problème peut être recalculée plusieursfois

Vangelis Th. Paschos Algorithmes faiblement exponentiels 27 / 61

Page 56: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Mémoïsation

Troquer de l’espace pour du temps

La solution d’un même sous-problème peut être recalculée plusieursfoisLe remède : mixer branchement et programmation dynamique

Vangelis Th. Paschos Algorithmes faiblement exponentiels 27 / 61

Page 57: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Mémoïsation

Troquer de l’espace pour du temps

La solution d’un même sous-problème peut être recalculée plusieursfoisLe remède : mixer branchement et programmation dynamique

Résoudre tous les sous-problèmes d’une certaine taille k etstocker leurs solutions (dans un tableau) (temps T (n, k))

Brancher jusqu’à ce que la taille du problème devienne inférieureou égale à k (temps T (n − k))

Compléter par la solution optimale du sous-problème stockéedans le tableau

Vangelis Th. Paschos Algorithmes faiblement exponentiels 27 / 61

Page 58: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Mémoïsation

Troquer de l’espace pour du temps

La solution d’un même sous-problème peut être recalculée plusieursfoisLe remède : mixer branchement et programmation dynamique

Résoudre tous les sous-problèmes d’une certaine taille k etstocker leurs solutions (dans un tableau) (temps T (n, k))

Brancher jusqu’à ce que la taille du problème devienne inférieureou égale à k (temps T (n − k))

Compléter par la solution optimale du sous-problème stockéedans le tableau

Temps T (n) 6 T (n, k) + T (n − k)

Vangelis Th. Paschos Algorithmes faiblement exponentiels 27 / 61

Page 59: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Mémoïsation

MIN STABLE MAXIMAL

Vangelis Th. Paschos Algorithmes faiblement exponentiels 28 / 61

Page 60: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Mémoïsation

MIN STABLE MAXIMAL

Chaque sommet v sera dominé soit par lui-même, soit par un de sesvoisins :

opt(G) = minui∈Γ [v ]

{opt (G [V \ Γ [ui ]])}

Ce qui donne, en branchant sur un sommet de degré minimum δ :

T (n) 6 (δ+ 1)T (n − (δ+ 1))δ > 2=⇒

T (n) = O∗(

3n/3)

En mémoïsant avec k = n/10 :

T (n, k) = O∗(

(

nn/10

)

)

= O∗ (1,39n)

T (n − k) = T (9n/10) = O∗(

33n/10)

= O∗ (1,40n)

Vangelis Th. Paschos Algorithmes faiblement exponentiels 28 / 61

Page 61: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Branchements multiples

1 La problématique

2 Programmation dynamique

3 Inclusion-exclusion

4 Algorithmes de branchementDescription généraleRègles de réductionMémoïsationBranchements multiplesMesurer pour conquérir

5 Trier et chercher

6 Recherche locale itérative

7 Quelques questions pour la fin

Vangelis Th. Paschos Algorithmes faiblement exponentiels 29 / 61

Page 62: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Branchements multiples

Reculer pour mieux sauter

Plusieurs fois, lorsqu’un certain « mauvais » branchement esteffectué, l’instance qui en résulte possède certaines propriétés quiassurent une série de meilleurs branchements dans la phasesuivante

Cela améliore le temps de calcul mais, très souvent, au prix d’unsurcoût dans l’analyse (qui peut devenir une analyse fatidique descas et peu élégante)

Vangelis Th. Paschos Algorithmes faiblement exponentiels 30 / 61

Page 63: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Branchements multiples

Un schéma de branchement multiple

n

n-4

A

n-1

non A

n-5

B

n-6

non B

Quand A est éliminé, l’instance estpeu réduiteMais le nouveau graphe (branchede droite) possède une propriétéqui autorise un second meilleurbranchement :T (n − 4) + T (n − 5) + T (n − 6)

Vangelis Th. Paschos Algorithmes faiblement exponentiels 31 / 61

Page 64: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Branchements multiples

STABLE dans les graphes avec ∆ = 3

Vangelis Th. Paschos Algorithmes faiblement exponentiels 32 / 61

Page 65: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Branchements multiples

STABLE dans les graphes avec ∆ = 3

Pliage d’un sommet (Vertex folding)

Vangelis Th. Paschos Algorithmes faiblement exponentiels 32 / 61

Page 66: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Branchements multiples

STABLE dans les graphes avec ∆ = 3

Pliage d’un sommet (Vertex folding)

Soit u : Γ(u) = {x , y} et x , y non-adjacents

Vangelis Th. Paschos Algorithmes faiblement exponentiels 32 / 61

Page 67: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Branchements multiples

STABLE dans les graphes avec ∆ = 3

Pliage d’un sommet (Vertex folding)

Soit u : Γ(u) = {x , y} et x , y non-adjacents

Dans un stable maximum on peut supposer que soit on prend u,soit on prend x et y

Vangelis Th. Paschos Algorithmes faiblement exponentiels 32 / 61

Page 68: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Branchements multiples

STABLE dans les graphes avec ∆ = 3

Pliage d’un sommet (Vertex folding)

Soit u : Γ(u) = {x , y} et x , y non-adjacents

Dans un stable maximum on peut supposer que soit on prend u,soit on prend x et y

On peut plier u, i.e., l’enlever et contracter x et y en un seulsommet w avec Γ(w) = Γ(x) ∪ Γ(y)

Vangelis Th. Paschos Algorithmes faiblement exponentiels 32 / 61

Page 69: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Branchements multiples

STABLE dans les graphes avec ∆ = 3

Pliage d’un sommet (Vertex folding)

Soit u : Γ(u) = {x , y} et x , y non-adjacents

Dans un stable maximum on peut supposer que soit on prend u,soit on prend x et y

On peut plier u, i.e., l’enlever et contracter x et y en un seulsommet w avec Γ(w) = Γ(x) ∪ Γ(y)

Par conséquent, même dans un graphe avec ∆ = 3 on peut créer des« sommets » de degré > 4

Vangelis Th. Paschos Algorithmes faiblement exponentiels 32 / 61

Page 70: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Branchements multiples

Un exemple de pliage

Figure 16.7. After having deleted the gray vertex , we can discard a vertex of

a degree 2 and merge its neighbors into a supervertex of a degree 4

Après avoir supprimé le sommet gris, nous pouvons plier le sommet leplus à gauche pour créer un « super-sommet » de degré 4

Vangelis Th. Paschos Algorithmes faiblement exponentiels 33 / 61

Page 71: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Branchements multiples

Brancher sur un sommet de degré au moins 4

Changeons la mesure : p = m − n (p 6 n/2, si ∆ = 3)

Vangelis Th. Paschos Algorithmes faiblement exponentiels 34 / 61

Page 72: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Branchements multiples

Brancher sur un sommet de degré au moins 4

Changeons la mesure : p = m − n (p 6 n/2, si ∆ = 3)

Branchons sur un sommet de degré maximum (soit > 4) :

Vangelis Th. Paschos Algorithmes faiblement exponentiels 34 / 61

Page 73: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Branchements multiples

Brancher sur un sommet de degré au moins 4

Changeons la mesure : p = m − n (p 6 n/2, si ∆ = 3)

Branchons sur un sommet de degré maximum (soit > 4) :

Si on ne le prend pas :

Vangelis Th. Paschos Algorithmes faiblement exponentiels 34 / 61

Page 74: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Branchements multiples

Brancher sur un sommet de degré au moins 4

Changeons la mesure : p = m − n (p 6 n/2, si ∆ = 3)

Branchons sur un sommet de degré maximum (soit > 4) :

Si on ne le prend pas :

n← n − 1

m ← m − 4

p ← p − 3

Vangelis Th. Paschos Algorithmes faiblement exponentiels 34 / 61

Page 75: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Branchements multiples

Brancher sur un sommet de degré au moins 4 (suite)

Si on le prend, en appliquant une règle de réduction on aura au piredes cas (croyez moi sur parole) :

n← n − 5

m← m − 10

p ← p − 5

T (p) 6 T (p − 3) + T (p − 5) =⇒ T (p) 6 O∗(1,194p)

Vangelis Th. Paschos Algorithmes faiblement exponentiels 35 / 61

Page 76: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Branchements multiples

Brancher sur un sommet de degré au moins 4 (suite)

Si on le prend, en appliquant une règle de réduction on aura au piredes cas (croyez moi sur parole) :

n← n − 5

m← m − 10

p ← p − 5

T (p) 6 T (p − 3) + T (p − 5) =⇒ T (p) 6 O∗(1,194p)

Si il y a un triangle : T (p) 6 2T (p − 4) =⇒ T (p) 6 O∗(2p/4) (encoreune fois . . . sur parole)

Vangelis Th. Paschos Algorithmes faiblement exponentiels 35 / 61

Page 77: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Branchements multiples

Graphes cubiques (1)

Le pire cas est quand le graphe est cubique et sans triangle

Vangelis Th. Paschos Algorithmes faiblement exponentiels 36 / 61

Page 78: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Branchements multiples

Graphes cubiques (1)

Le pire cas est quand le graphe est cubique et sans triangle

Si on ne prend pas le sommet rouge :

Vangelis Th. Paschos Algorithmes faiblement exponentiels 36 / 61

Page 79: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Branchements multiples

Graphes cubiques (1)

Le pire cas est quand le graphe est cubique et sans triangle

Si on ne prend pas le sommet rouge :

n← n − 1m ← m − 3p ← p − 2

Vangelis Th. Paschos Algorithmes faiblement exponentiels 36 / 61

Page 80: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Branchements multiples

Graphes cubiques (2)

Si on le prend :

Vangelis Th. Paschos Algorithmes faiblement exponentiels 37 / 61

Page 81: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Branchements multiples

Graphes cubiques (2)

Si on le prend :

n← n − 4m ← m − 9p ← p − 5

T (p) 6 T (p − 2) + T (p − 5)

Vangelis Th. Paschos Algorithmes faiblement exponentiels 37 / 61

Page 82: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Branchements multiples

Graphes cubiques - branchement multiple

Mais . . .

Après rejet du sommet rouge lessommets noirs sont de degré 2On les plie et nous avons au moinsun sommet de degré > 4

T (p) 6 T (p − 5) + T ((p − 2) − 3) + T ((p − 2) − 5)

= 2T (p − 5) + T (p − 7)

T (p) 6 O∗(1,2175p) = O∗(1,1034n)

Vangelis Th. Paschos Algorithmes faiblement exponentiels 38 / 61

Page 83: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Mesurer pour conquérir

1 La problématique

2 Programmation dynamique

3 Inclusion-exclusion

4 Algorithmes de branchementDescription généraleRègles de réductionMémoïsationBranchements multiplesMesurer pour conquérir

5 Trier et chercher

6 Recherche locale itérative

7 Quelques questions pour la fin

Vangelis Th. Paschos Algorithmes faiblement exponentiels 39 / 61

Page 84: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Mesurer pour conquérir

Les limites de la méthode classique (brute) dubranchement

Vangelis Th. Paschos Algorithmes faiblement exponentiels 40 / 61

Page 85: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Mesurer pour conquérir

Les limites de la méthode classique (brute) dubranchement

Chaque amélioration successive augmente considérablement lacomplication de l’analyse

Vangelis Th. Paschos Algorithmes faiblement exponentiels 40 / 61

Page 86: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Mesurer pour conquérir

Les limites de la méthode classique (brute) dubranchement

Chaque amélioration successive augmente considérablement lacomplication de l’analyse

Dans l’exemple précédent on a appliqué règles de réduction, on aplié des sommets, on appliqué des branchements multiples, on aétudié des cas (triangles ou pas, seuils des degrés, . . . ), . . .

Et le problème ne concernait que les graphes à ∆ = 3 ! ! !

Vangelis Th. Paschos Algorithmes faiblement exponentiels 40 / 61

Page 87: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Mesurer pour conquérir

Les limites de la méthode classique (brute) dubranchement

Chaque amélioration successive augmente considérablement lacomplication de l’analyse

Dans l’exemple précédent on a appliqué règles de réduction, on aplié des sommets, on appliqué des branchements multiples, on aétudié des cas (triangles ou pas, seuils des degrés, . . . ), . . .

Et le problème ne concernait que les graphes à ∆ = 3 ! ! !

Pouvons nous avoir un outil qui évite les longues analyses des caspathologiques?

Vangelis Th. Paschos Algorithmes faiblement exponentiels 40 / 61

Page 88: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Mesurer pour conquérir

L’idée de base et les ingrédients

L’idée de baseEquilibrer la complexité au pire des cas entre branchements favorableset défavorables

Vangelis Th. Paschos Algorithmes faiblement exponentiels 41 / 61

Page 89: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Mesurer pour conquérir

L’idée de base et les ingrédients

L’idée de baseEquilibrer la complexité au pire des cas entre branchements favorableset défavorables

Des mesures de progression plus informatives sur la structure del’instance que sa taille seule (densité d’un graphe, # sommetsd’un certain degré, . . . )

Vangelis Th. Paschos Algorithmes faiblement exponentiels 41 / 61

Page 90: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Mesurer pour conquérir

L’idée de base et les ingrédients

L’idée de baseEquilibrer la complexité au pire des cas entre branchements favorableset défavorables

Des mesures de progression plus informatives sur la structure del’instance que sa taille seule (densité d’un graphe, # sommetsd’un certain degré, . . . )

Partitionnement des instances du problème suivant une propriétéstructurelle

Vangelis Th. Paschos Algorithmes faiblement exponentiels 41 / 61

Page 91: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Mesurer pour conquérir

L’idée de base et les ingrédients

L’idée de baseEquilibrer la complexité au pire des cas entre branchements favorableset défavorables

Des mesures de progression plus informatives sur la structure del’instance que sa taille seule (densité d’un graphe, # sommetsd’un certain degré, . . . )

Partitionnement des instances du problème suivant une propriétéstructurelle

Différenciation de la contribution d’un élément suivant quelquescaractéristiques structurelles propres

Vangelis Th. Paschos Algorithmes faiblement exponentiels 41 / 61

Page 92: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Mesurer pour conquérir

Une application simple sur STABLE (encore)

Vangelis Th. Paschos Algorithmes faiblement exponentiels 42 / 61

Page 93: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Mesurer pour conquérir

Une application simple sur STABLE (encore)

Soit le branchement simple : prendre un sommet de degrémaximum et l’enlever du graphe ainsi que ses voisins, ou ne pasle prendre et l’enlever du graphe

Vangelis Th. Paschos Algorithmes faiblement exponentiels 42 / 61

Page 94: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Mesurer pour conquérir

Une application simple sur STABLE (encore)

Soit le branchement simple : prendre un sommet de degrémaximum et l’enlever du graphe ainsi que ses voisins, ou ne pasle prendre et l’enlever du graphe

Partitionner les graphes en deux sous-familles : celle, G1, desgraphes à ∆ > 4 et celle, G2, des graphes à ∆ 6 3

Vangelis Th. Paschos Algorithmes faiblement exponentiels 42 / 61

Page 95: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Mesurer pour conquérir

Une application simple sur STABLE (encore)

Soit le branchement simple : prendre un sommet de degrémaximum et l’enlever du graphe ainsi que ses voisins, ou ne pasle prendre et l’enlever du graphe

Partitionner les graphes en deux sous-familles : celle, G1, desgraphes à ∆ > 4 et celle, G2, des graphes à ∆ 6 3Pour les branchements nous avons :

G1 −→ T (n) 6 T (n − 1) + T (n − 5)G2 −→ T (n) 6 T (n − 1) + T (n − 4)

Le pire est le deuxième avec O∗(1,381n)

Vangelis Th. Paschos Algorithmes faiblement exponentiels 42 / 61

Page 96: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Mesurer pour conquérir

Changer la mesure

Vangelis Th. Paschos Algorithmes faiblement exponentiels 43 / 61

Page 97: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Mesurer pour conquérir

Changer la mesure

Donner à tous les sommets de degré 2 (soit n2 leur nombre) poids1 − ǫ, ǫ < 0,5

Vangelis Th. Paschos Algorithmes faiblement exponentiels 43 / 61

Page 98: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Mesurer pour conquérir

Changer la mesure

Donner à tous les sommets de degré 2 (soit n2 leur nombre) poids1 − ǫ, ǫ < 0,5

Donner à tous les sommets de degré > 3 (soit n>3 leur nombre)poids 1

Vangelis Th. Paschos Algorithmes faiblement exponentiels 43 / 61

Page 99: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Mesurer pour conquérir

Changer la mesure

Donner à tous les sommets de degré 2 (soit n2 leur nombre) poids1 − ǫ, ǫ < 0,5

Donner à tous les sommets de degré > 3 (soit n>3 leur nombre)poids 1

Les sommets de degré 6 1 rentrent dans la solution sansbranchement

Vangelis Th. Paschos Algorithmes faiblement exponentiels 43 / 61

Page 100: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Mesurer pour conquérir

Changer la mesure

Donner à tous les sommets de degré 2 (soit n2 leur nombre) poids1 − ǫ, ǫ < 0,5

Donner à tous les sommets de degré > 3 (soit n>3 leur nombre)poids 1

Les sommets de degré 6 1 rentrent dans la solution sansbranchement

Considérer la mesure p = n>3 + (1 − ǫ)n2 6 n

Vangelis Th. Paschos Algorithmes faiblement exponentiels 43 / 61

Page 101: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Mesurer pour conquérir

Branchement à G1

Vangelis Th. Paschos Algorithmes faiblement exponentiels 44 / 61

Page 102: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Mesurer pour conquérir

Branchement à G1

Vangelis Th. Paschos Algorithmes faiblement exponentiels 44 / 61

Page 103: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Mesurer pour conquérir

Branchement à G1

Ici (voisins du sommet bleu tous àdegré 2)p −→ p − 1 − 4(1 − ǫ) = p − 5+4ǫT (p) 6 T (p − 1) + T (p − 5+4ǫ)(> T (p − 1) + T (p − 5))

Vangelis Th. Paschos Algorithmes faiblement exponentiels 44 / 61

Page 104: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Mesurer pour conquérir

Branchement à G2 (1)

Vangelis Th. Paschos Algorithmes faiblement exponentiels 45 / 61

Page 105: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Mesurer pour conquérir

Branchement à G2 (1)

k

v

Vangelis Th. Paschos Algorithmes faiblement exponentiels 45 / 61

Page 106: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Mesurer pour conquérir

Branchement à G2 (1)

k

vv est fixék sommets de degré 2 disparaissentdevenant de degré 1gain k(1 − ǫ)

3 − k sommets de degré 3 deviennent dedegré 2gain (3 − k) − (3 − k)(1 − ǫ) = (3 − k)ǫ

p ←− p − 1 − k(1 − ǫ) − (3 − k)ǫ

Vangelis Th. Paschos Algorithmes faiblement exponentiels 45 / 61

Page 107: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Mesurer pour conquérir

Branchement à G2 (2)

Vangelis Th. Paschos Algorithmes faiblement exponentiels 46 / 61

Page 108: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Mesurer pour conquérir

Branchement à G2 (2)

k

v

Vangelis Th. Paschos Algorithmes faiblement exponentiels 46 / 61

Page 109: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Mesurer pour conquérir

Branchement à G2 (2)

k

vv est fixék sommets de degré 2disparaissentgain k(1 − ǫ)

3 − k sommets de degré 3disparaissentgain (3 − k)

p ←− p − 4 + kǫ

Vangelis Th. Paschos Algorithmes faiblement exponentiels 46 / 61

Page 110: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Mesurer pour conquérir

Branchement à G2 (2)

k

vv est fixék sommets de degré 2disparaissentgain k(1 − ǫ)

3 − k sommets de degré 3disparaissentgain (3 − k)

p ←− p − 4 + kǫ

T (p) 6 max16k63

{T (p − 1 − k(1 − ǫ) − (3 − k)ǫ) + T (p − 4 + kǫ)}

Pour ǫ = 0,085, T (p) = O∗(1,342p) 6 O∗(1,342n)

Vangelis Th. Paschos Algorithmes faiblement exponentiels 46 / 61

Page 111: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Mesurer pour conquérir

M & C (avantages)

Par le jeu des poids et le choix de la mesure, « diminuer » ledéséquilibre entre les divers « pires » branchements (les bonsd’entre eux deviennent moins bons et les mauvais moins mauvais)

Si les mauvais branchements modifient l’instance de façon à cequ’ils produisent des situations où des bons branchementsdeviennent possibles, cela se capitalise « automatiquement »sans devoir recourir aux analyses des cas fastidieuses, commec’est le cas des branchements standards

Vangelis Th. Paschos Algorithmes faiblement exponentiels 47 / 61

Page 112: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Mesurer pour conquérir

Questions fondamentales

Vangelis Th. Paschos Algorithmes faiblement exponentiels 48 / 61

Page 113: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Mesurer pour conquérir

Questions fondamentales

Measure and conquer a-t-il donné des résultats intéressants ?

Les meilleurs résultats connus pour la COUVERTURE D’ENSEMBLES,l’ENCEMBLE DOMINANT, STABLE, MIN STABLE MAXIMAL, etc., sontbasés sur le measure and conquer, ou ces améliorations

Vangelis Th. Paschos Algorithmes faiblement exponentiels 48 / 61

Page 114: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Algorithmes de branchement Mesurer pour conquérir

Questions fondamentales

Measure and conquer a-t-il donné des résultats intéressants ?

Les meilleurs résultats connus pour la COUVERTURE D’ENSEMBLES,l’ENCEMBLE DOMINANT, STABLE, MIN STABLE MAXIMAL, etc., sontbasés sur le measure and conquer, ou ces améliorations

QUAND CE TYPE VA-T-ILFINIR ? ? ? ?

Vangelis Th. Paschos Algorithmes faiblement exponentiels 48 / 61

Page 115: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Trier et chercher

1 La problématique

2 Programmation dynamique

3 Inclusion-exclusion

4 Algorithmes de branchementDescription généraleRègles de réductionMémoïsationBranchements multiplesMesurer pour conquérir

5 Trier et chercher

6 Recherche locale itérative

7 Quelques questions pour la fin

Vangelis Th. Paschos Algorithmes faiblement exponentiels 49 / 61

Page 116: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Trier et chercher

L’idée de base

Traitement préalable des donnéesTraiter préalablement les données (en les triant, ou en faisant descalculs rapides, ou en les partitionnant, ou . . . ) de manière à ce que leproblème soit résolu sur des instances plus petites et que les solutionspartielles soient composés en une solution optimale plus rapidement

C’est une technique assez courue aussi en approximation polynomiale

Vangelis Th. Paschos Algorithmes faiblement exponentiels 50 / 61

Page 117: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Trier et chercher

SAC-A-DOS

I =

maxn∑

i=1aixi

n∑

i=1cixi 6 b

Vangelis Th. Paschos Algorithmes faiblement exponentiels 51 / 61

Page 118: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Trier et chercher

SAC-A-DOS

I =

maxn∑

i=1aixi

n∑

i=1cixi 6 b

Résoluble aussi par programmation dynamique en O(n2amax log cmax)

et par énumération exhaustive en O∗(2n)

Vangelis Th. Paschos Algorithmes faiblement exponentiels 51 / 61

Page 119: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Trier et chercher

SAC-A-DOS

I =

maxn∑

i=1aixi

n∑

i=1cixi 6 b

Résoluble aussi par programmation dynamique en O(n2amax log cmax)

et par énumération exhaustive en O∗(2n)

Soit I l’ensemble des objets∀J ⊆ I :– b(J) le « poids total » de J

– a(J) la « valeur totale » de J

Vangelis Th. Paschos Algorithmes faiblement exponentiels 51 / 61

Page 120: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Trier et chercher

L’algorithme

Vangelis Th. Paschos Algorithmes faiblement exponentiels 52 / 61

Page 121: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Trier et chercher

L’algorithme

1 Partitionner les objets en deux sous-ensembles I1 et I2 (I = I1 ∪ I2)de taille égale

Vangelis Th. Paschos Algorithmes faiblement exponentiels 52 / 61

Page 122: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Trier et chercher

L’algorithme

1 Partitionner les objets en deux sous-ensembles I1 et I2 (I = I1 ∪ I2)de taille égale

2 ∀J ⊆ Ik , k = 1,2, calculer b(J) et a(J)

Vangelis Th. Paschos Algorithmes faiblement exponentiels 52 / 61

Page 123: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Trier et chercher

L’algorithme

1 Partitionner les objets en deux sous-ensembles I1 et I2 (I = I1 ∪ I2)de taille égale

2 ∀J ⊆ Ik , k = 1,2, calculer b(J) et a(J)

3 ∀J ⊆ Ik , trier les b(J) (en cas d’égalité donner la priorité au pluspetit a(J)) et éliminer les sous-ensembles dominés

Vangelis Th. Paschos Algorithmes faiblement exponentiels 52 / 61

Page 124: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Trier et chercher

L’algorithme

1 Partitionner les objets en deux sous-ensembles I1 et I2 (I = I1 ∪ I2)de taille égale

2 ∀J ⊆ Ik , k = 1,2, calculer b(J) et a(J)

3 ∀J ⊆ Ik , trier les b(J) (en cas d’égalité donner la priorité au pluspetit a(J)) et éliminer les sous-ensembles dominés

4 ∀J1 ∈ I1, trouver, par recherche dichotomique, J2 ∈ I2 quimaximise a(J1) + a(J2) avec b(J1) + b(J2) 6 b et retenir lecouple (J1, J2) avec le plus grand a

Vangelis Th. Paschos Algorithmes faiblement exponentiels 52 / 61

Page 125: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Trier et chercher

La complexité

Vangelis Th. Paschos Algorithmes faiblement exponentiels 53 / 61

Page 126: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Trier et chercher

La complexité

L’étape 2 nécessite un temps O∗(2n/2) = O∗(1,414n)

Vangelis Th. Paschos Algorithmes faiblement exponentiels 53 / 61

Page 127: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Trier et chercher

La complexité

L’étape 2 nécessite un temps O∗(2n/2) = O∗(1,414n)

L’étape 3 nécessite aussi un temps O∗(1,414n)

Vangelis Th. Paschos Algorithmes faiblement exponentiels 53 / 61

Page 128: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Trier et chercher

La complexité

L’étape 2 nécessite un temps O∗(2n/2) = O∗(1,414n)

L’étape 3 nécessite aussi un temps O∗(1,414n)

A l’étape 4 la recherche dichotomique se fait en temps polynomial,donc le temps global de 4 est aussi O∗(1,414n)

Vangelis Th. Paschos Algorithmes faiblement exponentiels 53 / 61

Page 129: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Trier et chercher

La complexité

L’étape 2 nécessite un temps O∗(2n/2) = O∗(1,414n)

L’étape 3 nécessite aussi un temps O∗(1,414n)

A l’étape 4 la recherche dichotomique se fait en temps polynomial,donc le temps global de 4 est aussi O∗(1,414n)

Donc

Complexité globale O∗(1,414n)

Vangelis Th. Paschos Algorithmes faiblement exponentiels 53 / 61

Page 130: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Recherche locale itérative

1 La problématique

2 Programmation dynamique

3 Inclusion-exclusion

4 Algorithmes de branchementDescription généraleRègles de réductionMémoïsationBranchements multiplesMesurer pour conquérir

5 Trier et chercher

6 Recherche locale itérative

7 Quelques questions pour la fin

Vangelis Th. Paschos Algorithmes faiblement exponentiels 54 / 61

Page 131: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Recherche locale itérative

L’idée de base

Partir d’une solution réalisable qui se trouve à une certainedistance (défini de façon appropriée) de la solution « optimale »

Produire une nouvelle solution en changeant seulement une petitepartie de la solution précédente de façon à réduire la distance decette nouvelle solution de la solution optimale

Réitérer jusqu’à trouver la solution optimale

Vangelis Th. Paschos Algorithmes faiblement exponentiels 55 / 61

Page 132: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Recherche locale itérative

3-SAT (1)

Vangelis Th. Paschos Algorithmes faiblement exponentiels 56 / 61

Page 133: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Recherche locale itérative

3-SAT (1)

Pour une affectaion τ :H(τ,d) l’ensemble des τ ′ à distance de HAMMING 6 d de τ

Etant donnés Φ une instance 3-SAT, τ et d ∈ N+, décider si H(τ,d)

contient un modèle pour Φ peut se faire en O∗(3d )

Vangelis Th. Paschos Algorithmes faiblement exponentiels 56 / 61

Page 134: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Recherche locale itérative

3-SAT (1)

Pour une affectaion τ :H(τ,d) l’ensemble des τ ′ à distance de HAMMING 6 d de τ

Etant donnés Φ une instance 3-SAT, τ et d ∈ N+, décider si H(τ,d)

contient un modèle pour Φ peut se faire en O∗(3d )

En effet, sur une clause non satisfaite par τ, si on change la valeurd’une de ses variables, pour au moins un des changements ladistance de HAMMING du résultat par rapport au modèle (s’il existe)diminuera T (d) 6 3T (d − 1) =⇒ T (d) = O∗(3d )

Vangelis Th. Paschos Algorithmes faiblement exponentiels 56 / 61

Page 135: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Recherche locale itérative

3-SAT (2)

Si 1n et 0n les affectations à toute coordonnée égale à 1 où à 0, touteaffectation τ (a fortiori un modèle) appartiendra soit à H(1n,n/2) soità H(0n,n/2)

Vangelis Th. Paschos Algorithmes faiblement exponentiels 57 / 61

Page 136: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Recherche locale itérative

3-SAT (2)

Si 1n et 0n les affectations à toute coordonnée égale à 1 où à 0, touteaffectation τ (a fortiori un modèle) appartiendra soit à H(1n,n/2) soità H(0n,n/2)

Et le décider peut se faire en O∗(3n/2) = O∗(1,73n)

Vangelis Th. Paschos Algorithmes faiblement exponentiels 57 / 61

Page 137: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Quelques questions pour la fin

1 La problématique

2 Programmation dynamique

3 Inclusion-exclusion

4 Algorithmes de branchementDescription généraleRègles de réductionMémoïsationBranchements multiplesMesurer pour conquérir

5 Trier et chercher

6 Recherche locale itérative

7 Quelques questions pour la fin

Vangelis Th. Paschos Algorithmes faiblement exponentiels 58 / 61

Page 138: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Quelques questions pour la fin

J’ai presque fini (sérieusement !)

Vangelis Th. Paschos Algorithmes faiblement exponentiels 59 / 61

Page 139: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Quelques questions pour la fin

J’ai presque fini (sérieusement !)

Plus d’outils d’analyse et (si possible) de techniques deconception d’algorithmes

Vangelis Th. Paschos Algorithmes faiblement exponentiels 59 / 61

Page 140: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Quelques questions pour la fin

J’ai presque fini (sérieusement !)

Plus d’outils d’analyse et (si possible) de techniques deconception d’algorithmes

Une structure pour la résolution modérément exponentielle

Vangelis Th. Paschos Algorithmes faiblement exponentiels 59 / 61

Page 141: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Quelques questions pour la fin

J’ai presque fini (sérieusement !)

Plus d’outils d’analyse et (si possible) de techniques deconception d’algorithmes

Une structure pour la résolution modérément exponentielle

Deux hypothèses de complexité (sous la conjecture P 6= NP)

ETH et SETH

ETH : ∀k > 3, ∃sk ∈ R+, tel que k -SAT n’est pas résoluble en

moins que O∗(2sk n)

SETH : sk −→ 1, pour k −→∞

Vangelis Th. Paschos Algorithmes faiblement exponentiels 59 / 61

Page 142: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Quelques questions pour la fin

Dernier transparent

Vangelis Th. Paschos Algorithmes faiblement exponentiels 60 / 61

Page 143: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Quelques questions pour la fin

Dernier transparent

Démontrer des bornes inférieures sous SETH pour desproblèmes paradigmatiques (STABLE, COLORATION, . . . )

Vangelis Th. Paschos Algorithmes faiblement exponentiels 60 / 61

Page 144: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Quelques questions pour la fin

Dernier transparent

Démontrer des bornes inférieures sous SETH pour desproblèmes paradigmatiques (STABLE, COLORATION, . . . )

Parmi les problèmes COLORATION, SAT, TSP, COUPE, etc., dont lemeilleur algorithme connu est en O∗(2n), la résolution en O∗(2cn),c < 1, pour l’un d’entre eux implique-t-elle la résolution enO∗(2c ′n), c ′ < 1 pour un (ou plusieurs) autre(s) ?

Vangelis Th. Paschos Algorithmes faiblement exponentiels 60 / 61

Page 145: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Quelques questions pour la fin

Dernier transparent

Démontrer des bornes inférieures sous SETH pour desproblèmes paradigmatiques (STABLE, COLORATION, . . . )

Parmi les problèmes COLORATION, SAT, TSP, COUPE, etc., dont lemeilleur algorithme connu est en O∗(2n), la résolution en O∗(2cn),c < 1, pour l’un d’entre eux implique-t-elle la résolution enO∗(2c ′n), c ′ < 1 pour un (ou plusieurs) autre(s) ?

Peut on, en assumant l’insolvabilité des problèmes précédents àmieux que O∗(2n), produire des bornes inférieures de complexitépour d’autres problèmes?

Vangelis Th. Paschos Algorithmes faiblement exponentiels 60 / 61

Page 146: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Quelques questions pour la fin

Dernier transparent

Démontrer des bornes inférieures sous SETH pour desproblèmes paradigmatiques (STABLE, COLORATION, . . . )

Parmi les problèmes COLORATION, SAT, TSP, COUPE, etc., dont lemeilleur algorithme connu est en O∗(2n), la résolution en O∗(2cn),c < 1, pour l’un d’entre eux implique-t-elle la résolution enO∗(2c ′n), c ′ < 1 pour un (ou plusieurs) autre(s) ?

Peut on, en assumant l’insolvabilité des problèmes précédents àmieux que O∗(2n), produire des bornes inférieures de complexitépour d’autres problèmes?

Peut-on construire une hiérarchie de classes par rapport à larésolution (exacte) ? Avec quels ingrédients ? A quoiressemblerait-t-elle ?

Vangelis Th. Paschos Algorithmes faiblement exponentiels 60 / 61

Page 147: Algorithmes faiblement exponentielsjfro/Journees... · lamsade La problématique 1 La problématique 2 Programmation dynamique 3 Inclusion-exclusion 4 Algorithmes de branchement Description

Quelques questions pour la fin

J’ai fini ! ! !

MERCI !

Vangelis Th. Paschos Algorithmes faiblement exponentiels 61 / 61