• Aucun résultat trouvé

2.2 Approche incr´ ementale pour le choix avec l’int´ egrale de Choquet

2.2.2 Optimisation du crit` ere Minimax Regret par un algorithme it´ eratif

y(j)− y(j−1) vY(j)−x(j)− x(j−1) vX(j) (2.27) s.c. vX(j+1) ≤ vX(j), ∀j ∈ {1, . . . , q − 1} (2.28) (LP2) vY(j+1) ≤ vY(j), ∀j ∈ {1, . . . , q − 1} (2.29) vY(j) ≤ vX(k), ∀j, k ∈ Q : Y(j)⊂ X(k), Y(j)6⊆ X(k+1), Y(j−1)6⊆ X(k) (2.30) lX(j) ≤ vX(j) ≤ uX(j), ∀j ∈ Q (2.31) lY(j) ≤ vY(j) ≤ uY(j), ∀j ∈ Q (2.32)

Cette formulation lin´eaire implique au plus 2q − 1 variables (associ´ees aux ´el´ements de A(x,y)) reli´ees par au plus 3(q − 1) contraintes de monotonie (cf. ´equations (2.28)-(2.30)).

Exemple 17. Consid´erons un probl`eme de d´ecision avec cinq crit`eres (c’est-`a-dire, Q = {1, 2, 3, 4, 5}), et deux alternatives x = (1, 0.8, 0.4, 0.5, 0.1) et y = (0.8, 1, 0.6, 0.2, 0.4). Nous avons ici :

Ch(x, v) = 0.1v(Q) + 0.3v({1, 2, 3, 4}) + 0.1v({1, 2, 4}) + 0.3v({1, 2}) + 0.2v({1}) Ch(y, v) = 0.2v(Q) + 0.2v({1, 2, 3, 5}) + 0.2v({1, 2, 3}) + 0.2v({1, 2}) + 0.2v({2})

Le programme lin´eaire LP2 associ´e au calcul de PMR(x, y, ΩP) est donc le suivant :

max v 0.2(v{1,2,3,5}+ v{1,2,3}+ v{2}− v{1}) + 0.1(vQ− v{1,2}− v{1,2,4}) − 0.3v{1,2,3,4} s.c. v{1}≤ v{1,2} ≤ v{1,2,4}≤ v{1,2,3,4}≤ vQ (2.33) v{2}≤ v{1,2} ≤ v{1,2,3}≤ v{1,2,3,5}≤ vQ (2.34) v{1,2,3}≤ v{1,2,3,4} (2.35) l{1}≤ v{1} ≤ u{1}, l{1,2}≤ v{1,2}≤ u{1,2}, l{1,2,4}≤ v{1,2,4}≤ u{1,2,4} l{1,2,3,4}≤ v{1,2,3,4}≤ u{1,2,3,4}, lQ ≤ vQ ≤ uQ, l{2} ≤ v{2}≤ u{2} l{1,2,3}≤ v{1,2,3}≤ u{1,2,3}, l{1,2,3,5}≤ v{1,2,3,5}≤ u{1,2,3,5}

o`u les ´equations (2.33) et (2.34) correspondent respectivement aux contraintes des ´equations (2.28) et (2.29), tandis que l’´equation (2.35) nous donne la seule contrainte associ´ee `a l’´equation (2.30) ; toutes les autres contraintes proviennent des ´equations (2.31)-(2.32). Ainsi, nous avons besoin ici de seulement 8 variables (au lieu de 32) et 9 contraintes de monotonie (au lieu de 80).

2.2.2 Optimisation du crit`ere Minimax Regret par un algorithme it´eratif

Bien que les solveurs actuels soient capables de r´esoudre relativement facilement toute instance du programme lin´eaire LP2, la d´etermination du mMR requiert dans le pire cas un nombre quadratique

de telles r´esolutions (cf. d´efinition 36). Dans l’optique de r´eduire les temps de calculs, nous proposons maintenant une m´ethode it´erative permettant de r´esoudre toute instance du programme LP2 sans avoir recours `a la programmation lin´eaire. Soit G = (V, E ) le graphe de contraintes associ´e aux contraintes de monotonie du programme LP2. Le graphe G est formellement d´efini comme suit :

• V = {X(j): j ∈ Q} ∪ {Y(j): j ∈ Q} est l’ensemble des nœuds du graphe ; chaque nœud est ainsi associ´e `a un sous-ensemble de crit`eres A ⊆ Q tel que la variable de d´ecision vA est dans LP2. • E est l’ensemble des arcs du graphe ; l’arc (A, B) appartient au graphe si et seulement si la

contrainte vA≥ vB apparaˆıt dans les ´equations (2.28)-(2.30).

Dans le graphe G, les arcs correspondant aux ´equations (2.28)-(2.29) forment deux chemins caract´eris´es par les listes de nœuds suivantes : Px = (X(1), . . . , X(q)) et Py = (Y(1), . . . , Y(q)). Notons que ces deux chemins passent `a eux deux par tous les nœuds du graphe de contraintes. Soit A (resp. A+) la sous-s´equence de Px (resp. Py) compos´ee de tous les nœuds A tels que cA < 0 (resp. cA > 0), o`u cA est le coefficient de la variable vA dans la fonction objectif (2.27). Par d´efinition, les s´equences A et A+ v´erifient les propri´et´es suivantes :

• A et A+ incluent, `a elles deux, tous les nœuds de V et n’ont aucun nœud en commun.

• A+j ⊃ A+j+1 pour tout j ∈ {1, . . . , |A+| − 1}, o`u A+k repr´esente le k`emenœud dans la s´equence A+. • Aj ⊃ Aj+1 pour tout j ∈ {1, . . . , |A| − 1}, o`u Ak repr´esente le k`emenœud dans la s´equence A. • pour tout j ∈ {1, . . . , |A|}, il existe au plus un indice k ∈ {1, . . . , |A+|} tel que (Aj , A+k) ∈ E . Dans la suite, les variables correspondant aux nœuds dans A (resp. A+) seront appel´ees variables n´egatives (resp. variables positives) puisque celles-ci impactent n´egativement (resp. positivement) la fonc-tion objectif. `A titre d’exemple, nous donnons ci-apr`es le graphe de contraintes associ´e `a l’exemple17 :

Q 0.1 {1, 2, 3, 4} −0.3 0.2 {1, 2, 3, 5} {1, 2, 4} −0.1 0.2 {1, 2, 3} {1, 2} −0.1 {1} −0.2 0.2 {2}

(a) Graphe de contraintes associ´e au calcul de PMR(x, y, ΩP) ; les arcs tiret´es (resp. en pointill´es) repr´esentent le chemin Px (resp. Py) ; la valeur cA

est indiqu´ee `a gauche de chaque nœud A.

Q A+1 {1, 2, 3, 4} A1 A+2 {1, 2, 3, 5} {1, 2, 4} A2 A+ {1, 2, 3} 3 {1, 2} A3 {1} A4 A+ {2} 4

(b) S´equences A et A+ associ´ees au calcul de PMR(x, y, ΩP) ; dans cette figure, les ´el´ements suc-cessifs de la s´equence A(resp. A+) sont reli´es entre eux par des arcs tiret´es (resp. en pointill´es).

Puisque la s´equence A+ (resp. A) contient tous les nœuds A tel que la variable vA impacte positi-vement (resp. n´egativement) la fonction objectif, nous souhaitons en r´ealit´e maximiser (resp. minimiser) la variable vA pour tout A ∈ A+ (resp. pour tout A ∈ A) afin de maximiser la fonction objectif. De ce fait, s’il n’existe aucun arc de type (Aj, A+k) dans E (repr´esentant la contrainte vA

j ≥ vA+

k), alors la solution optimale du programme LP2 peut ˆetre obtenue ais´ement ; il suffit en effet de mettre vA `a sa borne inf´erieure lA pour tout A ∈ A et vA `a sa borne sup´erieure uA pour tout A ∈ A+. Dans le cas contraire, pour tout arc de type (Aj , A+k) dans E , il s’agit de d´eterminer si la variable vA

j doit ˆetre fix´ee `a sa borne inf´erieure lA

j (au prix de contraindre la variable vA+

k) ou bien `a une valeur plus grande. Remarquons que, pour tout l ∈ {k + 1, . . . , |A+|}, la contrainte vA

j

≥ vA+

l est indirectement impos´ee par les contraintes de monotonie car nous avons A+l ⊂ A+k par d´efinition de la s´equence A+. Par cons´equent, pour tout j ∈ {1, . . . , |A|}, il s’agit de d´ecider si la variable vA

j doit ˆetre fix´ee `a sa borne inf´erieure lA j ou bien `a une valeur sup´erieure pour pr´eserver les variables dans l’ensemble {vDj

k

: 1 ≤ k ≤ |Dj|}, o`u Dj repr´esente la sous-s´equence de A+ restreinte aux descendants de Aj dans le graphe G et Djk est le k`eme

´el´ement de Dj.

Afin de d´eterminer la bonne d´ecision, nous proposons de proc´eder de mani`ere it´erative. Le principe g´en´eral est le suivant : tout d’abord, nous souhaitons savoir si la variable vA

j doit ˆetre mise `a une valeur plus grande que uDj

1

(pour pr´eserver la variable vDj 1

) ou bien si la variable vA

j doit ˆetre instanci´ee `a une valeur plus petite que uDj

1. Nous sommes dans le premier cas lorsque l’in´egalit´e suivante est v´erifi´ee : X j≤k≤|A| Ak⊃Dj1 |cA k | < cDj 1 (2.36)

En effet, cette in´egalit´e nous informe que la variable vDj

1 a un plus grand impact sur la fonction objectif que la variable vA

j ; en d’autres termes, diminuer la valeur de la variable vDj

1 au profit de la variable vA

j conduit `a une diminution locale de la valeur de la fonction objectif. Dans cette situation, la variable vA

j doit donc ˆetre instanci´ee `a une valeur plus grande que uDj

1 pour ´eviter de contraindre la variable vDj

1 (qui joue un rˆole plus important). Si en revanche l’´equation (2.36) n’est pas v´erifi´ee, alors une diminution de la valeur de vDj

1 au profit de la variable vA

j entraˆıne cette fois-ci une augmentation locale de la valeur de la fonction objectif. Dans ce cas, nous d´eduisons que la variable vA

j doit ˆetre instanci´ee `

a une valeur plus petite que uDj

1. Pour en connaˆıtre pr´ecis´ement la valeur, ce test doit ˆetre it´er´e sur le nœud Dj2, et cætera. Si jamais ce test ´echoue pour tous les nœuds Djk, avec 1 ≤ k ≤ |Dj|, alors la variable vA

j peut ˆetre mise `a la valeur lA

j (sa borne inf´erieure). Remarquons que la proc´edure it´erative que nous venons de d´ecrire bri`evement ne tient pas compte du fait que la variable vA

j ne doit pas ˆetre instanci´ee `

a une valeur plus petite que sa borne inf´erieure. Cette proc´edure it´erative est pr´esent´ee plus en d´etail dans l’algorithme1, qui pr´ecise notamment comment les contraintes de borne doivent ˆetre g´er´ees durant la d´etermination des valeurs des variables vA

j, avec j ∈ {1, . . . , |A|}. Notons que cet algorithme a une complexit´e en O(q2) car nous avons d’une part |A| ≤ q et d’autre part |Dj| ≤ |A+| ≤ q pour tout j ∈ {1, . . . , |A|}.

Algorithm 1: R´esolution du probl`eme PMR(x, y, ΩP)

Input: deux alternatives x, y ∈ X, un ensemble de donn´ees P Output: une instanciation des variables vA, A ∈ A(x,y)

1 Construction des s´equences A et A+ `a partir de G le graphe de contraintes

2 for A ∈ A+ do vA← uA 3 for j = 1 . . . |A| do 4 vA j ← lA j 5 k ← 1 6 c+← 0 7 c← 0 8 while k ≤ |Dj| et vDj k > lA j do 9 c+← c++ cDj k 10 c← c+P l∈{j,...,|A−|}:Dl 1=Djk cA l 11 if c++ c> 0 then 12 vA j ← v Djk 13 break 14 end 15 k ← k + 1 16 end 17 for k = 1 . . . |Dj| do vDj k ← min{vDj k , vA j} 18 end 19 return v

La proposition suivante va nous ˆetre utile pour d´emontrer la validit´e de l’algorithme 1: Proposition 7. `A la fin de chaque it´eration j de la boucle “for” de l’algorithme 1, nous avons :

∀A ∈ A+, vA= min{uA, min

A0∈P aj(A)vA0}

o`u P aj(A) = {Ak, 1 ≤ k ≤ j : A ⊂ Ak}.

D´emonstration. Montrons par r´ecurrence que la proposition suivante, not´ee P (j), est vraie `a la fin de chaque it´eration j ∈ {0, . . . , |A|} :

P (j) : ∀A ∈ A+, vA= min{uA, min

A0∈P aj(A)vA0}

Pour l’it´eration j = 0 (avant entrer dans la boucle “for”), la proposition P (j) est trivialement vraie puisque, pour tout A ∈ A+, P aj(A) = ∅ et vA est initialis´ee `a uA (cf. ligne 2). Supposons maintenant que P (j − 1) est vraie pour une certaine it´eration j ∈ {1, . . . , |A| − 1}. Nous voulons montrer que P (j) est dans ce cas n´ecessairement vraie aussi. Soit A ∈ A+. `A la fin de l’it´eration j − 1, nous avons vA= min{uA, minA0∈P aj−1(A)vA0} par hypoth`ese de r´ecurrence ; notons qu’aucune variable de l’ensemble

{vA0 : A0 ∈ P aj−1(A)} n’est ensuite modifi´ee durant l’it´eration j. Supposons tout d’abord que A 6⊂ Aj. Dans ce cas, nous savons que la variable vA n’est pas modifi´ee par l’algorithme durant l’it´eration j car seules les variables positives associ´ees aux ´el´ements de Dj sont modifi´ees. De plus, comme P aj(A) = P aj−1(A), alors nous pouvons directement inf´erer le r´esultat : vA= min{uA, min

A0∈P aj(A)vA0}.

Supposons maintenant que A ⊂ Aj. Dans ce cas, durant l’it´eration j, la variable vA est modifi´ee selon la formule donn´ee en ligne 17 : vA= min{vA, vA

j

}. Ainsi, `a la fin de l’it´eration j, nous avons :

vA= min{vA, vA

j} par la ligne 17 = min{min{uA, min

A0∈P aj−1(A)vA0}, vA j

} par hypoth`ese de r´ecurrence

= min{uA, min A0∈P aj−1(A)vA0, vA j} = min{uA, min A0∈P aj−1(A)∪{Aj} vA0} = min{uA, min A0∈P aj(A)vA0}

Finalement, nous avons montr´e que P (j) est v´erifi´ee lorsque P (j − 1) est vraie. Par cons´equent, pour tout j ∈ {0, . . . , |A|}, nous avons bien vA= min{uA, minA0∈P aj(A)vA0} pour tout A ∈ A+.

Ce r´esultat nous permet de d´eriver la proposition suivante :

Proposition 8. L’algorithme 1 retourne une solution v v´erifiant l’´equation (2.26) pour tout A ∈ A+. D´emonstration. Le r´esultat d´ecoule directement de la proposition7(avec j = |A|) puisque P a|A−|(A) = P a(A) par d´efinition.

Cette proposition nous informe que l’algorithme 1 construit une solution v´erifiant les conditions n´ecessaires d’optimalit´e donn´ees par l’´equation (2.26). Ces conditions nous ont en r´ealit´e fourni une mani`ere op´erationnelle de d´eterminer les valeurs optimales des variables positives, lorsque celles des variables n´egatives ont ´et´e sp´ecifi´ees avant. Pour montrer que l’algorithme1est valide, il suffit maintenant de montrer que les variables n´egatives sont “correctement” instanci´ees par cet algorithme. Ceci est r´ealis´e dans la preuve de la proposition suivante (donn´ee en annexe) :

Proposition 9. L’algorithme 1 retourne une solution optimale du programme LP2.

Pour illustrer le fonctionnement de notre algorithme, nous d´etaillons ci-apr`es son ex´ecution sur le probl`eme de l’exemple 17 :

Exemple 18. Reprenons le probl`eme d´ecrit dans l’exemple 17, avec les alternatives x et y d´efinies par x = (1, 0.8, 0.4, 0.5, 0.1) et y = (0.8, 1, 0.6, 0.2, 0.4). Nous souhaitons calculer PMR(x, y, ΩP) en appli-quant l’algorithme 1. Rappelons que le programme lin´eaire LP2 correspondant `a ce probl`eme d’optimisa-tion est donn´e dans l’exemple 17. Par ailleurs, le graphe des contraintes associ´e `a ce probl`eme, ainsi que les s´equences A+ et A de ce graphe, sont quant `a eux repr´esent´es dans la figure 2.1.

Supposons que le d´ecideur a d´ej`a r´epondu `a quelques questions et que les intervalles courants [lA, uA], A ∈ A(x,y), sont les suivants : D´eroulons l’algorithme 1 sur cet exemple. Tout d’abord, la ligne 2 nous

v{1} v{1,2} v{1,2,4} v{1,2,3,4} v{2} v{1,2,3} v{1,2,3,5} vQ

[0, 0.5] [0.2, 0.7] [0.3, 0.9] [0.6, 1] [0.1, 0.4] [0.4, 0.8] [0.5, 0.9] [1, 1]

dicte d’initialiser la variable vA `a sa borne sup´erieure uA pour tout ensemble A ∈ A+ :

vQ = 1, v{1,2,3,5}= 0.9, v{1,2,3}= 0.8 et v{2}= 0.4

La premi`ere it´eration de la boucle “for” se concentre sur le nœud A1 = {1, 2, 3, 4} ainsi que sur la s´equence de ses descendants D1 = ({1, 2, 3}, {2}). Tout d’abord, la variable v{1,2,3,4} est instanci´ee `a sa borne inf´erieure (cf. ligne 4) :

v{1,2,3,4}= l{1,2,3,4}= 0.6

Puis, durant la premi`ere it´eration de la boucle “while”, c’est le descendant D11= {1, 2, 3} qui est ´etudi´e. Puisque v{1,2,3} = 0.8 > 0.6 = l{1,2,3,4}, alors les valeurs c+ = c{1,2,3} = 0.2 (cf. ligne 9) et c = c{1,2,3,4}= −0.3 (cf. ligne 10) sont calcul´ees. Cette it´eration de la boucle “while” s’arrˆete ensuite puisque la condition c++ c> 0 n’est pas v´erifi´ee. C’est alors le descendant D12 = {2} qui est ´etudi´e `a l’it´eration suivante. Puisque v{2} = 0.4 ≤ 0.6 = l{1,2,3,4}, alors la boucle “while” s’arrˆete imm´ediatement. Cette it´eration de la boucle “for” se termine alors en r´ealisant les mises `a jour suivantes (cf. ligne 17) :

v{1,2,3}= min{v{1,2,3}, v{1,2,3,4}} = min{0.8, 0.6} = 0.6 et v{2}= min{v{2}, v{1,2,3,4}} = min{0.4, 0.6} = 0.4

La seconde it´eration de la boucle “for” traite le nœud A2 = {1, 2, 4} dont la s´equence de descendants est D2 = ({2}). La variable v{1,2,4} est tout d’abord fix´ee `a sa valeur minimale (cf. ligne 4) :

v{1,2,4}= l{1,2,4} = 0.3

Ensuite, la premi`ere it´eration de la boucle “while” s’int´eresse au nœud D12 = {2}. Comme v{2} = 0.4 > 0.3 = l{1,2,4}, alors les valeurs c+ = c{2} = 0.2 et c = c{1,2,4}+ c{1,2} = −0.2 sont calcul´ees d’apr`es les lignes 9 et 10. Puisque la condition c++ c > 0 n’est pas v´erifi´ee `a cette it´eration, alors celle-ci se termine imm´ediatement. Comme en plus |D2| = 1, alors la boucle “while” s’ach`eve en mˆeme temps. Finalement, l’algorithme r´ealise la mise `a jour suivante (cf. ligne 17) :

v{2}= min{v{2}, v{1,2,4}} = min{0.4, 0.3} = 0.3

Durant la troisi`eme it´eration, c’est le nœud A3 = {1, 2} qui est ´etudi´e, la s´equence de ses descendants ´etant D3= ({2}). Tout d’abord, la variable v{1,2} est instanci´ee `a sa valeur minimale (cf. ligne 4) :

Puis, l’attention se porte sur le descendant D13= {2}. Puisque v{2} = 0.3 > 0.2 = l{1,2}, alors les valeurs c+= c{2}= 0.2 (cf. ligne 9) et c= c{1,2} = −0.1 (cf. ligne 10) sont calcul´ees. La condition c++ c > 0 est cette fois-ci v´erifi´ee. Par cons´equent, la valeur de v{1,2} est modifi´ee comme suit (cf. ligne 12) :

v{1,2} = v{2}= 0.3

La boucle “while” s’interrompt alors imm´ediatement suite `a l’ex´ecution de l’instruction “break”. Puis, la mise `a jour suivante est effectu´ee par l’algorithme (cf. ligne 17) :

v{2}= min{v{2}, v{1,2}} = min{0.3, 0.3} = 0.3

`

A la derni`ere it´eration de la boucle “for” est consid´er´e le nœud A4 = {1}. La variable v{1} est alors instanci´ee `a sa valeur minimale en suivant la ligne 4 :

v{1} = l{1}= 0

Cette it´eration s’arrˆete ensuite parce que nous avons ici D4 = ∅. En r´esum´e, sur cet exemple, l’algorithme construit et retourne l’instanciation compl`ete suivante :

v{1} v{1,2} v{1,2,4} v{1,2,3,4} v{2} v{1,2,3} v{1,2,3,5} vQ

0 0.3 0.3 0.6 0.3 0.6 0.9 1

Dans cette sous-section, nous avons vu que le probl`eme d’optimisation PMR(x, y, ΩP) peut ˆetre r´esolu par un algorithme it´eratif de complexit´e quadratique, pourvu que les donn´ees de pr´ef´erences disponibles soient de la forme (1A0, Λ) ou (Λ, 1A0). Dans le cadre de l’´elicitation incr´ementale, cette derni`ere condi-tion n´ecessite de restreindre les interactions avec le d´ecideur `a un certain type de questions, ce qui exclut la possibilit´e d’utiliser la strat´egie CSS (pr´esent´ee en section 1.4.2) pour engendrer des questions de pr´ef´erence. Il s’agit donc pour nous de concevoir une strat´egie d’´elicitation efficace, produisant unique-ment des questions de comparaison entre des alternatives binaires de type 1A0 et des profils constants de type Λ = (λ, . . . , λ) ; ceci est l’objet de la sous-section suivante.