![]()
Visiting guest. Why not sign in?
|
|
Genetic algorithm to evolve a keyboard layout? | |
Genetic algorithm to evolve a keyboard layout?
Subject pretty much says it all. How difficult would writing a program that makes use of genetic algorithms to find an optimal keyboard layout be? A few initial values changes and a disabled man with one hand or 3 fingers could have an optimal layout generated. It would it be intresting to compare the generated layouts to existing ones. I'm sure there are hundreds of aspects that would make the program generate malformed layouts. eg: my fingers are longer than bobs, I have arthritis... But, qwerty didn't take many into account either. I would love to hear any comments/suggestions, Thanks! --------------------------------------------------------------- Here are some quotes from various websites: "I was surprised by the factoid (gathered from Grolier's Encyclopedia) that part of the QWERTY layout was driven by the decision to place all of the letters in the word "typewriter" on the top row so that salesmen wouldn't have to hunt and peck. " "QWERTY keyboard was designed by Christopher Sholes to prevent the arms in old manual typewriters from jamming." "August Dvorak (a cousin of the composer), in 1936, designed a keyboard to maximize efficiency (by placing common letters on the home row), and make the stronger fingers of the hands do most of the work." |
|
Physical parameters
Nice idea, but I reckon it would be extremely difficult to design a GA that could take into account the large variation in physical characterstics. I guess you could take precise measurements of the user's hand and input those, along with the physical specifications of general keyboard layout, but more difficult would be to correctly assess the degree of flexibility possessed by the user. That said, it could be done, but one would have to wonder the benefit of doing all this over a human engineer. Linden |
|
Keyboard Fitness Functions
Check out the url of the guy that's doing this: http://www.visi.com/~pmk/evolved.html Basically, he started by defining a fitness function himself, based on intuition. It was pretty crude and inaccurate at first, since it didn't take into account alternation of hands, and the difficulty of some fingers. Now he's collecting his own typing statistics in order to improve himself. There are no results yet, but I expect that this will be more useful in practice. The main benefit in this case is the ability to take into account the huge amount of personal data to craft a layout, as opposed to using a human designed expert keyboard that fits most people. In brief, it's all down to the fitness function. The GA will solve the problem you give it, but won't be very useful if the problem itself is not realistic... I'm going to switch to dvorak when I get my own computer, as it's widely supported and I can simply change settings on other people's computers. A random GA will give a layout that will take more time to learn, and not be supported elsewhere but on your machine... something to keep in mind! |
|
Beating Dvorak
It sounds like his experiment is quite a lot of fun! If you take his approach and use the statistics on an individual user's typing habits, and add it to an accurate portrayel of a disabled user's hands, say three movable fingers with one slightly arthritic and inflexible, it would be possible to derive a cost of movement to each key, and therefore derive a layout that minimised this cost. As you say, it is down to the fitness function having an accurate picture of the cost of each movement which relates to the physical discomfort of the user. Linden |
|
Adaptibility
Then you could get it to adapty dynamically every second as your performance varies ;) Try keeping up with the key changes then!! |
|
Moulding the keyboard
What I was originally thinking when I read gieds posting was that the keyboard would be physically altered in shape and size according to a GA. This is a much harder problem. How about a keyboard that dynamically adapts to fit the user's hand? Linden |
|
Been there done that
I mentioned the idea to a friend and immediately he replies "Yeah, that was an intresting article" Looks like it made an appearance on slashdot last month also: http://slashdot.org/article.pl?sid=02/07/06/1244204&mode=thread&tid=137 |
|