Apprendre Maple Index du Forum Apprendre Maple
Site dédié au logiciel de calcul formel Maple
 
  Page d'accueilPage d'accueil   FAQFAQ    RechercherRechercher    Liste des MembresListe des Membres    Groupes d'utilisateursGroupes d'utilisateurs 
S'enregistrerS'enregistrer    ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

Algorithme de Dijkstra

 
Poster un nouveau sujet   Répondre au sujet    Apprendre Maple Index du Forum -> Programmation
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
laure12345



Inscrit le: 17 Fév 2011
Messages: 9

MessagePosté le: 17 Fév 2011 15:48    Sujet du message: Algorithme de Dijkstra Répondre en citant

Bonjours à tous!
Je suis étudiente, et nouvelle en maple (d'ou mon niveau pitoyable!!).
Je dois étudier l'algorithme de Dijkstra, et votre TP m'a beaucoup aidé, mais j'ai cependant des questions. Tout d'abord concernant la 1ere programation (construction de la matrice): je n'ai pas très bien compris la fonction evalm (.=ou?) et pourquoi matrix(n,n,1)? et ensuite je ne comprends pas bien non plus pour la boucle "for arc in G[2] do M[arc[1],arc[2]]:=arc[3];". Voilà, si quelqu'un pourrait m'aider (parce que même avec l'aide maple...), merci d'avance!! (J'aurais d'autre questions pour la 2e prog plus compliquée, mais chaque chose en son temps!) Wink
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
ALS



Inscrit le: 11 Sep 2006
Messages: 647

MessagePosté le: 18 Fév 2011 7:25    Sujet du message: Répondre en citant

Bonjour,
evalm est la fonction d'évaluation matricielle.
matrix(n,n,1) remplit une matrice n x n avec des 1, que je multiplie ensuite par infinity pour avoir une matrice initiale remplie d'infinis.

G[2] est la liste des arcs pondérés [x, y, δ(x,y)].
Donc la boucle
for arc in G[2] do M[arc[1], arc[2]] := arc[3] end do
permet de placer dans la matrice la distance δ(x,y) en ligne x et colonne y.

Par exemple: si arc = [1, 2, 10] (premier arc de G[2]), on aura M[1,2]=10, donc cela place un 10 en ligne 1 et colonne 2 de M.

A bientôt.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
laure12345



Inscrit le: 17 Fév 2011
Messages: 9

MessagePosté le: 19 Fév 2011 12:04    Sujet du message: Répondre en citant

Merci beaucoup!!
Alors pour la 2e programmation, je me pose plusieurs questions:
-dans l'initialisation, pourquoi au lieu décrire n:=linalg[rowdim](M), je ne peux pas écrire n:=linalg[columndim](M) qui selon moi reviendrai au même vu que la matrice est carrée, mais maple refuse?
-pour sortir de la boucle, dans la construction de c, pourquoi break fi et non break if?
-et je n'ai pas bien compris y avec pred[k]:=dep, pred[k]:=y et la boucle if d[k]>d[y]+M[y,k] then d[k]:=d[y]+M[y,k]...
Voilà, merci d'avance! Wink
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
ALS



Inscrit le: 11 Sep 2006
Messages: 647

MessagePosté le: 20 Fév 2011 9:21    Sujet du message: Répondre en citant

Bonjour,
n:=linalg[columndim](M) n'existe pas: il faudrait mettre n:=linalg[coldim](M) pour que cela fonctionne de la même façon.

fi ou end if indique la fin d'un bloc commençant par if

Je vous engage à relire le chapitre de cours sur la programmation sur ce site pour apprendre la syntaxe du langage.

Pour votre dernière question, vous consultez cette page http://fr.wikipedia.org/wiki/Algorithme_de_Dijkstra qui vous explique l'algorithme de façon très détaillée sur un exemple.

A+
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
laure12345



Inscrit le: 17 Fév 2011
Messages: 9

MessagePosté le: 22 Fév 2011 21:55    Sujet du message: Répondre en citant

Merci beaucoup.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Apprendre Maple Index du Forum -> Programmation Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 1

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


phpBB

Développé par phpBB © 2001, 2006 phpBB Group
Traduction par : phpBB-fr.com


Apprendre Maple - ©  - Alain Le Stang - Navigation optimisée pour une résolution 1024 x 768.