« Utilisatrice:Ariasuni/V2 » : différence entre les versions

De Disposition de clavier bépo
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 1 : Ligne 1 :
{{note|Page brouillon faite à la Rache™}}
Mes réflexions à propos de la V2.
Mes réflexions à propos de la V2.
== copier/coller de la ML ==
Je viens d'avoir une idée qui peut être extrêmement intéressante: pourquoi ne
pas générer toutes les dispositions dont l'alternance des mains est maximale?
En gros, on choisi à l'avance quelles lettres iront de quel côté, et ça nous
servira pour générer des dispositions qui sont déjà plutôt bien optimisées!
En plus c'est très très simple à mettre en œuvre:
* on classe les lettres par ordre de fréquence et on les met deux par deux (la
partie droite du clavier se coltinera les lettres les moins fréquentes tout à
la fin, ce qui me parait logique)
* la première de chaque groupe va sur la partie droite et la deuxième sur la
partie gauche et inversement
Ensuite
* on essaie toutes les possibilités
* on prend les meilleures au niveau de l'alternance des mains (en tenant
compte de la fréquence de chaque lettre)
À chaque fois on a un choix parmi deux, et pour les quatre derniers caractères
on a pas le choix, ce qui fait 2^30 (de l'ordre de 10^9). C'est encore bien
trop. On peut décider de mettre toutes les voyelles d'un côté, ce qui fait 8
lettres en moins à placer: leurs équivalent dans les paires de lettres seront
obligatoirement dans l'autre partie du clavier. On part sur du 2^14 (ce qui
fait 16384).
Même en ne mettant que les voyelles de l'ASCII (A, E, I, O, U, Y), on aura
2^18 (262144) possibilités. Ensuite il suffit de sélectionner les 100 ou 1000
dispositions les plus équilibrées au niveau de l'alternance (par exemple).
Maintenant il faut se rendre compte que pour générer la partie gauche du
clavier sans poser de contraintes, on a 15! possibilités par groupe de lettre
(> 10^12). Si on pose que les lettres de la rangée de repos sont les lettres
qui ont la plus grande fréquence dans l'ordre croissant en partant de
l'auriculaire, on a 11! (40 millions de possibilités).
Avec un peu d'astuce on peut sans doute affiner (parce que sinon ça fait de 4
000 (10^9) à 40 000 (10^10) millions, ce qui est trop long à calculer). Je
pense que là on peut se servir de l'algo de la V1, à savoir le placement par
«zones» en prenant en compte une CAT, ce qui limite grandement les
possibilités.
Faut pas oublier que l'évaluation d'une disposition est peut-être une
opération extrêmement rapide, mais tester 10^9 dispositions c'est juste pas
possible. Et je pense qu'avec mon idée on est sur la bonne piste!!! Faut juste
trouver d'autres astuces pour réduire le nombre de dispositions…


== Données ==
== Données ==

Version du 15 février 2013 à 00:03

Page brouillon faite à la Rache™

Mes réflexions à propos de la V2.

copier/coller de la ML

Je viens d'avoir une idée qui peut être extrêmement intéressante: pourquoi ne pas générer toutes les dispositions dont l'alternance des mains est maximale? En gros, on choisi à l'avance quelles lettres iront de quel côté, et ça nous servira pour générer des dispositions qui sont déjà plutôt bien optimisées!


En plus c'est très très simple à mettre en œuvre:

  • on classe les lettres par ordre de fréquence et on les met deux par deux (la

partie droite du clavier se coltinera les lettres les moins fréquentes tout à la fin, ce qui me parait logique)

  • la première de chaque groupe va sur la partie droite et la deuxième sur la

partie gauche et inversement

Ensuite

  • on essaie toutes les possibilités
  • on prend les meilleures au niveau de l'alternance des mains (en tenant

compte de la fréquence de chaque lettre)


À chaque fois on a un choix parmi deux, et pour les quatre derniers caractères on a pas le choix, ce qui fait 2^30 (de l'ordre de 10^9). C'est encore bien trop. On peut décider de mettre toutes les voyelles d'un côté, ce qui fait 8 lettres en moins à placer: leurs équivalent dans les paires de lettres seront obligatoirement dans l'autre partie du clavier. On part sur du 2^14 (ce qui fait 16384).

Même en ne mettant que les voyelles de l'ASCII (A, E, I, O, U, Y), on aura 2^18 (262144) possibilités. Ensuite il suffit de sélectionner les 100 ou 1000 dispositions les plus équilibrées au niveau de l'alternance (par exemple).


Maintenant il faut se rendre compte que pour générer la partie gauche du clavier sans poser de contraintes, on a 15! possibilités par groupe de lettre (> 10^12). Si on pose que les lettres de la rangée de repos sont les lettres qui ont la plus grande fréquence dans l'ordre croissant en partant de l'auriculaire, on a 11! (40 millions de possibilités).

Avec un peu d'astuce on peut sans doute affiner (parce que sinon ça fait de 4 000 (10^9) à 40 000 (10^10) millions, ce qui est trop long à calculer). Je pense que là on peut se servir de l'algo de la V1, à savoir le placement par «zones» en prenant en compte une CAT, ce qui limite grandement les possibilités.


Faut pas oublier que l'évaluation d'une disposition est peut-être une opération extrêmement rapide, mais tester 10^9 dispositions c'est juste pas possible. Et je pense qu'avec mon idée on est sur la bonne piste!!! Faut juste trouver d'autres astuces pour réduire le nombre de dispositions…

Données

Corpus

Français et anglais, ce dernier comptant à 20% ou quelque chose comme ça.

Carte d'accessibilité des touches

Les CAT permettent de représenter l'accessibilité d'une touche globalement, néanmoins ça ne représente pas bien la réalité parce que ces caractères sont frappés une suite de lettre, et que la lettre frappé juste avant peut fortement influencer l'accessibilité de la touche à ce moment-là.


Algorithme

Problématique

Il 34! possibilités différentes de dispositions de claviers, c'est à dire ≃ 3 × 10^38 (3 avec 38 zéros derrières…) J'ai un peu calculer, ça prendrait plusieurs milliards d'année. Nous sommes légèrement plus pressés!

La méthode de génération du Bépo est décrit sur cette page.

L'idée a été soulevée de faire un algorithme génétique. C'est cette idée qui sera développée dans ce document.


Général

Cela se passe en différentes étapes:

  • Collecte des données
  • Génération des dispositions

Sélection

Quand on a notre «corpus» réduit de dispositions, on peut faire un maximum de tests calculer différentes statistiques à propos du corpus initial non-transformé.

Typiquement, il y a plusieurs critères:

  • L'alternance des doigts:
    • pas deux fois le même doigt de suite (compté dans la carte d'accessibilité des digrammes)
    • E(index) > E(majeur) > E(annulaire) > E(auriculaire), l'utilisation de chaque doigt devrait se faire selon une courbe croissante en partant de l'auriculaire (comme la fonction racine carré)
  • L'alternance des mains:
    • Si le caractère tapé précédemment l'était par la même main, alors incrémenter l'énergie totale pour cette main, plus cette valeur est élevée moins l'alternance est bonne. Si on tape plus de trois caractères l'incrémentation passe à deux (par exemple)
    • la barre d'espace est compté comme un caractère de l'autre main, car la situation est similaire (les doigts qui peuvent se décrisper et se relâcher), mais elle n'est pas comptée dans le calcul de l'énergie.
  • Autre?