Exemples de projets des sessions passées Luc Lamontagne 23 janvier 2009 1. Jeu -- RISK • • • • • Moteur de jeu : JRisk. Langage de programmation : Java. Exploration : Recherche en largeur pour le transfert des unités. Apprentissage : Arbre de décision et réseau de neurones pour l’utilisation des cartes. Autres : Une fonction d’utilité pour le placement des unités et la phase d’attaque. 2. Jeu – Capture du drapeau ennemi • • • • • Moteur de jeu : Unreal Tournament et javabots. Langage de programmation : Java. Exploration : Hill climbing et LRTA* pour la recherche de chemin. Apprentissage : Arbre de décision et Adaboost pour le choix d’action. Autres : Apprentissage par renforcement (Q-learning) pour le choix d’une action. 3. Jeu – Poker Shooter (le poker + un first person shooter) • • • • • Moteur de jeu : Torque Engine. Langage de programmation : C++. Exploration : Choix du chemin à prendre avec A*. Apprentissage : Arbre de décision pour soit prendre une carte ou l’attribuer. Autres : Apprentissage par renforcement (TD-learning) pour décider d’attaquer ou de se sauver. 4. Jeu -- Stratego • • • • • Moteur de jeu : jeu développé par l’équipe. Langage de programmation : C++ Exploration : Placement des pièces sur la grille de départ par un algorithme de recherche glouton. Apprentissage : Déplacement des pièces pour atteindre le drapeau ennemi par un réseau de neurones. Autres : Le kNN pour trouver des configurations de pièces sur la planche de jeu. Le choix de buts par un algorithme génétique. 5. Jeu -- GridWorld • • • • • Moteur de jeu : GridWorld Langage de programmation : Java Exploration : Trouver un chemin d’une case initiale à une case but par une recherche en profondeur itérative (IDS). Apprentissage : Apprendre le mouvement d’insectes ennemis par un algorithme bayesien naïf. Autres : Rien. 6. Jeu -- First person shooter(FPS) • • • • • Moteur de jeu : Quake III Arena. Langage de programmation : C. Exploration : DFS, Hill Climbing, RBFS pour le déplacement du personnage. Apprentissage : Arbre de décision et bayesien naïf pour décider soit d’une attaque ou de battre en retraite. Autres : les réseaux bayesien pour la même tâche que l’apprentissage. 7. Jeu -- RISK • • • • • Moteur de jeu : JRisk. Langage de programmation : Java. Exploration : A* pour planification de l’attaque. Apprentissage : Arbre de décision pour positionner des armées. Autres : Réseau bayesien pour l’échange de cartes. 8. Jeu – Jeu de stratégie GLEST • • • • • Moteur de jeu : GLEST Langage de programmation : C++ (Unix) Exploration : A*, BFS et coût uniforme pour la recherche de chemin Apprentissage : Réseau de neurones pour le choix d’actions (ex. construire un bâtiment, ramasser une ressource, créer une paysan). Autres : Réseau bayésien pour le choix d’action. 9. Jeu -- DaeGame • • • • Moteur de jeu : Torque Engine Langage de programmation : C++ Tâches IA : jeu à la troisième personne de déplacement et de combat. Les armes principales sont les griffes, la télékinésie et l’aveuglement. Le héros doit affronter des prêtre qui, par le pouvoir de leur esprit, peuvent donner des impulsions aux objets environnants. L’action se déroule dans une vielle cathédrale abandonnée dont les épaisses colonnes permettent aux joueurs de se cacher. Exploration : A*, RBFS, SMA*pour le déplacement des personnages • • Apprentissage : choix de la politique d’action par Naïve Bayes Autres : choix de la politique d’action par apprentissage par renforcement 10. Jeu – Scotland Yard • • • • • • Moteur de jeu : ScotlandBase Langage de programmation : java Tâches IA : jeu de table où plusieurs détectives (1 à 6 détectives) sont à la poursuite d’un fugitif (M. X) dans les rues de Londres. Repose sur une carte de la ville de Londres. Les intersections des rues de Londres (les nœuds du graphe) sont reliées par taxi, par bus ou par métro. Pour aider les détectives dans leurs déductions, la position de M. X est révélée périodiquement. Exploration : A* et BFS pour le déplacement des détectives. CSP pour déterminer les positions possibles de M. X. Apprentissage : Estimer la position probable de M. X avec l’algorithme kNN. Autres : Prévoir la position de M. X au prochain tour avec un réseau de neurones. 11. Jeu – Légende de Zelda (style de…) • • • • • • Moteur de jeu : Ogre Langage de programmation : C++ Tâches IA : le jeu comporte trois agents : le joueur, un « NPC » (« non playing caracter ») pour interagir avec lui et un agent ennemi plus dynamique qui réagi aux différentes actions du joueur. Mission : faire une course avec un « NPC » et de vaincre un ou plusieurs ennemis. Exploration : A*, BFS, DFS et Dijkstra pour la recherche de chemin Apprentissage : Algorithme génétique et réseau de neurones pour l Autres : Positionnement de la caméra par un CSP.