Intelligence Artificielle Steve Gury steve.gury@gmail.com
Agenda Historique Réseau de neurones Algorithmes génétiques MinMax Algorithme de recherche de chemin Machines à états
Historique Terme inventé par John McCarthy en 1956 Définition: Programmes informatiques qui résolvent des problèmes qui sont habituellement résolus par des processus mentaux de haut niveau
Historique Ne pas confondre avec le domaine de l’intelligence artificielle forte Le système est capable de produire un comportement intelligent, mais aussi d’éprouver une conscience de soi SkyNet
Historique Turing initia le concept en 1950 Test de Turing Article « Computing Machinery and Intelligence » Test de Turing
Différentes Techniques et leurs applications Méthodes complexes Réseaux de neurones Algorithmes génétiques Simplifications + heuristiques MinMax PathFinding Machine à état
Agenda Historique Réseau de neurones Algorithmes génétiques MinMax Algorithme de recherche de chemin Machines à états
Réseau de neurones Imite le fonctionnement des neurones du cerveau Assemble les neurones en couche Différentes fonctions de seuillage Linéaires Non linéaires
Réseaux de neurones Assemblage en réseaux +/- complexes Utilisations: Apprentissage + sollicitation (prise de décision) Segmentation
Exemple d’application Attaque conditionnée sur jeu de stratégie Nombre d’unités en renfort Nombre et niveau des opposants Distance à la base ... Apprentissage Une fois pour toute En cours de jeu Sollicitation en jeu
Agenda Historique Réseau de neurones Algorithmes génétiques MinMax Algorithme de recherche de chemin Machines à états
Algorithme génétique Inspiré de l’évolution des espèces Idée: Trouver un optimum général en modifiant une solution existante à un problème
Algorithme génétique Ex: Trouver l’altitude maximale de cette courbe définie par z = f(x,y) Point initial (x0,y0) aléatoire Petite variation Ajout d’erreur (évite les extremums locaux)
Algorithme génétique Problème du temps de convergence Aucune garantie d’avoir un maximum
Exemple d’application Simulation de systèmes vivants Gestion de l’apprentissage par renaissance Ex: Creatures 1,2 & 3 Docking Station
Agenda Historique Réseau de neurones Algorithmes génétiques MinMax Algorithme de recherche de chemin Machines à états
MinMax Idée: Prendre une décision en supposant que l’adversaire va choisir le choix le plus optimal pour lui 5 Parler de l’élagage alpha-béta 3 5 2 12 3 10 8 5 10 11 2
Application du MinMax Prise de décision dans des jeux à logique simple Jeu de carte simple Jeu de type « échec » Optimisation avec l’élagage alpha-béta de l’arbre de décision (McCarthy)
Agenda Historique Réseau de neurones Algorithmes génétiques MinMax Algorithme de recherche de chemin Machines à états
Pathfinding: A* Algorithme de recherche de chemin entre deux noeuds d’un graphe Algorithme simple et rapide mais ne garantissant pas l’optimalité de la solution Algorithme majoritairement utilisé dans les jeux vidéo
Pathfinding: A* Exemple: On part du point vert pour aller au point rouge On ne peut pas marcher sur les cases bleues
Pathfinding: A* Pour chaque dalle on considère les cases adjacentes en éliminant les cases inaccessibles On attribue une note F à chaque case, F étant la somme du coût pour aller jusqu’à cette case (noté G) et de l’estimation du coût restant à parcourir (noté H) F = G + H
Pathfinding: A* Dans cet exemple, on attribue un poid différent entre un déplacement vertical/horizontal (10) et un déplacement en diagonal (14 ~sqrt(2)) Les déplacements en diagonal seront permis si et seulement si les deux cases adjacentes à la diagonale sont libres Nous utiliserons la méthode « de Manhattan » pour estimer fonction H, ie. le nombre de cases horizontales et verticales pour atteindre la destination
Pathfinding: A*
Pathfinding: A*
Pathfinding: A*
Pathfinding: A*
Pathfinding: A*
Pathfinding: A* Cet algorithme nous permet de trouver rapidement un chemin entre deux points, cependant: Le chemin n’est pas forcément optimal On peut ne jamais considérer un côté d’une solution symétrique
Pathfinding: Dijkstra Algorithme ayant pour but comme A* de trouver le plus court chemin entre deux points Dijkstra garantit d’obtenir un résultat optimal Algorithme polynomial
Pathfinding: Dijkstra
Pathfinding: Dijkstra
Pathfinding: Dijkstra
Pathfinding: Dijkstra Avantages: Garantit le résultat optimal Inconvénients: Complexité polynomiale Remarques: Equivalent à A* avec une méthode d’heuristique nulle
Pathfinding: Pavages Les algorithmes de pathfinding fonctionnent sur des graphes Soit on génère le pavage au préalable Soit on le calcul par rapport au décor Différents types de pavages fixes
Pathfinding: Pavages
Pathfinding: Pavages La fluidité apparente des solutions de pathfinding dépendra beaucoup du type de pavage
Pathfinding: Pavages Dans les jeux modernes, on utilise un « nav mesh », ou maillage de navigation à but unique de pathfinding
Pathfinding: Pavages La définition des nav-mesh se fait à la main En général on ne définit que les « way point » et on calculera le nav-mesh en conséquence
Agenda Historique Réseau de neurones Algorithmes génétiques MinMax Algorithme de recherche de chemin Machines à états
Machines à états Même dans les jeux modernes, l’intelligence artificielle se résume souvent à une suite de comportements préalablement scriptés Les agents artificiellement intelligents du jeu mutent d’un état à un autre selon certaines conditions pré-établies
Machines à états Ex: Scripting d’un garde dans un jeu d’action Attaquer Patrouiller passivement Se protéger Patrouiller activement