
H5 6.2
-
- Nerd
- Beiträge: 647
- Registriert: 1. Okt 2007 12:40
- Wohnort: Darmstadt
- Kontaktdaten:
- Skylo
- BASIC-Programmierer
- Beiträge: 149
- Registriert: 7. Nov 2006 20:08
- Wohnort: Darmstadt (Woogsviertel)
- Kontaktdaten:
mein backtracking funktioniert aber noch nich so richtig...
kann mir jemand grundlegend seine fälle schildern...
ich habe folgende...
entweder ist der akkumulator mit den zu besuchenden Kanten leer , d.h. ich hab "eine" Lösung gefunden ( kann aber noch andere geben )
ODER es sind keine Wege mehr möglich dann fügt er dem ersten Akku wieder das Objekt hinzu oder?
oder beides nicht der fall, dann wird einfach der derzeitige Pfad mit dem rekursiven Aufrug verbunden
also
(cond
[empty? E) akku]
[empty? liste-der-möglichen-kanten-von-Node) (delete-item ITEM akku)]
[else
(append last-item (rekursion (alle-möglichen kanten) (lösche-kante aus E) (append ITEM akku)]
hmmmm wie schaut das für euch aus!
kann mir jemand grundlegend seine fälle schildern...
ich habe folgende...
entweder ist der akkumulator mit den zu besuchenden Kanten leer , d.h. ich hab "eine" Lösung gefunden ( kann aber noch andere geben )
ODER es sind keine Wege mehr möglich dann fügt er dem ersten Akku wieder das Objekt hinzu oder?
oder beides nicht der fall, dann wird einfach der derzeitige Pfad mit dem rekursiven Aufrug verbunden
also
(cond
[empty? E) akku]
[empty? liste-der-möglichen-kanten-von-Node) (delete-item ITEM akku)]
[else
(append last-item (rekursion (alle-möglichen kanten) (lösche-kante aus E) (append ITEM akku)]
hmmmm wie schaut das für euch aus!
Zuletzt geändert von Skylo am 2. Dez 2007 23:10, insgesamt 1-mal geändert.
Junge, geh kacken! Echt jetzt!
-
- Nerd
- Beiträge: 647
- Registriert: 1. Okt 2007 12:40
- Wohnort: Darmstadt
- Kontaktdaten:
Da ich eine Hilfsfunktion habe, die generate-paths n-mal aufruft für alle möglichen Kanten die man von einem Knoten aus besuchen kann, habe ich das Problem nicht. Ich appende einfach die verschiedenen Lösungen von den n-Aufrufen von generate-paths. Daher ist der zweite Fall bei mir empty, also keinen möglichen Weg gefunden und nicht (append ITEM E).
- Skylo
- BASIC-Programmierer
- Beiträge: 149
- Registriert: 7. Nov 2006 20:08
- Wohnort: Darmstadt (Woogsviertel)
- Kontaktdaten:
übrigens meine Ausgabe auf
Leider gibt es bei schwierigeren Problemen mehr probleme und unendlich lange lösungen! :/ scheiss backtracking sollte eigentlich funktionieren!
------------------------------------------
Bei mir läuft das eigentlich so.
dann steht in
eigentlich nur
Plus die Sonderfälle... hmmmm! Idee?
sieht nun richtigerweise so(generate-paths 'a '( (a b) (b c) (c a)) '())
aus!(list (list (list 'a 'b) (list 'b 'c) (list 'c 'a)) (list (list 'c 'a) (list 'b 'c) (list 'a 'b)))
Leider gibt es bei schwierigeren Problemen mehr probleme und unendlich lange lösungen! :/ scheiss backtracking sollte eigentlich funktionieren!
------------------------------------------
Bei mir läuft das eigentlich so.
Code: Alles auswählen
(map rekursiv-bearbeiten (finde-kanten-um knoten aus-list-kanten))
Code: Alles auswählen
(define rekursiv-bearbeiten ....
Code: Alles auswählen
append item-aus-map (generate paths.. usw
Junge, geh kacken! Echt jetzt!