CM2 B Flashcards

1
Q

De quelle manière est-il possible d’accélérer une recherche Backtrack ?

A
  • En raisonnant sur les échecs (look-back)
  • En propageant les contraintes (look-ahead/forward)
  • En ordonnant les variables
  • En ordonnant les valeurs des domaines
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Quel est le principe du look-back ?

A

Il s’agit de foncer sur les éches et de réflechir après

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

Quelles sont les deux façons de raisonner sur les échecs (look-back) ?

A
  • Avoir un meilleur point de retour que celui par défaut : backjumping
  • Ne pas refaire les mêmes erreurs : nogood learning
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Comment fonctionne le backjumping ?

A

Lors du backtrack, lorsqu’un domaine est vidé, on remonte à la plus basse variable responsable de l’échec plutôt que de toujours remonter juste au niveau précédent

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

Comment fonctionne le nogood learning ?

A

Lors du backtrack, lorsqu’un domaine est vidé, on garde en mémoire la raison de l’échec en l’ajoutant aux contraintes pour ne pas retomber sur le même échec une deuxième fois

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

Quel est le principe du look-ahead/forward ?

A

Il s’agit de réfléchir d’abord ou ne pas descendre, c’est à dire d’enlever des branches qui conduisent à un échec avant de les explorer

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

Quelles sont les deux façons de faire du look-ahead/forward ?

A

Dans les deux cas il s’agit de propagation de contraintes :
- Forward-Checking (FC)
- Maintaining Arc Consistency (MAC)

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

Algorihtme du Forward-Checking (entrée, sortie, algorithme)

A
  • Entrée : Réseau N, Instanciation I
  • Sortie : Booléen
  • FC(N, I) :
    • Si |I| = |X|, renvoyer Vrai
    • Choisir xi !∈ I
    • Pour chaque valeur vi de D(xi) :
      • D(xi) ← {vi}
      • Supprimer tous les couples (xj, vj) inchohérents avec I ← I ∪ (xi, vi)
      • Si aucun domaine n’a été vidé :
        • Si FC(N, I ∪ (xi, vi)), renvoyer Vrai
      • Restaurer toutes les valeurs supprimées à cause du choix (xi, vi)
    • Renvoyer Faux
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Comment fonctionne l’algorithme du Forward-Checking ?

A

On construit une instanciation au fur et à mesure en prenant une variable non-instanciée et en construisant une branche pour chaque valeur de son domaine dans laquelle on supprime les valeurs incompatibles de tous les autres domaines, puis on coupe la branche si on obtient un domaine vide

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

Algorihtme MAC (entrée, sortie, algorithme)

A
  • Entrée : Réseau N
  • Sortie : Booléen
  • MAC(N) :
    • N = AC(N)
    • Si un domaine est vide, renvoyer Faux
    • Si tous les domaines sont réduits à des singletons et si c’est une solution, renvoyer Vrai
    • Choisir une variable xi dont le domaine n’est pas un singleton
    • Choisir une valeur vi de D(xi)
    • Renvoyer MAC(N+{xi = vi}) ∨ MAC(N+{xi != vi})
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Comment fonctionne l’algorithme MAC ?

A

On commence par calculer l’arc-cohérence, et si cela ne donne pas déjà une réponse, on prend une variable qui a plusieurs valeurs possibles et on branche sur l’une e ces valeurs avec = ou != puis on recommence

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

Comment évaluer l’efficacité des algorithmes de résolution ?

A

L’analyse asymptotique n’est pas adaptée donc on utilise des benchmarks de problèmes binaires aléatoires

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

Quels sont les paramètres des benchmarks de problèmes binaires aléatoires ?

A
  • le nombre de variables n
  • la taille des domaines d
  • la proportion de contraintes p1 → |C| = p1 × n(n-1)/2
  • l’étanchéité des contraintes p2 → |tuples interdits| = p2 × d2
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Conjecture de Cheeseman, Kanesfky et Taylor

A

Pour évaluer une méthoe de résolution :
- Prendre un problème NPC et identifier les k paramètres qui le caractérisent
- Fixer k-1 paramètres et varier le k-ième
- Pour chaque valeur du paramètre k, générer 100 instances

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

Qu’est-ce que la transition de phase ?

A

C’est le moment où, en faisant varier les paramètres, les problèmes passent de tous satisfiables à tous insatisfiables

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

Quel est l’intérêt de la transition de phase ?

A

C’est là que se trouvent tous les problèmes vraiment difficiles à résoudre et sur lesquels on voudrait comparer les algorithmes de résolution

17
Q

Qu’est-ce que les EHPS ?

A

Les Exceptionnaly Hard Problems sont des problèmes censés être faciles à résoure mais sur lesquels un des algorithmes peut rester bloqué à cause d’une erreur dans l’abre

18
Q

Qu’est-ce que l’existence des EHPS implique ?

A

Il vaut mieux considérer la médiane que la moyenne pour comparer les algorithmes de résolution

19
Q

Quelle conclusion sur les algorithmes de résolution a-t-on pu tirer de l’étude de la phase de transition ?

A

MAC est plus efficace que FC

20
Q

Pourquoi ordonner les variables pour le backtrack ?

A

Pour traiter les variables les “plus dures” en priorité afin de détecter les échecs le plus tôt possible et de réduire la profondeur de l’arbre

21
Q

Quels critères peuvent être choisis pour ordonner les variables ?

A
  • Le degré maximum (statique)
  • Le domaine minimum (dynamique)
  • Le ratio minimum dom/deg
  • Le ration minimum dom/(w×deg) avec w le nombre d’échecs
22
Q

Pourquoi choisir le degré maximum pour ordonner les variables ?

A

Pour réduire la profondeur de l’arbre, ce qui est plus efficace sur les réseaux dispersés

23
Q

Pourquoi choisir le domaine minimum pour ordonner les variables ?

A

Pour réduir la largeur de l’arbre, ce qui est plus efficace sur les réseaux denses

24
Q

Pourquoi ordonner les valeurs pour le backtrack ?

A

Pour choisir d’abord les valeurs les plus prometteuses possibles

25
Q

Quand est-ce qu’il est possible d’ordonner les valeurs pour le backtrack ?

A

Quand des experts du domaine concerné peuvent fournir un ordre des valeurs les plus prometteuses

26
Q

Qu’est-ce que la Singleton Arc-Cohérence ?

A

C’est l’arc-cohérence calculée pour chaque valeur en y réduisant le domaine de la variable