Hallo Sebastian,

> Ein weiterer interessanter Punkt ist, dass ja anscheinend Tasten wie
> Shift, Enter, Tab, Mod usw. nicht mit Buchstaben belegt werden sollen,
> sondern nur das deutsche Alphabet plus Punkt und Komma, also 32 Zeichen
> auf die exakt 32 Tasten.

Ganz klar ist das nicht.  Ich vermute, dass man die Lage von Shift und
den Mod tatsächlich von vorneherein festlegt, so, wie wir es bei den
bisherigen Optimierungsversuchen vorausgesetzt haben.  Bei der Anzahl
der Tasten bin ich mir weniger sicher.  Es gibt da ja zum Beispiel noch
die ganze Zahlenreihe.  Ob es sich lohnt die mitzuoptimieren steht
dahin.

> Das ist für eine Brute-Force-Attacke zwar eine Menge (32!), aber wenn
> man ein paar Einschränkungen macht (e in Grundstellung, …), reduziert
> sich der Umfang schon signifikant.

Meine ursprüngliche Idee zum Optimierungsalgorithmus ging in diese
Richtung, die Einschränkung sollte aber dynamisch gefunden werden: Man
sortiert die Zeichen ihrer Häufigkeit nach.  Dann nimmt man die
häufigsten k Zeichen (k vielleicht 4, soviel man eben packt), probiert
alle ihre Verteilungen über die n Tasten aus (also n!/k!
Kombinationen), und berechnet für jede dieser Kombinationen eine untere
Abschätzung für den Tippaufwand einer Tastatur, die die Tasten auf diese
Weise festlegt.  Liegt die untere Abschätzung über der besten bekannten
Tastatur kann man die betreffende Kombination gleich verwerfen; das ist
der Kern der Idee.  Für die Kombinationen die Aussicht haben, die beste
Tastatur zu schlagen, nimmt man ein (k+1)-tes Zeichen hinzu und probiert
alle verbleibenden Positionen aus, berechnet dafür nunmehr strengere
untere Schranken, und so weiter.

Ob das funktioniert oder nicht hängt davon ab, ab wieviel schlecht
platzierten Zeichen eine Tastatur endgültig verhunzt ist.  Vielleicht
geht das zu langsam, um die kombinatorische Explosion im Zaum zu halten.
Es fragt sich auch, ob es sich überhaupt lohnt, diesen Weg zu gehen,
dann das simple Verfahren funktioniert allem Anschein nach gut.  Aber
Spaß macht es bestimmt.

Andreas

Antwort per Email an