Professional Documents
Culture Documents
Compte rendu
la discipline : PLIA
Chiinu, 2017
But du travail :
Implantation des solutions en utilisant une approche dclarative (pb.1); Application dune
technique de recherche (pb.2-5); Utilisation des notions ensemblistes en Prolog (pb.6).
Travail effectu :
?- findall(P,auto(P,M,C),R).
R = [marc, jean, julie, nathalie, nathalie].
?- bagof(P,auto(P,M,C),R).
M = chrysler,
C = rouge,
R = [julie] ;
M = honda,
C = noire,
R = [nathalie] ;
M = honda,
C = rouge,
R = [marc, jean, nathalie].
?- findall(M,auto(P,M,C),R).
R = [honda, honda, chrysler, honda, honda].
?- setof(P,auto(P,M,C),R).
M = chrysler,
C = rouge,
R = [julie] ;
M = honda,
C = noire,
R = [nathalie] ;
M = honda,
C = rouge,
R = [jean, marc, nathalie].
?- bagof(M,auto(P,M,C),R).
P = jean,
C = rouge,
R = [honda] ;
P = julie,
C = rouge,
R = [chrysler] ;
P = marc,
C = rouge,
R = [honda] ;
P = nathalie,
C = noire,
R = [honda] ;
P = nathalie,
C = rouge,
R = [honda].
?- bagof(M,P^auto(P,M,C),R).
C = noire,
R = [honda] ;
C = rouge,
R = [honda, honda, chrysler, honda].
?- bagof(M,C^P^auto(P,M,C),R).
R = [honda, honda, chrysler, honda, honda].
?- setof(M,C^P^auto(P,M,C),R).
R = [chrysler, honda].
Probleme 1:
Qui a vol les biscuits ?
Nathalie a confectionn des biscuits. Elle les a rangs dans un placard quelle a ferm cl.
lheure du souper, les biscuits ont disparu. Grce une enqute serre, les indices et les faits suivants
sont rapports par Martin Tremblay, premier enquteur la brigade de police, son chef, Louis
Mnard. Ce dernier possde une copie de votre programme quil va utiliser pour cibler les suspects.
Voici les faits et les indices rcolts par Martin Tremblay.
Les personnages intervenant dans lhistoire sont : Simon (le frre de Nathalie), Albert (son oncle),
Kvin, John et Isabelle (des voisins directs). Nathalie ainsi que les membres de sa famille possdent
les cls du placard. Kvin, qui prouve des difficults financires, possde des canaris. Simon doit
suivre un rgime et est bless la main. On a retrouv des miettes de biscuits sur le bureau dAlbert.
John, qui tout sourit dans la vie, est grand, riche et mince. Enfin, Isabelle passe tout son temps libre
tester des recettes de Maman Dion. Par ailleurs, la porte du placard a t retrouve force.
Aprs mre rflexion, Louis Mnard met les hypothses suivantes :
1. Pour voler des biscuits, il faut en avoir besoin et y avoir accs.
2. On peut avoir besoin de biscuits soit parce quon est gourmand, soit parce quon veut les donner
quelquun.
3. Pour accder aux biscuits, il faut soit avoir les cls du placard, soit le forcer ou encore soudoyer un
dtenteur de cls.
4. La personne qui a forc la porte du placard a des chances davoir t gratigne par des clats de
bois.
5. On peut aussi soudoyer quelquun qui a besoin de biscuits mme s'il ne possde pas les cls du
placard.
6. On peut donner des biscuits quelquun parce quon doit le nourrir et quon na pas dargent pour
acheter de la nourriture.
7. Une personne, souffrant dembonpoint ou aimant cuisiner, a des chances dtre gourmande.
8. On fait des miettes en mangeant des biscuits.
9. Dans tous les cas, une personne soudoye aura srement mang des biscuits.
10. Si on possde des animaux, il faut les nourrir.
11. Si une personne doit suivre un rgime, elle souffre probablement dembonpoint.
Qui sont les suspects?
Les suspects sont tous les personnages qui interviennent dans lhistoire : Simon (le frre de
Nathalie), Albert (son oncle), Kvin, John et Isabelle (des voisins directs).
%Les faits:
a_cle(simon).
regim(simon).
main_blesse(simon).
a_cle(albert).
morceaux(albert).
manque_argent(kevin).
a_canaris(kevin).
grand(john).
riche(john).
mince(john).
teste_recettes(isabelle).
Les rgles en Prolog pour les hypothses mises :
1) vole(X):-a_besoin(X),a_acces(X).
2) a_besoin(X):-gourmand(X);donne(X).
3) a_acces(X):-a_cle(X);force(X);soudoye(X,Y).
4) force(X):-main_blesse(X).
5) soudoye(X,Y):-a_cle(Y).
6) soudoye(X,Y):-a_besoin(Y),not(a_cle(Y)).
7) donne(X):-manque_argent(X),nourri(Y).
8) gourmand(X):-embonpoint(X);teste_recettes(X).
9) mange(X):-morceaux(X).
10) soudoye(X,Y):-mange(Y).
11) nourri(X):-a_canaris(X).
12) embonpoint(X):-regim(X).
Les personnes impliques dans la vole des biscuits :
?- setof(X,vole(X),R).
R = [isabelle, kevin, simon].
?- a_besoin(X).
X = simon ;
X = isabelle ;
X = kevin.
?- a_acces(X).
X = simon ;
X = albert ;
X = simon ;
?- soudoye(X,Y).
Y = simon ;
Y = albert ;
Y = isabelle ;
Y = kevin ;
?- mange(X).
X = albert.
Pourquoi certains personnages peuvent-ils tre suspects de plusieurs manires ?
Existe des personnages suspects de plusieurs manires parce quil existe plusieurs propositions pour les
conditions pose dans le cas de ce vol.
Est-ce que tous les faits ont t ncessaires pour trouver la rponse ?
Non, il y a des faits non-importants qui ne sont pas ncessaire pour trouver les suspects (ex : John, qui tout
sourit dans la vie, est grand, riche et mince.)
Comment expliqueriez-vous le processus de recherche effectu par le programme?
Le programme recherche les solutions du problme daprs les rgles de logique dclares par le programmateur,
en leur associant des consquences plus ou moins directes..
Probleme 2:
On a demand Thomas de programmer le jeu du puzzle-8. Lensemble ordonn des oprateurs permis est le
suivant : {, , , }. Ces oprateurs sont respectivement : dplacer * vers la gauche, dplacer * vers le haut,
dplacer * vers la droite, dplacer * vers le bas. Une configuration est reprsente l'aide d'une liste ou d'un
tableau.
Par exemple, la liste L= [1, 2, 3, 8,'*', 4, 7, 6, 5] reprsente le tableau
123
8*4
765
La configuration finale recherche est L. Les configurations initiales considres sont :
L1 = [1, 2, 3, 8, 4,*,7,6,5]
L2 = [1, 2, 3,*, 8, 4, 7, 6, 5]
L3 = [1, *,3, 8, 2, 4,7, 6,5]
L4 = [1, 2,*, 8, 4, 3, 7, 6,5]
Les stratgies de recherche considres sont : hill-climbing (HC), largeur (LAR), profondeur (PRO). Le
retour arrire est autoris. Lheuristique considre par Thomas est le nombre de tuiles qui ne sont pas la bonne
place. Dans le but de faciliter le test de son programme, Thomas tablit un banc dessais.
a) On demande de complter le tableau de Thomas en indiquant les stratgies de recherche qui permettent de
passer de la configuration initiale la configuration finale.
Configuration finale dsire : L = [1, 2, 3, 8,*, 4, 7, 6, 5]
1. L1 = [1, 2, 3, 8, 4,*, 7, 6, 5] ()
1 2 3
8 4 *
0 3
7 6 5
1 2 3 3
1 2 3
8 * 4 8 4 5
7 6 5 7 6 *
Etat dsir 1 2 *
8 4 3
7 6 5
2. L2 = [1, 2, 3,*, 8, 4, 7, 6, 5] (, )
1 2 3
* 8 4 3
3 7 6 5
* 2 3 1 2 3
0
1 8 4 7 8 4
7 6 5 * 6 5
4 2
1 2 3
8 * 4
7 6 5
Etat dsir
2 * 3 1 2 3
1 8 4 * 8 4
7 6 5 7 6 5
3. L3 = [1, *, 3, 8, 2, 4, 7, 6, 5] (, , )
1 * 3
8 2 4
3 7 6 5 0
* 1 3 1 2 3
8 2 4 3 8 * 4
7 6 5 7 6 5
2
4 1 3 *
8 2 4
1 * 3 8 1 3 7 6 5
8 2 4 * 2 4
7 6 5 7 6 5
1 0
1 2 3 1 2 3
8 * 4 8 * 4
7 6 5 7 6 5
Etat dsir Etat dsir
4. L2 = [1, 2, 3,*, 8, 4, 7, 6, 5] ()
1 2 3
3
* 8 4 3
7 6 5
* 2 3 0
1 2 3
1 8 4 7 8 4
7 6 5 1 2 3
8 * 4 * 6 5
7 6 5
Etat dsir
5. L3 = [1, *, 3, 8, 2, 4, 7, 6, 5] ()
1 * 3
8 2 4 0
3
7 6 5
* 1 3 1 2 3
8 2 4 3 8 * 4
7 6 5 7 Etat
6 5dsir
Etat dsir
1 3 *
8 2 4
7 6 5
6. L4 = [1, 2,*, 8, 4, 3, 7, 6, 5] (, )
1 2 *
8 4 3 2
4
7 6 5
1 * 2 1 2 3
8 4 3 8 4 *
7 6 5 7 6 5
0 3 3
1 2 3 1 2 * 1 2 3
8 * 4 8 4 3 8 4 5
7 6 5 7 6 5 7 6 *
Etat dsir
On peut utiliser la technique de meilleur dabord. Cette technique chaque tape de la recherche
gnre la liste des tats accessibles depuis ltat courant, calcule les valeurs de la fonction heuristique
et les attribue cette valeur, et enfin ordonne cette liste daprs la valeur heuristique.
Probleme 3:
Soit le graphe suivant, reprsentant un espace de recherche. Chaque lettre reprsente un tat et
chaque flche une opration possible pour passer dun tat un autre. Indiquez la suite des tats
parcourir pour passer de ltat A ltat X par la technique de recherche en profondeur dabord. Les
numros associs aux flches sortant dun tat reprsentent lordre dans lequel les oprations doivent
tre appliques pour cet tat. Aucun tat ne devra tre revisit
OUVERTES FERMES
[A] []
[C,D,E,B] [A]
[H,I,G,D,E,B] [A,C]
[Q,R,P,I,G,D,E,B] [A,C,H]
[R,P,I,G,D,E,B] [A,C,H,Q]
[P,I,G,D,E,B] [A,C,H,Q,R]
[I,G,D,E,B] [A,C,H,Q,R,P]
[G,D,E,B] [A,C,H,Q,R,P,I]
[D,E,B] [A,C,H,Q,R,P,I,G]
[J,K,E,B] [A,C,H,Q,R,P,I,G,D]
[S,T,U,K,E,B] [A,C,H,Q,R,P,I,G,D,J]
[T,U,K,E,B] [A,C,H,Q,R,P,I,G,D,J,S]
[U,K,E,B] [A,C,H,Q,R,P,I,G,D,J,S,T]
[K,E,B] [A,C,H,Q,R,P,I,G,D,J,S,T,U]
[E,B] [A,C,H,Q,R,P,I,G,D,J,S,T,U,K]
[M,L,B] [A,C,H,Q,R,P,I,G,D,J,S,T,U,K,E]
[L,B] [A,C,H,Q,R,P,I,G,D,J,S,T,U,K,E,M]
[X,W,V,B] [A,C,H,Q,R,P,I,G,D,J,S,T,U,K,E,M,
L]
[W,V,B] [A,C,H,Q,R,P,I,G,D,J,S,T,U,K,E,M,
L,X]
Success
Probleme 4:
Julie samuse avec une version lectronique du jeu du puzzle-8 quelle a trouve sur Internet. Elle
joue depuis un moment dj et voudrait bien atteindre la configuration suivante :
123 283
8 * 4 configuration dsire 164
765 7*5
A) Expliquez comment vous pouvez aider Julie en utilisant la recherche dans un espace
dtats.
Expliquez comment formuler le problme.
Si on a besoin dutiliser exclusivement une technique de recherche dans un espace dtats, on peut
utiliser les algorithmes de profondeur dabord ou de largeur dabord. La technique de profondeur
dabord est plus optimale parce que pour chaque configuration actuelle du jeu on choisit les oprations
qui mnent au configuration-fils, et on analyse les configurations obtenues.
B) Considrons la technique du meilleur dabord avec lheuristique le nombre de tuiles mal places,
y compris la tuile marque * .
En utilisant la technique du meilleur dabord on choisit les tats avec les nombres de tuiles
mal places les plus petits possibles.
2 8 3
1 6 4
7 * 5 6
6
2 8 3 2 8 3
1 6 4 1 6 4
2 8 3 7 5 *
* 7 5
4 1 * 4 5
7 6 5
4 5 2 8 3
2 8 3 1 6 4
* 1 4 7 * 5
7 6 5 2 * 3 2 8 3
1 8 4 1 4 *
4 5 7 6 5 7 6 5
2 8 3
7 1 4
* 8 3 * 6 5
2 1 4 3 5
2 8 3
7 6 5
1 * 4 4
7 6 5
2 8 3
* 2 3 2 3 *
On arrive dans 1 * 4
1 8 4 1 8 4
letat precedente: 7 6 5
7 6 5 7 6 5
On arrive dans un
4 2 etat precedente:
2 * 3 1 2 3
1 8 4 * 8 4
7 6 5 7 6 5
3
0
* 2 3
1 8 4 1 2 3
7 6 5 8 * 4
7 6 5
Etat dsir
Probleme 5:
Soit larbre suivant dans lequel le noeud P dsigne ltat initial. La notation P : 10
signifie que la valeur de la fonction heuristique au noeud P est gale 10.
Quelle que soit la technique de recherche utilise, aucun tat ne devra tre revisit.
La recherche a toujours comme point de dpart ltat initial et sarrte ds que la valeur de
la fonction heuristique du nud enfant augmente (chec de la recherche) ou est nulle
(succs de la recherche, le but est atteint).
Si plusieurs nuds sont candidats, on choisit le nud le plus gauche.
Pour chacune des techniques de recherche suivantes, numrer la liste ordonne des nuds
traverss. Indiquer aussi sil sagit dun succs ou dun chec de la recherche : a) hill-climbing ; b) le
meilleur dabord.
a) hill-climbing
Ouverts Ferms
[P] []
[R,S,Q] [P]
chec [P,R]
b) le meilleur dabord
Ouverts Ferms
[P] []
[R,S,Q] [P]
[S,Q,W,V] [P,R]
[Y,X,Q,W,V] [P,R,S]
succs [P,R,S,Y]
Probleme 6:
Un rgime de bananes est accroch au centre du plafond de la cage d'un singe, et hors de sa
porte. Cependant, en grimpant sur une bote qui est dans sa cage prs de la porte, aprs l'avoir
dplace l'endroit dsir, il pourra atteindre les fruits.
Le singe peut donc effectuer une ou plusieurs des actions suivantes : marcher sur le sol,
grimper sur la bote, pousser la bote ou saisir une banane s'il est juch sur la bote au centre de la
cage. Est-ce que le singe est vraiment capable d'attraper une banane ?Il est facile pour un humain de
rpondre cette question, mais pour un ordinateur la tche est plus complexe. Nous allons donc
rsoudre ce problme de faon dclarative l'aide du langage Prolog.
1. La premire tche est de reprsenter le problme, soit ici le "monde du singe". Ce dernier est
toujours dans un certain tat qui peut varier au cours du temps. Quels sont les lments du "monde du
singe", donc d'un tat ? Quel est l'tat initial du problme ? Lexprimer en Prolog en utilisant un
prdicat tatInitial (Son arit est dfinir en fonction des lments qui composent le monde du
singe).
Les lments du monde du singe :
- X1 : position du singe dans la cage (a),
- X2 : position de la boite dans la cage (b),
- X3 : position du singe par rapport la boite (1 au dessus, 0 sur le sol),
- X4 : possession de la banane(1-possde, 0-ne possde pas).
3. Ce problme peut tre vu comme un jeu dont le but est d'arriver l'tat final en partant de
l'tat initial et ceci seulement en utilisant les rgles du jeu. Ces rgles sont ici les actions
possibles du singe ou oprateurs qui permettent de passer dun tat un autre. Quelles sont
ces actions ou oprateurs ?
Les actions possibles :
Marcher sur le sol
Pousser la bote
Grimper sur la bote
Saisir une banane
4. Programmer ces actions en Prolog. Pour chaque action, il faut donner son nom, l'tat
courant et l'tat suivant obtenu aprs application de laction. Un seul prdicat doit tre utilis
pour reprsenter un tat.
La relation actionner exprime toutes les modifications possibles de ltat du systme :
actionner(Etat1, A, Etat2)
Etat1 : tat avant laction,
A : action,
Etat2 : tat aprs laction.
peut_prendre(etat(_,_,_,1)).
peut_prendre(Initial):-actionner(Initial,Action,Final),peut_prendre(Final).
Le rsultat :
?- peut_prendre(etat(a,b,0,0)).
true
Conclusion:
Dans ce travail de laboratoire nous avons pratiqu nos connaissances acquis pendant ltude
des techniques de recherches. Nous avons implment des solutions en utilisant une approche
dclarative, nous avons appliqu diffrents technique de recherche pour rsoudre diffrentes
types de problmes (tant des techniques exhaustives quheuristiques) et enfin, nous avons
utilis les notions ensemblistes en Prolog.