Upload
leena
View
55
Download
2
Embed Size (px)
DESCRIPTION
Intelligence Artificielle. Steve Gury [email protected]. 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 - PowerPoint PPT Presentation
Citation preview
Intelligence Artificielle
Steve [email protected]
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
12 3 10 8 5 10 11 2
33 55 22
5
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
Patrouilleractivement
Attaquer
Se protéger
Patrouillerpassivement