|
|
(7 versions intermédiaires par le même utilisateur non affichées) |
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 == | | == Sous-pages == |
| Ça permet de donner un historique de la réflexion sur l'algo de la V2, sachant qu'il n'y a que moi qui m'en occupe pour le moment (entre ceux qui sont occupés par la vraie vie, ceux qui s'occupent de l'association, et les autres qui réfléchissent à d'autres détails de la V2…)
| | === Données === |
| | | [[Utilisateur:Ariasuni/V2/Données]] |
| === 14/02/2013 === | |
| 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…
| |
| | |
| === 15/02/2013 ===
| |
| Pour l'algorithme de la V2, je pensais à un truc du style (le roulement y
| |
| occupe une place assez importante):
| |
| | |
| * l'alternance des mains: on génère des groupes de lettres (séparé en deux sous-groupes, chacun allant sur la partie gauche ou droite du clavier). On ne garde que celles qui sont proche de 50/50
| |
| | |
| * les roulements sur la rangée de repos: on prend les lettres les plus fréquentes de chaque groupe et on teste toutes les possibilités acceptables (on place les lettres dans l'ordre décroissant de fréquence de l'index au pouce; puis on regarde si on interchange index et majeur, majeur et annulaire, annulaire et auriculaire) et on garde la meilleure.
| |
| | |
| * Maintenant on compare toutes les dispositions et on sélectionne 1 ou 2 meilleure(s) rangée(s) de repos par groupe, puis on garde les groupes qui ont une des X meilleures rangées de repos.
| |
| | |
| * Pour chaque groupe, on assigne les caractères restants à un doigt. On ne garde que celle ou la charge des doigts est équilibré, tout en gardant à l'esprit que le petit doigt est «faible»
| |
| | |
| * pour chaque doigt on garde 1 ou 2 meilleur(s) groupe(s) de lettres assigné à un doigt. Si on en prend 2, ça fait 2^5 * 2^6 = 2^11 = 2048 possibilités par groupe de lettres.
| |
| | |
| * Tout cela nous fait 2048 combinaisons possibles dans un groupe de lettres * nombre de groupe de lettres, et on utilise le comparateur de dispositions pour trouver laquelle sera la V2.
| |
| | |
| Cette algorithme à l'avantage de pouvoir tester beaucoup de dispositions, de
| |
| pouvoir varier le nombre de dispositions testées en fonction de la puissance
| |
| de la machine (du coup si je trouve que l'algo est sympa je rajoute des
| |
| possibilités et je le laisse tourner quelques heures).
| |
| | |
| De plus ça évite la complexité d'un algorithme génétique, c'est peut-être même
| |
| plus simple que l'algorithme de Nicolas Chartier utilisé pour la V1 (mais
| |
| c'est difficile à dire au pifomètre).
| |
| | |
| N'hésitez pas à me dire ce que vous en pensez, je suis sûr qu'il y a deux
| |
| trois détails qui m'ont échappé!
| |
| | |
| : J'y ai repéré une incohérence (je ne peux pas déterminer la meilleure disposition des lettres par doigt). D'où (en partie) mon troisième jet.
| |
| | |
| === 16/02/2013 ===
| |
| Sinon pour les points «importants» pour l'algo de la V2:
| |
| * alternance des mains (pour dégrossir)
| |
| * roulements vers l'intérieur, surtout pour la rangée de repos
| |
| * alternance des doigts (charge équilibrée entre les doigts)
| |
| * le moins possible de digrammes à un doigt
| |
| | |
| | |
| Du coup si on reprend ce que j'avais dis un peu avant, je ferais:
| |
| | |
| * prendre les meilleures rangées de repos en prenant en compte les roulements
| |
| (je prend les 8 lettres les plus utilisées, ESAITNRU, on risque fortement de
| |
| retomber sur ce qu'on a pour la V1 ou très très proche).
| |
| | |
| * Ensuite on cherche les groupes de lettres qui contiennent deux sous-groupes,
| |
| un allant sur chaque partie du clavier telle que la charge de la main droite
| |
| soit à peu près égale à celle de la main gauche et qu'un minimum de digramme
| |
| se fasse avec cette main.
| |
| | |
| * Ensuite on essaie toutes les possibilités, on élimine celles ou la charge
| |
| des doigts est incohérente, (petit doigt qui travaille plus que l'index ou le
| |
| majeur…), on regarde pour les roulements ÉP et YX (vers l'intérieur), on
| |
| regarde SURTOUT qu'il y ai un minimum de digrammes à un doigt.
| |
| | |
| * Avec toutes ces possibilités, on peut faire un ensemble de dispositions
| |
| qu'il faudra tester une par une avec le comparateur de disposition, qui
| |
| utilisera les données utilisateurs plutôt que des règles avec un coefficient
| |
| plus ou moins aléatoire…
| |
| | |
| | |
| Vos remarques, toussa…
| |
| | |
| Lbt,
| |
| | |
| == 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 [[Cr%C3%A9ation_de_la_version_0.1#Huiti.C3.A8me_.C3.A9tape_:_l.27algorithme_de_g.C3.A9n.C3.A9ration | cette page]].
| | === Algorithme === |
| | [[Utilisateur:Ariasuni/V2/Algo]] |
|
| |
|
| ==== Général ==== | | === Placement des symboles pour la V2 === |
| Cela se passe en différentes étapes:
| | [[Utilisateur:Ariasuni/V2/Symboles]] |
| * Collecte des données
| |
| * Génération des dispositions
| |
|
| |
|
| ==== Sélection ==== | | == Liens == |
| 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é.
| | === Internes === |
| | * [[Liens#Informatique_et_implémentations]] |
|
| |
|
| Typiquement, il y a plusieurs critères:
| | === Externes === |
| * L'alternance des doigts: | | * [https://mtgap.wordpress.com/2010/01/09/should-a-keyboard-layout-optimize-for-hand-alternation-or-for-rolls/ Should a keyboard layout optimize for hand alternation or for rolls?] |
| ** pas deux fois le même doigt de suite (compté dans la carte d'accessibilité des digrammes)
| | * [http://forum.colemak.com/viewtopic.php?pid=11837 Rolls vs hand alternation / Colemak forum] |
| ** 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é)
| | * [http://forum.colemak.com/viewtopic.php?pid=662#p662 Ex-qwerty comment on Colemak forum] |
| | «I read in a mailing list/forum, that according to Dvorak's book, the middle finger is strongest, but Dvorak placed more keystrokes on the index finger, because that finger is assigned 6 keys (versus 3 for the middle finger). |
|
| |
|
| * L'alternance des mains:
| | I actually did some finger exercises where I lifted weights with my fingers. I found that my middle fingers were actually stronger than my index fingers. But overall, my index, middle and ring fingers were fairly close in strength. The pinky was significantly weaker, but not as weak as you might imagine. My index fingers could do about 50% more repetitions than my pinkies could. This is actually comparable to the finger ratios in Dvorak, where the index fingers are assigned about a 50% greater burden than the pinkies. |
| ** 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?
| | So I think the biggest issue with the pinkies may not be so much the strength, but the length. This may be the real reason why the L key can be uncomfortable in Dvorak.» |