Cours 6: Algorithmes approchés Algorithmes approchés Algorithme

publicité
Cours 6: Algorithmes approchés
Algorithme 1/2-approché pour COUVRANT-MIN
Donnée: Un graphe G non-orienté
Problème: Trouver un ensemble de sommets qui couvre les arêtes.
Algorithme: F := E; Y := ∅
Tant que F est non vide: Choisir une arête f dans E
ajouter ses 2 extrémités dans Y
et supprimer de F toutes les arêtes couvertes.
• Algorithmes approchés
• Schémas d’approximation
• Bin-packing: approximable.
Remarque: si G est un couplage |G| < |C| pour tout couvrant C.
Or les arêtes utilisées pour former Y forment un couplage:
|Y |/2 < |C| < |Copt |
D’où ε =
3-1
|Y |−|Copt |
|Y |
≤
1
,
2
ou encore θ =
|Y |
|Copt |
≤
Gilles Schaeffer
• Sac-à-dos : très bien approximable
• Voyageur de commerce : non approximable
1
.
2
• Backtracking, branch and bound
INF-551-6: Algorithmes approchés
1-1
Rangement optimal et approximation
Problème: Trouver parmi les solutions d’un problème celle qui
optimise une fonction f .
Problème: Ranger les objets dans un nombre minimum de boites.
avec 2 boites: 61+40+19=120
P = 120
Un algorithme est ε-approché s’il donne un X qui satisfait
41+49+20+19=120.
f (Xopt )−f (X)
f (Xopt )
Algorithme glouton: ranger les objets p1 ≥ p2 ≥ . . . ≥ pn , puis mettre
successivement les objets dans la première boite possible:
61 + 41 + 20
Théorème: L’algorithme glouton utilise
Exemple:
40 + 40 + 19
au plus 1 + 23 Nopt boites.
19
Preuve: • Si tous les objets ont poids ≥ P/3, alors glouton est optimum:
p1 ≥ . . . ≥ pi ≥ 23 P ≥ pi+1 ≥ . . . ≥ pj ≥ 21 P ≥ pj+1 ≥ . . . ≥ pn ≥ 31 P
• Si chaque boite contient un objet de poids >
1
P
3
INF-551-6: Algorithmes approchés
Algorithmes approchés
Données: n objets de poids p1 , . . . , pn , et des boites de capacité P .
Exemple: 61, 41, 40, 40, 20, 19, 19
Gilles Schaeffer
≤ε
si Xopt maximise f
On veut ε proche de 0.
f (X)−f (Xopt )
f (X)
≤ε
si Xopt minimise f
Un algorithme approche l’optimum à un facteur θ si
max
alors glouton optimum.
f (Xopt ) f (X)
,
f (Xopt )
f (X)
≤θ
On veut θ proche de 1.
• Sinon toutes les boites sauf une sont remplies à plus des 2/3.
4-1
Gilles Schaeffer
INF-551-6: Algorithmes approchés
2-1
Gilles Schaeffer
INF-551-6: Algorithmes approchés
Voyageur du commerce et inapproximabilité
Données: un graphe G et une valuation des arêtes (”distances entre villes”)
Problème: Trouver un ordre de visite des villes qui minimise la distance.
Théorème: algo polynomial ε < 1 approché pour le voyageur de commerce
⇒ algorithme polynomial pour Hamiltonien ⇒ P = N P.
Problème Hamiltonien: étant donné un graphe, trouver un cycle qui
visite une et une seule fois les sommets.
N P-complet (cf poly)
Rangement optimal et limite de l’approximabilité
Théorème: algorithme polynomial ε < 13 approché pour RangeOpt
⇒ algorithme polynomial pour Partition ⇒ P = N P.
Problème Partition:Ptrouver uneP
partition S1 , S2 d’un ensemble fini
d’entiers S telle que s∈S1 s =
s∈S2 s = S/2.
Preuve que Partition est N P-complet: clairement dans N P
Réduction de SommePartielle à Partition.
Preuve du théorème: soit G un graphe (instance de Hamiltonien)
1
et on constuit la valuation:
• On pose k entier ≥ 1−ε
v(x, y) = 1 si (x, y) arête de G, v(x, y) = nk + 1 sinon.
Preuve du théorème: E = {e1 , e2 , . . . , en } une instance de Partition
P
On considère le problème RangOpt avec P = 21
ei
• Si on a une ε-approx de valuation n alors G admet un cycle
hamiltonien, sinon la valuation trouvée est x ≥ (n − 1) + (nk + 1) et
o
comme n+nk−C
≤ ε, on a Co ≥ n(1 + k)(1 − ε) > n.
n+nk
7-1
Gilles Schaeffer
INF-551-6: Algorithmes approchés
et on suppose d’y appliquer un algorithme ε <
5-1
Gilles Schaeffer
INF-551-6: Algorithmes approchés
Gilles Schaeffer
INF-551-6: Algorithmes approchés
Sac à dos et schéma d’approximation
Données: des poids p1 , . . . , pn , des gains a1 , . . . , ap et la capacité P
`P
´
P
Problème: Trouver max
i a i xi |
i pi xi ≤ P, xi ∈ {0, 1}
Donnée: un problème de décision à résoudre (par exemple une formule SAT)
Algorithme générique:
• à chaque étape on a un ensemble S de pbs, il faut en résoudre un
• choisir un des problèmes P de S, le décomposer en union de plusieurs
problèmes P1 , . . . , Pk tels que résoudre l’un des Pi résoud P
– si l’un des problèmes Pi a une solution facile, la donner
– éliminer les Pi trivialement sans solution et remplacer P par les autres
• recommencer jusqu’à ce que S soit vide ou qu’on ait trouvé une solution.
8-1
approché.
• si la réponse est 2, il y a une solution à Partition
• sinon, la réponse est 3 ou plus et il n’y a pas de solution avec 2 boites
> ε), et donc pas de solution à Partition
(car 3−2
3
Exploration arborescente ou backtracking
Remarque: la façon habituelle de générer les Pi est de partitionner l’espace
de recherche en imposant des contraintes aux solutions.
⇒ programmation par contrainte
Exemple pour 3-SAT: • dans S on prend une formule avec une clause à 1
ou 2 variables, ou sinon une formule avec un petit nombre de clause
• on remplace la formule courante par 2 formules, obtenue en mettant l’une
des variables à Vrai ou Faux (choisir la variable ”la plus” contrainte)
1
3
Théorème (Schéma d’approximation polynomial): Pour tout ε il existe un
algorithme ε-approché pour le problème Sac-à-dos de complexité O(n3 /ε).
Idée: • On utilise la programmation dynamique sur des données arrondies:
ai
On pose bi = ⌊ 10
k ⌋ pour un k bien choisi.
Par programmation dynamique, on obtient l’optimum {x′i } du problème
2
arrondi en temps O(n2 M ′ ) = O( n10M
k ) où M = max(ai ).
• On compare l’approximation du problème exact donnée par {x′i } à un
optimum {xi }:
P
P
P
P
P
k
′
′
k
k
k
i 10 bi xi ≥
i a i xi ≥
i ai xi − n10
i (ai − 10 )xi ≥
i 10 bi xi ≥
Si k ≥ log10
6-1
Gilles Schaeffer
Ao ε
n
≥ log10
Mε
,
n
3
on a une ε-approximation en temps O( nε ).
INF-551-6: Algorithmes approchés
Partition équitable d’un graphe
Séparation-évaluation ou branch and bound
Données: un graphe G, une valuation v des arêtes
Problème: trouver une partition X1 , XX
2 des sommets tq
v(x, y) minimal
|X1 | = |X2 | ± 1, et
Donnée: un problème d’optimisation sous contraintes, dont on connait une
solution faisable
Branch On constuit un arbre d’exploration des solutions faisables
x∈X1 ,y∈X2
Modélisation quasi-linéaire: une variable xi par sommet, à valeur {0, 1}
P
P
n/2 − 1 ≤ i xi ≤ n/2 + 1, minimiser (i,j)∈E vi,j |xi − xj |
Bound: Ne pas explorer les sous-arbres dont on peut dire qu’ils ne
donneront pas de solution plus intéressante que celle qu’on a déjà.
Branch and bound ? il faut les ingrédients suivants...
• une solution initiale heuristique ! influe beaucoup sur l’efficacité
pour PartitionÉquitable: démarrer avec X1 := {x1 }
⇒ il faut une fonction qui borne la valeur des solutions dans un sous-arbre.
Pour i de 1 à n/2, ajouter à X1 le sommet y dont la somme des distances
aux éléments de X1 est maximale.
11-1
Gilles Schaeffer
INF-551-6: Algorithmes approchés
Gilles Schaeffer
9-1
Partition équitable d’un graphe
INF-551-6: Algorithmes approchés
Partition équitable d’un graphe
Données: un graphe G, une valuation v des arêtes
Problème: trouver une partition X1 , XX
2 des sommets tq
v(x, y) minimal
|X1 | = |X2 | ± 1, et
Données: un graphe G, une valuation v des arêtes
Problème: trouver une partition X1 , XX
2 des sommets tq
v(x, y) minimal
|X1 | = |X2 | ± 1, et
x∈X1 ,y∈X2
x∈X1 ,y∈X2
Modélisation quasi-linéaire: une variable xi par sommet, à valeur {0, 1}
P
P
n/2 − 1 ≤ i xi ≤ n/2 + 1, minimiser (i,j)∈E vi,j |xi − xj |
Modélisation quasi-linéaire: une variable xi par sommet, à valeur {0, 1}
P
P
n/2 − 1 ≤ i xi ≤ n/2 + 1, minimiser (i,j)∈E vi,j |xi − xj |
Branch and bound ? il faut les ingrédients suivants...
• un moyen de diviser le problème P en sous problèmes P1 , . . . , Pk tels que
l’ensemble des solutions de P soit couvert
On divise l’espace des solutions en ajoutant des contraites: le plus simple
est d’instancier des variables bien choisies
pour PartitionÉquitable: on choisit une variable xj et on divise le
problème en deux, suivant que xj ∈ X1 ou xj ∈ X2 .
Branch and bound ? il faut les ingrédients suivants...
• une solution initiale
• une stratégie de parcours de l’arbre (choix du P à décomposer)
• un moyen de diviser le problème P en sous problèmes P1 , . . . , Pk tels que
l’ensemble des solutions de P soit couvert
• une fonction g(Pi ) qui donne une bonne borne sur l’optimum dans Pi .
idée: à chaque étape on élimine les Pi tels que g(Pi ) est moins bon que la
meilleure solution trouvée jusqu’ici.
12-1
Gilles Schaeffer
INF-551-6: Algorithmes approchés
10-1
Gilles Schaeffer
INF-551-6: Algorithmes approchés
Partition équitable d’un graphe
Données: un graphe G, une valuation v des arêtes
Problème: trouver une partition X1 , XX
2 des sommets tq
v(x, y) minimal
|X1 | = |X2 | ± 1, et
x∈X1 ,y∈X2
Modélisation quasi-linéaire: une variable xi par sommet, à valeur {0, 1}
P
P
n/2 − 1 ≤ i xi ≤ n/2 + 1, minimiser (i,j)∈E vi,j |xi − xj |
Branch and bound ? il faut les ingrédients suivants...
• une fonction g(Pi ) qui donne une bonne borne sur l’optimum dans Pi .
c’est le problème le plus délicat dans la méthode...
pour PartitionÉquitable: On a affecté partiellement X1 et X2 , et les
sommets de Y restent, et on pose p = |X1 |, q = |X2 |.
Alors le coût minimal d’une solution de ce type sera au moins la somme du
− q plus petite entre
coût des arêtes suivantes: entre X1 et X2 ; les n
2
n
chaque élément de X1 et Y ; les 2 − p plus petites entre chaque élément de
X2 et Y , les ( n
− p)( n
2 − q) plus petites entre les éléments de Y .
2
/
13-1
Gilles Schaeffer
INF-551-6: Algorithmes approchés
Téléchargement