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