« v2:Idées » : différence entre les versions

De Disposition de clavier bépo
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 28 : Ligne 28 :
== Contraintes ==
== Contraintes ==


Il s'agit de répertorier toutes les contraintes, y compris incompatibles, qu'il faut tenter de satisfaire au mieux. Ces contraintes devront être intégrées à un algorithme afin de les combiner de façon optimale en testant les différentes possibilités. La liste est également utile pour expérimenter « à la main » et ne rien oublier.
Il s'agit de répertorier toutes les contraintes, y compris incompatibles, qu'il faut tenter de satisfaire au mieux. Ces contraintes devront être intégrées à un algorithme afin de les combiner de façon optimale en testant les différentes possibilités. La liste est également utile pour expérimenter « à la main » et ne rien oublier.


=== Force des contraintes ===
=== Force des contraintes ===


Contraintes « dures » : Intégrées à l'algorithme dans les prérequis, vérifiées quoi qu'il arrive. Exemple : contraintes liées aux positions des touches sur les types de clavier existants.
Contraintes « dures » : Intégrées à l'algorithme dans les prérequis, vérifiées quoi qu'il arrive par construction. Exemple : contraintes liées aux positions des touches sur les types de clavier existants.


Contraintes « molles » : Caractérisées par une fonction de coût quantifiant l'importance de la contrainte. Exemple : contraintes liées aux fréquences des caractères et aux accessibilité des touches.
Contraintes « douces » : Caractérisées par une fonction de coût quantifiant l'importance de la contrainte. Exemple : contraintes liées aux fréquences des caractères et aux accessibilité des touches.


=== Types de contraintes ===
=== Types de contraintes ===


Contraintes liées aux enchaînements de caractères :
Contraintes liées aux enchaînements de caractères :
* Enchaînements typographiques, par exemple placer la ponctuation haute et les guillemets en shift pour l'enchaînement avec l'espace insécable ;
* Enchaînements typographiques, par exemple placer la ponctuation haute et les guillemets en shift pour l'enchaînement avec l'espace insécable ;
* Enchaînements de caractères [[Groupe_de_caractères_et_accessibilité|allant ensemble à l'usage]].
* Enchaînements de caractères [[Groupe_de_caractères_et_accessibilité|allant ensemble à l'usage]].


Contraintes dues à l'appariement logique des caractères.
Contraintes dues à l'appariement logique des caractères.
* Par exemple mettre « ( » et « ) » côte à côte et dans cet ordre. À déterminer : comment les intégrer au mieux. On peut par exemple considérer ces deux caractères en bloc, inséparables, et cumuler accessibilité et fréquences sur les deux touches.
* Par exemple mettre « ( » et « ) » côte à côte et dans cet ordre. À déterminer : comment les intégrer au mieux. On peut par exemple considérer ces deux caractères en bloc, inséparables, et cumuler accessibilité et fréquences sur les deux touches.
* Autre appariements logiques : « . » et « : », « , » et « ; » que l'on peut placer l'un au dessus de l'autre.
* Autre appariements logiques : « . » et « : », « , » et « ; » que l'on peut placer l'un au dessus de l'autre.


=== Liste des contraintes ===
=== Liste des contraintes ===


Il s'agit dans cette section de lister les contraintes dans un formalisme d'expression commun, nécessaire si on veut pouvoir les combiner.
Il s'agit dans cette section de lister les contraintes dans un formalisme d'expression commun, nécessaire si on veut pouvoir les combiner.
Les contraintes « dures » sont simplement listées afin de pouvoir être prises en compte dans l'algorithme. Les contraintes « molles » sont exprimées comme suit :
Les contraintes « dures » sont simplement listées afin de pouvoir être prises en compte dans l'algorithme. Les contraintes « douces » sont exprimées comme suit :
* Poids : Un nombre exprimé sur une échelle arbitraire, indiquant l'importance relative de cette contrainte par rapport aux autres. Peut être converti en % en divisant par la somme de tous les poids.
* Poids : Un nombre exprimé sur une échelle arbitraire, indiquant l'importance relative de cette contrainte par rapport aux autres. Peut être converti en % en divisant par la somme de tous les poids.
* Fonction de coût : Permet de quantifier la contrainte en lui donnant une valeur, ici entre 0 et 1. Ce faisant, permet aux différentes contraintes d'êtres combinées. La somme de ces valeurs pour toutes les contraintes pondérées par leur poids respectif est appelée '''fonction objective'''. C'est cette dernière que l'on souhaite optimiser.
* Fonction de coût : Permet de quantifier la contrainte en lui donnant une valeur, ici entre 0 et 1. Ce faisant, permet aux différentes contraintes d'êtres combinées. La somme de ces valeurs pour toutes les contraintes pondérées par leur poids respectif est appelée '''fonction objective'''. C'est cette dernière que l'on souhaite optimiser.
* Paramètres : Ce dont la fonction de coût à besoin pour être exprimée. Par exemple, une accessibilité de touches, ou une fréquence. Les paramètres peuvent avoir dans certains cas une influence importante sur la fonction de coût et par conséquent sur le résultat final.
* Paramètres : Ce dont la fonction de coût à besoin pour être exprimée. Par exemple, une accessibilité de touches, ou une fréquence. Les paramètres peuvent avoir dans certains cas une influence importante sur la fonction de coût et par conséquent sur le résultat final.


==== Contraintes « dures » ====
==== Contraintes « dures » ====


* Tenir compte des différents types de clavier ;
* Tenir compte des différents types de clavier ;
* Tenir compte des différents placements des mains ;
* Tenir compte des différents placements des mains ;
* À compléter.
* À compléter.




==== Contraintes « molles » ====
==== Contraintes « douces » ====


'''Alternance'''
'''Alternance'''
* Poids : 1
* Poids : 1
* Paramètres :
* Paramètres :
:* : ensemble des digrammes sur 2 mains
:* A : ensemble des digrammes sur 2 mains
:* : ensemble de tous les digrammes
:* D : ensemble de tous les digrammes
:* f(d) : fréquence du digramme d
:* f(d) : fréquence du digramme d
* Fonction de coût : <math>(\sum_{d\in{A}} f(d))/(\sum_{d\in{D}} f(d))</math>
* Fonction de coût : C = ( ∑<sub>d∊A</sub>f(d) ) / ( ∑<sub>d∊D</sub>f(d) )
 


'''Charge des doigts'''
'''Charge des doigts'''
Ligne 89 : Ligne 90 :
Une première idée est de se limiter à l'espace de toutes les inversions ou permutations de 3 touches maximum. Le problème est que cela ne tient pas compte de l'importance relative des touches en question.
Une première idée est de se limiter à l'espace de toutes les inversions ou permutations de 3 touches maximum. Le problème est que cela ne tient pas compte de l'importance relative des touches en question.


Une idée plus avancée est :
Une idée plus avancée est :
* Définir une métrique de « distance de disposition »
* Définir une métrique de « distance de disposition »
:* Les caractères principaux ont plus grand poids
:* Les caractères principaux ont plus grand poids
:* Les caractères secondaires plus de latitude de mouvement
:* Les caractères secondaires plus de latitude de mouvement
* La métrique est sensée mesurer le degré de changement dans un critère correspondant à ce qui serait perçu de façon acceptable pour un degré de changement donné.
* La métrique est sensée mesurer le degré de changement dans un critère correspondant à ce qui serait perçu de façon acceptable pour un degré de changement donné.
* Ajouter une contrainte « molle » à la liste des contraintes en utilisant cette métrique
* Ajouter une contrainte « douce » à la liste des contraintes en utilisant cette métrique

Version du 12 mai 2008 à 14:19

Attention

Page en cours de construction

Corpus

Placement des mains et utilisation du clavier

C'est une question primordiale, mais qui n'a pas été totalement tranchée dans la version 1.

Rangée de garde

  • QSDF et JKLM
  • QZEF et JIOM
  • QSDF et KLMÙ

Méthode de saisie

Accessibilité des touches du point de vue dactylographique

Accessibilité des touches

Carte d'accessibilité des touches


Accessibilité des digrammes

Carte d'accessibilité des digrammes

Contraintes

Il s'agit de répertorier toutes les contraintes, y compris incompatibles, qu'il faut tenter de satisfaire au mieux. Ces contraintes devront être intégrées à un algorithme afin de les combiner de façon optimale en testant les différentes possibilités. La liste est également utile pour expérimenter « à la main » et ne rien oublier.

Force des contraintes

Contraintes « dures » : Intégrées à l'algorithme dans les prérequis, vérifiées quoi qu'il arrive par construction. Exemple : contraintes liées aux positions des touches sur les types de clavier existants.

Contraintes « douces » : Caractérisées par une fonction de coût quantifiant l'importance de la contrainte. Exemple : contraintes liées aux fréquences des caractères et aux accessibilité des touches.

Types de contraintes

Contraintes liées aux enchaînements de caractères :

  • Enchaînements typographiques, par exemple placer la ponctuation haute et les guillemets en shift pour l'enchaînement avec l'espace insécable ;
  • Enchaînements de caractères allant ensemble à l'usage.

Contraintes dues à l'appariement logique des caractères.

  • Par exemple mettre « ( » et « ) » côte à côte et dans cet ordre. À déterminer : comment les intégrer au mieux. On peut par exemple considérer ces deux caractères en bloc, inséparables, et cumuler accessibilité et fréquences sur les deux touches.
  • Autre appariements logiques : « . » et « : », « , » et « ; » que l'on peut placer l'un au dessus de l'autre.

Liste des contraintes

Il s'agit dans cette section de lister les contraintes dans un formalisme d'expression commun, nécessaire si on veut pouvoir les combiner. Les contraintes « dures » sont simplement listées afin de pouvoir être prises en compte dans l'algorithme. Les contraintes « douces » sont exprimées comme suit :

  • Poids : Un nombre exprimé sur une échelle arbitraire, indiquant l'importance relative de cette contrainte par rapport aux autres. Peut être converti en % en divisant par la somme de tous les poids.
  • Fonction de coût : Permet de quantifier la contrainte en lui donnant une valeur, ici entre 0 et 1. Ce faisant, permet aux différentes contraintes d'êtres combinées. La somme de ces valeurs pour toutes les contraintes pondérées par leur poids respectif est appelée fonction objective. C'est cette dernière que l'on souhaite optimiser.
  • Paramètres : Ce dont la fonction de coût à besoin pour être exprimée. Par exemple, une accessibilité de touches, ou une fréquence. Les paramètres peuvent avoir dans certains cas une influence importante sur la fonction de coût et par conséquent sur le résultat final.

Contraintes « dures »

  • Tenir compte des différents types de clavier ;
  • Tenir compte des différents placements des mains ;
  • À compléter.


Contraintes « douces »

Alternance

  • Poids : 1
  • Paramètres :
  • A : ensemble des digrammes sur 2 mains
  • D : ensemble de tous les digrammes
  • f(d) : fréquence du digramme d
  • Fonction de coût : C = ( ∑d∊Af(d) ) / ( ∑d∊Df(d) )


Charge des doigts

Accessibilité / fréquence


Multi-critères

À compléter.


Algorithme incrémental

Lorsqu'un changement apparaît, une nouvelle idée, une meilleure carte d'accessibilité des touches, de nouvelles contraintes auxquelles ont aurait pas pensé, l'idée est de les intégrer à l'algorithme et de recalculer une solution. Malheureusement cela peut potentiellement provoque un layout complètement différent. Autant ce n'est pas un problème dans les phases initiales de développement d'une nouvelle version (mieux vaut alors une version optimale), autant cela peut être un point bloquant dans une branche destinée à être stabilisée (mais si on découvre un point critique, la contrainte peut être assouplie).

Pour ne pas avoir ce problème il faut trouver un algorithme qui préserve en partie le layout actuel lorsque de nouvelles contraintes sont ajoutées.

Une première idée est de se limiter à l'espace de toutes les inversions ou permutations de 3 touches maximum. Le problème est que cela ne tient pas compte de l'importance relative des touches en question.

Une idée plus avancée est :

  • Définir une métrique de « distance de disposition »
  • Les caractères principaux ont plus grand poids
  • Les caractères secondaires plus de latitude de mouvement
  • La métrique est sensée mesurer le degré de changement dans un critère correspondant à ce qui serait perçu de façon acceptable pour un degré de changement donné.
  • Ajouter une contrainte « douce » à la liste des contraintes en utilisant cette métrique