Corrigé

Transcription

Corrigé
Examen d’Intelligence Artificielle
Lundi 22 novembre 2010
É. Salvat
Promotion Humpich
2ième année
Année 2010-2011
Modalités :
– Durée : 2 heures
– Aucun documents autorisés, ni machine à calculer, ni téléphone.
– Toute sortie est définitive !
– Le barème est donné à titre indicatif.
Exercice 1. Questions de cours - 5 points
Pour les questions de cours à choix multiples, vous répondrez sur votre copie en notant simplement le
numéro de la question et le(s) numéro(s) de(s) la réponse(s) correspondante(s) (les questions peuvent
avoir plusieurs réponses possibles). e.g. : question 0 réponses c et d
1. Soit π = (X, D, C, R) le CSP tel que :
– X = {X1 ; X2 ; X3 }
– D = {D1 ; D2 ; D3 } avec D1 = D2 = D3 = {a; b; c; d}
– C = {C1 = (X1 , X2 ); C2 = (X1 , X3 ); C3 = (X2 , X3 )}
– R = {R1 = {(a, b); (a, d); (b, a); (b, b); (c, a); (d, d)};
R2 = {(b, c); (b, d); (c, a); (c, d); (d, b)};
R3 = {(a, b); (a, d); (b, d); (c, b); (d, a); (d, b)}}
Parmi les affirmations suivantes la/les quelle(s) est/sont exacte(s) :
(a) La valeur c n’est pas arc-consistante pour la variable X1
(b) La valeur c n’est pas arc-consistante pour la variable X2
(c) La valeur c n’est pas arc-consistante pour la variable X3
2. Le calcul de la consistance d’arc sur un CSP :
(a) garantit de trouver une solution,
(b) peut ne rien changer dans le CSP traité
(c) peut restreindre l’espace de recherche
(d) restreint systèmatiquement l’espace de recherche
3. La complexité en espace de l’algorithme de recherche en profondeur d’abord pour un facteur de
branchement b et une profondeur maximale finie m est en :
(a) O(bm )
(b) O(b + m)
(c) O(pm )
(d) O(b ∗ m)
4. Soit le graphe suivant, la valeur portée sur chaque arc correspond au coût de passage d’une extrémité
de l’arc à l’autre. On souhaite calculer le plus court chemin de A à H avec l’algorithme A*.
3
A
4
B
9
C
4
5
D
4
F
1
8
6
G
2
J
9
2
8
3
I
7
12
1
5
2
11
E
H
On a de plus la fonction heuristique h qui estime le coût pour atteindre H depuis chaque sommet.
h est donnée par le tableau ci dessous.
A
9
Voici la
Etape
Init
1
2
3
4
B
7
C
3
D
2
E
6
F
1
G
2
H
0
I
4
trace des 3 premières étapes de l’éxécution de l’algorithme
Choix
Ouverts
{A(0, 9)}
A(0, 9) {B(2, 9); C(5, 8); E(3, 9)}
C(5, 8) {B(2, 9); E(3, 9); D(9, 11); F (9, 10); G(14, 16)}
B(2, 9) {E(3, 9); D(7, 9); F (9, 10); G(14, 16)}
J
6
:
Fermés
∅
{A(0, 9)}
{A(0, 9); C(5, 8)}
{A(0, 9); C(5, 8); B(2, 9)}
(a) Complétez le tableau pour la quatrième étape.
On a deux choix possibles : E ou D. Ce qui donne une des deux possibilité ci dessous :
Etape Choix Ouverts
Fermés
4
E(3, 9) {D(7, 9); F (9, 10); G(14, 16); C(4, 7); I(14, 18)} {A(0, 9); B(2, 9); E(3, 9)}
Etape
4
Choix
D(7, 9)
Ouverts
{E(3, 9); F (9, 10); G(14, 16)}
Fermés
{A(0, 9); C(5, 8); B(2, 9); D(7, 9)}
5. Parmi les affirmations suivantes la/les quelles(s) est/sont exacte(s) :
(a) l’algorithme de ”Largeur d’abord” est adéquat ;
(b) l’algoritme de ”l’escalade” est adéquat ;
(c) l’agorithme ”A*” est adéquat ;
(d) l’algorithme du ”Recuit simulé” est adéquat.
Pour les exercices suivants vous prendrez soin d’expliquer tout ce que vous faites et de justifier toutes
vos réponses.
Exercice 2. α − β - 5 points
On considère un jeu à deux joueurs dont l’arbre de jeu est donné par le schéma ci-dessous.
-3
-4
-2
4
2
-5
3
2
-5
-6
-1
4
-6
-5
6
-3
-2
1. Appliquez l’algorithme α − β à ce jeu.
2. Qui est le vainqueur, et avec combien de points ?
Corrigé de l’exercice 2.
1. L’application de l’algorithme α − β est représentée par la figure ci dessous. En bleu les valeurs
d’appel de α et β, en rouge les valeurs de retour. On nomme M in et M ax les deux joueurs.
M ax commence. L’algorithme calcule sur chaque noeud une valeur de retour. Sur les noeuds Max,
on affecte α au maximum entre sa valeur courante et la valeur de retour de chacun des fils des
noeuds. Si la valeur de retour d’un fils est supérieure ou égale à la valeur courante de β, on stoppe
l’exploration des fils du noeud actuel, et l’on retourne cette valeur. De même sur un noeud Min, on
2
3
affecte β au minimum entre la valeur courante et la valeur de retour de chacun des fils. Et lorsque
la valeur de retour d’un fils est inférieure ou égale à α, on stoppe l’exploration des fils du noeud
actuel, et l’on retourne cette valeur.
Max
(−∞, +∞)
α=-3
-3
Min
β=-3
-3
Max
(−∞, +∞)
-2
-5
(−3, +∞)
β=3 β=-5
2
3
β=-5
-4
-2
-3
(−3, +∞)-2
(−∞, +∞) -4
(−∞, −3) 4
2
3
(−∞, −3)
2
-5
2
-5
(−3, +∞)
v=-6
v=-5
-6
(−3, +∞) 2
(−3, 3) (−3, 3)
(3, +∞) -5
3
-6
(−3, +∞)
-5
-5
(−∞, +∞)
(−∞, −3)
(−∞, −3)
(−3, +∞)
(−3, 3)
α=-3
α=-3 α=-2
α=2
α=3
v=-5
v=-5
-3
Min
-5
-6
–1
4
-5
(−3, +∞)-5
6
-6 (−3, +∞)
-3
2. C’est Min qui gagne avec 3 points.
Exercice 3. Qui a gagné la médaille d’or - 10 points
Jean, Pierre, Paul, André et Roland ont été sélectionnés pour les Jeux Olympiques, chacun dans une
seule spécialité. Ils sont alignés, du premier au dernier, sur un podium pour recevoir les félicitations du
président des Etats Unis d’Europe. On sait que :
– Pierre a le bras cassé ;
– Une entorse a empêché l’un des grands favoris de terminer les jeux ;
– Paul fait de l’équitation ;
– Le spécialiste du saut à la perche boit du café ;
– Le buveur de jus de fruits a eu une insolation ;
– Le spécialiste du décathlon a attrapé un rhume ;
– Paul est mieux classé que Roland ;
– Le buveur d’eau a eu la médaille d’or ;
– André boit du thé ;
– Celui du milieu fait de l’escrime ;
– Le premier à gauche a un cocard à l’oeil ;
– Le buveur de lait est à côté de celui qui a fini quatrième ;
– Le buveur de thé est à côté de celui qui a eu une médaille de bronze ;
– Celui qui a un cocard à l’oeil est à côté de Jean.
Qui fait de la boxe ? Qui a eu une médaille d’or ?
Evidemment, chaque participant a sa boisson préférée et chacun a eu une seule blessure.
1. Proposez un CSP qui permette de représenter ce problème. Vous prendrez soin d’expliquer votre
modélisation.
2. Résolvez le CSP que vous avez proposé précédemment à l’aide de l’algorithme du Forward Checking.
Alors, qui a eu la médaille d’or ?
Corrigé de l’exercice 3.
Pour résoudre ce problème, il faut trouver quelle est la place de chaque participant (du 1er au dernier).
De plus les différents attributs (sport, boisson ou blessure) sont aussi utilisés pour identifier une personne.
On cherche donc à affecter une position (une valeur entre 1 et 5) à chaque personne, ainsi qu’à chaque
sport, boisson et blessure. Cela devrait donner 20 variables.
Cependant, certaines des informations de l’énoncé permettent de connaı̂tre les valeurs de plusieurs
de ces variables qui, de fait, sont donc des constantes. Il s’agit des phrases suivantes :
– Une entorse a empêché l’un des grands favoris de terminer les jeux ;
– Le buveur d’eau a eu la médaille d’or ;
– Celui du milieu fait de l’escrime ;
– Le premier à gauche a un cocard à l’oeil ;
– Celui qui a un cocard à l’oeil est à côté de Jean.
3
-2
3
Cela nous permet de déduire :
– entorse = 5 (jeux non finis = dernière position)
– eau = 1 ( médaille d’or = 1ère place)
– escrime = 3 (place du milieu = 3ème place)
– cocard = 1 (1ère place à gauche =1er)
– Jean = 2 (une seule place à côté du 1er : la 2ème)
Bien entendu, les valeurs de ces constantes sont à enlever des domaines des variables de la même
famille.
1. On construit le CSP π = (X, D, C, R) avec :
– X = {P ierre; P aul; Andre; Rolland; equitation; saut; decathlon; boxe; caf e; jus; the; lait; brascasse;
insolation; rhume}
– D = {DP ierre ; DP aul ; DAndre ; DRolland ; Dequitation ; Dsaut ; Ddecathlon ; Dboxe ; Dbrascasse ; Dinsolation ;
Drhume ; Dcaf e ; Djus ; Dlait ; Dthe } avec :
– DP ierre = DP aul = DAndre = DRolland = {1; 3; 4; 5}
– Dequitation = Dsaut = Ddecathlon = Dboxe = {1; 2; 4; 5}
– Dbrascasse = Dinsolation = Drhume = {2; 3; 4}
– Dcaf e = Djus = {2; 3; 4; 5}
– Dlait = {3; 5} car ”Le buveur de lait est à côté de celui qui a fini quatrième”
– Dthe = {2; 4} car ”Le buveur de thé est à côté de celui qui a eu une médaille de bronze”
– Les phrases non encore exploitées de l’énoncé permettent de définir 7 contraintes, auxquelles il
faut ajouter les contraintes exprimant que deux variables de même type ont obligatoirement deux
valeurs différentes : C
= {C1
= (P ierre; brascasse); C2
= (P aul; escrime);
C3 = (saut; caf e); C4 = (jus; insolation); C5 = (decathlon; rhume); C6 = (P aul; Rolland);
C7 = (Andre; the); C8 = (equitation; saut); C9 = (equitation; decathlon); C10 = (equitation; boxe);
C11 = (saut; decathlon); C12 = (saut; boxe); C13 = (decathlon; boxe); C14 = (P ierre; P aul);
C15 = (P ierre; Andre); C16 = (P ierre; Rolland); C17 = (P aul; Andre); C18 = (Andre; Rolland);
C19 = (caf e; jus); C20 = (caf e; the); C21 = (jus; the); C22 = (caf e; lait); C23 = (jus; lait);
C24 = (the; lait); C25 = (brascasse; insolation); C26 = (brascasse; rhume); C27 = (insolation; rhume)}
– R = {R1 ; R2 ; R3 ; R4 ; R5 ; R6 ; R7 ; R8 ; R9 ; R10 ; R11 ; R12 ; R13 ; R14 ; R15 ; R16 ; R17 ; R18 ; R19 ; R20 ; R21 ;
R22 ; R23 ; R24 ; R25 ; ; R26 ; R27 } avec
– R1 = {(3, 3); (4, 4)}
– R2 = {(1, 1); (4, 4); (5, 5)}
– R3 = {(2, 2); (4, 4); (5, 5)}
– R4 = {(2, 2); (3, 3); (4, 4)}
– R5 = {(2, 2); (4, 4)}
– R6 = {(1, 3); (1, 4); (1, 5); (3, 4); (3, 5); (4, 5)}
– R7 = {(4, 4)}
– R8 = R9 = R10 = R11 = R12 = R13 = {(1, 2); (1, 4); (1, 5); (2, 1); (2, 4); (2, 5); (4, 1); (4, 2); (4, 5);
(5, 1); (5, 2); (5, 4)}
– R14 = R15 = R16 = R17 = R18 = {(1, 3); (1, 4); (1, 5); (3, 1); (3, 4); (3, 5); (4, 1); (4, 3); (4, 5); (5, 1);
(5, 3); (5, 4)}
– R19 = {(2, 3); (2, 4); (2, 5); (3, 2); (3, 4); (3, 5); (4, 2); (4, 3); (4, 5); (5, 2); (5, 3); (5, 4)}
– R20 = R21 = {(2, 4); (3, 2); (3, 4); (4, 2); (5, 2); (5, 4)}
– R22 = R23 = {(2, 3); (2, 5); (3, 5); (4, 3); (4, 5); (5, 3)}
– R24 = {(2, 3); (2, 5); (4, 3); (4, 5)}
– R25 = R26 = R27 = {(2, 3); (2, 4); (3, 2); (3, 4); (4, 2); (4, 3)}
2. Résolution. Pour tirer partie des différentes tailles des domaines des variables, on choisit l’ordre des
variables en fonction de ces tailles. On commence donc par une variable ayant un domaine des plus
petits (thé ou lait). On choisira ensuite les variables au fur et à mesure en fonction des résultats
des filtres opérés par le Forward checking.
4
thé
2
4
DAndre = {4}
Dcaf e = Djus = {2; 3; 5}
DAndre = ∅
4
André
DP ierre = DP aul =
DRolland = {1; 3; 5}
3
Lait
café
saut
jus
2
Djus = {5}
Dsaut = {2}
rhume
2
5
2
Dsaut = {2}
Djus = {3}
2
Dequitation = Dboxe =
Ddecathlon = {1; 4; 5}
2
3
Dinsolation = {2}
Dinsolation = {3}
2
3
Dbrascasse = {3; 4}
Drhume = {3; 4}
3
4
Drhume = {4}
DP ierre = {3}
Drhume = {3}
DP ierre = {4}
4
3
Ddecathlon = {4} Ddecathlon = ∅
3
DP aul = {1; 5}
DRolland = {1; 5}
4
decathlon
Paul
3
Dsaut = ∅
5
Dinsolation = ∅
Pierre
equitation
5
Djus = {2}
Dsaut = {5}
Dcaf e = Djus = {2; 3}
Dequitation = Dboxe = Dequitation = Dboxe =
Ddecathlon = {1; 4; 5} Ddecathlon = {1; 2; 4}
insolation
brascasse
5
Dcaf e = Djus = {2; 5}
Dequitation = {1; 2}
Dboxe = {1; 2}
1
DP aul = {1}
Dboxe = {2}
2
DP aul = ∅
1
DRolland = {5}
Rolland
5
boxe
2
5
Dbrascasse = {2; 4}
Drhume = {2; 4}
2
DP ierre = ∅
4
DP ierre = ∅
On une seule solution, représentée dans le tableau ci-dessous :
Nom
Sport
Boisson
Blessure
1er (or)
Paul
équitation
eau
cocard
2ème (Argent)
Jean
boxe
jus de fruits
insolation
3ème (Bronze)
Pierre
escrime
lait
bras cassé
4ème
André
décathlon
thé
rhume
5ème
Rolland
saut à la perche
café
entorse
Les cellules grisées représentent les constantes : les valeurs connues avant la résolution du CSP. C’est
donc Paul qui a eu la médaille d’or.
6

Documents pareils