AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Einen Baum durchlaufen

Ein Thema von Minz · begonnen am 22. Jun 2005 · letzter Beitrag vom 24. Jun 2005
Antwort Antwort
Seite 2 von 2     12   
Minz

Registriert seit: 19. Dez 2002
476 Beiträge
 
#11

Re: Einen Baum durchlaufen

  Alt 23. Jun 2005, 13:50
@w3Seek
ja, den hatte ich ja schon erwähnt, nur muss ich dafür zunächst einen Baum haben, bevor ich den anwenden kann...deswegen

werde ich zunächst Alzaimers Tipp befolgen und versuchen einen rekursiven Algorithmus zu finden. So war eigentlich auch mein erster gedanklicher Ansatz, nur fehlten mir dazu die nötigen Voraussetzungen, z.B.
Zitat:
1: (2,10) , (3,10) , (4,14)
2: (1,10) , (4,10)
3: (1,10) , (4,10)
4: (1,10) , (2,10) , (3,10)
Wenn ich diese Struktur in Arrays oder Matrixen habe, kann ich mir darauf eine Rekursion vorstellen. In gewisser Weise ist der Baum damit repräsentiert. Wobei es 4: (1,14) ... sein müsste

Und wenn ichs nicht hinkriege, nehme ich Alzaimers Algo, den mir dizzy genannt hat. Den hab ich schon getestet und funktioniert wunderbar da muss ich die Buchstaben nur noch in Zahlen verwandeln, was kein Prob sein dürfte.

Thx erstmal an alle!
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#12

Re: Einen Baum durchlaufen

  Alt 23. Jun 2005, 15:12
@Minz: Der Fehler wurde von mir nur eingebaut, um zu testen, ob Du alles auch verstanden hast
Frage: Wieviele Knoten hast Du denn in deinem Graphen (AKA: Wie viele Städte muss der Reisende besuchen?')
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Minz

Registriert seit: 19. Dez 2002
476 Beiträge
 
#13

Re: Einen Baum durchlaufen

  Alt 23. Jun 2005, 17:18
also ich fange mit fünf Städten an 1 bis 5

wobei Stadt 1 der Startpunkt ist.

Habe bis jetzt die Matrix erzeugt und die Rekursion läuft zumindest soweit, das ich die erste Zahlenfolge bekomme: 1 2 3 4 5

Nur leider haperts noch bei den restlichen Kombinationen, ich hasse Rekursionen, das fühlt sich so an, als würde mein Kopf sich gleich mitdrehen
Das Problem liegt noch daran, dass ich nach der ersten Kombination 1 2 3 4 5 bei der 3 landen müsste und an der Stelle muss der wissen, dass die 4 schon probiert wurde, so dass er mit der 5 weitermacht 1 2 3 5 4

Naja noch ein bissel drehen dann hoffe ich klappt das

Ansonsten dürfte Dein Algo mit den Permutationen auch von der Geschwindigkeit her schon fast optimal sein - im Vergleich zu Rekursionen
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#14

Re: Einen Baum durchlaufen

  Alt 23. Jun 2005, 17:57
Zitat von alzaimar:
wenn a ein Nachbar von b ist , dann ist ja auch b ein nachbar von a...
Wenn du aber Einbahnstrassen berücksichtigt, führt aber kein Weg von B nach A, obwohl einer von A nach B führt. Also ich würde dann lieber alles doppelt speichern...

In Der Entwickler war mal vor Jahren ein Artikel drin, wo der A* Algorythmus erklärt war. Durchwühl mal in deren Ausgabenarchiv. Es lohnt sich die Ausgabe nachzubestellen.
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#15

Re: Einen Baum durchlaufen

  Alt 23. Jun 2005, 19:00
Wie oben schon mal beschrieben hilft A* hier nicht weiter, da er nicht die Bedingung erfüllt alle Knoten zu besuchen. A* ist nur geeignet wenn man die kürzeste (bzw. schnellste - A* berücksichtigt auch eine Kostenfunktion) finden will. Dieser Weg wird aber nicht über alle Knoten laufen (können).
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#16

Re: Einen Baum durchlaufen

  Alt 23. Jun 2005, 19:23
@Jelly: Ich hatte das erstmal als ungerichteten Graphen betrachtet, weiter unten bin ich auf die Möglichkeit der unterschiedlichen Bewertung ("b liegt auf einem Berg") eingegangen. Trotzdem danke für den Hinweis...

@Minz: Eine Möglichkeit, bei Rekursion eine Gehirnverwurstung zu verhindern, ist, sich nur zu überlegen, wie ich von einem Knoten zum nächsten komme. Wenn dabei alle Sonderfälle (schon besucht etc.) berücksichtigt werden, hast Du es fast. Dann musst du nur noch die geeignete Anfangsbedingung schaffen und fertig. Wer die "Vollständige Induktion" beherrscht, kann auch rekursive Routinen implementieren. Du solltest Dur nochmal meinen Visit-Algorithmus anschauen. Ich markiere die Knoten, die ich besucht habe.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#17

Re: Einen Baum durchlaufen

  Alt 24. Jun 2005, 01:22
Moin,

habe mich mal dran versucht...

MfG
Thorsten

Heinweis zum Programm: Steuerung erfolgt mit der Maus
Angehängte Dateien
Dateityp: zip k_rzestestrecke_121.zip (6,7 KB, 19x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz