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.