Keyboard Genetic Algorithm
With help from Bilfo, I have designed a program in Ruby to score keyboard layouts, and a genetic algorithm program to determine the best layout. I got the idea from Michael Capewell who in turn got the idea from Peter Klausler. Unfortunately, because Ruby is a fairly high-level language, it takes a while to do things that could be done faster in Java or C.
I ran the program for 6 hours, and it generated this layout:
w f l m ; j p y , ‘
r s n t d h i o a e
z x c g v u b k . q
Through the scoring program, it got 6.3. However, Dvorak scores 5.8 on the genetic algorithm program. It has not yet generated a layout better than Dvorak.
Notes on the above layout:
The home row looks good. The 8 most common letters are on the home row, but e is on the pinky which is not good. I also notice that, like Dvorak, all the vowels are on one side of the keyboard. Other potential problems here are that C is on the bottom row, which some people like because it makes ctrl-c easy, but in terms of letter frequency it’s not the best spot. Also h and i are on the same finger, and hi is a pretty common digraph. Other than that, same-finger usage looks good.
Hmm, what is same finger usage? That is when the same finger is used twice in a row, like ed on QWERTY. It is a very bad thing, and slows down your typing a lot.
NOTICE: There is currently a small bug in the program which may cause a problem with scoring. The development team is working hard to fix it.