Page 1 of 3

Eléments de correction du concours de chasse au Wumpus

Unread postPosted: 09 Nov 2013, 16:55
by critor
Voici aujourd'hui quelques éléments de corrections de notre concours de chasse au Wumpus dans le contexte de graphes et d'IA (Intelligence Artificielle), qui pourront apparemment vous être fort utiles si vous décidez de participer au concours Prologin 2014.

Vous pourrez télécharger ci-dessous ma propre participation test (hors concours bien évidemment) que j'ai développée en une journée. Elle ne reprend pas l'ensemble des possibilités énoncées ci-après, mais est représentative de ce que l'on pouvait faire sans trop se casser la tête à un niveau lycée.



Le travail de recherche consistait dans un premier temps à observer le comportement de l'IA aléatoire et à supprimer les comportements stupides:
  • retourner inutilement dans la salle d'où l'on vient
  • retourner inutilement dans une salle déjà visitée
  • ne pas trouver la sortie après avoir ramassé le trésor

L'IA a donc besoin d'une mémoire dans laquelle elle va construire au fur et à mesure sa représentation du labygraphe. Représenter un graphe peut se faire à l'aide d'un tableau à deux dimensions (matrice) ou encore d'une liste de listes. Dans les deux cas, il s'agit de connaître pour chaque salle, la liste des salles voisines. J'ai choisi pour mon IA une représentation sous forme de matrice.



L'IA doit également réfléchir. Elle doit également pouvoir stocker des informations sur chaque salle afin de faire des déductions:
  • est-ce une salle explorée?
  • y a-t-il un piège dedans?
  • y a-t-il le Wumpus dedans?
  • y a-t-il le trésor dedans?

Si la première question n'appelle qu'à une réponse binaire (oui ou non), il fallait bien comprendre que les trois dernières attendaient une réponse moins catégorique: oui, non ou peut-être.
En effet, au départ on ne sait rien: les Wumpus, piège(s) et trésor peuvent se situer dans toutes les salles. C'est au fur et à mesure de notre exploration que l'on peut faire des déductions positives et négatives.

Plusieurs possibilités d'implémentation d'un tel raisonnement existaient:
  • Une première possibilité quand notre IA visite une salle, est de faire des déductions logiques sur les salles voisines en fonction des perceptions.
  • Si l'on réfléchit davantage, on se rend compte que comme il n'y a qu'un seul Wumpus et qu'un seul trésor, on peut également faire des déductions sur les salles voisines des salles voisines. C'est cette option que j'ai choisie.
  • Si l'on pousse plus loin, une information obtenue dans une salle du labygraphe peut permettre une déduction dans une autre salle éloignée. Reproduire un tel raisonnement peut se faire en implémentant un gestionnaire de propositions logiques et la "méthode de résolution logique" qui va recouper ces propositions avec les informations données et faire le maximum de déductions. Je n'ai pas retenu cette option, trouvant qu'il était difficile d'exécuter une telle méthode en un temps raisonnable sur TI-Nspire, l'espace de travail étant exponentiel: chaque salle, puis les voisines de chaque salle, puis les voisines des voisines de chaque salle et etc...
  • Une amélioration des déductions découlant de la méthode précédente est de ne plus stocker des oui/non/peut-être, mais directement des probabilités totales. Leur calcul qui doit se faire par rapport à l'ensemble du graphe est assez gourmand. Je n'ai pas implémenté ce choix ici.



Notre IA suit successivement deux phases:
  • 1) trouver le trésor
  • 2) sortir du labygraphe

Pour le première phase, je vous propose les priorités suivantes à chaque déplacement:
  • a) aller dans la salle du trésor (si l'on a déduit où il est)
  • b) aller dans une salle sûre non explorée, ou dans la salle du Wumpus (si on a déduit où il était et si on a toujours la flèche pour le tuer)
  • c) pas le choix, on en appelle à la chance: aller dans une salle où il y a peut-être un piège ou un Wumpus (en espérant qu'au final il n'y soit pas)
  • d) on est désespéré: aller dans une salle piégée ou avec le Wumpus (suicide)

Comme vous le voyez, quand il n'y a plus de salle sûre à explorer et que l'on n'a pas suffisamment d'informations pour déduire ce qui nous intéresse, l'IA en appelle à la chance. Et c'est là qu'il est utile d'avoir stocké de vraies probabilités.



Enfin, à chaque déplacement on choisit donc une salle cible qui n'est pas forcément voisine de notre position. Il convient pour optimiser les déplacements d'avoir un algorithme construisant le plus court chemin vers cette salle.
Un tel algorithme recherchant le plus court chemin entre deux sommets d'un graphe est celui de Dijkstra, vu en Terminale ES spécialité mathématiques. On peut alors même améliorer les priorités b), c) et d) où l'on doit choisir parmi plusieurs salles, en ciblant la salle la plus proche.
J'ai implémenté cet algorithme.



Au final grâce à ce dernier point, parmi toutes les IA fournies par les candidats la mienne est celle qui réussit à ressortir munie du trésor avec le minimum de coups moyens. :bj:
Par contre, ce n'est pas la meilleure en terme de pourcentage de parties gagnées, puisque l'on peut faire bien mieux en déduction en optant pour les méthodes c) et d) ci-dessus.

Image




Téléchargement : archives_voir.php?id=22671

Re: Eléments de correction du concours de chasse au Wumpus

Unread postPosted: 09 Nov 2013, 17:37
by Extra44
Cool je suis pas loin ... :p

09-11-2013 Écran001-v-Extra44-ndp=102010.jpg


Extra44

Re: Eléments de correction du concours de chasse au Wumpus

Unread postPosted: 09 Nov 2013, 17:49
by AnToX98
Je crois déjà que Extra44 est notre grand gagnant :)

Re: Eléments de correction du concours de chasse au Wumpus

Unread postPosted: 09 Nov 2013, 17:52
by Extra44
Je veux bien être d'accord avec toi antox ,

mais ça peut porter malheur, ... alors chuut

d'ailleurs Antox, tu devais pas ramener des statistiques pour qu'on se compare ... ? ;)

Re: Eléments de correction du concours de chasse au Wumpus

Unread postPosted: 09 Nov 2013, 17:54
by critor
Ben attends un peu, AnToX98...
Y'en a neuf autres dont toi ;)

De plus, après deux séries de 335'000 parties sur notre cluster de TI-Nspire, Extra44 ne donne pas 87.2%.
10'000 parties sont insuffisantes pour garantir l'exactitude du pourcentage au dixième près. ;)

Ne présumez pas :)

Re: Eléments de correction du concours de chasse au Wumpus

Unread postPosted: 09 Nov 2013, 17:59
by AnToX98
Pour ce qui est de mes stats, je suis autour de 75% en 10/20/10.
En 10/10/10 je tourne autour de 80 %

Encore un extra-bravo à toi @Extra44 (oui, ceci est biensûr de l'ironie)

@Critor je dis cela en fonction de mon pourcentage à moi, qui je crois, ne va pas me permettre une place >4ème :D
Enfin, je serais quand même très heureux de récupérer un stylo usb :bj:

Re: Eléments de correction du concours de chasse au Wumpus

Unread postPosted: 09 Nov 2013, 18:02
by Extra44
:p

Re: Eléments de correction du concours de chasse au Wumpus

Unread postPosted: 09 Nov 2013, 18:03
by noelnadal
AnToX98 wrote:@Critor je dis cela en fonction de mon pourcentage à moi, qui je crois, ne va pas me permettre une place >4ème :D


Un place < à 4ème pour moi c'est 1er, 2ème, 3ème :D

Re: Eléments de correction du concours de chasse au Wumpus

Unread postPosted: 10 Nov 2013, 11:12
by mdr1
Bon, je crois que je n'ai plus rien à espérer par rapport aux résultats que j'escomptais initialement. Non seulement les miens ont baissé (je ne les ai pas brickés, mais ils l'ont fait par eux-mêmes pour une raison inconnue), mais en plus, les vôtres sont plus hauts que je ne l'aurais pensé. Bravo à vous, en tout cas ! J'aurais dû conserver une copie de mon IA à 95%... mais peut-être était-ce par hasard ? Pourtant, ce score revenait à chaque série de parties, chacune d'entre elles en comptant plusieurs milliers...

D'ailleurs, je ne participerai pas aux prochains concours de cette année, sauf s'il requièrent très très peu de temps.

Re: Eléments de correction du concours de chasse au Wumpus

Unread postPosted: 10 Nov 2013, 12:06
by critor
Ne présume pas ;)