TD Taquin par A* // Gestion de conteneurs

mardi 5 avril 2016
par  Emmanuel Adam
popularité : 3%

Des conteneurs doivent être triées dans un entrepôt constitué de palettes permettant des déplacements longitudinaux et latéraux des objets qu’elles supportent.

Ici 8 produits doivent être triés (1, ..., 8).

En reprenant le principe de la résolution par heuristique de l’algorithme A* ;
donnez les états, leurs évaluation et le meilleurs choix à partir de la grille suivante jusqu’à la grille but.
Cette grille a été obtenue avec un coût de g(t) = 12.

Grille initiale

1 2 3
4 6 8
7 5 x

Grille But

1 2 3
4 5 6
7 8 x

Ceci reprend le principe du taquin.
Un mouvement du taquin consiste à faire glisser une case numérotée vers la case vide (X dans les tableaux ci-dessus), la case vide prend alors la place de la case déplacée.

Vous donnerez les différents états à partir de chaque état (il y a entre 2 et 4 états possible à partir d’un état donné), en commençant à l’état but et en choisissant à chaque étape l’état de coût f minimal.

Pour rappel, f(e) = g(e)+h(e) avec g = coût (nombre de mouvements ayant mené à l’état courant) et h(e) l’estimation du coût restant mener au but.

Ici, deux heuristiques seront à calculer :

  • h1(e) = nombre de cases mal placées,
  • h2(e) = somme des distances de Manhattan entre chaque case et sa place finale.
    La distance dm(p1,p2) de Manhattan entre deux points p1(x1, y1) et p2(x2, y2) est égale à
    dm=∣x2−x1∣ + ∣y2−y1∣
    Par exemple, dans la table initiale, la distance de Manhattan entre la case contenant 1 (en (1,1)) et la case contenant 8 (en (3,2)) est de ∣3−1∣ + ∣2−1∣ = 3

Vous trouverez sur ce lien un EXECUTABLE JAVA codant la résolution du Taquin pas A* et ces deux heuristiques présentées.


Aide

Remarque, il y a toujours au moins 2 états suivant possibles.
A partir de la grille initiale, il est possible d’obtenir les états suivants :

e1

1 2 3
4 6 x
7 5 8

e2

1 2 3
4 6 8
7 x 5