Elements de Reponse Du

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 7

UFR-MIM Faouzi MOUSSA

Université de Lorraine

INTRODUCTION A L’INTELLIGENCE ARTIFICIELLE


TP2 – CC3
03/03/2022

TP2 : Ce TP2 sera évalué et la note comptera comme la 3ième note de CC.

L’évaluation ainsi que le rendu se feront lors de la dernière séance de TP.

EXERCICE : problème de manipulation de blocs (Vu en TD2).

ELEMENTS DE REPONSE DU
CC - TD2- Gr.1 IA 28 fevrier 2022 - L3
On dispose de trois cubes A, B et C, d’une table et d’un bras robotisé à programmer.
Le but recherché est de passer de l’état initial (a) à l’état final (b) (figure ci-dessous).

Tous les états du système peuvent être décrits par les prédicats suivants :
LIBRE( X ) : Exprime le fait que le cube X est libre et qu’il n’a donc aucun cube au-dessus de
lui, qu’il n’est pas tenu par le bras du robot, etc. (¬LIBRE( X ) exprimera le contraire de LIBRE(
X ) ).
SUR ( X , Y ) : Exprime le fait que le cube X et sur le cube Y (exemple SUR (C , A)).
SURTABLE ( X ) : Exprime le fait que le cube X est sur la table
BRASVIDE : Exprime le fait que le bras du robot est vide ( ¬BRASVIDE exprimera le contraire
de BRASVIDE ).
4 règles de production permettent de programmer le robot pour modéliser les actions TENIR
et DEPOSER les cubes. L’application de ces règles permettront de partir de l’état initial (a) et
d’arriver à la solution (état final (b)).
Voici une description informelle de ces 4 règles de production R1, R2, R3 et R4.
On exprime l’action de tenir un cube au moyen des deux règles suivantes :
R1 : SI le bras du robot est libre (vide) et si le cube X est libre et que X se trouve sur la table
ALORS le robot va tenir le cube X et mettre à jour l’état du système à la suite de cette action.
R2 : SI le bras du robot est libre et qu’un cube X est sur un cube Y et que le cube X est libre
ALORS le robot va tenir le cube X et mettre à jour l’état du système à la suite de cette action.
On exprime l’action de poser un cube au moyen des deux règles suivantes :
R3 : SI Le robot tient le cube X (TENIR ( X ) ) ALORS, mettre à jour l’état du système pour
exprimer l’action de poser le cube X sur la table et les conséquences sur l’état du système.
R4 : SI Le robot tient le cube X ET le cube Y est libre ALORS mettre à jour l’état du système
pour exprimer l’action de poser le cube X sur le cube Y et les conséquences sur l’état du
système.
NB : la conclusion de chaque règle doit mettre à jour l’état du système (bras, cubes, …) en
fonction des états cités plus haut.
Question 1 : Donner, au moyen des 4 prédicats cités plus haut, les descriptions de l’état
initial et de l’état final du système.
Eléments de réponse*
Ces états sont donnés à titre indicatif et peuvent être modélisées autrement.

Etat Initial Etat Final

Brasvide Brasvide

Surtable (B) libre (A)

Libre (B) Sur (A, B)

Surtable (A) Sur (B, C)

Sur (C, A) Surtable (C)

Libre (C)
Question 2 : Sachant qu’on désire représenter le problème par une approche espace d’états,
définir la définition formelle des 4 règles de production proposées en précisant (dans la
partie condition de la règle) les conditions d’application de chaque opérateur et (dans la
partie conclusion de la règle) les résultats de leurs applications sur l’encodage.
Une règle est de la forme SI C1 ET C2 … ALORS A1 ET A2 ET ¬A3 …

Eléments de réponse*
Ces règles sont données à titre indicatif et peuvent être modélisées autrement.

On exprime l’action de tenir un cube au moyen des deux règles suivantes :


R1 : SI BRASVIDE ET LIBRE (X) ET SURTABLE (X)
ALORS TENIR (X) ET ┐BRASVIDE ET ┐LIBRE(X) ET ┐SURTABLE(X)

R2 : SI BRASVIDE ET SUR (X,Y) ET LIBRE (X)


ALORS TENIR (X) ET LIBRE (Y) ET ┐BRASVIDE ET ┐SUR (X,Y) et ┐LIBRE (X)
On exprime l’action de poser un cube au moyen des deux règles suivantes :
R3 : SI ┐BRASVIDE
ALORS SURTABLE (X) ET LIBRE (X) ET BRASVIDE
R4 : Si ┐BRASVIDE ET LIBRE (Y)
ALORS SUR ( X , Y ) ET LIBRE ( X ) ET ┐LIBRE ( Y ) et BRASVIDE
Question 3 : Dessinez un arbre exploitant la stratégie largeur d’abord proposant un chemin
vers la première solution à ce problème. (Il n’est pas nécessaire de préciser Ouvert et
Fermé).

Extrait de l’arbre stratégie largeur d’abord


Question 4 : Nous allons à présent exploiter l’algorithme A* pour proposer le chemin vers la
première solution à ce problème.
Pour ce faire :
a) Proposez une fonction coût g.
Exemple de fonction g1 :
g1(X) = chaque opération du robot.
b) Proposez une fonction heuristique h en utilisant les états proposés plus haut.
Montrer que h(but) = 0.
Exemple de fonction h :
h1(X) = 6 – ( SUR (A,B) + SUR (B,C) + SURTABLE(C) ).
c) Donner un arbre exploitant l’algorithme A*. (il n’est pas nécessaire de
préciser Ouvert et Fermé) conduisant à la solution.
Remarque : Faite apparaitre de part et d’autre de chaque nœud la valeur de h (à gauche) et
la valeur de g (à droite). Voici le nœud racine de votre arbre :
Chaque niveau de votre arbre ne doit présenter que les nœuds développés lors d’une seule
itération.
Extrait de l’arbre stratégie A*
TRAVAIL DEMANDE
a) Implémentez l’algorithme de recherche A*.
b) Générez l’arbre conduisant à la première solution au moyen de votre programme
« A* » et des fonctions g1 et h1 précisées plus haut.
c) Proposez une autre fonction heuristique h2 et, éventuellement, une autre fonction
coût g2.
d) Générez l’arbre conduisant à la première solution au moyen de votre programme
« A* » et des fonctions g2 et h2 que vous avez proposé.
e) Comparez les résultats des deux exécutions et donnez vos conclusions et remarques
sur l’impact des fonctions f2 et g2 sur

Consignes
- Formez des groupes de 2 étudiants.
- Utilisez le langage de votre choix, toutefois, je préférerais que Python soit utilisé.
- Votre code devrait être paramétrable et l’exécution peut porter sur des données
différentes de celles proposées dans le sujet (placement des cubes).
- Votre code doit être commenté (10% du code doit être des commentaires :
obligatoire).
- L’évaluation ainsi que le rendu se feront lors de la dernière séance de TP.
- L’évaluation consistera à faire l’exécution du code ainsi qu’un éventuel code review.

Rendu
- Un mini rapport de TP (pdf) décrivant en détail votre codage, vos choix de
développement, les fonctions choisies…
- Votre fichier de code source.

Vous aimerez peut-être aussi