Problème d’optimisation¶
Enoncé 1¶
Problème P1 : Optimiser un système de complétion
On suppose que l’ensemble des complétions est connu.
On souhaite ordonner cet ensemble pour obtenir l’ensemble ordonné
des complétions
qu’on considère comme une permutation
de l’ensemble de départ :
.
Ce système de complétion est destiné à un des utilisateurs qui forment des recherches ou requêtes
.
est la requête,
est la fréquence associée
à cette requête. On définit l’effort demandé aux utilisateurs
par ce système de complétion :
Déterminer le meilleur système de complétion revient à trouver
la permutation qui minimise
.
La métrique peut être remplacée par
. La différence
peut paraître insignifiante mais elle ne l’est pas tant que ça. Le système
de complétion peut se concevoir comme une compression :
le système de complétion permet de coder l’ensemble des recherches
d’un utilisateur
avec moins de caractères que celui-ci
en a besoin pour les taper. On ajoute les caractères
et
aux lettres de l’alphabet et cela permet de
coder plus rapidement une requêtes. La quantité suivante peut être
considérée comme le taux de compression :
L’idée derrière cette métaphore est le fait d’avoir une idée de la borne inférieure
pour ce taux de compression. On s’inspirer de la
complexité de Lempel-Ziv
(calculating Lempel-Ziv (LZ) complexity (aka sequence complexity) of a binary string)
ou du codage de Huffman.
permet une compression avec perte et
sans perte.
Le calcul de
autorise deux jumps de suite :
Mais les deux dernières touches peuvent s’appliquer
au premier préfixe ou aux suggestions montrées par la complétion
obtenue après trois
.
La métrique interdit ce cas.
Enoncé 2¶
Problème P2 : Optimiser un système de complétion filtré
On suppose que l’ensemble des complétions est connu.
On souhaite ordonner cet ensemble pour obtenir l’ensemble ordonné
des complétions
qu’on considère comme une permutation
de l’ensemble de départ :
.
On utilise aussi une fonction
qui filtre les suggestions montrées
à l’utilisateur, elle ne change pas l’ordre mais peut cacher certaines suggestions
si elles ne sont pas pertinentes.
Ce système de complétion est destiné à un des utilisateurs qui forment des recherches ou requêtes
.
est la requête,
est la fréquence associée
à cette requête. On définit l’effort demandé aux utilisateurs
par ce système de complétion :
Déterminer le meilleur système de complétion revient à trouver
la permutation qui minimise
.
Comme suggéré au paragraphe Il faut montrer toutes les complétions, le filtre
peut rejetter une suggestion si elle est montrée à une position
qui ne permet aucun gain à l’utilisateur, c’est-à-dire que la différence
des longueurs complétion - préfixe est plus petite que la position où elle est montrée.
Une idée¶
On aimerait bien pouvoir trouver l’ordre optimal par morceau, supposer que l’ordre optimal pour l’ensemble des complétions correspond à l’ordre des complétions sur un sous-ensemble partageant le même préfixe.
Lemme L1 : M” et sous-ensemble
On suppose que la complétion est préfixe
pour la requête
et
ce qui signifie
que la complétion
est toujours affichée
avant la complétion
si elles apparaissent ensemble.
Alors
.
Plus spécifiquement, si on considère l’ensemble
(
est la complétion
sans son préfixe
).
On sait déjà, par construction que
.
Par l’absurde, on suppose que
,
comme la requête
est toujours affichée avant la requête
, cela voudrait dire qu’on aurait trouvé une façon plus optimale
d’écrire la requête
avec le système
ce qui
impossible d’après la définition de la métrique
.
Cette propriété n’aide pas forcmément à trouver un algorithme
pour optimiser l’ordre des complétions dans la mesure où la
propriété suppose qu’une complétion soit affiché avant toutes
celles dont elle est le préfixe. La propriété suivante est évidemment vraie
pour le cas particulier qu’on vient de mentionner. Si elle est vraie, cela devrait
permettre de procéder par sous-ensemble pour trouver l’ordre optimal.
Théorème T1 : M”, ordre et sous-ensemble
Soit une requête de l’ensemble de complétion
ordonnées selon
.
Si cet ordre vérifie :
(1)¶
On note l’ensemble :
alors :
Ceci découle de l’application du lemme précédent.
Ce théorème permet presque de déterminer le meilleur ordre sigma parmi ceux qui
vérifie la contrainte (1), à savoir
une requête courte est toujours affichée avant celles qui la complètent.
On procède par récurrence, on suppose connu les ordres
pour l’ensemble des complétions qui commencent par le préfixe
,
. Pour
,
le meilleur ordre :
revient à fusionner les listes ordonnées
obtenues pour chaque préfixe de longueur
.
Il faut démontrer la possibilité de traiter les complétions par ordre croissant.