Skip to content

Meta-optimized genetic algorithms applied to finding the optimal layout for an English keyboard

Notifications You must be signed in to change notification settings

ajnirp/keyboard-layout

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

About

Meta-optimized genetic algorithms applied to the problem of generating a keyboard layout that is as efficient as possible. This project is done as part of LISP.

Keyboard Layout Optimization

NOTE: I use 'optimal' and 'efficient' as synonyms for 'allows for fastest typing speed'

Generating a keyboard layout that is efficient involves shuffling the standard QWERTY keyboard into a configuration which performs best for a certain set of parameters. Popular parameters include the amount of time spent on the home row (the more the better), the number of times adjacent keys have to be typed consecutively (the lower the better), and so on. The 'fitness' of a keyboard layout is some function of these parameters. What is not immediately clear is what the function should be. In other words, we don't know precisely how important each parameter is and how it should contribute to the fitness function. If we assume a certain function and then proceed to optimize, then our end result is only as good as the function we started out with. A poor fitness function might even come up with something worse than QWERTY.

So we need to optimize the fitness function itself. Corresponding to each fitness function is an optimal layout. Ideally we would like to optimize the fitness function to produce the most optimal layout for all possible kinds of fitness function. In practice, it'd be easier to optimize for a finite set of fitness functions.

Corpora

The corpora were pulled from Project Gutenberg and stripped of their headers and footers because that would interfere with the evaluation function for a given keyboard layout.

About

Meta-optimized genetic algorithms applied to finding the optimal layout for an English keyboard

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages