Labyrinth Algorithmus (mutierend) Tipps?

2 Antworten

Du brauchst auf jeden Fall einen Score, der den tatsächlichen Fortschritt bewertet. Satz vom Pythagoras hilft nicht, wenn du z.B. folgendes hast:

0 0 0
0 1 0
0 1 0
0 1 0
S 1 E

Bzw. es wird so viel Mutation nötig, dass es nichts weiter als Bruteforce wird.

Die "Fusion" von zwei Pfaden halte ich auch für sehr schwierig. Bist du dir sicher, dass das ein guter Anwendungsfall ist?

Woher ich das weiß:Studium / Ausbildung – Trust me, I'm an engineer
Daidalos5364  03.04.2024, 11:07

Genau hier sehe ich auch verbesserungsbedarf. Hier fehlt mir aber die Expertise. Evtl. könnte man einen Score basierend auf Ziel erreicht ja/nein und ob ein Hindernis getroffen wurde oder nicht einrichten. So würde das Ziel zwar langsamer gefunden, aber der Weg wird effizienter.

bzgl. Der Vererbung könnte man ja eigentlich auf eine Paarung verzichten, da die Pfade in sich selbst ja sxhlüssig sein müssen. Also nur eine Mutation.

2
J0T4T4  03.04.2024, 14:16
@AntonderDenker

Ich habe noch einmal nachgedacht und würde als Score die Anzahl an Feldern nehmen, die exakt ein einziges Mal besucht werden. Sackgassen werden damit vernünftig bestraft, sobald sie schnell genug auftauchen und es wird keine explizite Kenntnis des Standortes des Ziels vorausgesetzt.

Wenn dann das Ziel erreicht wird, braucht es eine neue Metrik, um die Performance zu bewerten. Dann geht es nämlich darum, den kürzesten Weg zu erhalten.

1

wenn nur die Distanz zum Ziel berücksichtigst, dann kann auch ein scheinbar sehr guter Weg am Ende in eine Sackgasse enden.

Natürlich kann man das Labyrinth bruteforcen, aber das macht keinen Sinn für ein Algorithmus. Du solltest unwahrscheinliche Wege meiden.

Vielleicht ist doch der A* Algorithmus besser.

AntonderDenker 
Fragesteller
 02.04.2024, 15:24

Mir geht es gar nicht darum einen optimalen Algorithmus zu entwickeln, sondern ein Projekt zum lernen und verstehen von mutierenden Algorithmen zu haben.

0