lawrent a écritTant qu'à me citer, autant me citer jusqu'au bout.
Désolé. Ça fait longtemps que je prêche dans le désert. Ce n’est pas à toi que je peux reprocher de ne pas m’entendre, dans la mesure où tu es dans les derniers arrivés, c’est juste tombé sur ton message.
Après, il va falloir que j’arrive à convaincre que la progression vers l’intérieur n’est pas forcément le mieux (si ce ne sont pas les mêmes touches qui sont impliquées)…
Par exemple, comparez le digramme « iu » (Bépo, « ds » en Azerty) avec le digramme « ai » (Bépo, « qd » en Azerty).
D’une part, la longueur des doigts a une incidence, mais surtout, le fait que les doigts ne sont pas complètement intépendants entre eux musculairement (sauf le pouce) en a une encore plus importante. « Sauter » un doigt n’est pas si immédiat, surtout si c’est l’annulaire (le moins agile). En sauter deux est plus facile (comparez « ai » à « ae »).
Pour deux touches données, effectivement, c’est plus facile vers l’intérieur, mais à mon sens, ça ne vient qu’après la question de quelle paire de touches.
lawrent a écritC'est seulement une idée hein, mais on pourrait mettre une pénalité 0 en cas d'alternance gauche-droite ou de digramme "neutre", une pénalité 1 en cas de digramme difficile (exemple: sauter d'une rangée à l'autre avec le même doigt) et une pénalité -1 en cas de roulement.
C’est à peu près ma vision.
Ce la dit, je dois admettre que je l’ai en partie empruntée à Michael Dickens, le concepteur de la disposition MTGAP.
Je vous invite fortement à lire
son article concernant la conception d’une disposition.
robin_moussu a écritJe vous rappelle juste que les algorithme génétiques sont excellant pour résoudre ce type de problème.
Michael Dickens fournit aussi
son programme, basé sur un algorithme génétique (sans croisements) et capable d’arriver à un résultat rapidement (mais en ne considérant que des digrammes).
Je n’ai pas encore eu le courage d’essayer de comprendre son programme, mais le faire pourrait nous faire gagner beaucoup de temps (même si on ne décide pas de l’utiliser, tel quel ou modifié, les solutions qu’il a utilisées sont certainement intéressantes — on sait au moins qu’elles fonctionnent).
sinma a écritJe suis d’accord, c’est pour ça qu’on doit faire autrement que juste traiter les digrammes je pense. Peut-être qu’en prenant simplement les trigrammes en compte ça marche?
Faire une simulation sur tout un corpus serait très long.
En prenant des n-grammes (n à déterminer), on peut factoriser le corpus et accélérer énormément l’évaluation d’une disposition par rapport à lui.
Après, plus n sera grand, plus on aura d’informations, mais plus le nombre d’éléments à évaluer sera important (augmentation exponentielle).
Avec n=1, on aurait seulement autant d’éléments à considérer que de caractères différents, mais on n’aurait aucune info sur l’enchaînement des touches, seulement la possibilité de bien placer les caractères les plus fréquents.
Avec n=2, le nombre d’éléments sera déjà plus important, mais on serait capable de dire si l’on a un roulement facile, une alternance, un digramme difficile voire sur un seul doigt…
Avec n=3, le nombre d’éléments sera encore bien plus important, mais on peut vérifier d’autres défauts potentiels. Par exemple, si « ae » (Bépo, « qf » Azerty) est un roulement assez facile et « ei » (Bépo, « fd Azerty) aussi, « aei » (Bépo, « qfd » Azerty) n’est pas terrible.
n=2 est le minimum pour faire quelque chose d’intéressant.
Avec n=3, on améliore l’évaluation, mais au net détriment de la vitesse d’exécution. Il faudrait voir si ça reste dans la limite du raisonnable ou pas.
n=4 serait à mon avis bien trop lourd par rapport à l’amélioration apportée.
robin_moussu a écritMais le plus urgent c'est de réaliser la fonction de test.
Ce n’est pas tant urgent que crucial. Il faut réussir à ce qu’elle soit à la fois suffisamment pertinente et suffisamment rapide. Sinon, on va ramer pour pas grand chose.