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