La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Recherche de chemin et labyrinthe

Présentations similaires


Présentation au sujet: "Recherche de chemin et labyrinthe"— Transcription de la présentation:

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


Télécharger ppt "Recherche de chemin et labyrinthe"

Présentations similaires


Annonces Google