lettre AOC

publicité
LA
LETTRE
AOC
Algorithmes et
Optimisation Combinatoire
N°7
Juin 2011
Algorithmique et Optimisation Contrôlée
AGENDA
30 juin 2011 :
Date limite de soumission FCST
2011
http://trust.csu.edu.cn/conference/fcst2
011/
Sélection rapide des meilleurs
éléments d'un ensemble ou
comment "déloger un log"
2-4 juillet 2011 :
IEEE SERVICES 2011, International
Workshop on Performance Aspects
of Cloud and Service Virtualization,
Washington BC.
Lorsqu'il s'agit de trouver au plus vite (i.e. en temps linéaire) les k
meilleurs éléments d'un ensemble de cardinalité n, l'algorithme
doit s'affranchir de la mise en jeu du tri complet de ses éléments,
pour ainsi déloger le "logn" de sa complexité temporelle.
http://www.servicescongress.org/2011/
workshops.html
10-15 juillet 2011 :
Conférence IFORS 2011
International Federation of
Operational Research Societies,
Melbourne, Australie.
http://www.ifors2011.org
24-26 août 2011 :
CSE 2011, The 14th IEEE
International Conference on
Computational Science and
Engineering, Dalian, China.
http://ncc.dlut.edu.cn/~cse11/
29 août - 2 septembre 2011 :
Conférence Euro-Par 2011,
Bordeaux.
30 August - 2 September 2011 :
Conférence ParCo2011
International Conference on Parallel
Computing
http://www.parco.org/
13-16 septembre 2011 :
ICPP 2011, The 40th International
Conference on Parallel Processing,
Taipei, Taiwan.
Publication IEEE CS
http://www.icpp-2011.org
*Submission deadline: February 24,
2011
16-18 novembre 2011 :
FCST 2011, The 6th International
Conference on Frontier of Computer
Science and Technology, Changsha,
Hunan, China.
http://trust.csu.edu.cn/conference/fcst2
011/
12-15 décembre 2011 :
APSCC 2011, The 6th IEEE AsiaPacific Services Computing
Conference, Jeju, Korea.
Publication IEEE CS
http://www.ftrai.org/apscc2011
E
tant donné un ensemble T de n
éléments tj muni d'une relation
de
préordre*
total
R,
trouver
l'ensemble
de
ses
k
meilleurs
éléments noté Best (avec k donné
compris entre 2 et n-1) peut se faire
simplement par l'algortihme SORT
(voir ci-contre). Son étape 1 se fait "au
mieux" en O(nlogn) (sauf si T a une
structure particulière ; par exemple, si
ses éléments sont des entiers bornés,
on utilise le "tri par casiers" (bucket
sort) qui est en O(n)). Son étape 2 est
linéaire (parcours de l'ensemble T
désormais trié, à partir du premier
élément jusqu'à la récolte de ses k
meilleurs
éléments).
L'algorithme
SORT est donc en O(nlogn). Notons
que
lorsque
k≤n/logn
(ou
symétriquement k≥n-n/logn), le "tri
par tas" (heapsort) (k itérations après
la construction du tas initial) est en
O(n+klogn), donc en O(n).
Pour récolter l'ensemble Best en
temps linéaire et donc déloger le "logn"
Algorithme SORT (T, n, R, k, Best)
étape 1 : Trier T suivant la relation
R (du meilleur au moins bon) ;
étape 2 : Best <-- k premiers
éléments de T
un algorithme en O(n + n/2 + n/4 +..),
donc en O(n). Si le pivot est mal chosi,
on peut atteindre O(n²) et pourtant la
complexité moyenne de l'algorithme
reste O(n) (Aho, Hopcroft et Ullman :
(The Design and Analysis of Computer
Algorithms, 1976) et (Data Sructures
and Algorithms, 1983)).
Dans le cadre de l'optimisation en
variables 0-1, l'algorithme PARTITION
peut être utilisé directement pour la
résolution du problème
opt ∑j=1,...,ntjxj
∑j=1,...,nxj=k, xj dans {0,1}.
Il peut être aussi adapté dans deux
directions au moins, avec désormais
le nombre k (i.e. la taille de l'ensemble
Best) non connu à l'avance mais
implicitement
donné
par
la
Algorithme PARTITION (T, n, R, k, Best)
étape 0 : Best <-- Vide ;
étape 1 : Choisir un élément pivot th dans T ;
étape 2 : Créer une tripartition T1, {th}, T2 de T telle que
Pour tout tj dans T1 tj R th R tl pour tout tl dans T2 ;
étape 3 : (i) Si card(T1)>k Alors T <-- T1 ; retourner à l'étape 1 Sinon
(ii) Si card(T1)+1<k Alors T <-- T2 ; retourner à l'étape 1 avec
Best augmenté de T1 U {th} et k diminué de card(T1)+1 Sinon
(iii) Si card(T1)=k (resp. k-1) Alors
Best est augmenté de T1 (resp. T1 U {th}) ; Stop
de
la
complexité
temporelle,
l'algorithme itératif PARTITION (décrit
succinctement ci-dessus) se base sur
le principe de partition de l'algorithme
de "tri rapide" (quicksort). Si le pivot
de l'étape 1 permet une partition
équilibrée en étape 2, l'étape 3
restreint la recherche à "la moitié" de
l'ensemble précédent, ce qui conduit à
vérification d'une contrainte (k devient
paramètre de sortie) :
-l'application la plus immédiate
consiste à calculer des bornes (kinf et
ksup) sur la somme des n variables xj
La lettre AOC
N°7
du problème en exploitant une contrainte, soit du type (1)
∑j=1,...,najxj≤b, soit du type (2) ∑j=1,...,najxj≥b. Via la
contrainte (1), le calcul du plus grand nombre de plus
petits coefficients aj dont la somme ne dépasse pas le
second membre b fournit un majorant ksup ; à l'inverse,
via la contrainte (2), le calcul du plus petit nombre de
plus grands coefficients aj dont la somme dépasse le
second membre b fournit un minorant kinf. Dans ces deux
cas, l'ensemble T est l'ensemble des aj et la relation
d'ordre R est soit ≤, soit ≥. Le dénombrement des
éléments de Best est ici remplacé par une addition de
coefficients aj ce qui ne change en rien la complexité de
l'algorithme (e.g. "card (T1) > k" est remplacé par "∑j dans Best
U T1aj > b").
-l'application la plus subtile a trait à la résolution du
programme linéaire (PL) associé au problème du sac à
dos en variables 0-1 (K) formulé comme suit :
max ∑j=1,...,ncjxj
∑j=1,...,najxj≤b, xj dans {0,1}.
Elle consiste à trouver le plus grand nombre de plus
grands rapports cj/aj dont la somme associée des aj
(notée Sigma) ne dépasse pas b. Lorsque b est atteint
exactement, (K) est résolu (tous les objets correspondants
sont mis dans le sac, les autres sont exclus). Dans le cas
contraire (i.e. Sigma<b), la solution de (PL) se déduit de la
précédente très simplement en ajoutant à Sigma la
fraction du premier objet exclu permettant de remplir le
sac à "ras bord". L'ensemble T est ici celui des couples
(cj,aj) muni du préordre R défini par : (ci,ai) R (cj,aj) <=>
ci/ai≥cj/aj. Comme précédemment, les calculs de
cardinalités sont remplacés par des additions de
coefficients aj (ici k représente le nombre de variables à 1
dans la solution optimale).
Découvert à la fin des années 70, ce principe
permettant de "s'affranchir du logn" est désormais
couramment utilisé dans plusieurs variantes du
problème du sac à dos, sous-problème (souvent résolu en
cascade)
de
nombreux
problèmes
d'optimisation
complexes. Puisse ce billet ouvrir des perspectives
d'autres applications en AOC...
Gérard Plateau
* R n'est pas antisymétrique : on peut avoir ti R tj & tj R ti
Parus ou acceptés
• Nicolas Lermé, Lucas Létocart, François Malgouyres,
"Reduced graphs for min-cut/max-flow approaches in
image segmentation", LAGOS'11 : VI Latin-American
Algorithms, Graphs, and Optimization Symposium,
Bariloche, Argentina, mars 2011, à paraître dans
Electronic Notes in Discrete Mathematics, 6 pages.
Laboratoire LIPN : http://www-lipn.univ-paris13.fr/
Equipe AOC : http://www-lipn.univ-paris13.fr/AOC/
Séminaire : http://lipn.fr/actualites/tag/séminaire AOC
Le coin des thèses
Problèmes de couverture en
nombres entiers:
génération de colonnes,
heuristiques
d'approximation garantie et
schémas hybrides.
Applications en transport
ferroviaire et en
planification de production.
Jalila Sadki Fenzar
mercredi 6 juillet à 14h en B311
Jury :
Pr. Laurent Alfandari, ESSEC
Business School (Co-encadrant)
Pr. Yves Crama, HEC Management
School, Université de Liège (Rap)
Pr. Dominique Feillet, Ecole des
Mines de Saint-Etienne (Rapporteur)
Pr. Olivier Hudry, Télécom
ParisTech (Examinateur)
Pr. émérite Gérard Plateau,
Université Paris 13 (Examinateur)
Dr. Agnès Plateau, Conservatoire
National des Arts et Métiers (Coencadrante)
Pr. Anass Nagih, Université de Metz
(Directeur de thèse)
Pr. Roberto Wolfer Calvo, Université
Paris 13 (Examinateur)
Dr. David De Almeida, Direction de
l'Innovation et de la Recherche de la
SNCF (Invité)
Les programmes de couverture en
nombres entiers (CIP) modélisent de
nombreux
problèmes
industriels
réels. Dans le cadre de cette thèse,
nous nous intéressons aux CIP de
grande
taille,
programmes
qui
apparaissent
souvent
comme
problèmes maîtres issus d'une
décomposition de type DantzigWolfe. Les approches de résolution
de problèmes de grande taille, et
plus spécifiquement, la méthode de
génération de colonnes, connaissent
un intérêt grandissant ces dernières
années. Nous présentons dans un
premier temps un tour d'horizon
autour de la méthode de génération
de colonnes, et des approches de
résolution
entière
(exactes
ou
approchées)
basées
sur
cette
méthode. Nous étudions ensuite les
heuristiques
d'approximation
dédiées
aux
CIP,
puis
nous
proposons
une
adaptation
de
l'heuristique gloutonne de Dobson
aux CIP de grande taille, engendrant
la résolution d'un sous-problème
fractionnaire. Nous revisitons à
l'issue de cette étude la preuve du
rapport
d'approximation
de
l'heuristique de Dobson à l'aide
d'une
reformulation
originale
permettant d'étendre cette preuve à
de nouvelles variantes. A l'issue des
deux études précédentes, nous proposons de nouvelles
approches de résolution
approchée
pour les CIP de
grande taille qui
font coopérer l'heuristique d'approximation gloutonne et la méthode de
génération
de
colonnes.
Des
coopérations
séquentielles
et
hybrides sont alors mises en oeuvre
et évaluées sur des instances de
problèmes
réels.
Les
résultats
obtenus montrent que l'heuristique
gloutonne constitue un générateur
efficace de colonnes et de solutions
diversifiées permettant d'améliorer
différents aspects du schéma de
génération de colonnes: d'une part,
en diminuant le nombre d'itérations
ainsi que le temps de résolution, et
d'autre part, en améliorant la valeur
du majorant (les CIP étant des
problèmes de minimisation) dans
un
schéma
de
résolution
en
nombres entiers. La validation
expérimentale de l'ensemble des
approches proposées est finalement
réalisée sur deux applications types
issues des domaines du transport
ferroviaire et de la production
agricole.
Téléchargement