Utilisation de m´ ethodes multi-crit` ere appliqu´ ees au probl` eme de gestion de d´ ependances logicielles
Emmanuel Lonca
Master 2 SIA — CRIL-CNRS UMR 8188
5 juillet 2011
Plan de la pr´ esentation
Introduction
Rappels de logique propositionnelle Expression des pr´ef´erences
Crit`ere de Tchebycheff Algorithmes
R´esultats exp´erimentaux et perspectives
2/29
Introduction
Rappels de logique propositionnelle Expression des pr´ef´erences
Crit`ere de Tchebycheff Algorithmes
R´esultats exp´erimentaux et perspectives
Introduction
Probl`eme de d´ependances logicielles
I r´eutilisation code existant
I cr´eation de logiciel bas´es sur composants
I distribution GNU/Linux (programmes)
I probl`eme combinatoire (NP-complet)
I plusieurs paquets alternatifs pour une mˆeme fonction
I certains paquets mutuellement incompatibles
I trouver une solution rapide en pratique
I difficile de trouver une bonnesolution
I codage vers le formalisme pseudo-bool´een (autres possibles)
I m´ethodes multi-crit`ere provenant d’aide `a la d´ecision
4/29
Introduction
Rappels de logique propositionnelle Expression des pr´ef´erences
Crit`ere de Tchebycheff Algorithmes
R´esultats exp´erimentaux et perspectives
Formule sous forme CNF
I forme CNF : Σ = (a∨ b
|{z}
litt´eral
)∧( ¬a
|{z}
litt´eral
∨c)∧(a∨c∨d)
| {z }
clause
| {z }
forme CNF
a,b,c,d ∈ {0,1}
I interpr´etation :
ω : a=0, b=1, c=0, d=1
Σ = (a∨b)∧(¬a∨c)∧(a∨c∨d)
I interpr´etation satisfaisant toutes les clauses est appel´ee mod`elede la formule
6/29
Contraintes pseudo-bool´ eennes, fonctions objectif
I Fonction pseudo-bool´eenne : fonction lin´eaire `a coefficients entiers de Ω dansZ
f : Ω 7→ Z
f(ω) = a0+
n
P
i=1
aixi
= a0+a1x1+a2x2+...+anxn I contrainte pseudo-bool´eenne :f1(ω)c
I fonction objectif :min. f2(ω)
Exemple de solution optimale d’un probl` eme d’optimisation lin´ eaire
C ={(a∨b),(¬a∨c),(a∨c∨d),(a+b+c +d ≤2)}
min. f(ω) =a+ 2b+ 4c+ 8d
mod`eleω f(ω) {a,¬b,c,¬d} 5
←
{¬a,b,c,d} 6 {¬a,b,¬c,d} 10
8/29
Exemple de solution optimale d’un probl` eme d’optimisation lin´ eaire
C ={(a∨b),(¬a∨c),(a∨c∨d),(a+b+c +d ≤2)}
min. f(ω) =a+ 2b+ 4c+ 8d
mod`eleω f(ω) {a,¬b,c,¬d} 5 ←
{¬a,b,c,d} 6 {¬a,b,¬c,d} 10
Introduction
Rappels de logique propositionnelle Expression des pr´ef´erences
Crit`ere de Tchebycheff Algorithmes
R´esultats exp´erimentaux et perspectives
9/29
Relations de pr´ ef´ erence
I Soit X ={x0,x1, ...,xn}un domaine. Une relation de pr´ef´erence sur X est une relation sur X ×X telle que xi xj sixi est pr´ef´er´e `axj
I xi xj ⇔xi xj et xj xi I xi ∼xj ⇔xi xj et xj xi
I plusieurs types de relations de pr´ef´erences :
I ordre, pr´e-ordre
I quasi-ordre
I fonctions d’utilit´e:
I f :X 7→R
I f(xi)≥f(xj) si et seulement sixixj
Crit` eres pour juger les solutions (projet Mancoosi)
Diff´erents crit`eres ont ´et´e d´efinis pour jauger la qualit´e des solutions (fonctions lin´eaires) :
I paquets install´es
I paquets enlev´es
I paquets chang´es
I paquets non `a jour
I paquets recommand´es non-install´es
11/29
D´ ecision multi-crit` ere
Exemple du probl`eme de gestion de d´ependances :
I plusieurs crit`eres `a prendre en compte :
I une relation de pr´ef´erence par crit`ere
I cod´es par des fonctions objectif
I probl`eme : crit`eres antagonistes
I recommand´es non-install´es,install´es
Fonctions d’agr´ egation
Plusieurs solutions :
I donner un ordre sur les crit`eres
I utiliser une fonction F agr´egeant plusieurs fonctions d’utilit´e :
I siF est lin´earisable, on revient au probl`eme mono-crit`ere (m´ethodes efficaces en pratique existantes)
I sinon, difficile de trouver un optimum
13/29
Agr´ egations de crit` eres consid´ er´ ees (projet Mancoosi)
I ordre lexicographique
I agr´egationparano¨ıa 1. enlev´es
2. chang´es
I agr´egation`a la mode 1. enlev´es
2. p´erim´es
3. recommand´es non-install´es 4. install´es
Types de fonctions d’agr´ egation
Diff´erents types de fonctions d’agr´egation pour diff´erents cas
I Ordered Weighted Averaging operators (OWA), m´ethode g´en´eraliste
I int´egrale de Choquet, synergie entre les crit`eres
I crit`ere de TchebycheffT(x), solutions´equilibr´ees
15/29
Introduction
Rappels de logique propositionnelle Expression des pr´ef´erences
Crit`ere de Tchebycheff Algorithmes
R´esultats exp´erimentaux et perspectives
Crit` ere de Tchebycheff
Crit`ere de Tchebycheff :
I agr´egation des´ecurit´e, solutions ´equilibr´ees
I pour chaque crit`ere, on calcule le regretri(x) de la solution (meilleure valeur possible - valeur de la solution)
I T(x) =max({wiri}) (wi : poids donn´es par expert)
I solution optimale : T(x) minimis´e
I fonction minorante : moyenne pond´er´ee des regrets
17/29
Un petit exemple...
c2(x)
x∗
r1(x) r2(x)
Un petit exemple...
c1(x) c2(x)
x∗
r1(x) r2(x)
18/29
Un petit exemple...
c2(x)
x∗
r1(x) r2(x)
Un petit exemple...
c1(x) c2(x)
x∗
r1(x) r2(x)
18/29
Introduction
Rappels de logique propositionnelle Expression des pr´ef´erences
Crit`ere de Tchebycheff Algorithmes
R´esultats exp´erimentaux et perspectives
Guidage par fonction minorante (Queiroz, S. 2008)
Utilisation d’une fonction lin´eaireFm qui minore F (carF doit ˆetre minimis´ee)
Int´erˆets :
I cas d’arrˆet
I si Fm est une bonne approximation deF,
bonnes solutions partielles
20/29
Illustration du guidage
y
x1 x2 x3 x4
fonction objectif fonction minorante
Illustration du guidage
y
x0 x1
x2 x3 x4
fonction objectif fonction minorante
21/29
Illustration du guidage
y
x3 x4
fonction objectif fonction minorante
Illustration du guidage
y
x0 x1 x2 x3
x4
fonction objectif fonction minorante
21/29
Illustration du guidage
y
fonction objectif fonction minorante
Autres m´ ethodes applicables au crit` ere de Tchebycheff
I m´ethode de la minorante inefficace pour r´esoudre notre probl`eme
I max({x1,x2, ...,xn})≤c ⇔ x1≤c,x2 ≤c, ...,xn≤c
I possibilit´e d’imposerT(x)≤n
I contribution : deux algorithmes
I ajout successif de contraintes pour imposerT(x)≤n
I imposer successivementT(x) = 0,T(x) = 1, ...
22/29
R´ esolution par renforcement de contraintes
c1(x) c2(x)
x∗
x1 x2
x3
R´ esolution par renforcement de contraintes
c1(x) c2(x)
x∗
x1
x2
x3
23/29
R´ esolution par renforcement de contraintes
c1(x) c2(x)
x∗
x1
x2
x3
R´ esolution par renforcement de contraintes
c1(x) c2(x)
x∗
x1 x2
x3
23/29
R´ esolution par renforcement de contraintes
c1(x) c2(x)
x∗
x1 x2
x3
R´ esolution par renforcement de contraintes
c1(x) c2(x)
x∗
x1 x2
x3
23/29
R´ esolution par renforcement de contraintes
Solution de d´epart joue un rˆole tr`es important !
I meilleure solution de d´epart : moins d’it´erations
I id´ee : solution de d´epart = solution optimale pour une fonction lin´eaire qui approxime le crit`ere de Tchebycheff
R´ esolution par relaxation de contraintes
c1(x) c2(x)
x∗
25/29
R´ esolution par relaxation de contraintes
c2(x)
x∗
R´ esolution par relaxation de contraintes
c1(x) c2(x)
x∗
25/29
Introduction
Rappels de logique propositionnelle Expression des pr´ef´erences
Crit`ere de Tchebycheff Algorithmes
R´esultats exp´erimentaux et perspectives
Quelques r´ esultats exp´ erimentaux repr´ esentatifs
instance simpleCstr impCstr relax
kwin-style-crystal.cudf — 3 :32.50 3 :58.58 gnash-common-opengl.cudf 7 :50.64 3 :29.86 3 :47.15
kbd.cudf 9 :57.78 5 :03.20 5 :12.14
kdessh.cudf — 4 :26.25 4 :01.17
kjumpingcube.cudf 9 :48.29 4 :32.90 5 :49.06
tasque.cudf — — 5 :02.58
mono-mcs.cudf — 6 :05.82 5 :26.81
mono-debugger.cudf — — 4 :27.17
libmono-addins-gui0.2-cil.cudf — — 6 :30.89
plasma-widgets-workspace.cudf — — 5 :50.05
r-cran-lme4.cudf — 6 :25.50 4 :25.55
plasma-dataengines-workspace.cudf — 5 :58.67 3 :46.45
r-cran-rodbc.cudf — 4 :03.04 4 :28.20
mono-gac.cudf — 4 :05.21 4 :49.24
kommander.cudf 9 :30.01 4 :46.28 5 :33.73
libevolution3.0-cil.cudf 9 :21.93 8 :58.36 4 :36.97 openoffice.org-draw.cudf 9 :50.50 5 :12.93 4 :51.37
ktouch.cudf 9 :54.45 4 :32.66 5 :32.31
kdesudo.cudf 9 :05.84 3 :38.39 3 :51.66
gtwitter.cudf — 8 :26.07 5 :49.79
gpc-4.1.cudf — 6 :13.87 4 :44.35
ksystemlog.cudf — 4 :13.67 4 :26.94
upstart-compat-sysv.cudf — — 7 :54.76
fcron.cudf 8 :06.95 4 :15.86 4 :34.11
audacious-plugins-extra.cudf — 7 :05.73 5 :20.92
27/29
Perspectives
I mod´elisation du probl`eme
I ´etudier pertinence crit`eres
I choix de la m´ethode d’agr´egation la plus adapt´ee
I pond´eration des crit`eres
I algorithmique
I algo. bas´es sur crit`ere Tchebycheff : retourner solutions Pareto-optimales
I am´elioration algorithmes d´evelopp´es
I multithreading
Merci :-)
Merci :-)
29/29
Codage probl` eme
notion codage
besoin V
capj∈UIi
(UIi ⇒ W
UI∈alt(capj)
UI)
conflits ( P
i|i∈versions(UIx)
UIix)≤1
recommandations V
capj∈optReq(UIi)
(Abscapj ⇒ V
UIx∈alt(capj)
UIx)
installations demand´ees V
UIxa installer
UIx
Un mod`ele pour la formule obtenue par la conjonction des formules pr´esent´ees nous donne une solution au probl`eme de gestion de
Codage crit` eres (1/2)
Diff´erents crit`eres ont ´et´e d´efinis pour jauger la qualit´e des solutions :
I install´es
nouveauUIx= _
UIix∈versions(UIx)
UIix,UIx ∈non-install´ees
I enlev´es
enlev´eUIx = ^
UIix∈versions(UIx)
¬UIix,UIx ∈install´ees
I chang´es
chang´eUIx= _
UIix∈install´ees∩versions(UIx)
¬UIix
_
UIix∈non-install´ees∩versions(UIx)
UIix,UIx ∈ {UI}
29/29
Codage crit` eres (2/2)
Diff´erents crit`eres ont ´et´e d´efinis pour jauger la qualit´e des solutions :
I pas `a jour
p´erim´eUIx =¬estAJour(UIx)∧( _
UIix∈versions(UIx)\`aJour(UIx)
UIix),UIx ∈ {UI}
I recommand´es non-install´es
XAbscap