2017-05-29 4 views
1

Ich arbeite in meiner Diplomarbeit und versuche, ein GA zu erstellen, um Ebenen für ein Spiel prozedural zu erstellen.Genetische Algorithmen - Können Chromosomen Bäume sein?

Auch wenn GA nicht die beste Technik ist, ist es möglich.

Wie auch immer, da ich nie mit ihnen gearbeitet habe, lese ich einige Bücher über Einführung in GA.

Die Sache ist, ist notwendig, um Chromosomen als Bits oder sie können jede Art von Datenstruktur darstellen? Ich frage es, weil ich denke, Bäume zu verwenden, um Ebenen auf prozedurale Weise zu erstellen und GA zu verwenden, um sie auszuwerten, aber wenn ich über GA lese, verwenden sie Bits in den meisten Beispielen dort.

Antwort

1

Absolut! Wenn Sie wollen, dass Ihr genetischer Algorithmus eine komplexere Repräsentation Ihrer Individuen verwendet, mit Ausnahme von Strings oder Arrays fester Größe, dann heißt er Genetic Programming (GP).

In GP werden die Individuen in der Regel als Bäume dargestellt:

Tree representation of a GP individual

Oder auch als Codezeilen: Code generation by genetic algorithms

Für weitere Informationen siehe: What are the differences between genetic algorithms and genetic programming?

Und vor Ich empfehle dieses Buch: A Field Guide to Genetic Programming

1

Wenn Sie in der Lage sind, das zu adressieren, was Sie als Crossover-Operation definieren, kann Ihr Vorschlag durchführbar sein. Auch wenn Sie keine Asymmetrie im genetischen Material einführen, sollten die Bäume ausgeglichen sein, und zu diesem Zeitpunkt kann eine lineare Codierung die gleiche effektive Information tragen. Ich würde entweder auf Bits oder auf eine Zeichenkette bleiben, es sei denn, es gibt einen sehr guten Grund, dies nicht zu tun, da solche Darstellungen sowohl in der Literatur als auch in bestehenden Bibliotheken der Standard sind.

1

Absolut! Sie können jede gewünschte Datenstruktur verwenden, solange Sie geeignete Fitness-, Mutations- und (möglicherweise) Crossover-Operatoren bereitstellen.

Verwandte Themen