Un algorithme de programmation par contraintes pour la recherche d allocations leximin-optimales.



Documents pareils
Chapitre 6 Expérimentations

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

Annexe 6. Notions d ordonnancement.

Curriculum Vitae - Emmanuel Hebrard. Emmanuel Hebrard

Cours de Master Recherche

Intelligence Artificielle Planification

La demande Du consommateur. Contrainte budgétaire Préférences Choix optimal

Chapitre 5. Équilibre concurrentiel et bien-être

Ordonnancement robuste et décision dans l'incertain

Nouvelles propositions pour la résolution exacte du problème de sac à dos bi-objectif unidimensionnel en variables binaires

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1

Conception de réseaux de télécommunications : optimisation et expérimentations

Application de K-means à la définition du nombre de VM optimal dans un cloud

Resolution limit in community detection

Algorithmes pour la planification de mouvements en robotique non-holonome

PLAN NOTATIONS UTILISÉES

Modèles et algorithmes pour le conseil et la gestion des préférences en configuration de produit

TP Bases de données réparties

Programmation Linéaire - Cours 1

THÈSE En vue de l obtention du

Stratégie de recherche adaptative en programmation par contrainte

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

Pourquoi l apprentissage?

4.2 Unités d enseignement du M1

L apport des contraintes globales pour la modélisation et la résolution d applications industrielles

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

CONCOURS D ENTREE A L ECOLE DE 2007 CONCOURS EXTERNE. Cinquième épreuve d admissibilité STATISTIQUE. (durée : cinq heures)

Projet de Traitement du Signal Segmentation d images SAR

Cours d Analyse. Fonctions de plusieurs variables

L ANALYSE COUT-EFFICACITE

Etude d un cas industriel : Optimisation de la modélisation de paramètre de production

Evaluation des performances de programmes parallèles haut niveau à base de squelettes

Programmes des classes préparatoires aux Grandes Ecoles

Théorèmes de Point Fixe et Applications 1

FIMA, 7 juillet 2005

LES CARTES À POINTS : POUR UNE MEILLEURE PERCEPTION

Optimisation multi-critère pour l allocation de ressources sur Clouds distribués avec prise en compte de l énergie

Programmation linéaire

CHAPITRE 5. Stratégies Mixtes

Projet Active Object

Programmation Par Contraintes

4. Résultats et discussion

TP N 57. Déploiement et renouvellement d une constellation de satellites

Exercices du Cours de la programmation linéaire donné par le Dr. Ali DERBALA

Francis BISSON ( ) Kenny CÔTÉ ( ) Pierre-Luc ROGER ( ) IFT702 Planification en intelligence artificielle

Programmation par contraintes. Laurent Beaudou

Développement spécifique d'un système d information

ORBIT GIS GeoSpatial Business Intelligence

Etude comparative de différents motifs utilisés pour le lancé de rayon

Cycle de vie, processus de gestion

Filtrage stochastique non linéaire par la théorie de représentation des martingales

Interception des signaux issus de communications MIMO

FONCTION DE DEMANDE : REVENU ET PRIX

mieux développer votre activité

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Introduction à la Programmation par Contraintes (PPC) Ruslan Sadykov LIX, École Polytechnique

Introduction aux systèmes temps réel. Iulian Ober IRIT

Echantillonnage Non uniforme

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Cadre formel pour la modélisation de la gestion des processus métier par une équipe médicale interdisciplinaire

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

d évaluation Objectifs Processus d élaboration

Cours Optimisation Partie Optimisation Combinatoire. Année scolaire Gérard Verfaillie ONERA/DCSD/CD, Toulouse

1 Définition et premières propriétés des congruences

Logistar, la solution haute p récision de votre Supply Chain

Mémoire d actuariat - promotion complexité et limites du modèle actuariel, le rôle majeur des comportements humains.

THÈSE En vue de l obtention du

Correction du baccalauréat ES/L Métropole 20 juin 2014

Intérêt du découpage en sous-bandes pour l analyse spectrale

Système d administration autonome adaptable: application au Cloud

Un propagateur basé sur les positions pour le problème d Open-Shop.

Modèles à Événements Discrets. Réseaux de Petri Stochastiques

Systèmes décisionnels et programmation avancée

Programmation linéaire

SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique

Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires

CRM pour le Service clients et l Assistance technique

Les organismes notifiés et les dispositifs médicaux : du constat aux perspectives

Rapport d audit et d inspection sur la conformité et la qualité des ETA.

Méthodes Agiles et gestion de projets

Contributions à l expérimentation sur les systèmes distribués de grande taille

TARIFICATION EN ASSURANCE COMPLEMENTAIRE SANTE: il était une fois, un statisticien, un actuaire, un économiste de la santé

Analyse en Composantes Principales

Benchmark des Meilleures Pratiques : de la Communauté des utilisateurs de solutions CRM, XRM 1

Rapport d'analyse des besoins

Des contraintes globales prêtes à brancher

Les dirigeants face à l innovation

BAROMÈTRE EMPLOI VAGUE 2

Une loi de reconnaissance de l'economie Sociale et Solidaire

ArcGIS. for Server. Comprendre notre monde

Stratégies gagnantes pour les prestataires de services : le cloud computing vu par les dirigeants Dossier à l attention des dirigeants

Web Science. Master 1 IFI. Andrea G. B. Tettamanzi. Université de Nice Sophia Antipolis Département Informatique andrea.tettamanzi@unice.

Comment se servir de cet ouvrage? Chaque chapitre présente une étape de la méthodologie

Exploitation et analyse des données appliquées aux techniques d enquête par sondage. Introduction.

Pour une entreprise plus performante

Comptabilité Services-Conseils Ressources humaines

Chapitre 2 Le problème de l unicité des solutions

Transcription:

Un algorithme de programmation par contraintes pour la recherche d allocations leximin-optimales. Sylvain Bouveret et Michel Lemaître Office National d Études et de Recherches Aérospatiales Centre National d Études Spatiales Institut de Recherche en Informatique de Toulouse Journées Francophones de Programmation par Contraintes, Nîmes, 9 juin 2006

Le problème de partage Une ressource... 2 / 30

Le problème de partage Une ressource... 2 / 30

Le problème de partage Des agents... Une ressource... 2 / 30

Le problème de partage Des agents... Une ressource... 2 / 30

Le problème de partage Des agents... Une ressource... Des préférences... 2 / 30

Le problème de partage Des agents... Une ressource... Des préférences... 2 / 30

Le problème de partage Des agents... Une ressource... Des préférences... Un ensemble de contraintes 2 / 30

Le problème posé Étant donnés : un ensemble d agents ; un ensemble d objets indivisibles (ressource) ; un ensemble de préférences des agents sur les objets ; un ensemble de contraintes d admissibilité; Comment partager équitablement et efficacement de manière centralisée l ensemble d objets entre les agents? 3 / 30

Un algorithme de programmation par contraintes pour la recherche d allocations leximin-optimales. 1 Formalisation du problème Modélisation du problème de partage Leximin et programmation par contraintes 2 Description de l algorithme proposé 3 Application, benchmark et résultats obtenus Description de l application Le problème simplifié Benchmark et résultats 4 Conclusion 4 / 30

Problème de partage et welfarism Hypothèse : La décision collective ne dépend que de la donnée, pour chaque agent et pour chaque alternative (partage), d un niveau de satisfaction (indice numérique) : l utilité individuelle. Fonction d utilité individuelle Étant donné un agent a i et un ensemble d alternative S (ensemble des partages possibles), la fonction d utilité individuelle de a i est une fonction u i : S N. 5 / 30

Problème de partage et welfarism La théorie du bien-être social [Mou88] traite le problème de décision collective en attachant à chaque alternative faisable le vecteur des utilités individuelles (u 1,..., u n ). 6 / 30

Problème de partage et welfarism La théorie du bien-être social [Mou88] traite le problème de décision collective en attachant à chaque alternative faisable le vecteur des utilités individuelles (u 1,..., u n ). 4 1 3 2 7 6 / 30

Problème de partage et welfarism La théorie du bien-être social [Mou88] traite le problème de décision collective en attachant à chaque alternative faisable le vecteur des utilités individuelles (u 1,..., u n ). 4 1 3 2 7 Profil d utilités : 3, 4, 2, 1, 7 6 / 30

Ordre de bien-être social Pour comparer les profils d utilités, on utilise un ordre de bien-être social. 7 / 30

Ordre de bien-être social Pour comparer les profils d utilités, on utilise un ordre de bien-être social. Ordre de bien-être social (SWO) Un ordre de bien-être social est un préordre sur N n. 7 / 30

Ordre de bien-être social Pour comparer les profils d utilités, on utilise un ordre de bien-être social. Ordre de bien-être social (SWO) Un ordre de bien-être social est un préordre sur N n. Exemples Ordre social représenté par la fonction d utilité collective utilitariste. Ordre social représenté par la fonction d utilité collective égalitariste. Ordre social leximin. 7 / 30

Fonctions d utilité et ordres sociaux classiques Ordre social utilitariste. Ordre social égalitariste. Ordre social leximin. 8 / 30

Fonctions d utilité et ordres sociaux classiques Ordre social utilitariste. Ordre social égalitariste. Ordre social leximin. Ordre social utilitariste [Harsanyi] u v n i=1 u i n i=1 v i. Caractéristiques Les agents sont des producteurs d utilité. Elle est indifférente aux inégalités entre les agents elle peut mener à des partages très inéquitables. 8 / 30

Fonctions d utilité et ordres sociaux classiques Ordre social utilitariste. Ordre social égalitariste. Ordre social leximin. Ordre social utilitariste [Harsanyi] u v n i=1 u i n i=1 v i. CUF utilitariste et équité 10, 10, 10, 10 41, 0, 0, 0, alors que 10, 10, 10, 10 est plus équitable que 41, 0, 0, 0. 8 / 30

Fonctions d utilité et ordres sociaux classiques Ordre social utilitariste. Ordre social égalitariste. Ordre social leximin. CUF égalitariste [Rawls] u v min n i=1 u i min n i=1 v i. Caractéristiques Elle ne prend en considération que le moins heureux des agents vocation équitable. 8 / 30

Fonctions d utilité et ordres sociaux classiques Ordre social utilitariste. Ordre social égalitariste. Ordre social leximin. CUF égalitariste [Rawls] u v min n i=1 u i min n i=1 v i. Caractéristiques Elle ne prend en considération que le moins heureux des agents vocation équitable. En revanche, elle ne satisfait pas le principe d unanimité (effet de noyade). 8 / 30

Fonctions d utilité et ordres sociaux classiques Ordre social utilitariste. Ordre social égalitariste. Ordre social leximin. CUF égalitariste [Rawls] u v min n i=1 u i min n i=1 v i. CUF égalitariste et Pareto-efficacité 1, 1, 1, 1 1, 1000, 1000, 1000, alors que 1, 1, 1, 1 et 1, 1000, 1000, 1000 sont très différents! 8 / 30

Fonctions d utilité et ordres sociaux classiques Ordre social utilitariste. Ordre social égalitariste. Ordre social leximin. SWO leximin Pour un vecteur x, on note x la version triée dans l ordre non-décroissant de x. u leximin v k tel que i k, u i = v i et u k+1 > v k+1. Caractéristiques Il prend en considération tous les agents dans l ordre de leur niveau de satisfaction vocation équitable. Satisfait le principe d unanimité. 8 / 30

Fonctions d utilité et ordres sociaux classiques Ordre social utilitariste. Ordre social égalitariste. Ordre social leximin. SWO leximin Pour un vecteur x, on note x la version triée dans l ordre non-décroissant de x. u leximin v k tel que i k, u i = v i et u k+1 > v k+1. Leximin-optimal et Pareto-efficacité 1, 1, 1, 1 1, 1000, 1000, 1000 (car le deuxième indice dans le vecteur ordonné est discriminant). 8 / 30

Énoncé du problème L ordre social leximin semble donc présenter des propriétés interessantes pour notre problème. 9 / 30

Énoncé du problème L ordre social leximin semble donc présenter des propriétés interessantes pour notre problème. Nous reformulons donc notre problème de partage comme suit : Problème de partage avec critère leximin Étant donnés : un ensemble d agents ; un ensemble d objets indivisibles (ressource) ; un ensemble de fonctions d utilité individuelles ; un ensemble de contraintes d admissibilité; Quel est le partage qui maximise l ordre leximin sur les profils d utilités? 9 / 30

Énoncé du problème L ordre social leximin semble donc présenter des propriétés interessantes pour notre problème. Nous reformulons donc notre problème de partage comme suit : Problème de partage avec critère leximin Étant donnés : un ensemble d agents ; un ensemble d objets indivisibles (ressource) ; un ensemble de fonctions d utilité individuelles ; un ensemble de contraintes d admissibilité; Quel est le partage qui maximise l ordre leximin sur les profils d utilités? Nous exprimerons ce problème dans le cadre de la programmation par contraintes. 9 / 30

Le problème de satisfaction de contraintes Réseau de contraintes [Mon74] Un réseau de contraintes est formé : d un ensemble de variables X = {x 1,...,x p } ; d un ensemble de domaines D = {d x1,..., d xp } ; d un ensemble contraintes C, avec pour tout C C : X(C) scope de la contrainte, R(C) ensemble de tuples autorisés par la contrainte. Problème de satisfaction de contraintes (CSP) Étant donné un réseau de contraintes (X, D, C), existe-t-il une instanciation complète cohérente de ce réseau? Cadre employé dans la résolution de problèmes combinatoires divers : emplois du temps, planification, allocation de fréquences... 10 / 30

Le problème de satisfaction de contraintes avec objectif Déclinaison du CSP en problème d optimisation : CSP avec variable objectif Étant donnés un réseau de contraintes (X, D, C) et une variable objectif o D telle que d o N, quelle est la valeur de d o maximale faisant partie d une instanciation complète cohérente du réseau? 11 / 30

Le problème Leximin-Optimal Problème [Leximin-Optimal] Entrées : un réseau de contraintes (X, D, C) ; un vecteur de variables u = u 1,...,u n ( i, u i X ), appelé vecteur objectif. Sortie : «Infaisable» s il n existe pas d instanciation complète cohérente. Sinon, une instanciation v complète cohérente telle que v instanciation complète cohérente, v( u ) leximin v( u ). 12 / 30

Un algorithme de programmation par contraintes pour la recherche d allocations leximin-optimales. 1 Formalisation du problème Modélisation du problème de partage Leximin et programmation par contraintes 2 Description de l algorithme proposé 3 Application, benchmark et résultats obtenus Description de l application Le problème simplifié Benchmark et résultats 4 Conclusion 13 / 30

Principe de l algorithme Reformulation de la condition de leximin-optimalité sur un vecteur objectif u : Le vecteur leximin-optimal est 4, 7, 10 14 / 30

Principe de l algorithme Reformulation de la condition de leximin-optimalité sur un vecteur objectif u : Le vecteur leximin-optimal est 4, 7, 10 1 4 est la valeur maximale de y 1 telle qu il existe une instanciation complète cohérente v telle que : tous les v(u i ) valent au moins y 1 ; 14 / 30

Principe de l algorithme Reformulation de la condition de leximin-optimalité sur un vecteur objectif u : Le vecteur leximin-optimal est 4, 7, 10 1 4 est la valeur maximale de y 1 telle qu il existe une instanciation complète cohérente v telle que : tous les v(u i ) valent au moins y 1 ; 2 7 est la valeur maximale de y 2 telle qu il existe une instanciation complète cohérente v telle que : tous les v(u i ) valent au moins 4, au moins 2 valeurs parmi les v(u i ) valent au moins y 2 ; 14 / 30

Principe de l algorithme Reformulation de la condition de leximin-optimalité sur un vecteur objectif u : Le vecteur leximin-optimal est 4, 7, 10 1 4 est la valeur maximale de y 1 telle qu il existe une instanciation complète cohérente v telle que : tous les v(u i ) valent au moins y 1 ; 2 7 est la valeur maximale de y 2 telle qu il existe une instanciation complète cohérente v telle que : tous les v(u i ) valent au moins 4, au moins 2 valeurs parmi les v(u i ) valent au moins y 2 ; 3 10 est la valeur maximale de y 3 telle qu il existe une instanciation complète cohérente v telle que : tous les v(u i ) valent au moins 4, au moins 2 valeurs parmi les v(u i ) valent au moins 7 ; au moins 1 valeur parmi les v(u i ) valent au moins y 3 ; 14 / 30

La contrainte AtLeast L algorithme est fondée sur la méta-contrainte AtLeast Contrainte AtLeast [HSD92] Soit Γ un ensemble de p contraintes, et k 1, p un entier. Alors la méta-contrainte AtLeast(Γ, k) est la contrainte portant sur l ensemble des variables sur lesquelles portent les contraintes de Γ, et autorisant uniquement les tuples de valeurs pour lesquels au moins k contraintes de Γ sont satisfaites. 15 / 30

Description de l algorithme Algorithme si solve(x, D, C) =«Incohérent» alors retourner «Incohérent» X X {y 1,..., y n } ; D D { m, M,..., m, M } ; C C ; pour i 1 à n faire C C {AtLeast({u 1 y i,..., u n y i }, n i + 1)} ; v maximize(y i,(x, D, C)) ; d yi { v(y i )} ; d yi+1 v(y i ), M ; fin retourner v X 16 / 30

Algorithme Description de l algorithme si solve(x, D, C) =«Incohérent» alors retourner «Incohérent» X X {y 1,..., y n } ; Introduction des variables y i D D { m, M,..., m, M } ; C C ; pour i 1 à n faire C C {AtLeast({u 1 y i,..., u n y i }, n i + 1)} ; v maximize(y i,(x, D, C)) ; d yi { v(y i )} ; d yi+1 v(y i ), M ; fin retourner v X 16 / 30

Algorithme Description de l algorithme si solve(x, D, C) =«Incohérent» alors retourner «Incohérent» X X {y 1,..., y n } ; Introduction des variables y i D D { m, M,..., m, M } ; C C ; pour i 1 à n faire Introduction d une contrainte sur y i C C {AtLeast({u 1 y i,..., u n y i }, n i + 1)} ; v maximize(y i,(x, D, C)) ; d yi { v(y i )} ; d yi+1 v(y i ), M ; fin retourner v X 16 / 30

Algorithme Description de l algorithme si solve(x, D, C) =«Incohérent» alors retourner «Incohérent» X X {y 1,..., y n } ; Introduction des variables y i D D { m, M,..., m, M } ; C C ; pour i 1 à n faire Introduction d une contrainte sur y i C C {AtLeast({u 1 y i,..., u n y i }, n i + 1)} ; v maximize(y i,(x, D, C)) ; Calcul de y i d yi { v(y i )} ; d yi+1 v(y i ), M ; fin retourner v X 16 / 30

Algorithme Description de l algorithme si solve(x, D, C) =«Incohérent» alors retourner «Incohérent» X X {y 1,..., y n } ; Introduction des variables y i D D { m, M,..., m, M } ; C C ; pour i 1 à n faire Introduction d une contrainte sur y i C C {AtLeast({u 1 y i,..., u n y i }, n i + 1)} ; v maximize(y i,(x, D, C)) ; Calcul de y i d yi { v(y i )} ; Mise à jour des domaines d yi+1 v(y i ), M ; fin retourner v X 16 / 30

Déroulement de l algorithme sur un exemple Un problème de partage d objets Problème d allocation à 3 agents et 3 objets. Contraintes : 1 un agent a droit à un et un seul objet, 2 un objet ne doit pas être attribué à plus d un agent. Une utilité est associée à chaque couple (agent, objet), selon le tableau : agents objets a 1 a 2 a 3 o 1 3 3 3 o 2 5 9 7 o 3 7 8 1 17 / 30

Déroulement de l algorithme sur un exemple Algorithme : X X {y 1,..., y n } ; D D { m, M,..., m, M } ; C C ; Réseau initial : X = {a 1, a 2, a 3, u 1, u 2, u 3 } {y 1, y 2, y 3} D = {{o 1, o 2, o 3 }, {o 1, o 2, o 3 }, {o 1, o 2, o 3 }, 3, 7, 3, 9, 1, 7 } { 1, 9, 1, 9, 1, 9 } C = {alldifferent({a 1, a 2, a 3 })} 18 / 30

Déroulement de l algorithme sur un exemple Algorithme : pour i 1 à n faire C C {AtLeast({u 1 y i,..., u n y i }, n i + 1)} ; v maximize(y i,(x, D, C)) ; d yi { v(y i )} ; d yi+1 v(y i ), M ; fin a 1 a 2 a 3 u 1 u 2 u 3 y 1 y 2 y 3 o 1 o 2 o 3 3 9 1 {1,...,9} {1,...,9} {1,...,9} o 1 o 3 o 2 3 8 7 {1,...,9} {1,...,9} {1,...,9} o 2 o 1 o 3 5 3 1 {1,...,9} {1,...,9} {1,...,9} o 2 o 3 o 1 5 8 3 {1,...,9} {1,...,9} {1,...,9} o 3 o 1 o 2 7 3 7 {1,...,9} {1,...,9} {1,...,9} o 3 o 2 o 1 7 9 3 {1,...,9} {1,...,9} {1,...,9} 18 / 30

Déroulement de l algorithme sur un exemple Algorithme : pour i 1 à n faire C C {AtLeast({u 1 y i,..., u n y i }, n i + 1)} ; v maximize(y i,(x, D, C)) ; d yi { v(y i )} ; d yi+1 v(y i ), M ; fin a 1 a 2 a 3 u 1 u 2 u 3 y 1 y 2 y 3 o 1 o 2 o 3 3 9 1 1 {1,...,9} {1,...,9} o 1 o 3 o 2 3 8 7 {1,2,3} {1,...,9} {1,...,9} o 2 o 1 o 3 5 3 1 1 {1,...,9} {1,...,9} o 2 o 3 o 1 5 8 3 {1,2,3} {1,...,9} {1,...,9} o 3 o 1 o 2 7 3 7 {1,2,3} {1,...,9} {1,...,9} o 3 o 2 o 1 7 9 3 {1,2,3} {1,...,9} {1,...,9} 18 / 30

Déroulement de l algorithme sur un exemple Algorithme : pour i 1 à n faire C C {AtLeast({u 1 y i,..., u n y i }, n i + 1)} ; v maximize(y i,(x, D, C)) ; d yi { v(y i )} ; d yi+1 v(y i ), M ; fin a 1 a 2 a 3 u 1 u 2 u 3 y 1 y 2 y 3 o 1 o 2 o 3 3 9 1 1 {1,...,9} {1,...,9} o 1 o 3 o 2 3 8 7 {1,2,3} {1,...,9} {1,...,9} o 2 o 1 o 3 5 3 1 1 {1,...,9} {1,...,9} o 2 o 3 o 1 5 8 3 {1,2,3} {1,...,9} {1,...,9} o 3 o 1 o 2 7 3 7 {1,2,3} {1,...,9} {1,...,9} o 3 o 2 o 1 7 9 3 {1,2,3} {1,...,9} {1,...,9} 18 / 30

Déroulement de l algorithme sur un exemple Algorithme : pour i 1 à n faire C C {AtLeast({u 1 y i,..., u n y i }, n i + 1)} ; v maximize(y i,(x, D, C)) ; d yi { v(y i )} ; d yi+1 v(y i ), M ; fin a 1 a 2 a 3 u 1 u 2 u 3 y 1 y 2 y 3 o 1 o 2 o 3 3 9 1 1 {1,...,9} {1,...,9} o 1 o 3 o 2 3 8 7 3 {3,...,9} {1,...,9} o 2 o 1 o 3 5 3 1 1 {1,...,9} {1,...,9} o 2 o 3 o 1 5 8 3 3 {3,...,9} {1,...,9} o 3 o 1 o 2 7 3 7 3 {3,...,9} {1,...,9} o 3 o 2 o 1 7 9 3 3 {3,...,9} {1,...,9} 18 / 30

Déroulement de l algorithme sur un exemple Algorithme : pour i 1 à n faire C C {AtLeast({u 1 y i,..., u n y i }, n i + 1)} ; v maximize(y i,(x, D, C)) ; d yi { v(y i )} ; d yi+1 v(y i ), M ; fin a 1 a 2 a 3 u 1 u 2 u 3 y 1 y 2 y 3 o 1 o 2 o 3 3 9 1 1 {1,...,9} {1,...,9} o 1 o 3 o 2 3 8 7 3 {3,...,7} {1,...,9} o 2 o 1 o 3 5 3 1 1 {1,...,9} {1,...,9} o 2 o 3 o 1 5 8 3 3 {3,...,5} {1,...,9} o 3 o 1 o 2 7 3 7 3 {3,...,7} {1,...,9} o 3 o 2 o 1 7 9 3 3 {3,...,7} {1,...,9} 18 / 30

Déroulement de l algorithme sur un exemple Algorithme : pour i 1 à n faire C C {AtLeast({u 1 y i,..., u n y i }, n i + 1)} ; v maximize(y i,(x, D, C)) ; d yi { v(y i )} ; d yi+1 v(y i ), M ; fin a 1 a 2 a 3 u 1 u 2 u 3 y 1 y 2 y 3 o 1 o 2 o 3 3 9 1 1 {1,...,9} {1,...,9} o 1 o 3 o 2 3 8 7 3 {3,...,7} {1,...,9} o 2 o 1 o 3 5 3 1 1 {1,...,9} {1,...,9} o 2 o 3 o 1 5 8 3 3 {3,...,5} {1,...,9} o 3 o 1 o 2 7 3 7 3 {3,...,7} {1,...,9} o 3 o 2 o 1 7 9 3 3 {3,...,7} {1,...,9} 18 / 30

Déroulement de l algorithme sur un exemple Algorithme : pour i 1 à n faire C C {AtLeast({u 1 y i,..., u n y i }, n i + 1)} ; v maximize(y i,(x, D, C)) ; d yi { v(y i )} ; d yi+1 v(y i ), M ; fin a 1 a 2 a 3 u 1 u 2 u 3 y 1 y 2 y 3 o 1 o 2 o 3 3 9 1 1 {1,...,9} {1,...,9} o 1 o 3 o 2 3 8 7 3 7 {7,8,9} o 2 o 1 o 3 5 3 1 1 {1,...,9} {1,...,9} o 2 o 3 o 1 5 8 3 3 {3,...,5} {1,...,9} o 3 o 1 o 2 7 3 7 3 7 {7,8,9} o 3 o 2 o 1 7 9 3 3 7 {7,8,9} 18 / 30

Déroulement de l algorithme sur un exemple Algorithme : pour i 1 à n faire C C {AtLeast({u 1 y i,..., u n y i }, n i + 1)} ; v maximize(y i,(x, D, C)) ; d yi { v(y i )} ; d yi+1 v(y i ), M ; fin a 1 a 2 a 3 u 1 u 2 u 3 y 1 y 2 y 3 o 1 o 2 o 3 3 9 1 1 {1,...,9} {1,...,9} o 1 o 3 o 2 3 8 7 3 7 {7,8} o 2 o 1 o 3 5 3 1 1 {1,...,9} {1,...,9} o 2 o 3 o 1 5 8 3 3 {3,...,5} {1,...,9} o 3 o 1 o 2 7 3 7 3 7 7 o 3 o 2 o 1 7 9 3 3 7 {7,8,9} 18 / 30

Déroulement de l algorithme sur un exemple Algorithme : pour i 1 à n faire C C {AtLeast({u 1 y i,..., u n y i }, n i + 1)} ; v maximize(y i,(x, D, C)) ; d yi { v(y i )} ; d yi+1 v(y i ), M ; fin a 1 a 2 a 3 u 1 u 2 u 3 y 1 y 2 y 3 o 1 o 2 o 3 3 9 1 1 {1,...,9} {1,...,9} o 1 o 3 o 2 3 8 7 3 7 {7,8} o 2 o 1 o 3 5 3 1 1 {1,...,9} {1,...,9} o 2 o 3 o 1 5 8 3 3 {3,...,5} {1,...,9} o 3 o 1 o 2 7 3 7 3 7 7 o 3 o 2 o 1 7 9 3 3 7 {7,8,9} 18 / 30

Déroulement de l algorithme sur un exemple Algorithme : pour i 1 à n faire C C {AtLeast({u 1 y i,..., u n y i }, n i + 1)} ; v maximize(y i,(x, D, C)) ; d yi { v(y i )} ; d yi+1 v(y i ), M ; fin a 1 a 2 a 3 u 1 u 2 u 3 y 1 y 2 y 3 o 1 o 2 o 3 3 9 1 1 {1,...,9} {1,...,9} o 1 o 3 o 2 3 8 7 3 7 {7,8} o 2 o 1 o 3 5 3 1 1 {1,...,9} {1,...,9} o 2 o 3 o 1 5 8 3 3 {3,...,5} {1,...,9} o 3 o 1 o 2 7 3 7 3 7 7 o 3 o 2 o 1 7 9 3 3 7 9 18 / 30

Un algorithme de programmation par contraintes pour la recherche d allocations leximin-optimales. 1 Formalisation du problème Modélisation du problème de partage Leximin et programmation par contraintes 2 Description de l algorithme proposé 3 Application, benchmark et résultats obtenus Description de l application Le problème simplifié Benchmark et résultats 4 Conclusion 19 / 30

Une constellation de satellites... Une constellation de satellites d observation de la Terre co-financée par plusieurs pays (en raison de son coût). 20 / 30

Une constellation de satellites... satellite limite du corridor de visibilité orbite photographie en cours d acquisition photographies acquises photographies non acquises 20 / 30

Une constellation de satellites... Chaque agent (agences civiles et militaires de chaque pays entre 3 et 6) envoie des demandes d images à prendre, simples ou complexes (stéréo, tri-stéréo...) plusieurs centaines. Chaque jour, le Centre de Programmation sélectionne les demandes qui seront satisfaites le lendemain et allouées aux agents. Contraintes : contraintes physiques (fenêtres temporelles, temps de transition, images particulières stéréo,..., mémoire, énergie,...). L exploitation doit être : efficace la constellation ne doit pas être sous-exploitée, équitable chaque agent attend un «retour sur investissement» en rapport avec sa contribution financière. 21 / 30

Simplification du problème Données du problème simplifié : un ensemble d agents A ; un ensemble d objets O (ensemble des images demandées) ; préférences des agents exprimées comme un ensemble de poids w io (préférences additives) ; des contraintes : contraintes physiques approximées par des contraintes de volume généralisé, droits inégaux des agents approximés par des contraintes de consommation. 22 / 30

Simplification du problème Énoncé du problème : Trouver une affectation des objets aux agents satisfaisant toutes les contraintes et dont le profil d utilités est non dominé au sens de l ordre leximin. 23 / 30

Simplification du problème Énoncé du problème : Trouver une affectation des objets aux agents satisfaisant toutes les contraintes et dont le profil d utilités est non dominé au sens de l ordre leximin. La version problème de décision de ce problème est NP-complète. 23 / 30

Implantation du problème simplifié Générateur d instances : Un générateur d instances aléatoires paramétrable du problème simplifié a été codé en Java. Il est disponible en ligne : http://www.cert.fr/dcsd/theses/sbouveret/benchmark 24 / 30

Implantation du problème simplifié Générateur d instances : Un générateur d instances aléatoires paramétrable du problème simplifié a été codé en Java. Il est disponible en ligne : http://www.cert.fr/dcsd/theses/sbouveret/benchmark Implantations : Deux implantations de l algorithme ont été testées : en Java avec CHOCO ; en Java avec CPLEX. 24 / 30

Implantation du problème simplifié Générateur d instances : Un générateur d instances aléatoires paramétrable du problème simplifié a été codé en Java. Il est disponible en ligne : http://www.cert.fr/dcsd/theses/sbouveret/benchmark Implantations : Deux implantations de l algorithme ont été testées : en Java avec CHOCO ; en Java avec CPLEX. La méta-contrainte AtLeast peut être transformée en contraintes linéaires : AtLeast({x 1 y,..., x n y}, k) {x 1 + δ 1 y y,..., x n + δ n y y, n i=1 δ i n k}, avec {δ 1,..., δ n } variables 0 1. 24 / 30

Implantation du problème simplifié Générateur d instances : Un générateur d instances aléatoires paramétrable du problème simplifié a été codé en Java. Il est disponible en ligne : http://www.cert.fr/dcsd/theses/sbouveret/benchmark Implantations : Deux implantations de l algorithme ont été testées : en Java avec CHOCO ; en Java avec CPLEX. Instance moyenne : 4 agents, droits inégaux, 150 objets, contraintes de volume autorisant 10 objets sur 20 consécutifs. 24 / 30

Résultats 3000 Repartition uniforme Diff. classes, facteur 10 Diff. classes, facteur 100 2500 2000 Temps CPU (ms) 1500 1000 500 0 0 50 100 150 200 250 300 350 400 Nombre d objets Temps de calcul avec CPLEX. 25 / 30

Résultats 600000 Repartition uniforme Diff. classes, facteur 10 Diff. classes, facteur 100 500000 400000 Temps CPU (ms) 300000 200000 100000 0 20 40 60 80 100 120 140 160 180 200 Nombre d objets Temps de calcul avec CHOCO. 25 / 30

Résultats 20 Repartition uniforme Diff. classes, facteur 10 Diff. classes, facteur 100 15 Nombre d instances resolues 10 5 0 20 40 60 80 100 120 140 160 180 200 Nombre d objets Nombre d instances résolues en moins de 10 minutes avec CHOCO. 25 / 30

Remarques sur les résultats Notre implantation fondée sur CPLEX est plus efficace que celle fondée sur CHOCO sur toutes les instances. 26 / 30

Remarques sur les résultats Notre implantation fondée sur CPLEX est plus efficace que celle fondée sur CHOCO sur toutes les instances. Cependant, CPLEX peut commettre des erreurs (d approximation). 26 / 30

Remarques sur les résultats Notre implantation fondée sur CPLEX est plus efficace que celle fondée sur CHOCO sur toutes les instances. Cependant, CPLEX peut commettre des erreurs (d approximation). Les instances à répartition de poids uniformes sont plus difficiles à résoudre en moyenne. 26 / 30

Un algorithme de programmation par contraintes pour la recherche d allocations leximin-optimales. 1 Formalisation du problème Modélisation du problème de partage Leximin et programmation par contraintes 2 Description de l algorithme proposé 3 Application, benchmark et résultats obtenus Description de l application Le problème simplifié Benchmark et résultats 4 Conclusion 27 / 30

Conclusions générales Problème traité : calcul d une instantiation leximin-optimale d un réseau de contraintes. 28 / 30

Conclusions générales Problème traité : calcul d une instantiation leximin-optimale d un réseau de contraintes. Motivation : l ordre leximin garantit certaines propriétés d équité et d efficacité pour les problèmes de décision collective. 28 / 30

Conclusions générales Problème traité : calcul d une instantiation leximin-optimale d un réseau de contraintes. Motivation : l ordre leximin garantit certaines propriétés d équité et d efficacité pour les problèmes de décision collective. Algorithme : introduction d un algorithme de calcul fondé sur la programmation par contraintes. 28 / 30

Conclusions générales Problème traité : calcul d une instantiation leximin-optimale d un réseau de contraintes. Motivation : l ordre leximin garantit certaines propriétés d équité et d efficacité pour les problèmes de décision collective. Algorithme : introduction d un algorithme de calcul fondé sur la programmation par contraintes. Implantation : implantation et évaluation de l algorithme en Java avec CHOCO et CPLEX. 28 / 30

Conclusions générales Problème traité : calcul d une instantiation leximin-optimale d un réseau de contraintes. Motivation : l ordre leximin garantit certaines propriétés d équité et d efficacité pour les problèmes de décision collective. Algorithme : introduction d un algorithme de calcul fondé sur la programmation par contraintes. Implantation : implantation et évaluation de l algorithme en Java avec CHOCO et CPLEX. Application : problème d allocation pour le partage de ressources satellitaires. 28 / 30

Suite de l étude Autres méthodes de calcul du leximin-optimal : Utilisation d un branch-and-bound avec une contrainte du type Multiset Ordering [FHK + 03]. Implantation déjà réalisée, et résultats intéressants. Utilisation d une contrainte de «tri» de variables [BGC97]. Implantation déjà réalisée, tests en cours. Utilisation d algorithmes issus des CSP flous [DF99]. Autres approches de l équité (familles de fonctions d utilité collective paramétrées). Application de l algorithme à d autres problèmes. 29 / 30

N. Bleuzen-Guernalec and A. Colmerauer. Narrowing a block of sortings in quadratic time. In Proc. of CP 97, pages 2 16, Linz, Austria, 1997. D. Dubois and P. Fortemps. Computing improved optimal solutions to max-min flexible constraint satisfaction problems. European Journal of Operational Research, 1999. A. Frisch, B. Hnich, Z. Kiziltan, I. Miguel, and T. Walsh. Multiset ordering constraints. In Proc. of IJCAI 03, Acapulco, Mexico, august 2003. P. Van Hentenryck, H. Simonis, and M. Dincbas. Constraint satisfaction using constraint logic programming. A.I., 58(1-3) :113 159, 1992. U. Montanari. 29 / 30

Networks of constraints : Fundamental properties and applications to picture processing. Information Sciences, 7 :95 132, 1974. H. Moulin. Axioms of Cooperative Decision Making. Cambridge University Press, 1988. 30 / 30

Merci de votre attention Transparents (prochainement) disponibles à l URL : http://www.cert.fr/dcsd/theses/sbouveret/francais/ressources/jfpc06/pres_jfpc06.pdf ou par mail : sylvain.bouveret@cert.fr michel.lemaitre@cert.fr Générateur de problèmes disponible à l URL : http://www.cert.fr/dcsd/theses/sbouveret/benchmark 30 / 30