Re: [Neo] xcvz links oder nicht?

2010-07-31 Diskussionsfäden Michael Ostermeier
Hallo,

 Ich bin weiterhin am Layouts basteln

Schön zu hören. :-)

 und merke mehr und mehr, dass xcvz
 links oder nicht eine binäre Entscheidung ist: Wenn ich es in den Optimierer
 packe, verzerrt es die Ergebnisse. Selbst diejenigen, die am Ende nicht xcvz
 links haben, werden davon beeinflusst.
 
 Daher sollte der Parameter entweder
 so stark sein, dass xcvz auf jeden Fall links sind, oder komplett
 weggelassen werden.

Mit meinen bescheidenen Softwarekenntnissen und deiner Aussage vom 29.
April (e1o7zzx-7m...@smtp05.web.de):
 Ich habe die Kosten der Grundtasten von 1 auf 3 erhöht, vergebe aber pro
 schlecht positioniertem xcvz nur 0.1 Strafpunkte (also maximal 0.4)
 pro Zeichen im Text.
denke ich herauszulesen, dass Du, während Du den Korpus auswertest, bei
jedem xcvz, das im Korpus vorkommt, die Position der Taste prüfst.
Stimmt das? Ich bin jetzt zu faul, da selbst nachzusehen (u.A. weil ich
kein Python kann).

Falls ja, finde ich nicht, dass das nötig ist. Der Code würde dann
performanter, wenn nach der Prüfung des gesamten Korpus nur genau einmal
die Position der vier genannten Tasten getestet würde. Dann gibt’s zwei
Möglichkeiten. Entweder eine Strafpunktzahl vergeben, wenn eine oder
mehr rechts liegen, um vollkommen binär zu werden. Oder diese
Strafpunkte durch vier teilen und pro Taste vergeben.

Im binären Fall könnte man durch geschickte Wahl der Strafpunktzahl
erreichen, dass circa die Hälfte der Ergebnislayouts die Tasten links
haben, die Andere optimal verteilt. Diese Strafpunktzahl sagt dann
gleichzeitig aus, wie viel schlechter ein Xcvz-links-Layout
durchschnittlich ist (umrechenbar in %). Die Auswirkungen auf die
Nicht-alle-links-Layouts sollten dann m.E. eher gering sein.

 Brauchen wir xcvz zwingend links oder nicht? 

Da will ich mich jetzt noch nicht festlegen. ;-)

Gruß

Miche



Re: [Neo] xcvz links oder nicht?

2010-07-31 Diskussionsfäden Michael Ostermeier
Hallo Arne,

 denke ich herauszulesen, dass Du, während Du den Korpus auswertest, bei
 jedem xcvz, das im Korpus vorkommt, die Position der Taste prüfst.
 Stimmt das?
 Ich schauen einfach nur einmal pro Mutation, wo sie
 liegen.

Ok, ich bin beruhigt.

 Möglichkeiten. Entweder eine Strafpunktzahl vergeben, wenn eine oder
 mehr rechts liegen, um vollkommen binär zu werden. Oder diese
 Strafpunkte durch vier teilen und pro Taste vergeben.
 Aktuell mache ich das letztere. Ich kann allerdings
 problemlos auf das erstere wechseln. Es klingt mir akut sinnvoller. 
 
 Die
 Schwierigkeit liegt aber darin, dass durch den Malus jeder einzelne
 Mutationsschritt beeinflusst wird. Es kann sein, dass eine Veränderung nur
 deswegen nicht sinnvoll ist, weil einer von xcvz dadurch auf eine
 schlechte Position kommt, dann aber ein weiterer Schritt sie doch auf eine
 schlechte Position bringt, so dass sie am Ende nicht links sind, aber eine
 positive Veränderung fehlt. 

Das kann ich mir gut vorstellen. Wenn die Strafpunktzahl hoch ist, ist
die Hürde für den Übergäng ‚alle links‘ nach ‚eins oder mehr rechts‘
vielleicht so hoch, dass erst Zwei- oder Dreifachersetzungen zum Ziel
führen. Allerdings ist dann die Trefferwahrscheinlichkeit auch
geringer, weil es schlicht zu viele mögliche Kombinationen gibt. Setzt
man dann aber die Strafpunktzahl zu weit herunter, so kann es sein,
dass fast nur noch ‚eins oder mehr rechts‘-Layouts rauskommen, weil der
Anreiz, alles nach links zu schieben zu gering ist, was ja auch eher
ein Zufallstreffer sein wird dann.

Die Evolution braucht also ziemlich viele Durchläufe. Performanz kann
also möglicherweise wichtiger werden. Es käme halt auf einen Versuch an.
Falls nicht, so könnte die Lösung aber eine Mischform sein, die
einerseits den Übergang erleichtert und andererseits weniger
Seiteneffekte hat.

Vielleicht ist es am einfachsten, einmal auf ‚alle links‘ zu optimieren,
danach auf ‚egal‘ und zu schauen, wie groß denn der Unterschied ist, um
sich auf eines festzulegen. Oder kannst Du den Unterschied schon
beziffern?

Gruß

Miche