← Back to Explore

Optimizing the Keyboard Layout Using Genetic Algorithms and a Heuristic Approach

ISEF · 2021 Systems Software

Overview

The purpose of this project was to create a more ergonomic keyboard layout using genetic algorithms. This could help to prevent repetitive strain injuries and improve typing speed in users. The design constraints were for the program to require no human intervention aside from starting the task and for the resulting layout to be more efficient than the current QWERTY layout. First, a command-line interface was created to depict each part of the task, along with a timestamp. Next, a method was developed to generate random keyboard layouts and store them in matrices, which would be crucial for analyzing and modifying the layouts. A formula was created to evaluate the keyboard, taking into account a variety of parameters including finger rolling, same-finger typing, and key distance. Finally, the program was modified to merge keyboard layouts and create offspring layouts, the best of which would become parents for the next generation. The results showed that the program could successfully create a keyboard layout that is more ergonomic than both the current QWERTY layout and the alternative Dvorak layout. For each trial, as the number of iterations was increased, the score of the final layout tended to increase as well. Variations in this pattern were likely due to the random nature of the offspring layouts. The optimized layout included many of the most common letters on the home row and many common two-letter combinations located close together but in different columns. The program met all of the design constraints.

Competition history

  • ISEF 2021 Systems Software · Entry SOFT020

Resources

Related projects

Closest projects by meaning, across every fair and year in the corpus.

Source: Regeneron International Science and Engineering Fair

Save projects to your library

Sign in with Google to keep track of projects you find interesting, organized into folders. Browsing stays public.

Continue with Google