Académique Documents
Professionnel Documents
Culture Documents
Exercice 1 : (Heuristiques)
Deux amis A et B se trouvent sur une grille finie. Leur but est de se retrouver
sur une même case.
Chaque case sur la grille possède des coordonnées entières (x,y). Certaines
cases contiennent des obstacles, dans ce cas nous parlons de cases
occupées. Une case est libre si elle ne contient pas d’obstacle. Initialement les
deux amis se trouvent dans des cases libres. La figure 1 ci-dessous montre
une configuration avec les positions des deux amis et des obstacles (en noir
sur la figure 1).
Le but est de déplacer A et B en effectuant des sauts sur la grille de telle sorte
que les deux amis se retrouvent à la fin sur une même case libre. Soit (x1, y1)
la position d’un des deux amis. Un saut, noté (x1, y1) → (x2, y2), consiste à le
déplacer soit sur la ligne (horizontalement) soit sur la colonne (verticalement),
c’est-à-dire, il est impossible de modifier les coordonnées x et y en même
temps. On suppose qu’il est interdit de sauter au-dessus des obstacles et qu’il
est interdit de placer un ami sur une case occupé par un obstacle.
Chaque saut prend un temps égal à la distance entre les deux positions, c’est-
à-dire, le temps d’un saut de (x, y1) à (x, y2) est |y1 −y2|, et le temps d’un saut
de (x1, y) à (x2, y) est |x1 −x2|.
Un pas consiste à effectuer un saut simultané par les deux amis. Puisque le
temps du saut de chaque ami peut être différent (car parcourant une distance
différente), on suppose qu’à la fin de chaque pas un ami qui termine son saut
plus tôt doit impérativement attendre que l’autre termine le sien. Ensuite les
deux amis peuvent effectuer le saut simultané suivant etc., jusqu’à ce que les
deux amis se retrouvent dans une même case. Noter bien qu’il est possible
qu’un ami, et un seul à chaque fois, effectue un saut de longueur 0, qui ne
change pas sa position et qui prend le temps 0.
Le temps total est la somme des temps de tous les pas. Le problème que l’on
considère est celui de minimiser le temps total nécessaire pour que les deux
amis se retrouvent dans une même case. Il s’agit d’un problème de recherche :
il faut trouver le plus court chemin (c’est-à-dire le temps le plus court) qui
permet d’aller de la configuration initiale vers une configuration terminale.
[(xA,yA),(xB,yB)] → [(x’A,y’A),(x’B,y’B)]
est un pas (saut simultané des deux amis). Ecrire la formule qui donne le
temps
que prend un pas. Rappel : un pas se termine quand les deux amis terminent
leurs sauts.
Question 7 : Supposons que xA = xB (les deux amis sont sur la même ligne).
Quel est le temps minimal
pour mettre les deux amis sur la même case s’il n’y a pas d’obstacles ? Même
question pour le cas où les deux amis sont sur la même colonne.
pour mettre les deux amis sur une même case s’il n’y a pas d’obstacles ?
Question 11 : Donner une heuristique admissible qui est meilleure que les
autres heuristiques admissibles vues dans cet exercice.
Exercice 2 : (Recherche informée A*)
3 1
0 B C D 0
7
2 5
1
1
F E
0 1
NB :
- L’efficacité est mesurée en nombre de noeuds développés.
- Pour chaque cas, donner toute l'information nécessaire : le coût de chaque arc, la
valeur de l'heuristique pour chaque noeud, le noeud final.
- Pour chaque cas, l'heuristique utilisée doit être admissible.
- Il faut choisir les arbres les plus simples possible (le moins de noeuds possible, et le
plus faible degré possible).
Exercice 4 : (Min-Max, Alpha-beta)
Max
Min
Max
6 5 4 5 9 3 2 3 2 1 7 2 5 7 4 3 0 8 9
- Appliquer l’algorithme min-max à cet arbre. Quelle est la valeur que le joueur Max est
sûr de gagner quelque soit la façon de jouer du joueur Min ?
- Appliquer l’algorithme alpha-beta à cet arbre.
Exercice 5 : (Alpha-beta)
MAX A
MIN B C D
E F G H I J MAX
a b c d e f g h i j k l
Les feuilles a, b, c, …, k, l sont des entiers quelconques dans Z. On veut
étudier le fonctionnement de l’algorithme de parcours avec élagage Alpha-Beta
en fonction des valeurs des feuilles, et aussi des valeurs initiales de alpha et de
beta. En effet, tout ce qu’on suppose dans cet exercice est que alpha et beta
sont deux valeurs quelconques dans Z U {-∞, +∞}, telles que alpha < beta. On
considère que l’algorithme alpha-beta parcours l’arbre de gauche à droite.