Henryk Plötz: Die Zahl Pi

Beitrag lesen

Moin,

Also:
Die zu verwendende Sprache wird über EBMF definiert und eingelesen. EBMF beitet eine syntaktische Beschreibung der Sprache. Darauf basierend wird nun ein _in jedem Fall_ syntaktisch korrektes Programm generiert aufgrund zufälligen Werten aus PI.

Nun bin ich aber gespannt welche Sprache du benutzen willst, um aufgrund einer EBNF (also in jedem Fall eine kontextfreie Grammatik) nur korrekte Programme zu erstellen. Denn üblicherweise fängst du dir so sehr schnell Probleme ein (Bezeichner müssen in vielen Sprachen vor der Benutzung deklariert werden, Funktionen mit einer falschen Anzahl von Paramtern aufzurufen macht den allermeisten Sprachen auch keinen Spaß, etc.)

Natürlich muss der Algorithmus dahingehend verbessert werden, dass generierte Funktionsnamen auch irgendwo mit sub definiert werden müssen (o. ä.). Somit generieren wir mit _jedem_ Schritt ein vollkommen syntaktisch korrektes Programm (mit einigen algo. Verbesserungen, bringen wir's sogar lauffähig)...

Ahh, da ist der eben erwähnte Pferdepfuß hin. Und dafür fand ich das vorhin schon erwähnte Paper sehr aufschlußreich (hab's mittlerweile wiedergefunden: http://citeseer.nj.nec.com/johnson94evolving.html, der Download ist rechts oben), weil dort eben solche Tricks angewendet wurden, damit nur sinnvolle Programme rauskommen, und noch dazu welche ohne Endlosschleifen (ja, die fängt man sich sehr leicht ein).

sehr interessant!

Vielleicht noch ein paar Links: http://www.ki.informatik.hu-berlin.de/lehre/ss02/EvTechSem.shtml (da sind die meisten Vortragsfolien aus dem Proseminar das ich grade besuche), http://www.demo.cs.brandeis.edu/golem/ (Projekt GOLEM ist ebenfalls sehr interessant, auch wenn es weniger Programmierung ist), http://citeseer.nj.nec.com/nolfi94how.html (Da geht es ums programmieren von Robotern, um all die Probleme mit normaler Programmierung zu umgehen, nimmt man hier einfach neuronale Netzwerke, das klappt prima)

--
Henryk Plötz
Grüße aus Berlin