Entwickler-Ecke
Algorithmen, Optimierung und Assembler - Dijkstra- Algorithmus
SandyAkira - Fr 13.02.09 15:07
Titel: Dijkstra- Algorithmus
Hallo,
bin ziemlich neu hier und hoffe auf Hilfe. Ich muss zurzeit eine Arbeit über den Dijkstra- Algorithmus schreiben. Wie dieser theoretisch funktioniert, weiß ich. Jedoch muss ich diesen auch in delphi implementieren. HAt jmd. von euch so ein Programm und könnte es mir schicken? Damit ich mal einenen Überblich bekomme, konnte nämlich sonst keine Bücher ect. zur Implementation finden...
jaenicke - Fr 13.02.09 15:14
Titel: Re: Dijkstra- Algorithmus
:welcome:
SandyAkira hat folgendes geschrieben : |
| HAt jmd. von euch so ein Programm und könnte es mir schicken? Damit ich mal einenen Überblich bekomme, konnte nämlich sonst keine Bücher ect. zur Implementation finden... |
Also ich habe mit Google ca. 10 Sekunden gebraucht... Da gibt es einiges...
DIJKSTRA DELPHI
Erstes Ergebnis:
http://www.delphiforfun.org/Programs/Math_Topics/ShortestPath.htm
// EDIT:
Nebenbei: Wenn du weißt wie der theoretisch funktioniert, wäre es sehr viel sinnvoller den selbst zu implementieren. Dann verstehst du das noch viel besser und kannst das auch viel besser erklären.
SandyAkira - Fr 13.02.09 15:19
.. leider habe ich auch als Vorraussetzung bekommen das mit Hilfe eienr Adjazenzmatrix zu machen. Das Problem ist bloß sowas habe ich vorher nie behandelt .. und die geschriebene adresse scheint zwar den algorithmus zu beschrieben allerdings für jmd. "unwissenden" wie mich ist es etwas schwer udn dann noch auf englisch... hatte diese seite nämlich vorher schonmal gefunden
Gausi - Fr 13.02.09 15:26
Hallo,
Die Adjazenzmatrix ist ja nur für die Speicherung des Graphen da. In Zeile i und Spalte j steht die Distanz zwischen i und j, wenn es eine Kante von i nach j gibt, sonst 0. Und wenn du an einem Knoten bist, gehst du einfach alle Nachbarn des Knoten durch, also eine Spalte bzw. Zeile und machst das passende, wenn da etwas von 0 verschiedenes steht.
Woran hakt es denn, wie sieht dein bisheriger Ansatz aus?
SandyAkira - Fr 13.02.09 15:38
aslo was eine adjazenzmatrix ist hab ich miir schon in büchern nachgeschlagen, aber leider fehlt mir die kenntnis wie man das mit delphi einsetzt, da wir sowas wie graphne darstellen mit delphi nie hatten. bei uns hat es sich eher auf "hier ein button und da ein button und dann da ein ergebnis" beschränkt
jaenicke - Fr 13.02.09 15:43
Eine Matrix kannst du in Delphi mit einem zweidimensionalen Array realisieren.
Delphi-Quelltext
1: 2: 3: 4:
| var MyMatrix: array of array of Integer; begin SetLength(MyMatrix, 10, 10); |
Das erzeugt eine Matrix mit der Größe 10 mal 10. Ein Zugriff sieht dann so aus:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| MyMatrix[3, 4] := 99; MyMatrix[3][4] := 99; Length(MyMatrix) Length(MyMatrix[0]) High(MyMatrix) |
Theoretisch kannst du die Größe natürlich auch vorher schon festlegen, wenn du die Größe vorher kennst:
Delphi-Quelltext
1: 2:
| var MyMatrix: array[0..9] of array[0..9] of Integer; |
SandyAkira - Fr 13.02.09 17:15
danke, das hilft mir glaub ich schon mal etw so dass ich mich weiter durchtüfftlen kann...
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!