Skip to content

davkk/optimal_keyboard_layout

Repository files navigation

⌨️

Optymalny layout klawiatury

Dawid Karpiński, 22.01.2024 r.


1. Kodowanie

  • kodowanie haploidalne
  • gen: pojedynczy znak
  • chromosom: siatka 2d znaków na klawiaturze

2. Selekcja

dystans pokonany przez palce liczony na podstawie tekstu "Makbet" (85 400 znaków)


bg


Funkcja dopasowania

$$ f(\text{layout}) = \sum_{\braket{i,j}} d_{ij} + (d_{ij})^2 + (F_i)^2 $$

  • $d_{ij}$ - odległość między znakami $i$ i $j$
  • $F_i$ - użyty palec (0 - wskazujący, ..., 3 - mały)

Porównanie

  • $f(\text{QWERTY}) = 25,231,762$
  • $f(\text{Dvorak}) = 15,610,313$

3. Krzyżowanie: OX

  • wybór dwóch rodziców metodą ruletki
  • kopiowanie losowo wybranej połowy klawiatury
  • dopełnienie pozostałymi znakami

4. Mutacja

zamiana miejscami dwóch wybranych znaków


5. Elitaryzm

  • sortowanie populacji według dystansu (rosnąco)
  • 1/3 populacji przechodzi do następnej generacji

6. Wyniki

  • liczebność populacji: 30
  • liczba generacji: 1000

bg contain


bg contain


bg contain


Dziękuję za uwagę

About

Genetic algorithm in search of the optimal keyboard layout

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors