Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
1
Recherche de chemin et labyrinthe
(Starcraft 2) Atelier ISN 2019 – 7 Mars 2019
2
Plan Structure de labyrinthe Recherche de chemin Extensions
Algorithme de Lee / la vague Extensions Dijkstra A * Autres problèmes
3
Structure de labyrinthe
Cf Code python fourni Tableau à deux dimensions laby = [] laby +=[[1,1,1,1,1,1,1,1]] laby +=[[1,0,0,1,0,0,0,1]] laby +=[[1,0,0,1,0,1,0,1]] laby +=[[1,0,1,1,1,1,0,1]] laby +=[[1,0,0,0,0,0,0,1]] laby +=[[1,1,0,1,1,0,1,1]] Laby +=[[1,1,1,1,1,1,1,1]] transpose(laby) laby[x][y] [0] [1] [2] [3] [0][0] [0][1] [0][2] [1][0] [2][0] [3][0]
4
Plan Structure de labyrinthe Recherche de chemin Extensions
Algorithme de Lee / la vague Extensions Dijkstra A * Autres problèmes
5
Recherche de chemins Arrivée Départ
6
Recherche de chemins Quel est le chemin le plus court ?
7
Recherche de chemins Quel est le chemin le plus court ?
Pourquoi difficile ? Solution possibles ?
8
Recherche de chemins Quel est le chemin le plus court ?
Pourquoi difficile ? 1. Enumérer chemins Explosion combinatoire 2. Raisonner sur distances Quelle info trivial ?
9
Algorithme de propagation
Recherche de chemins Algorithme de propagation
10
Algorithme de propagation
Recherche de chemins 1 Algorithme de propagation
11
Algorithme de propagation
Recherche de chemins 1 2 Algorithme de propagation
12
Algorithme de propagation
Recherche de chemins 1 2 3 Algorithme de propagation
13
Algorithme de propagation
Recherche de chemins 1 2 3 4 Algorithme de propagation
14
Algorithme de propagation
Recherche de chemins 1 2 3 5 4 Algorithme de propagation
15
Algorithme de propagation
Recherche de chemins 1 2 3 5 6 4 Algorithme de propagation
16
Algorithme de propagation
Recherche de chemins 1 2 3 5 6 4 7 Algorithme de propagation
17
Algorithme de propagation
Recherche de chemins 1 2 3 5 6 4 7 8 Algorithme de propagation
18
Algorithme de propagation
Recherche de chemins 1 2 3 5 6 4 9 7 8 Algorithme de propagation
19
Algorithme de propagation
Recherche de chemins 1 2 3 10 5 6 4 9 7 8 Algorithme de propagation
20
Algorithme de propagation
Recherche de chemins 1 2 11 3 10 5 6 4 9 7 8 Algorithme de propagation
21
Algorithme de propagation
Recherche de chemins 1 12 14 13 2 11 15 3 10 5 6 4 9 7 8 Algorithme de propagation
22
Algorithme de propagation
Recherche de chemins 12 14 13 1 11 15 10 6 9 7 8 Algorithme de propagation
23
Algorithme de propagation
Recherche de chemins 1 12 14 13 2 11 15 3 10 5 6 4 9 7 8 Algorithme de propagation
24
Algorithme de propagation
Recherche de chemins 12 14 13 1 11 15 10 9 Algorithme de propagation
25
Coder en python Démarche Intérêt [X] Savoir résoudre à la main
[ ] Comprendre la stratégie mise en oeuvre [ ] Ecrire algorithme de haut niveau [ ] Traduire en commentaire [ ] Ajouter le code entre les commentaires Intérêt Séparer code de l'algo et réduire bugs Avoir code correctement commenté
26
Algorithme de propagation
Recherche de chemins 1 12 14 13 2 11 15 3 10 5 6 4 9 7 8 Algorithme de propagation
27
Algorithme de propagation
Recherche de chemins 12 14 13 1 11 15 10 9 Algorithme de propagation
28
Messages à emporter 1. Algorithme de recherche de chemin
Principe de propagation de valeur (accessible) Algorithme de Lee Gestion de frontières (liste ouverte) 2. Manière de coder Comprendre le probleme Résoudre exemple Ecrire les commentaires Ecrire le code
29
Plan Structure de labyrinthe Recherche de chemin Extensions
Algorithme de Lee / la vague Extensions Dijkstra A * Autres problèmes
30
3 Extensions Ajoute des couts aux arcs Accélérer la recherche
Dijkstra Accélérer la recherche Algorithme A* Etendre à d'autres cadres Théorie des graphes
31
Cout = difference altitude
Dijkstra Edsger Dijkstra ( ) Tableau de coûts Exemple altitude sur les cases Ajoute coût de la case Murs 1 2 3 Cout = difference altitude
32
Coût = différence altitude
Dijkstra Principe Développe cases distance plus faible Met à jour si valeur est meilleure Algo Trier la liste ouverte par coût Vérifier chemin réalisable Garantie Car coûts > 0 1 2 3 Coût = différence altitude
33
Coût = différence altitude
Dijkstra Principe Développe cases distance plus faible Met à jour si valeur est meilleure 1 2 3 Coût = différence altitude Distances
34
Coût = différence altitude
Dijkstra Principe Développe cases distance plus faible Met à jour si valeur est meilleure 1 2 3 Coût = différence altitude 1 2 3 4 6 5 8 7 10 11 12 Distances
35
Coût = différence altitude
Dijkstra Principe Développe cases distance plus faible Met à jour si valeur est meilleure 1 2 3 Coût = différence altitude 1 2 3 4 6 5 8 7 10 11 12 Distances 14
36
3 Extensions Ajoute des couts aux arcs Accélérer la recherche
Dijkstra Accélérer la recherche Algorithme A* Etendre à d'autres cadres Théorie des graphes
37
Algorithme de propagation
Algorithme A* Algorithme de propagation
38
Algorithme de propagation + optimisme
Algorithme A* 1 Algorithme de propagation + optimisme
39
Algorithme de propagation + optimisme
Algorithme A* 1 +6 +8 Algorithme de propagation + optimisme
40
Algorithme de propagation + optimisme
Algorithme A* 1 Algorithme de propagation + optimisme
41
Algorithme de propagation + optimisme
Algorithme A* 2 1 Algorithme de propagation + optimisme
42
Algorithme de propagation + optimisme
Algorithme A* 2 1 +5 +8 Algorithme de propagation + optimisme
43
Algorithme de propagation + optimisme
Algorithme A* 2 1 +5 +8 Algorithme de propagation + optimisme
44
Algorithme de propagation + optimisme
Algorithme A* 3 2 1 Algorithme de propagation + optimisme
45
Algorithme de propagation + optimisme
Algorithme A* 3 2 1 Algorithme de propagation + optimisme
46
Algorithme de propagation + optimisme
Algorithme A* 4 3 2 1 Algorithme de propagation + optimisme
47
Algorithme de propagation + optimisme
Algorithme A* 4 3 2 1 Algorithme de propagation + optimisme
48
Algorithme de propagation + optimisme
Algorithme A* 4 5 3 2 1 Algorithme de propagation + optimisme
49
Algorithme de propagation + optimisme
Algorithme A* 4 5 3 2 1 Algorithme de propagation + optimisme
50
Algorithme de propagation + optimisme
Algorithme A* 6 4 5 3 2 1 Algorithme de propagation + optimisme
51
Algorithme de propagation + optimisme
Algorithme A* 6 4 5 3 2 1 Algorithme de propagation + optimisme
52
Algorithme A* 6 4 5 3 2 1
53
Algorithme A* 6 4 5 3 2 1 Conclusion ?
54
Algorithme A* 6 4 5 3 2 1 Conclusion ?
55
Changement labyrinthe
56
Changement labyrinthe
6 4 5 3 2 1 Algorithme de propagation + optimisme
57
Algorithme de propagation + optimisme
Algorithme A* 6 4 5 3 2 1 Algorithme de propagation + optimisme
58
Algorithme de propagation + optimisme
Algorithme A* 6 4 5 3 2 1 Algorithme de propagation + optimisme
59
Algorithme de propagation + optimisme
Algorithme A* 6 4 5 3 2 1 +4 +8 Algorithme de propagation + optimisme
60
Algorithme de propagation + optimisme
Algorithme A* 6 4 5 3 2 1 +4 +8 Algorithme de propagation + optimisme
61
Algorithme de propagation + optimisme
Algorithme A* 6 4 5 3 2 1 Algorithme de propagation + optimisme
62
Algorithme de propagation + optimisme
Algorithme A* 6 4 5 3 2 1 Algorithme de propagation + optimisme
63
Algorithme de propagation + optimisme
Algorithme A* 6 4 5 3 2 1 Algorithme de propagation + optimisme
64
Algorithme de propagation + optimisme
Algorithme A* 6 4 5 3 2 1 Algorithme de propagation + optimisme
65
Algorithme de propagation + optimisme
Algorithme A* 6 4 5 3 2 1 Algorithme de propagation + optimisme
66
Algorithme de propagation + optimisme
Algorithme A* 6 4 5 3 2 1 Algorithme de propagation + optimisme
67
Algorithme A* Démo étudiant DUT
68
3 Extensions Ajoute des couts aux arcs Accélérer la recherche
Dijkstra Accélérer la recherche Algorithme A* Etendre à d'autres cadres Théorie des graphes
69
Problème labyrinthe Structure particulière De manière plus générale
Cases côtes à côtes Connexité fixée Coûts de 1 De manière plus générale Graphe (Noeuds + Arcs) Algorithmes identiques Vraie question : Modélisation du probleme
70
Problème Robot qui va chercher un café 3 pièces qui se suivent
Cafetière au fond Possibilité de déplacer, prendre, poser
71
Problème Robot qui va chercher un café Modélisation du problème
72
Problème Robot qui va chercher un café p1 c0 p2 c0 p3 c0 p1 c1 p2 c1
73
Problème p1 c0 p2 c0 p3 c0 p1 c1 p2 c1 p3 c1 def actions():
return(['gauche','droite','prendre','poser']) def etats(): return([(1,0),(1,1),(2,0),(2,1),(3,0),(3,1)]) def transition(s,a): (pos,cafe)=s if (a=='gauche'): if (pos>1): pos=pos-1 if (a=='droite'): if (pos<3): pos=pos+1 if (a=='prendre'): if (pos==3): Cafe=1 if (a=='poser'): Cafe=0 return(pos,cafe) p1 c0 p2 c0 p3 c0 p1 c1 p2 c1 p3 c1
74
Probleme : Sokoban Sokoban A faire Caisse et murs Amener les caisses
Modéliser le probleme Appliquer algo Heuristique si A*
75
Problèmes : puzzle solo
Rush hour Taquin Rubick’s cube
76
Problèmes : puzzle solo
Dr Eureka (blue orange)
77
Et beaucoup d'autres Thinkfun / Smartgames Turnstile
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.