Ich habe den Optimierer so erweitert, dass er Shift berücksichtigen
kann.  Nach der Metrik die ich dabei verwende macht es durchaus einen
Unterschied ob man das tut oder nicht, wenn auch nicht dramatisch
(vergleiche die ohne Berücksichtigung von Shift optimierte Tastatur
«Ohne Shift» und die mit Berücksichtigung von Shift optimierte Tastatur
«Mit Shift» unten).  Für den Vergleich habe ich den Leipziger Textkorpus
verwendet (genauer gesagt die Tabellen «1gramme.txt» und «2gramme.txt»
die Karl daraus erzeugt hat).  Im Vergleich unten ist der Gesamtaufwand
in jedem Fall mit Berücksichtigung von Shift berechnet.

Die Details sind nicht sehr spannend; falls sich noch doch jemand dafür
interessiert, wie die Beurteilung gemacht wird, siehe den Quellcode (URL
wie gehabt).

Außerdem habe ich den Algorithmus umgestellt: Statt des besten Tausches
wird in jeder Iteration (ausgehend von einer zufälligen Stelle) der
erste Tausch gemacht der eine Verbesserung bringt.  Dadurch läuft der
Optimierer im Mittel etwas schneller.  Die Tastaturen «Mit Shift» und
«Ohne Shift» wurden nach jeweils ein paar Sekunden Laufzeit gefunden.

Andreas


Großbuchstaben:    6.587 %
Mehrfachanschläge: 2.275 %


Mit Shift      232.102 Gesamtaufwand 185.108 Lageaufwand
------------     1.137 Kollisionen     2.972 Shift-Kollisionen
kzo., cgmlfq    70.480 Handwechsel    30.643 Shift-Handwechsel
haeiu dtnrsß    17.774 Einwärts       62.551 Shift-Einwärts
xüäöy pbwvj      8.335 Auswärts        3.834 Shift-Auswärts


Ohne Shift     240.870 Gesamtaufwand 184.706 Lageaufwand
------------     0.780 Kollisionen    18.054 Shift-Kollisionen
äco., bgmlvß    71.200 Handwechsel    19.564 Shift-Handwechsel
ateiu hdsnrx    15.468 Einwärts       57.669 Shift-Einwärts
qpöüy kfzwj     10.277 Auswärts        4.713 Shift-Auswärts


Bro            251.192 Gesamtaufwand 192.434 Lageaufwand
------------     1.983 Kollisionen     8.281 Shift-Kollisionen
xpc,y kghlfß    71.816 Handwechsel    20.658 Shift-Handwechsel
uieao dtnrsj    13.806 Einwärts       67.006 Shift-Einwärts
üqä.ö vmbzw     10.120 Auswärts        4.056 Shift-Auswärts


Moesi HP       261.699 Gesamtaufwand 201.847 Lageaufwand
------------     1.472 Kollisionen    13.236 Shift-Kollisionen
yoa,j kgclfx    70.946 Handwechsel    27.210 Shift-Handwechsel
iuehp dtnrsß    13.803 Einwärts       55.483 Shift-Einwärts
üöä.q vmbzw     11.505 Auswärts        4.071 Shift-Auswärts


Moesi Var.     266.465 Gesamtaufwand 206.318 Lageaufwand
------------     1.605 Kollisionen    13.691 Shift-Kollisionen
yoa,j kghlfx    71.596 Handwechsel    22.573 Shift-Handwechsel
iuecp dtnrsß    14.252 Einwärts       59.520 Shift-Einwärts
üöä.q vmbzw     10.272 Auswärts        4.217 Shift-Auswärts


Neo2           294.627 Gesamtaufwand 191.699 Lageaufwand
------------     6.494 Kollisionen     6.291 Shift-Kollisionen
xvlcw khgfqß    64.507 Handwechsel    32.439 Shift-Handwechsel
uiaeo snrtdy    10.131 Einwärts       57.514 Shift-Einwärts
üöäpz bm,.j     16.594 Auswärts        3.756 Shift-Auswärts

Antwort per Email an