MarioUS Plombier génétique. IFT615 Intelligence artificielle. IFT630 Processus concurrents et parallélisme



Documents pareils
Francis BISSON ( ) Kenny CÔTÉ ( ) Pierre-Luc ROGER ( ) IFT702 Planification en intelligence artificielle

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

Documentation utilisateur "OK-MARCHE" Historique des modifications. 3.0 Mise à jour complète suite à version OK-MARCHE V2.2. de marchés publics

Documentation Technique du programme HYDRONDE_LN

TP1 : Initiation à l algorithmique (1 séance)

AIDE à l utilisation du cédérom «L athlétisme à l école» Niveau Primaire SOMMAIRE

Gestion d un VIDÉOPROJECTEUR. ou d un ÉCRAN SECONDAIRE

Pi, poker et informatique ; une «épuisante» alliance pour des projets en mathématiques

Le logiciel de création de site internet IZISPOT est un outil très puissant et qui est assez simple après quelques temps d utilisation.

Logiciel PICAXE Programming Editor

Créer le schéma relationnel d une base de données ACCESS

PROJET D'INFORMATIQUE I IFT 592 PROJET EN SYSTÈMES INTELLIGENTS IFT-593 POKUS. Système d aide au poker. Travail présenté à M.

Ref : Résolution problème d'accès aux supports de cours

Utilisation de l éditeur.

Scratch : programmation objet facile pour tous

Machine virtuelle Java pour Palm TX

Manuel d utilisation de la messagerie.

Afin d accéder à votre messagerie personnelle, vous devez vous identifier par votre adresse mail et votre mot de passe :

Création WEB avec DreamweaverMX

Module Planification

Avertissement : Nos logiciels évoluent rendant parfois les nouvelles versions incompatibles avec les anciennes.

Figure 3.1- Lancement du Gambit

Service On Line : Gestion des Incidents

Chapitre 22 Optimisation pour diffusion à l'écran, pour le web

COMMANDER A DISTANCE LE ROBOT-PONG ETUDE DE LA TELECOMMANDE (2 nde PARTIE)

CRM pour le Service clients et l Assistance technique

GUIDE D UTILISATION DU BROWSER DE BEYOND 20/20

Paramétrage d une Gestion de Production

Table des matières. Réclamation Guide d apprentissage I. I. Configuration d un dossier de réclamation... 2 A. Assignation d un plan...

Notes pour l utilisation d Expression Web

SOMMAIRE. 1. Connexion à la messagerie Zimbra Pré-requis Ecran de connexion à la messagerie 4

Dossier projet isn 2015 par Victor Gregoire

Manuel d utilisation du web mail Zimbra 7.1

Exporter des écritures. Importer des écritures. Depuis EBP Comptabilité.

Infolettre #6: SkyDrive

INSTALLATION DE LA CLÉ 3G+ UTILISATION VOTRE COMPTE CLIENT. Clé 3G+ Elle vous permet de connecter votre ordinateur aux réseaux haut débit mobile.

IFT287 Exploitation de base de données relationnelles et orientées objet. Laboratoire Mon premier programme Java en Eclipse

GUIDE D UTILISATION DE L ISU SEPTEMBRE 2013 GUIDE D UTILISATION DU NAVIGATEUR UIS.STAT (VERSION BÊTA)

Fiche technique rue de Londres Paris Tél. : Mail : contact@omnikles.com

NAVIGATION SUR INTERNET EXPLORER

Etude comparative de différents motifs utilisés pour le lancé de rayon

Introduction à MATLAB R

Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite.

The Grid 2: Manuel d utilisation

N importe qui possédant un code MS valide peut initier la rencontre. Néanmoins, il serait préférable de laisser cette

Rapport projet MMI. Luis Domingues, I3 Naomi Favre, I3 Tiago De Deus, I3. Luis Domingues, Tiago De Deus, Naomi Favre SP Interfaces Multimodales

Assistant d e tablissement de Tableaux

SELENE : Guide d utilisation de l outil de remontée des fichiers de promouvables

Sommaire. Avertissement :

Arborescence et création de dossiers

Maîtrisez votre Navigateur

IRL : Simulation distribuée pour les systèmes embarqués

Guide informatique AUDIT EVALUATION DE LA PRATIQUE DE L ANTIBIOPROPHYLAXIE EN MATERNITE

DECOUVREZ Discover TYPE EDIT V12 Français

Pour les futurs développeurs Sommaire

Dans l idéal, ceci devrait être fait en amont pour chaque image envoyée sur l espace de stockage de votre site internet.

MODULE DES ENCAISSEMENTS. Outil de comptabilisation et de transfert de revenus des établissements au Service des finances GUIDE TECHNIQUE

GUIDE Excel (version débutante) Version 2013

MANUEL INTÉGRÉ EA SPORTS GRAND CHELEM TENNIS 2

Connecter le lecteur réseau de Pro-Cardex 3 Vérifier la version du gestionnaire de base de données 5 Procéder à l installation 6

PREMIERE UTILISATION D IS-LOG

ENVOI EN NOMBRE DE MESSAGES AUDIO

LE CONCEPT. Vous pouvez aussi charger une version sur votre PC afin d'assurer votre présentation dans une salle non connectée.

Tutorial Terminal Server sous

ESPACE MULTIMEDIA DU CANTON DE ROCHESERVIERE

Introduction à Expression Web 2

PLATE-FORME COMMUNE UNE SOLUTION LOGICIELLE UNIQUE POUR AMÉLIORER LA PRODUCTIVITÉ. Logiciel DIRECTVIEW V5 pour CR et DR

GPS Action Replay Pro Module Régate (V 1.0 h et ultérieures)

Dans cette Unité, nous allons examiner

Techniques d interaction dans la visualisation de l information Séminaire DIVA

Contenu. Présentation du Portail famille Accès au portail famille... 3

ENVOI EN NOMBRE DE SMS

Infolettre #18 : Les graphiques avec Excel 2010

1. CRÉER UNE LISTE DE CONTACTS

Guide d installation et d utilisation

COMMENT CREER SIMPLEMENT UN TABLEAU DE BORD AVEC SAS BI DASHBOARD 4.3?

Optimiser pour les appareils mobiles

Export et Import de modèles ICAR sous Trnsys 17

Introduction à Eclipse

LOGIcIEL WZP. QUICKSTART-logiciel-WZP-6004V1.2

Notice d installation du patch Lia 8.20

Niveau 1. Atelier d'initiation à l'ordinateur ... Fondation de la Bibliothèque Memphrémagog inc. Magog (Québec) J1X 2E7 Tél.

Qualité du logiciel: Méthodes de test

Page Paragraphe Modification Mise en page du document Le bouton "Format de page" est maintenant "Page"

Comment installer la configuration des salles sur son ordinateur personnel?

AGASC / BUREAU INFORMATION JEUNESSE Saint Laurent du Var Tel : bij@agasc.fr Word: Les tableaux.

Adapter des vidéos à un appareil mobile

Connecteur Zimbra pour Outlook 2007 et 2010 (ZCO) w

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar

Taxnet Pro. Fiche de consultation rapide

MANUEL DE PROCÉDURE POUR LA MISE À JOUR DU SITE DE FIDAFRIQUE. Documentation utilisateur Octobre 2005

ET 24 : Modèle de comportement d un système Introduction à Labview et initiation à la réalisation d un Instrument Virtuel (VI).

Ateliers Python+Qt : Premiers pas : S'installer pour PyQt... en quelques minutes sous Windows!

Groupe Eyrolles, 2003, ISBN : X

Partie 7 : Gestion de la mémoire

Construire des plug-ins pour SAS Management Console SAS 9.1

CARPE. Documentation Informatique S E T R A. Version Août CARPE (Documentation Informatique) 1

(Edition de chèques)

Cette console est compatible avec le logiciel isuper. Nous vous conseillons de consacrer quelques minutes à la lecture de ce guide d'utilisation.

Présentation de l outil AppliDis ESX Console Viewer

Transcription:

MarioUS Plombier génétique IFT615 Intelligence artificielle IFT630 Processus concurrents et parallélisme Présenté par Gabriel P. Girard 07 173 738 Marc-Alexandre Côté 07 166 997 Simon Renaud-Deputter 07 149 640 Présenté à Froduald Kabanza Gabriel Girard Université Sherbrooke 16 avril 2009

Problématique Ce projet a pour but de nous familiariser avec les algorithmes génétiques parallélisés. Nous avons décidé d en créer un qui apprendra à résoudre un niveau d un jeu nommé : Super Mario Bros. Super Mario Bros est un jeu de la compagnie Nintendo et est un des premiers à être développé pour leur console appelée : NES. Il est très simple d apprendre le fonctionnement de ce jeu sorti en 1985. Le but du jeu est d atteindre un drapeau qui désigne la fin du niveau. Pour y parvenir, le joueur devra, à l aide d une manette, éviter une multitude d ennemis, sauter au-dessus des trous et sauter par-dessus des tuyaux. Le joueur est chronométré et doit terminer le niveau dans le temps qui lui est alloué. Il existe de nombreux niveaux que le joueur devra affronter afin de terminer le jeu. Dans notre projet, plusieurs éléments ont été omis afin de nous faciliter la tâche (principalement par manque de temps). Les éléments qui diffèrent du jeu original sont : les briques incassables, l absence de plusieurs types d ennemis, l absence du chronomètre et l absence d items. Afin de pouvoir suivre l évolution de notre Mario, nous avons conçu un moteur de jeu 2D permettant de simuler Super Mario Bros. L objectif de notre projet est de trouver une suite d actions permettant d atteindre le drapeau tout en évitant les obstacles immobiles et les ennemis mobiles. Il doit aussi minimiser le nombre d actions nécessaire pour parvenir au drapeau.

Instructions *tous les paths sont par rapport au répertoire racine "projet/". Notre projet est codé en C++ ainsi qu en Java. Il est divisé en trois exécutables. Générer les actions Tout d abord, il faut générer une liste d action en utilisant cette commande à partir du répertoire "bin/": "mpi/bin/mpiexec -l -n 5 sigma" Les générations seront affichées à l écran avec leur distance parcourue par rapport à la distance totale ainsi que leurs nombres d actions correspondants. À chaque fois qu une nouvelle liste d actions possède un fitness plus haut que la meilleure liste d actions, elle est sérialisée. Une fois que la distance parcourue est maximale et que le nombre d actions converge, l application termine. Ensuite, le répertoire "actions/" contiendra toutes les meilleures listes d actions pour une partie du niveau. Générer les logs Deuxièmement, il faut générer un fichier ".log" si l'entrainement de l'ia n'a pas convergé (c.-à.-d. ne s'est pas terminé correctement). Pour ce faire, il faut utiliser cette commande à partir du répertoire "bin/": "engine nomtableau nomfichieractions nomfichierlog" nomtableau : Nom d un tableau dans le dossier "levels/" nomfichieractions : Nom d un fichier d actions dans "actions/" nomfichierlog : Nom du fichier log à générer. ex: engine levels/tableau1.lvl actions/action_généré.act logs/fichier_log.log Visualiser le résultat Finalement, le fichier est chargé par le visionneur pour visualiser le Mario génétique. Pour ce faire, il faut double cliquer sur "bin/viewer/viewer.jar". Ou exécuter par ligne de commande à partir du répertoire "bin/viewer/": "java jar viewer.jar nomfichierlog.log" nomfichierlog.log : Nom du fichier log à visionner. Ensuite, cliquer sur "Fichier->Ouvrir log".

Mise en oeuvre Ce type de problèmes nécessite d immenses graphes afin de représenter tous les états possibles. De plus, ces graphes doivent être dynamiques puisque les ennemis peuvent bouger dans le niveau. Pour parvenir à trouver une solution efficace dans un délai acceptable, notre équipe a décidé d opter pour l utilisation d un algorithme génétique. Le projet est divisé en trois parties (programmes) distinctes, soit : un moteur 2D, un visionneur de logs et une intelligence artificielle dirigeant Mario. Génère IA Actions Évalue les actions générées Utilise Moteur 2D Génère Logs Visionneur Utilise Moteur 2D Le moteur est utilisé par l algorithme génétique afin d évaluer une liste d actions. Les valeurs de retour sont : la distance parcourue, la distance totale et le nombre d actions utilisées. Il sert aussi à générer un log contenant la position de tous les objets de tous les frames (image d une animation). À chaque frame, le moteur lit une action et l exécute. Le moteur est complètement indépendant de l affichage graphique ce qui permet d accélérer les calculs. Visionneur Un visionneur est utilisé pour visualiser la progression de notre Mario génétique. Il permet aussi de visionner des niveaux et d ajuster la vitesse de visionnement. Il commence par charger l image contenant tous les sprites (images d un bonhomme). Ensuite, il charge le niveau, qui sera toujours gardé en mémoire. Finalement, il charge les frames puis les fait jouer une après l autre ce qui crée une animation.

IA Notre intelligence artificielle utilise un algorithme génétique afin de trouver le chemin le plus efficace pour terminer un niveau. Tout d abord notre ADN est composé d une suite d actions. Une action est représentée par un «char» où chaque bit correspond à un bouton enfoncé. Cela nous permet d avoir des compositions d actions. Un bon fitness pour notre algorithme signifie que la distance parcourue est maximisée et que le nombre d actions est minimisé. La distance parcourue se calcule par une sommation de chaque pixel à partir du début du tableau jusqu à la position finale (en X) du joueur [ex. Position finale = 6; Distance parcourue = 1 + 2 + 3 + 4 + 5 + 6 = 21]. Cela permet d avantager les individus qui se sont rendus plus loin. Nous utilisons le principe nommé King of the Hill pour résoudre notre optimisation. Son fonctionnement consiste à garder le meilleur individu d une génération afin d entrainer les prochains individus des prochaines générations. Cet élu n est changé que s il y en a un plus fort (dans notre cas, celui qui s est rendu plus loin ou qui est plus rapide). Après l avoir longuement testé, nous avons décidé d améliorer notre algorithme génétique en divisant un niveau en plusieurs tranches (environ un écran de large). Notre IA commence par optimiser les deux premières tranches (donc les deux premiers écrans). On arrête l optimisation lorsque l élu d une génération ne s est pas fait battre (rapport entre distances parcourues et le nombre d actions utilisées) pendant un nombre de générations prédéfini (présentement 1000 générations). Ensuite, on décale d une tranche et on optimise sur les deux prochaines. L algo continue jusqu à ce que toutes les tranches soient optimisées. Chaque fenêtre représente une tranche. L algorithme commence par optimiser la fenêtre jaune et la fenêtre verte. Par la suite, il va optimiser la fenêtre verte et la fenêtre bleue et ainsi de suite.

Cheminement IA Au cours de notre projet, nous avons essayé de modifier plusieurs paramètres de notre algo afin de trouver les bonnes valeurs. Première version : Principe : King of the Hill Utilisait toutes les actions de bases. Le niveau ne contenait pas d ennemis. Résultat : notre Mario ne réussissait pas à terminer le niveau. Temps pour générer une solution : temps infini (il fallait l arrêter à main). Nombre d actions : environ 2000. Deuxième version : Principe : King of the Hill Utilisait seulement deux actions : Courir-Sauter-Avant et Courir-Avant. Le niveau contenait des ennemis. Résultat : notre Mario réussissait à terminer le niveau. Temps pour générer une solution : temps infini (il fallait l arrêter à main). Nombre d actions : environ 600. Troisième version : Principe : King of the Hill et Fenêtre coulissante Utilisait seulement deux actions : Courir-Sauter-Avant et Courir-Avant. Le niveau contenait des ennemis. Résultat : notre Mario réussissait à terminer le niveau. Temps pour générer une solution : environ 15 min. Nombre d actions : 456 (minimum = 454). Quatrième version : Principe : King of the Hill et Fenêtre coulissante Utilisait toutes les actions de bases. Le niveau contenait des ennemis. Résultat : notre Mario réussissait à terminer le niveau. Temps pour générer une solution : environ 2 heures. Nombre d actions : 780.

Nous avons décidé de paralléliser notre algorithme en utilisant le principe Maître- Travailleur dans le but d accélérer la convergence vers une solution. Nous avons implémenté ce code en MPI (C++), puisqu il nous permet de distribuer facilement et rapidement des calculs sur une grappe d ordinateurs.