Zitat:
In deinem Sinne ist es eben die Frage wie man sicherstellt das ein so erzeugtes "Program" auch wirklich syntaktisch korrekt ist.
Also das habe ich eigentlich nicht gemeint. Ich habe dabei schon angenommen, dass eine Sprache konstruiert wird, bei der Syntaxfehler unmöglich sind ODER dass beim Mutieren darauf geachtet wird, dass das Programm syntaktisch korrekt bleibt.
Mit "Algorithmus zerstören" meinte ich vielmehr, dass der neue evolvierte Algorithmus nicht mehr die Aufgabe erfüllt.
Man nehme zwei Programme, die beide einer Wand folgen können. Dann nimmt man einen Teil des ersten Programms und einen Teil ds zweiten, fügt sie zusammen - und plötzlich kann das Programm überhaupt nichts mehr.
Deine Antwort war aber trotzdem hilfreich, danke!
Zitat:
unary, (hm welches Wort gibts dafür im Deutschen?)
unär!
Zitat:
Konstanten und Variablen sind unary, (hm welches Wort gibts dafür im Deutschen?) sie sind also nur Eins.
Operatoren sind immer binary oder größer, sie benötigen also immer mindestens zwei formale Seiten.
Soweit bin ich auch schon gekommen. Das kann man dann als binären Baum darstellen:
(Quelle:
http://www.cs.ucl.ac.uk/research/gen...q/gp2faq2.html)
Man kann das natürlich mit Operatoren und Befehlen erweitern und somit nicht nur bei den GAs, sondern auch beim EP anwenden.
Ich sehe also, es gibt viele Möglichkeiten zur Vermehrung und wenn ich das mal selber machen möchte (ich werde wohl mit diesem Baum-Interpreter anfangen), werde ich ein wenig experimentieren müssen.