Vous êtes sur la page 1sur 9

0123456 au lieu de abcdefg

Pour obtenir le graph. ! deja le toString !

Puis : recherche du plus court chemin : map avec # mur et . case vide

Une fois que j’ai le champ de vecteur, je dois trouver le cout minimum : algo BFS : toutes les cases
sont équidistance
Algo dijsktra : mur et forêts : cahamp de vecteur, champ des pondérations, chemin trouvé

Dernier si le temps : A* : bcp plus de cases non utilisées. Commencer par le nord pour aller de lyon à
paris.
Si points d’interrogation pour questions après 3 : normal  pas UFT8  autre code à changer

Vector = linkedList  c’est la même chose pour l’utilisation

4) non terminal non complet optimal


Remove : renvoie l’élément en même temps qu’il le supprime

Attention à pas confondre dest et cur

4) terminal : le programme peut-il partir en boucle infinie ?  si un mur non franchissable –> le code
arrête si le mur donc oui terminal  chaque nœud n’est étudié qu’une seule fois (il n’y a pas de
voisin quand il y a un mur)

Complétude : algo termine alors toujours solution ? non car si mur il n’y a pas de chemin  donc pas
de gaantie de complétude. Par contre pour tous ceux où il existe un chemin, alors il y en a un.
Fournit le chemin le plus court ou presque (il en existe peut-être d’autres exaeco)
Dijkstra :

Question 6 manquante : je veux faire le dérouler papier sur un graphe comme celui du 3.3.4 (ce
qu’on aura pour l’IE). Partie codage  importante pour les projets

Partie papier : ensemble avec exemple.

On cherche le chemin le plus court de Gà E. chaque arrête à un poid. La longueur est la somme des
poids de chaque chemin

On a une file d’attente qui gère les priorités (si je pose un nœud, GAB et GBD execo )

To do list dans la file d’attente

Dérouler papier : point de dépar : G (vers E)

Ensemble des voisins : seul A : distance 2(G)

Donc je choisis A : pour le trainter, trois voisins, Gtraité (tiret)

B : 3

D :3

Je prend l’élément suivant au hasard(BouD)

B :

A,C,F

A traité, C4, D3,F,4,5


Je prends le poids minimum : D pas interressant

Poids minimum C : E : 6

Pas sur que le chemin est minimum : continuer jusqu’à ce qu’on dépile E

F : 3+ 4,5 plus grand que si on passe par C

E dépilé :
Notion de cercle concentrique

En partant de la fin : E,C,B,A,G


Came from et cost so far sont les résultats.

PriorityQueue au lieu de linked list  permet de trier par rapport aux valeurs

Au milieu : pour chacun des voisins, je calcule son cout  la longueur du chemin du neud actuel + du
suivant, qui permet d’aller à la destination

Pour aller depuis ce nœud vers l’autre  newCost  dans la liste de priorité mais peut encore
changer

L’élément que je prend  il était déjà atteint ?  je l’ai peut être dejà vu dans un autre chemin ? 
si dejà atteint, j’ai déjà trouvé mieux. Sinon je l’empile.

Je prends les voisins et je les met dans la file de priorité


2 évals : 1 pour ce TD plus partie robotique (pas en java  algorithmique pur  dérouler des
graphes et algo)

1 pour partie réseau (trois prochaines c^scéances sur la prog. Réseau.)

Semaine pro : présentiel/distanciel

Sur place : arduino

Distance : java

Interro après le 12  incertitudes sur les modalités.

Que 2 sujets à faire ?