Planification Et Problèmes Np-difficiles Flashcards

(48 cards)

1
Q

Problème de planification

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Modéliser un problème de planification

A

Graphe d’états (aussi appelé graphe états-transitions)

  • Les sommets du graphe sont les états
  • Les arcs correspondent aux transitions possibles entre états, et sont étiquetés par les actions

Graphe orienté ou non selon que les transitions sont symétriques ou non

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Quels algorithmes utiliser pour…
Déterminer s’il existe un plan d’actions?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Chercher le plan d’action minimisant le nombre d’actions ?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Chercher le plan d’action minimisant la somme des coûts ?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Compter le nombre de plans d’actions différents possibles?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

En général, le graphe d’états est trop gros pour pouvoir être construit

A

Construire le graphe au fur et à mesure de la recherche du chemin

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Heuristique

A

Règle empirique, permettant de résoudre “approximativement” un problème -> sans garantie sur la qualité de la solution, mais rapide

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Adaptons Dijkstra pour chercher le plan d’action le moins coûteux

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Algorithme A*

A
1 fermés ← ∅ ; ouverts ← {einit } ; g[einit ] ← 0
2 tant que ouverts 6 = ∅ faire
3 	Soit ei l’état de ouverts minimisant g[ei ] + h[ei ]
4 	si ei ∈ F alors retourne (g[ei ], π);
5 	pour tout a ∈ actions(ei ) faire
6 		ej ← t(ei , a)
7 		/* Ne pas ignorer les états fermés ! */
8 		si g[ei ] + cout(a) < g[ej ] alors
9 			g[ej ] ← g[ei ] + cout(a)
10			π[ej ] ← ei
11 			si ej 6 ∈ ouverts alors Ajouter ej ds ouverts;
12 	Retirer ei de ouverts et l’ajouter dans fermés
13 retourne Pas de plan !
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Changement de terminologie entre Dijkstra et A* :

A
  • Sommets gris –> Etats ouverts (open, fringe, frontier)
  • Sommets noirs –> Etats fermés (closed)
  • Sommets blancs –> Etats ni ouverts ni fermés
    (g[ei ] = ∞ pour tout état ei ni ouvert ni fermé)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Condition pour que A* retourne une solution optimale

A

h doit être admissible

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Une heuristique est admissible si

A

∀e ∈ E, h(e) ≤ minf ∈F δ(e, f )

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Condition pour que chaque arc soit relâché au plus une fois

A

h doit être cohérente

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Une heuristique est cohérente si

A

∀ei ∈ E, ∀a ∈ actions(ei ) : h(ei ) ≤ cout(a) + h(t(ei , a))

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Si h n’est pas admissible

A

A* trouve un chemin sous-optimal en
développant moins d’états

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Weighted A* (WA*)

A
1 Fonction WA*(E, F , A, e_init , actions, t, h, w)
2 	fermés ← ∅ ; ouverts ← {e_init } ; g[e_init ] ← 0
3 	tant que gris 6 = ∅ faire
4 		Soit ei l’état de ouverts minimisant g[ei ] + w ∗ h[ei ]
5 		si ei ∈ F alors retourne (g[ei ], π);
6 		pour tout a ∈ actions(ei ) faire
7 			ej ← t(ei , a)
8 			si g[ei ]+cout(a) < g[ej ] alors
9 				g[ej ] ← g[ei ] + cout(a)
10 				π[ej ] ← ei
11 				si ej 6 ∈ ouverts alors Ajouter ej dans ouverts;
12 		Retirer ei de ouverts et l’ajouter dans fermés
13 retourne Pas de plan !
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Le paramètre w

A

permet de choisir un compromis entre qualité et durée (w + => durée - mais qualité - w)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Anytime Weighted A* (AWA*)

A
1 Fonction AWA*(E, F , A, einit , actions, t, h, w)
2 	fermés ← ∅ ; ouverts ← {einit } ; g[einit ] ← 0 ; borne ← ∞
3 	tant que ouverts 6 = ∅ faire
4 		Soit ei l’état de ouverts minimisant g[ei ] + w ∗ h[ei ]
5 		pour tout a ∈ actions(ei ) faire
6 			ej ← t(ei , a)
7 			si g[ei ]+cout(a) < g[ej ] alors
8 				g[ej ] ← g[ei ] + cout(a)
9 				π[ej ] ← ei
10 				si ej ∈ F alors borne ← g[ej ] ; Afficher borne ;
11 				sinon si g[ej ] + h[ej ] < borne alors Ajouter ej dans ouverts;
12 		Retirer ei de ouverts et l’ajouter dans fermés
13 	retourne borne
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Spécification d’un problème

A

Paramètres en entrée (avec éventuellement préconditions) et en sortie
Postrelation entre les valeurs des paramètres en entrée et en sortie

21
Q

Instance d’un problème

A

Valuation des paramètres en entrée satisfaisant les préconditions

22
Q

Algorithme pour un problème P

A

Séquence d’instructions élémentaires permettant de calculer les valeurs des paramètres en sortie
à partir des valeurs des paramètres en entrée, pour toute instance de P

23
Q

SAT

A

Satisfiabilité d’une formule booléenne (SAT)

Spécification du problème :
Entrées : une formule booléenne F définie sur un ensemble X de n variables
Sortie : un boolean B
Précondition : F est sous forme normale conjonctive (CNF)
Postrelation : F est satisfiable ⇔ B = vrai

24
Q

Complexité d’algorithme

A

Estimation des ressources nécessaires à l’exécution d’un algorithme
- en temps = du nombre d’instructions élémentaires
- en espace = de l’espace mémoire utilisé
NB : dépendante de la taille n des paramètres en entrée

25
Problème de décision
26
Complexité d’un problème de décision
27
Classe P
28
Classe NP
29
Relation entre P et NP
30
Problème NP-complet
31
Démonstration de NP-complétude :
32
Problèmes NP-difficiles
33
Comment résoudre un problème NP-difficile?
34
Comment explorer un espace de recherche de façon exhaustive ?
35
Recherche d’une clique
36
Inconvénient de cette procédure ? Elle continue la recherche même s’il ne peut pas y avoir de clique d’ordre k Couper la branche dans ce cas !
37
Techniques d’élagage :
38
Procédure pour décider si l’appel courant peut retourner vrai
39
Exemple : test sur la cardinalité de cand D’autres idées ? Heuristiques d’ordre :
40
Que change l’ordre de parcours des sommets de cand (ligne 4) sur l’arbre de recherche ?
41
Quel ordre choisir ?
42
Exploration incomplète de l’espace de recherche
On va utiliser des méta-heuristiques
43
Qu’est-ce qu’une méta-heuristique?
Approche générique pour explorer un espace de recherche - Exploration incomplète, sans garantie d’optimalité mais complexité polynomiale - Approche anytime (qualité améliorée au fil du temps)
44
Deux grandes familles de méta-heuristiques
Approches pertubatives et approches constructives
45
Approches perturbatives, modifiant itérativement des combinaisons
- modifications élémentaires --> recherche locale - croisements et mutations 66> algorithmes génétiques
46
Approche constructives, basées sur des modèles
modèles gloutons (aléatoires) modèles appris (EDA, ACO, RL
47
Algorithme glouton
Algorithme faisant des choix en utilisant des heuristiques, en général complexité polynomiale
48
Une approche gloutonne construit toujours la même solution
On va introduire de l’aléatoire pour diversifier les solutions calculées : paramètres pour régler le degré d'aléatoire