Programmierprojekt: Teil 4!

Benutzeravatar
Owyn
BSc Spammer
BSc Spammer
Beiträge: 1012
Registriert: 5. Sep 2005 21:53
Wohnort: Rheingau

Re: Programmierprojekt: Teil 4!

Beitrag von Owyn »

copper hat geschrieben:Wäre das für die Formale richtigkeit nötig?
Nein. Wie Sie schon sagen, werden die Sets ja nicht mehr ausgewertet, und bei einem erneuten dijkstra()-Durchlauf wieder zurückgesetzt.

Gruß,
Christian Heinig
All those who believe in psycho-kinesis, raise my hand.
(Steven Wright)

copper
Erstie
Erstie
Beiträge: 21
Registriert: 22. Apr 2009 14:26

Re: Programmierprojekt: Teil 4!

Beitrag von copper »

Oh, gut... Vielen Dank!

Grüße, Copper

h-file
Neuling
Neuling
Beiträge: 9
Registriert: 26. Mai 2009 14:03

Re: Programmierprojekt: Teil 4!

Beitrag von h-file »

Servus,

In der Aufgabenstellung steht,
man soll aus der Menge benachbarteKnoten den Knoten mit der kleinsten entfernung suchen
und den Knoten anschließend aus beiden Mengen entfernen.

Zu Beginn ist doch der start-Knoten der mit der kleinsten entfernung;
wenn ich also den start-Knoten aus der Menge benachbarteKnoten entferne,
die ja nur mit dem start-Knoten initialisiert ist, reißt meine while
Schleife doch schon ab, bevor die Menge benachbarteKnoten wieder über getNextEdges
befüllt würde?!

Daniel S.
Mausschubser
Mausschubser
Beiträge: 87
Registriert: 25. Sep 2007 12:28
Wohnort: Mörfelden

Re: Programmierprojekt: Teil 4!

Beitrag von Daniel S. »

Hallo.
Die Schritte 1. bis 4. werden solange wiederholt, bis die Menge benachbarteKnoten leer ist oder der Zielknoten besucht wurde...
-> Sie wiederholen einfach alle 4 Schritte in der gegebenen Reihenfolge. D.h. sie füllen das Set doch wieder bevor Ihre Schleife zu Ende ist!?
Mit freundlichen Grüßen
Daniel

h-file
Neuling
Neuling
Beiträge: 9
Registriert: 26. Mai 2009 14:03

Re: Programmierprojekt: Teil 4!

Beitrag von h-file »

Servus,

die get- und set-Methoden von start und destination werden hier doch garnicht benötigt,
da die komplette Aufgabe doch in der Klasse Routenplaner, in der ja die private OV start und destination gespeichert sind, stattfindet, oder??

Oder ist die Verwendung der Methoden in irgendeiner Hinsicht vorzuziehen?

Gruß

mdesa
Erstie
Erstie
Beiträge: 20
Registriert: 1. Jul 2009 14:26

Re: Programmierprojekt: Teil 4!

Beitrag von mdesa »

Die entfernung eines Nachbarknotens ergibt sich aus der Summe der eigenen
entfernung des gerade ausgewählten Knotens und der Länge der entsprechenden
Kante zum Nachbarn.

Also kann ich davon Ausgehen dass von jedem Knoten nur eine Verbindung ausgeht.
Sprich jeder Knoten hat nur einen Nachbarn?!?

Benutzeravatar
Owyn
BSc Spammer
BSc Spammer
Beiträge: 1012
Registriert: 5. Sep 2005 21:53
Wohnort: Rheingau

Re: Programmierprojekt: Teil 4!

Beitrag von Owyn »

h-file hat geschrieben:die get- und set-Methoden von start und destination werden hier doch garnicht benötigt,
da die komplette Aufgabe doch in der Klasse Routenplaner, in der ja die private OV start und destination gespeichert sind, stattfindet, oder??
Innerhalb der Klasse brauchen Sie die get- und set-Methoden natürlich nicht. Aber um dem Algorithmus mitzuteilen, von wo nach wo er eine Route berechnen soll, ist es schon recht sinnvoll, mittels set-Methoden von außen Start- und Zielknoten festlegen zu können... und falls man das im Nachhinein noch mal wissen will, braucht man auch die get-Methoden.

EDIT: Ok, ich sehe gerade, dass die Aufgabenstellung Parameter für die Methode dijkstra() vorsieht. Damit sind die set-Methoden natürlich eigentlich unnötig - gefordert waren sie aber trotzdem.
mdesa hat geschrieben:Die entfernung eines Nachbarknotens ergibt sich aus der Summe der eigenen
entfernung des gerade ausgewählten Knotens und der Länge der entsprechenden
Kante zum Nachbarn.

Also kann ich davon Ausgehen dass von jedem Knoten nur eine Verbindung ausgeht.
Sprich jeder Knoten hat nur einen Nachbarn?!?
Nein, das kann man aus dem Satz nicht schließen. Wenn ein Knoten X die Nachbarknoten A, B und C hat und die zugehörigen Kantenlängen a = 3, b = 4 und c = 5 sind, und der Knoten X die bisherige minimale "entfernung" 2 hat, bekommen die Knoten A, B und C im aktuellen Schritt des Dijkstra-Algorithmus die "entfernung" 5, 6 und 7 zugewiesen.

Gruß,
Christian Heinig
All those who believe in psycho-kinesis, raise my hand.
(Steven Wright)

Yana123
Erstie
Erstie
Beiträge: 16
Registriert: 5. Mai 2009 15:45

Re: Programmierprojekt: Teil 4!

Beitrag von Yana123 »

Hallo,
ich habe eine allgemeine Frage:
So wie ich verstanden habe, gibt die Methode dijkstra() die Länge des kürzesten Pfades zurück (also irgendeine Zahl). Der Pfad selbst (eine Folge von SearchEdges) wird nicht aus- bzw. zurückgegeben. Den können wir also nicht sehen. Wozu brauchen wir die Methode setBoldFlags()? Ok, der kürzeste Pfad ist also zum Schluss gefunden, ist aber niergendwo zu sehen. Warum müssen wir die Markierungen aller Kanten im Pfad auf true setzen? Wo wird das benötigt?

Danke für die Hilfe,
Grüße,
Yana

Max Web
Neuling
Neuling
Beiträge: 9
Registriert: 9. Jun 2009 19:57

Re: Programmierprojekt: Teil 4!

Beitrag von Max Web »

Lasse dir den Graphen doch testweise einmal anzeigen (passende Methode in Graph), nachdem alle geforderten Methoden aufgerufen wurden. Wenn Du dann noch das Tool aus dem 1. Teil benutzt, um die entstandene .dot-Datei zu visualisieren, sollte der Pfad fett eingezeichnet werden. Spätestens jetzt sollte klar sein, was die Methode macht und wie der Routenplaner funktioniert.

(ich glaube, mehr Tipps darf ich nicht geben, oder?).

Gruß,

Max Web

Antworten

Zurück zu „Archiv“