17:35 25.11.2004
 

Idee: Programme werden NICHT zyklisch ausgefhrt,
sondern ein Programm wird nur einmal ausgefhrt
und der PC berechnet die Geschwindigkeit, indem
er die gemessene Mausfortbewegung durch die Dauer
der Programmausfhrung teilt. Die Dauer wird
wie folgt grosszgig gemessen: Der Timer auf dem
PC wird vor bertragung des letzten Befehls des
ganzen Individuums gestartet und wieder gestoppt
wenn der PC das FIN empfangen hat, welches das
AksenBoard nach Ausfhrung des letzten Befehls
sendet. Mit Start und Stop des Timers wird auch
die Bewegungsmeldung der Maus gestartet oder gestoppt.

Dadurch, dass Individuen nicht zyklisch ausgefhrt
werden, wird in Kauf genommen, dass Individuen
sich mglicherweise durchsetzen auch wenn sie
in der zyklischen Ausfhrung langsamer als in
der einmaligen Ausfhrung sind. Dieser Effekt
wird hoffentlich durch Koevolution und das Vorfinden
eines "angenehmen" Vorgngers ausgeglichen.



Idee 2: Individuen werden NICHT auf dem AksenBoard
als krank ausgesondert, (krank heit, sie berschreiten
die zulssigen Grenzen der Werebereiche fr
Zeit, Servonr und Winkel), sondern schon von dem
evolutionren Algorithmus aussortiert bzw. mit
einer sehr schlechten Fitness bestraft.
Das spart Zeit, da das Individuum nicht erst
auf dem AksenBoard evaluiert werden muss.
Der evolutionre Algorithmus generiert so lange neue
Individuen, bis sie in den vorgegebenen Wertebereichen
liegen. Nur gesunde Individuen werden weiter ans
AksenBoard bertragen. Dort ist dann weder Clipping
(Abschneiden zu groer Werte oder Hochschieben
zu kleiner Werte) noch Modulo-Rechnung o.. ntig
und es kann mit den direkt empfangenen Werten
unmittelbar gearbeitet werden.
nicht




Problem: Messungenauigkeit, wenn ein ultrakurzes
Individuum ausgefhrt wird, bei dem die Kugel der
Maus nur kurz und unspezifisch zuckt, die berechnete
Geschwindigkeit des Individuums also sehr unzuverlssig
ist.

Idee: Jedes Programm muss mindestens eine bestimmte
Lnge (gemessen in Zeit oder Anzahl der Befehlen)
haben, bevor es bertragen wird?
=> kleine Programme zyklisch bertragen
ABER: nee, das ist nicht ntig, es sterben doch eh
die kleinen aus, die nur rumzucken.





	for(i=0; i<11; i++){
		servos(i,180);
		//sleep(1200);
	}

	sleep(2000);

	for(i=0; i<11; i++){	// alle Servo-Beine aufrichten
		servos(i,90);
		//sleep(1200);
	}

	sleep(2000);
