I have spent a good deal of time designing keyboard layouts both by hand and by computer. Both are about equally good, depending of course on who is doing it and what the program is like. But I've noticed that computers and humans use very different methods of creating keyboards. Computers use evolutionary algorithms. The human algorithm is much more complicated. The keys are interdependent: the benefit of placing one key in one place depends on all the surrounding keys, and the surrounding keys depend on it. It almost seems like a chaotic system.
So would it be possible to write a computer program that uses more human means of designing a keyboard? The algorithm would be pretty complicated. It would probably go something like this (which is essentially how I design keyboards):
1. Place either S, N, or T under the index fingers on the home row. These are always the best. (Colemak uses N and T, my own layout uses S and T, the Capewell Close Keys Layout uses S and T, Arensito uses N and S . . . )
2. Decide if you want to optimize for hand alternation or for rolls. For simplicity, I will assume that we want to optimize hand rolls, since I have more experience with that.
3. Find a cool home row. Usually you want vowels under the pinkies, and some sort of combination that encourages good rolling properties. One way to do this is to alternate between consonants and vowels like AREN SITO. There are other ways to do this as well. E should be under the middle finger, since it's the only one strong enough to handle E. After this, there are many ways to optimize the howe row.
4. Place other keys around the home row. (Everything revolves around the home row.) They should primarily reduce same-finger and, if possible, optimize hand alternation.
5. Aesthetics. Some people like ZXCV being in the bottom-left corner. I personally like the comma and period to be in logical positions: next to each other like in QWERTY or Colemak, or parallel like in my layout where they are each on a top row pinky spot.
There are more subtleties. But if a computer algorithm was written to design a layout with these criteria and somehow have an evolutionary algorithm revolve around it, it could come up with good results a lot faster.
Thoughts? Does anyone have any ideas for even faster optimization? The main point of this thread is to find an algorithm that uses heightened intelligence to come up with an optimized keyboard a lot faster.
My typing speed record: http://hi-games.net/typing-test/watch?u=493