640 likes | 1.35k Views
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
E N D
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 • 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 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* • 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 • 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 • 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