Vous êtes sur la page 1sur 6

Intelligence Artificielle

TD2 (Corrigé)

Exercice 1
Questions directes
• Quelle est la distinction entre la recherche informée et la recherche non
informée?
Dans la recherche informée on utilise une estimation de la distance
entre le nœud en cours et le but. Tandis que la recherche non informée
n’utilise aucune information sur le but.

• Qu’est-ce qu’une heuristique?


Une heuristique est une estimation de la distance vers le but.

• Qu’est-ce qu’une heuristique admissible?


Une heuristique est admissible si elle ne surestime jamais le coût vers
le but.

• A * peut être considéré comme une combinaison de deux stratégies de


recherche, lesquelles ?
A* peut être vue comme la combinaison de la recherche à coût uni-
forme (uniform cost search) et de l’algorithme meilleur d’abord glou-
tonne (greeady best first search).

Vrai ou faux (Jusitiez)


• La recherche en profondeur d’abord visite toujours au moins autant de
nœuds que A* visite avec une heuristique admissible.
Faux: une recherche en profondeur d’abord chanceuse peut trouver la
solution en explorant d nœud (d est la profondeur du nœud but).

• h (n) = 0 est une heuristique admissible pour le 8-puzzle.


Vrai si les coûts sont positifs.

• A* n’est pas utile en robotique car les percepts, les états et les actions
sont continus.

1
Faux A* est souvent utilisée en robotique; l’espace d’états peut être
discrétisé.

• La recherche en largeur d’abord est complète même si des coûts nuls


sont autorisés.
Faux : C’est la profondeur de la solution qui compte pour la recherche
en largeur d’abord est non pas les coûts.

Exercice 2
Démontrez qu’une heuristique consistante est admissible. Construisez une
heuristique admissible qui n’est pas cohérente (consistante).
une heuristique est consistante si et seulement si, pour tout nœud n et chaque
successeur n0 de n généré par une action a: h(n) ≤ c(n, a, n0 ) + h(n0 )
Une preuve simple est par induction sur le nombre k de nœuds sur le chemin
le plus court vers n’importe quel but à partir d’un nœud n. Pour k = 1, soit
n0 le nœud but alors h(n) ≤ c(n, a, n0 )
Supposons que n0 soit sur le chemin le plus court à k étapes du but et que h(n0 )
soit admissible (par hypothèse), alors h(n) ≤ c(n, a, n0 )+h(n0 ) ≤ c(n, a, n0 )+
h ∗ (n0 ) = h ∗ (n)
Donc h(n) est admissible à k + 1 étapes du but.

Exercice 3 Recherche à coût uniforme

Pour le graphe ci-dessus, utiliser la recherche à coût uniforme pour trouver


le chemin de l’état A à l’état I. Indiquez le contenu de la liste OPEN dans
chaque étape.

2
• OPEN=(A,0)
A

• OPEN=(D,2);(G,3);(C,4);(B,5)
A→D

• OPEN=(G,3);(C,4);(E,4);(B,5);(H,5)
A→G

• OPEN=(C,4);(I,4);(E,4);(B,5);(H,5)
A→C

• OPEN=(I,4);(E,4);(B,5);(H,5);(F,5)
A→G→I

Les l’ordre des nœuds ayant le même coût dans la liste OPEN n’a pas
d’importance. Ainsi,
OPEN=(G,3);(C,4);(E,4);(B,5);(H,5) et
OPEN=(G,3);(E,4);(C,4);(H,5);(B,5) sont équivalente.

Exercice 3 Recherche heuristique


Considérez la carte suivante. L’objectif est de trouver le chemin le plus court
de A vers I. On donne également trois heuristiques, h1, h2 et h3. Le coût de

chaque connexion est indiqué.

3
1. Est-ce que h1, h2 et h3 sont admissibles ? Justifier.
Pour répondre à cette question, il faut d’abord calculer h* pour chaque
nœud. h*(n) est le coût optimal entre le nœud n et le but.

Nœud A B C D E F G H I
h1 10 5 5 10 10 3 3 3 0
h2 10 2 8 11 6 2 1 5 0
h3 10 2 6 11 9 6 3 4 0
h* 12 5 7 12 10 6 3 4 0

D’après le tableau ci-dessus, on :

• h1(n) ≤ h∗ (n) pour tous les nœuds. Donc h1 est admissible


• h2(C) > h∗ (C). Donc h2 n’est pas admissible
• h3(n) ≤ h∗ (n) pou tous les nœuds. Donc h3 est admissible

2. Est-ce que h4 = max(h1,h3) est admissible ? Justifier.


Oui, h1 et h3 sont admissible, alors h1(n) ≤ h∗ (n) et h3(n) ≤ h∗ (n) et
donc max(h1, h3) = h4(n) ≤ h∗ (n).

3. Appliquer la recherche meilleure d’abord gloutonne en utilisant h3.


Donner le contenu de la liste OPEN.

• OPEN=(A,10)
• OPEN=(C,6); (D,11)
• OPEN=(B,2); (H,4); (F,6); (D,11)
• OPEN=(I,0); (G,3); (H,4); (F,6); (D,11)

le chemin trouvé est : A → C → B → I

4. Appliquer la recherche A* en utilisant h1. Donner la suite des nœuds


développés.

• OPEN=(A,10=0+10)
A
• OPEN=(C,10=5+5);(D,15=5+10)
C
• OPEN=(F,10=(5+2)+3);(H,11=(5+3)+3);(B,13=(5+3)+5);(D,15)
F
• OPEN=(H,11);(G,13=(5+2+3)+3);(B,13);(D,15)
H

4
• OPEN=(I,12=(5+3+4)+0);(G,13);(B,13);(D,15)
I

le chemin trouvé est : A → C → H → I avec un coût de 12.

5. Appliquer la recherche A* en utilisant h3. Donner la suite des nœuds


développés.

• OPEN=(A,10=0+10)
A
• OPEN=(C,11=5+6);(D,16=5+11)
C
• OPEN=(B,10=(5+3)+2);(H,12=(5+3)+4);(F,13=(5+2)+6);(D,16)
B
• OPEN=;(H,12);(I,13=(5+3+5)+0);(F,13);(G,15=(5+3+4)+3);(D,16)
H
• OPEN=(I,12=(5+3+4)+0);(F,13);(G,15);(D,16)
I

le chemin trouvé est : A → C → H → I avec un coût de 12.


L’ordre du parcours des nœuds dépends de l’heuristique choisie. Mais,on
trouve toujours la même solution si les heuristiques utilisés sont admis-
sible comme le cas des deux questions précédentes.

6. Quelles relations de dominance existent entre ces trois heuristiques?


On dit qu’une heuristique h1 domine h2 si h1 et h2 sont admissibles et
h1(n) ≥ h2(n) pour tout n. Donc, puisque h2 n’est pas admissible, on
peut pas parler de dominance entre h1 et h2 ni entre h2 et h3.
En regardant le tableau des heuristiques, on remarque que ni h1(n) ≥
h3(n) ni h3(n) ≥ h1(n) pous tout n. Donc aucune heuristique ne
domine l’autre.

7. Appliquer la recherche A* en utilisant h4 = max(h1, h3). Donner la


suite des nœuds développés.

• OPEN=(A,10=0+10)
A
• OPEN=(C,11=5+6);(D,16=5+11)
C

5
• OPEN=(H,12=(5+3)+4);(F,13=(5+2)+6);(B,13=(5+3)+5);(D,16)
H
• OPEN=(I,12=(5+3+4)+0);(F,13);(B,13);(D,16)
I

le chemin trouvé est : A → C → H → I avec un coût de 12.

8. Si vous avez le choix entre trois heuristiques admissibles h1, h3 et h4 =


max(h1, h3) laquelle choisissez-vous ? Justifier.
D’après la question précédente, nous remarquons que h4 nous a permis
de parcourir un nombre de nœuds inférieur à celui parcouru en utilisant
h1 et h3. En général, si on a le choix entre deux heuristiques admissible
h1 et h2 avec h1(n) ≥ h2(n) pour tout n, alors on choisit h2. Pour
cette question, on préfère h4.

Vous aimerez peut-être aussi