• Aucun résultat trouvé

Modélisation des préférences

4.2 Exploitation du modèle de préférence

4.2.2 Méthodes de résolution

Nous avons vu que congurer une impression d'après une politique d'impression standard peut s'écrire comme un problème d'optimisation sous contraintes. Bien qu'élégante, cette formulation n'a que peu de valeur ajoutée si elle ne permet pas une résolution ecace du problème. En eet, la conguration automatique d'impres-sion étant une fonctionnalité de l'interface utilisateur, elle nécessite un traitement rapide, de façon à ne pas alourdir l'interaction. Cette contrainte forte nous amène à considérer la résolution de ce problème d'optimisation sous un angle particulier.

Dans cette section nous examinons deux types de méthodes de résolution. Nous présentons d'abord un paradigme très général qui semble naturellement correspondre à notre problème : les réseaux de contraintes exibles. Nous mettons cependant en lumière les limites de cette approche. Nous nous intéressons ensuite à un autre para-digme : la programmation mathématique linéaire mixte, et montrons comment pas-ser de notre problème initial d'optimisation, contenant notamment des contraintes d'implication, à une suite d'optimisation linéaire mixte en nombre entier. Cette reformulation permet d'exploiter des algorithmes de résolution existants, de façon à conserver au maximum une simplicité déclarative combinée avec une résolution ecace et précise.

Réseau de contraintes exibles

Nous introduisons d'abord succinctement le paradigme des réseaux de contraintes classiques (en anglais Constraint Solving Problem, CSP) avant d'examiner leur extension aux contraintes exibles. Le lecteur intéressé par une introduction plus complète des CSP peut se référer par exemple à [Tsa93].

CSP

Denition 3. Un CSP est dénit par le triplet (V, D, C) où  V est un ensemble de variables.

 C un ensemble de contraintes (sur ces variables) ; constitué dans notre cadre par les choix de l'utilisateur.

La solution d'un tel problème est l'assignement d'une valeur de son domaine à chaque variable, tel que toutes les contraintes soient satisfaites. De nombreux algorithmes ont été développés an d'accélérer la recherche exacte d'une solution. Le principe de base est de réduire les domaines des variables pendant l'exploration de l'espace des solutions, en maintenant une certaine consistance par rapport aux contraintes. Initialement prévus pour manipuler des variables discrètes, certains algorithmes ont été adapté à la manipulation de variables continues [Fal94, ShF96, Lho93], ce qui est nécessaire pour résoudre notre problème.

Mais résoudre le problème de satisfaction n'est pas susant. Dans notre contexte, cette approche revient à trouver une conguration d'impression admissible mais en aucun cas la préférée. De nombreuses recherches ont été réalisées an d'étendre les CSP à la prise en compte de coûts ou de préférences. On regroupe aujourd'hui les fruits de ces travaux sous le nom de CSP exibles.

CSP exible Nous présentons ici le principe des CSP exibles. Le lecteur intéressé peut se reporter à [Sch00] pour une introduction plus complète. Dans ce paradigme, on ne cherche plus à résoudre un problème de satisfaction mais d'optimisation. Le critère à optimiser (habituellement à minimiser), appelé indiéremment fonction objectif ou fonction de coût, réalise une agrégation d'une information de satisfaction des contraintes. Selon l'opérateur d'agrégation utilisé, diérents CSP exibles ont été proposés (voir le tableau 4.6).

Deux cadres algébriques permettant de regrouper ces diérentes approches dans une représentation commune ont été développé : les CSP valuées ou VCSP (pour Valued CSP) et les CSP à base de semi-anneaux (ou SCSP pour Semiring-based CSP). La diérence essentielle entre ces deux formalismes se situe dans l'ordre pou-vant être exprimé sur les solutions. Les VCSP expriment un ordre total alors que les SCSP peuvent exprimer un ordre partiel.

Nous présentons ici uniquement le cadre algébrique des VCSP, introduit dans [SFV95], qui nous semble susant pour donner une vue d'ensemble des CSP exibles. Le lecteur intéressé trouvera une comparaison détaillée de ces deux cadres dans [BMR+99].

Denition 4. Un VCSP est déni par le quintuplet (V, D, C, S, ρ) où  (V,D,C) est un CSP classique.

 S = (E, ⊕, , >, ⊥) est une structure de valuation (appelée monoïde commu-tatif) telle que

CSP E  > ⊥ ⊕ Références classique {vrai, f aux} vrai  f aux f aux vrai V

pondéré NS +∞ ≤ +∞ 0 + [FW92]

ou [0, 1] ≥ 0 1 min [Rut94]

possibiliste [0, 1] ≤ 1 0 max [Sch92] lexicographique [0, 1]

S {>} Lex > ∅ S

probabiliste [0, 1] ≤ 1 0 a + b − ab [?] Tab. 4.6: Diérents types de CSP exibles

 E est un ensemble totalement ordonné par , muni d'un élément minimal ⊥ et maximal >.

 E est muni d'une loi de composition interne commutative et associative ⊕, appelé opérateur d'agrégation (ou de combinaison), qui vérie les propriétés suivantes :

 monotonie : ∀x, y, z ∈ E tels que x  z on a (x ⊕ y)  (z ⊕ y)  élément neutre : ∀x ∈ E, x ⊕ ⊥ = x

 élément absorbant3 :∀x ∈ E, x ⊕ > = >

 ρ : C → E, une application associant une valuation à chaque contrainte du réseau4

Résoudre une VCSP revient à trouver le tuple t, instance de V qui minimise la fonction de coût l suivante :

Soit C0 ⊆ C l'ensemble des contraintes violées pat t, on a l = M

c∈C0

ϕ (c)

Les CSP exibles ont été classés et nommés diéremment selon l'opérateur d'agrégation utilisé. Le tableau 4.6 résume les principaux types de CSP exibles. Parmi ces diérents formalismes, le CSP pondéré semble être le meilleur candidat pour modéliser notre problème. La structure de valuation d'un CSP pondéré est la suivante : S = (N S +∞, +, ≤, +∞, 0). La résolution d'un CSP pondéré revient donc à minimiser la somme des poids des contraintes violées. La fonction objectif de l'imprimeur peut ainsi être représentée. Les contraintes d'admissibilité des congu-rations d'impression doivent être associées à l'élément maximal (et absorbant), ici la valeur +∞.

Malheureusement, il semble qu'il soit particulièrement dicile d'adapter les

algo-3cette propriété peut être déduite des autres axiomes

4la version consistant à associer une valuation à chaque instanciation d'une contrainte n'est pas fondamentalement diérente, voir [BMR+99].

rithmes de résolution des CSP exibles aux domaines continus, de façon ecace. A notre connaissance, malgré des travaux récents mené dans ce sens ([ACZ03, CNT05, ACZ04, NGCB08]), aucun algorithme performant et exact de résolution de CSP pondéré, sur les domaines continus, n'est encore disponible.

Programmation linéaire mixte

Notre problème présente une particularité très importante : beaucoup de contraintes sont linéaires. Cela met à notre disposition une palette d'algorithmes de résolution, plus spéciques et plus ecaces.

Notre objectif est de transformer un problème d'optimisation non linéaire en une série de problèmes linéaires, de manière à pouvoir exploiter au maximum les algorithmes de résolution existants. Rappelons qu'un problème d'optimisation li-néaire, ou programme lili-néaire, est un problème d'optimisation mathématique pou-vant s'écrire sous la forme :

minimiser f (x) =Pn i=1cixi

sous les conditions                              Pn i=1a1ixi        ≤ = ≥        b1 ... Pn i=1apixi        ≤ = ≥        bp

Il s'agit d'optimiser (minimiser dans notre exemple) une fonction objectif linéaire, sous un ensemble de contraintes également linéaires. Les variables xi sont réelles. Les coecients ci, aij et bi sont appelés paramètres du modèle. Ils doivent être tous spéciés pour que le programme linéaire soit complètement déterminé. La résolution ecace de ce type de problème d'optimisation est étudiée depuis plus de 60 ans. L'algorithme du simplex, inventé dans les années 40 constitue la méthode centrale de résolution.

Lorsque l'on impose à certaines variables d'être discrètes, on parle alors de pro-gramme linéaire mixte en nombre entier. On utilise classiquement un algorithme de type branch and bound couplé avec un simplex pour résoudre le problème.

Linéarisation du problème D'après la formalisation de notre problème, une fois qu'un média est sélectionné et que la rotation est xée, on peut noter que, mis à

part un calcul de valeur absolue dans la fonction objectif sur lequel nous revenons plus loin, les relations entre les diérentes variables sont linéaires. Nous proposons, dans un premier temps, d'inclure la rotation dans les données du problème. Trouver la meilleure conguration d'impression revient alors à résoudre non plus un mais plusieurs problèmes, correspondant d'une part aux diérentes valeurs de rotation envisagées et, d'autre part, aux éventuelles successions de stratégies dénies précé-demment. Concernant la rotation, on a vu que, quelles que soient les données d'en-trée, les symétries du problème permettent de ne considérer que deux valeurs d'angle qui dépendent uniquement de la position d'un éventuel cartouche sur l'image. Quant à la succession de stratégie, elle a été envisagée dans deux cas de gure seulement :  avec la politique <Plus_grand_sinon_plus_petit> lorsqu'il n'existe pas de

média plus grand que l'image.

 lorsque l'imprimeur spécie un format exact de média qui n'est pas disponible et que la stratégie de gestion d'erreur est <Sinon_plus_grand>.

Dans ces deux cas, on envisage uniquement une seconde politique. Donc, au plus, il y a quatre politiques à considérer, c'est-à-dire quatre problèmes d'optimisation à résoudre.

Dans chacun de ces problèmes, il reste deux points non linéaires : le calcul de la valeur absolue de la fonction objectif et la disjonction des diérentes sources de média. Nous modélisons ces deux dicultés en étendant notre programme linéaire avec des variables entières.

Disjonction des sources de média La disjonction des sources de média est directement modélisable par un ensemble de variables binaires, une par source, dont on impose que la somme soit égale à un. De la sorte, une seule source peut être sélectionnée à la fois. Par ailleurs, l'ensemble représentant les possibilités de nition d'une source est codée par trois variables binaires F1, F2 et F3. Formellement, soit

n sources de média s1, . . . , sn on obtient le système de contraintes suivant : s1, . . . , sn ∈ {0, 1} n X i=1 si = 1 sL = n X i=1 siL· si sHmin = n X i=1 siHmin· si sHmax = n X i=1 siHmax · si sgmat = n X i=1 sigmat · si sgmat = n X i=1 sigmat · si sgmat = n X i=1 sigmat · si sgmat = n X i=1 sigmat · si sF1 = n X i=1 siF1 · si sF2 = n X i=1 siF2 · si sF3 = n X i=1 siF3 · si

Fonction linéaire par morceaux La fonction valeur absolue est une fonction continue linéaire par morceaux, ce qui nous permet de la traiter à l'intérieur de notre modèle. En eet, la manipulation de variables discrètes permet de modéliser de telles fonctions.

Soit (p1, . . . , pn) ∈ (R+)n un n-uplet de réels positifs, tel que au plus deux va-riables adjacentes5 soient non nulles. Soit (x1, . . . , xn) ∈ Rnle n-uplet de réels repré-sentant les abscisses des points de rupture de la fonction : ∀i ∈ {1, . . . , n − 1} , xi <

xi+1. Soit (y1, . . . , yn) ∈ Rn le n-uplet représentant les ordonnées des points de rupture de la fonction et f : [x1, xn] → R linéaire par morceaux tel que ∀i ∈ {1, . . . , n − 1} ,f est strictement linéaire sur [xi, xi+1]. Pour modéliser f on introduit les variables de couples suivantes :

n X i=1 pi = 1 ∀i ∈ {1 . . . n} , pi ≥ 0 n X i=1 pi· xi = x n X i=1 pi· yi = f (x)

Reste à modéliser la contrainte d'adjacence. Pour y arriver de manière linéaire, nous introduisons un nouveau n-uplet (c1, . . . , cn−1) ∈ {0, 1}n−1 représentant les n-1 diérents couples de variables adjacentes. Seul un couple peut être sélectionné à la fois, nous ajoutons donc une contrainte sur la somme des variables couples :

c1, . . . , cn−1 ∈ {0, 1} n−1 X i=1 ci = 1 p1 ≤ 1 · c1+ 0 · c2+ 0 · c3+ 0 · c4 + . . . + 0 · cn−1 p2 ≤ 1 · c1+ 1 · c2+ 0 · c3+ 0 · c4 + . . . + 0 · cn−1 p3 ≤ 0 · c1+ 1 · c2+ 1 · c3+ 0 · c4 + . . . + 0 · cn−1 ... pn ≤ 0 · c1+ 0 · c2+ 0 · c3+ 0 · c4 + . . . + 1 · cn−1 La gure 4.1 illustre cette modélisation sur un exemple.

Ensembles Ordonnés spéciaux Ce type de contraintes étant fréquent dans le domaine de l'optimisation discrète, une notion facilitant leur manipulation a été introduite dans les années 70 [BT70] : les ensembles ordonnés spéciaux (Special Ordered Sets, SOS).

Il y a deux sortes de SOS.

Un SOS de type 1 (noté SOS1 ou S1 dans la littérature) est un ensemble de variables, telles qu'au plus une variable puisse prendre une valeur diérente de zéro. Leur application la plus fréquente concerne les ensembles de variables binaires, ce

1

x x

2

x

3

x

4 1

y