Le Jeu et l’intelligence artificielle

Slides:



Advertisements
Présentations similaires
Théorie des graphes.
Advertisements

Explorer un espace d’états
La Couche Réseau.
Algorithmes et structures de données avancés
Classification et prédiction
Problème de 8 dames: Sachant que dans un jeu des échecs, une dame peut pendre toute pièce se trouvant sur la colonne ou sur la ligne ou sur les diagonales.
A.Faÿ 1 Recherche opérationnelle Résumé de cours.
INTRODUCTION.
Assistance à distance Parfois on se sent bien seul face à un problème informatique surtout si on n’est qu’un simple utilisateur. Lorsqu'un problème survient.
Petites énigmes Logiques
Section VI Structures répétitives (suite)
3. Algorithme Colonies de fourmis.
Optimisation Par Colonie De Fourmies
Maillage et création de surface sous Geomagic
Plus courts chemins On présente dans ce chapitre un problème typique de cheminement dans les graphes : la recherche d'un plus court chemin entre deux sommets.
Quest-ce que la planification ? Planifier = Décider dun plan À partir dune base de connaissances sur les opérateurs possibles, on simule un grand nombre.
Prise de décision dans les shooters TER 08/09 Sandrine Buendia
Créer une animation simple Gif avec ImageReady.
Introduction à l’algorithmique
Des enigmes Petit Prince chapitre 17.
Algorithmique et Programmation
Arbre binaire de recherche
Algorithmes Branch & Bound
Heuristiques A. Introduction B. Recherche d ’une branche
Programmation linéaire
GPA750 – Ordonnancement des systèmes de production aéronautique
Arbre Rouge Noir.
Systèmes d’équations linéaires
Etude globale de système.
Structures de données IFT-2000
IFT Complexité et NP-complétude
Programmation linéaire en nombres entiers Algorithme de la subdivision successive («Branch and Bound Algorithm»)
CSI4506: Introduction à l’intelligence artificielle
CSI 4506: Introduction à l'intelligence artificielle La recherche aveugle.
CSI 4506: Introduction à l’intelligence artificielle
1 CSI 4506: Introduction à lintelligence artificielle La recherche adversairiale.
Algorithmes d ’approximation
GPA750 – Gestion de Projets
Structures de données IFT-2000 Abder Alikacem La récursivité Semaine 5 Département dinformatique et de génie logiciel Édition Septembre 2009.
Programmation linéaire en nombres entiers : les méthodes de troncature
Structures de données IFT-2000 Abder Alikacem La récursivité Département d’informatique et de génie logiciel Édition Septembre 2009.

Heuristiques C. Recherche de la meilleure branche . Branch And Bound
Exploration systématique de graphes
CSI4506: Introduction à l’Intelligence Artificielle
Graphes 1. Introduction 2. Définition 3. Représentation mémoire
Dév. d’application interactive III Recherche de chemin.
D.E ZEGOUR Ecole Supérieure d’Informatique
Tutorat 7 - Introduction au Routage et OSPF
Algorithmes Branch & Bound
Arbres binaires et tables de hachage
LE FLOT MAXIMAL et LA COUPE MINIMALE
Le système informatique et le système d’information
CSI 4506: Introduction à l’Intelligence Artificielle La Recherche Aveugle.
D.E ZEGOUR Ecole Supérieure d’Informatique. Problèmes de décision Concepts de base Expressions régulières Notation particulière pour exprimer certaines.
CSI 4506: Introduction à l’Intelligence Artificielle
Exploration systématique de graphes
Le Jeu et l’intelligence artificielle Oana Frunza University of Ottawa 9 mai, 2008.
TIPE Les dames chinoises
En route vers le déploiement . . .
ANNEE UNIVERSITAIRE :2010/2011
Le Jeu et l’intelligence artificielle
31/05/2007Projet Master 11 Présentation ludique de la recherche opérationnelle à la fête de la science Année universitaire 2006/2007 Sylvain FIX Julien.
Chapitre 4b La représentation des nombres.
TD N°5: Une GPAO pour l’usine Odyssée
Réseaux de Petri et suivi du joueur
1 CSI 4506: Introduction à l’Intelligence Artificielle La Recherche Adversariale.
Pierre Joli Cours de Mathématique Pierre Joli
Algorithmes Branch & Bound Module IAD/RP/RO Master d ’informatique Paris 6 Philippe Chrétienne.
Transcription de la présentation:

Le Jeu et l’intelligence artificielle Oana Frunza University of Ottawa

Les jeux comme une problème de recherche Qu'est-ce qu’on cherche? solution, étapes d’arriver à la solution Où on cherche? dans une espace de recherche - ensemble d’objets (solution partiale) dans lequel la recherche s’effectue (structure en arbre) Comme on cherche? dans un espace de recherche, les objets sont reliés les uns aux autres par des opérateurs qui transforment un objet en un autre

La plus importante étape Représentation comment mettre en évidence les caractéristiques essentielles d’un problème pour les rendre accessibles à une procédure de résolution de problèmes graphes et machines d’états calcul propositionnel

Calcul propositionnel

Taxonomie

Graphe d’états objectes opérateurs (actions) espace de recherche

Comme on cherche? Application systématique des opérateurs Vérification, après chaque transformation pour voir si l’objet qui résulte est un élément de l’ensemble des buts finaux. Recherche Aveugle: Une méthode de recherche qui n’est pas guidée par des informations sur le domaine. Mesure pour un espace: Un système de calcul de mesure de distance entre deux objets dans l’espace de recherche ou la mesure de la valeur d’un objet donné dans cet espace. Recherche Heuristique: Une méthode de recherche qui emploie une mesure pour guider la recherche.

La Recherche Heuristique Heuristiques (Greek heuriskein = trouver, découvrir): « l’étude de méthodes et règles pour la découverte et l’invention". Ils sont des espaces de recherche trop grande pour une recherche aveugle : pour chéquiers il est 1040 chemins, échecs 10120 En utilisant des heuristiques on diminue l’espace de recherche, on accélérer la recherche – on doit utilise une fonction pour grade les objecte/les prochaines actions

Note Dans la vie réelle on utilise aussi l’heuristique: Exemple: Au supermarché, on choisit la queue la moins longue ou alors on choisit la queue dans laquelle les clients on le plus petit nombre d’objets dans leur panier. Avez-vous d’autres exemples?

Problème du voyageur de commerce consiste, étant donné un ensemble de villes séparées par des distances données, doit trouver le plus court chemin qui relie toutes les villes DEMO

Comment le faire? 1. Créer une représentation pour les objets et les opérateurs 2.Définir une mesure à utiliser dans espace de recherche. 3. Créer une méthode efficace de comparaison ou d’ évaluation des objets. 4. Créer une méthode efficace de sélectionner le nouvel objet à considérer dans l’espace

Les missionnaires et les cannibales: Le problème Trois missionnaires et trois cannibales se trouvent sur la même rive d’une rivière. Ils voudraient tous se rendre sur l’autre rive. Cependant, si le nombre de cannibales est supérieur à celui des missionnaires, alors les cannibales mangeront les missionnaires. Il faut donc que le nombre de missionnaires présents sur l’une ou l’autre des rives soit toujours supérieur à celui des cannibales. Le seul bateau disponible ne peut pas supporter le poids de plus de deux personnes. Comment est-ce que tout le monde peuvent traverser la rivière sans que les missionnaires risquent être mangé?

Représentation du problème Configuration initiale: Configuration finale M C M C Rive Gauche Rive droite Cette représentation n’est pas appropriée pour un ordinateur: les règles et les contraintes ne sont pas formulées.

Etape 1 Représentation du problème Configuration initiale Configuration finale Déplacement légaux Contraintes Les cannibales ne doivent pas être plus nombreux que les missionnaires sur les deux rives Le bateau ne peut pas supporter plus de deux personnes. MMMCCCB| |MMMCCCB

On continue à étendre l’ espace de recherche jusqu’ à l’arrivée d’une Configuration finale M  C MMMCCCB | MM C  CC  MMMCC | BC MCCC | BMM MC MC   CC MMCCC | BM MMMC | BCC MMCC | BMC C C M MMMCCB | C MMCCCB | M MMMCCB | C

Le jeu M&C

Une solution pour le problème MMMCCCB | MMMC | BCC MMMCCB | C MMM | BCC MC | BMMCC MMCCB | MC CC | BMMMC CCCB | MMM C | BCCMMM CCB | CMMM | BCCCMMM Le développement explicite de l’ espace de recherche en entier n’est pas une solution pratique! L’ espace de recherche doit être contenu à ses parties significatives

Problème 2: Le Loup, le mouton et le chou C'est l' Fernand, accompagné d'un loup, d'un mouton et d'un chou qui doit traverser une rivière pour rentrer chez la Marie. Malheureusement, l'en a qu'une petite barque qui ne lui permet que de transporter un seul objet ou animal à la fois. Ainsi, à chaque fouis, y doit en laisser deux sur la rive sans faire gaffe à eux, le temps de traverser. Ben sûr, le loup mange le mouton et le mouton mange le chou.

Étape 1 Représentation du problème Configuration initiale ....|LMCB Configuration finale LMCB|…. Opérateurs une petite barque qui ne lui permet que de transporter un seul objet ou animal à la fois ben sûr, le loup mange le mouton et le mouton mange le chou.

Étapes 2 et 3 Vérifier si le conditions sont satisfait Étapes 4 Faire des transportations légales 

Trouver la solution!!! LMC

Problème de voyage En vacance en Roumanie Ville de départ: Arad Ville d’ arrive: Bucarest

Actions: conduire entre les villes Étape 1 Objectés: les villes Actions: conduire entre les villes La solution: une suite des villes - e.g., Arad, Sibiu, Fagaras, Bucharest

Représentation utilisant des arbres

Pour trouver la solution on cherche …. une route de arriver à la destination Pour le jeu de M&C – on cherche quelle déplacement a faire

M  C MMMCCCB | MM C  CC  MMMCC | BC MCCC | BMM MC MC   CC MMCCC | BM MMMC | BCC MMCC | BMC C C M MMMCCB | C MMCCCB | M MMMCCB | C

Avec les techniques de recherche On donne les ordinateurs d’intelligence, ils peuvent prendre des décisions comme on fait si on regarde les donnes -> la recherche une grande partie de l’intelligence artificielle

Représentation utilisée pour la recherche Arbres de recherche

nœud B et C sont voisons pour A arc – direction unique

Recherche Depth-First (RDF) On prendre une nœud on vérifie les voisins prendront le premier 2. On vérifie si le nœud actuel est la solution a. si oui on s’arrêt b. si non on fait le voisin du nœud actuel le nœud actuel et on continue avec 1.

Trouver la route A->F

On commence avec le nœud source A Étape 0 On commence avec le nœud source A On utilise 2 listes Liste Ouverte: les actions (nœud) courantes Liste Ferme: les actions (nœud) passe Liste Ouverte: A Liste Ferme: <>

Étape 1 Liste Ouverte: B, C Liste Ferme: A 1. Liste Ouverte: A 2. Est A la solution? 3. Étendre A Liste Ouverte: B, C Liste Ferme: A

Étape 2 Liste Ouverte: D, E, C Liste Ferme: A,B 1. Liste Ouverte: B, C 2. Est B la solution? 3. Étendre B Liste Ouverte: D, E, C Liste Ferme: A,B

Étape 3 Liste Ouverte: E, C Liste Ferme: A,B,D 1. Liste Ouverte: D, E, C Liste Ferme: A,B 2. Est D la solution? 3. Étendre D Liste Ouverte: E, C Liste Ferme: A,B,D

Étape 4 Liste Ouverte: F,G, C Liste Ferme: A,B,D,E 1. Liste Ouverte: E, C Liste Ferme: A,B,D 2. Est E la solution? 3. Étendre E Liste Ouverte: F,G, C Liste Ferme: A,B,D,E

Étape 5 Liste Ouverte: G, C Liste Ferme: A,B,D,E,F 1. Liste Ouverte: F,G, C Liste Ferme: A,B,D,E 2. Est F la solution? Oui F Liste Ouverte: G, C Liste Ferme: A,B,D,E,F

Recherche Breadth-first (RBF) La seule différence est le placement des nœuds qui sont étendrais RDF – on met les nœuds au début de la Liste ouverte (une représentation pile) BDF – on met les nœuds à la fin de la Liste ouverte (une représentation file)

Recherche Breadth-first (RBF) Trouver la route A->E

Étape 0 On commence avec le nœud source A Liste Ouverte: A Liste Ferme: <>

Étape 1 Liste Ouverte: B, C Liste Ferme: A 1. Liste Ouverte: A 2. Est A la solution? 3. Étendre A Liste Ouverte: B, C Liste Ferme: A

Étape 2 Liste Ouverte: C, D, E Liste Ferme: A,B 1. Liste Ouverte: B, C 2. Est B la solution? 3. Étendre B Liste Ouverte: C, D, E Liste Ferme: A,B

Étape 3 Liste Ouverte: D, E Liste Ferme: A,B, C 1. Liste Ouverte: C, D, E Liste Ferme: A,B 2. Est C la solution? 3. Étendre C Liste Ouverte: D, E Liste Ferme: A,B, C

Étape 4 Liste Ouverte: E Liste Ferme: A,B,C,D 1. Liste Ouverte: D, E 2. Est D la solution? 3. Étendre D Liste Ouverte: E Liste Ferme: A,B,C,D

Étape 5 Liste Ouverte: G, C Liste Ferme: A,B,C,D,E 1. Liste Ouverte: E 2. Est E la solution? Oui E Liste Ouverte: G, C Liste Ferme: A,B,C,D,E

Pseudo-code RDF 1. Déclaration pour 2 listes vides: Liste ouverte & Liste ferme 2. Ajute le nœud racine à la Liste ouverte 3. La Liste ouverte n’est pas vide Élimine le premier nœud dans la Liste ouverte Vérifier si le nœud élimine est la solution Si il est la solution: arrêt l’algorithme, ajoute le nœud à la Liste ferme, rendre la Liste ferme pour la solution. Si il n’est pas la solution continue avec étape C Extraire les voisins pour le nœud élimine Ajoute les voisins au débout de la Liste ouverte, ajoute le nœud élimine a la Liste ferme

Pseudo-code RBF Déclaration pour 2 listes vides: Liste ouverte & Liste ferme Ajute le nœud racine à la Liste ouverte La Liste ouverte n’est pas vide Élimine le premier nœud dans la Liste ouverte Vérifier si le nœud élimine est la solution Si il est la solution: arrêt l’algorithme, ajoute le nœud à la Liste ferme, rendre la Liste ferme pour la solution. Si il n’est pas la solution continue avec étape C Extraire les voisins pour le nœud élimine Ajoute les voisins a la fin de la Liste ouverte, ajoute le nœud élimine a la Liste ferme