Top Qs
Chronologie
Chat
Contexte
Optimisation sous contraintes distribuée
problème algorithmique d'optimisation sous contrainte impliquant un ensemble d'acteurs qui communiquent De Wikipédia, l'encyclopédie libre
Remove ads
L'optimisation sous contraintes distribuées (en anglais Distributed Constraint Optimization Problem, DCOP ou DisCOP) est l'alter ego distribué de l'optimisation sous contraintes. Un DCOP est un problème dans lequel un groupe d'agents doit choisir de manière décentralisée des valeurs pour un ensemble de variables de manière à minimiser une fonction de coût ou à maximiser une fonction d'utilité.
La Satisfaction de Contraintes Distribuée (parfois appelée Distributed Constraint Satisfaction Problem, DCSP ou DisCSP) est une formalisation permettant d'écrire un problème en termes de contraintes qui sont connues et doivent être respectées par les participants (agents). Les contraintes s'appliquent à certaines variables, notamment à travers la définition de domaines prédéfinis en dehors desquelles les variables ne sont pas définies.
Les problèmes définis dans ce formalisme peuvent être résolus par n'importe lequel des algorithmes qui lui sont associés.
Remove ads
Définitions
DCOP
Un DCOP peut être défini comme un tuple , où:
- est un ensemble d' agents ;
- est un ensemble de variables, ;
- est un ensemble des domaines, , où chaque est un ensemble fini contenant les valeurs qui peuvent être affectées à la variable vi associée au domaine Di;
- est une fonction [1],[2]
- est une fonction qui associe les variables à l'agent qui leur est associé. implique que l'agent a la responsabilité d'attribuer sa valeur à la variable . Notez qu'il n'est pas forcément vrai que est une injection ou une surjection (i.e. un agent peut être responsable de plusieurs variables, ou d'aucune mais une variable n'est sous la responsabilité que d'un seul agent); et
- est un opérateur qui agrège l'ensemble des fonctions de coût ou d'utilité pour toutes les valeurs possibles (i.e. respectant leurs domaines) des variables. Cette fonction est généralement une somme:
.
L'objectif d'un DCOP est que chaque agent attribue des valeurs aux variables qui lui sont associées afin que l'affectation globale de l'ensemble des variables minimise (ou de maximise dans le cas des fonctions d'utilité) .
Contexte
Un contexte est une affectation d'une variable dans un DCOP. Il peut être considéré comme une fonction associant les variables du DCOP à leurs valeurs actuelles:
Notons qu'un contexte est essentiellement une solution partielle et n'a pas besoin de contenir des valeurs pour chaque variable du problème; on note donc lorsque l'agent n'a pas encore attribué de valeur à la variable . Compte tenu de cette représentation, le "domaine" (c'est-à-dire l'ensemble des valeurs d'entrée) de la fonction peut être considéré comme l'ensemble de tous les contextes possibles pour le DCOP. Par conséquent, dans le reste de cet article, on utilisera la notion de contexte (c'est-à-dire la fonction ) comme entrée de la fonction .
Remove ads
Exemples de problèmes
Coloration de graphique distribuée
Le problème de coloration de graphe est le suivant: étant donné un graphe et un ensemble de couleurs , on cherche à attribuer à chaque sommet du graphe , une couleur, de manière que le nombre de sommets adjacents de même couleur soit minimisé.
Dans la formalisation DCOP du problème, on considère qu'il y a un agent par sommet, et qu'il a la responsabilité de décider de la couleur associée à ce sommet. Chaque agent a une seule variable (le sommet dont il est responsable) dont le domaine associé est l'ensemble des couleurs, de cardinalité . Pour chaque sommet , on crée dans le DCOP une variable avec pour domaine domaine . Pour chaque paire de sommets adjacents , on ajoute une contrainte de coût 1 si les deux variables associées ont la même couleur:
L'objectif est ici de minimiser .
Problème distribué des sacs à dos multiples
Le problème du sac à dos multiple est une variante du problème du sac à dos où: étant donné un ensemble d'objets de volume variable et un ensemble de sacs à dos de capacité variable, on cherche à attribuer à chaque objet à un sac à dos de manière à minimiser le débordement des sacs. Soit l'ensemble des objets, l'ensemble des sacs à dos, une fonction qui associe les éléments à leur volume, et une fonction associant les sacs à dos à leurs capacités.
Pour formaliser ce problème sous la forme d'un DCOP, on crée pour chaque une variable dont le domaine est . Puis pour tous les contextes possibles :
où est une fonction telle que
Remove ads
Algorithmes
Résumé
Contexte
Les algorithmes DCOP peuvent être classés en fonction de la stratégie de recherche (algorithme de recherche best-first ou parcours en profondeur avec séparation et évaluation), de la synchronisation du protocole (synchrone ou asynchrone), de la communication entre agents (pair à pair avec ses voisins dans le graphe de contraintes ou diffusion à tous les autres) et de la topologie de communication principale (chaîne ou arborescence)[3]. ADOPT utilise par exemple un algorithme de recherche best-first asynchrone avec une communication pair à pair entre les agents voisins dans le graphe de contraintes, et une arborescence de contraintes comme topologie de communication principale.
Des versions hybrides de ces algorithmes DCOP existent également. BnB-Adopt[20] par exemple, modifie la stratégie de recherche d'Adopt passant d'un algorithme de recherche best-search à un algorithme de séparation et évaluation.
Remove ads
Logiciels de simulation
Les logiciels de simulation DCOP permettent de formaliser un problème dans un format prédéterminé puis de choisir l'algorithme qui y sera appliqué dans une librairie rassemblant un certain nombre d'algorithmes. Deux plates-formes sont principalement utilisées: une bibliothèque écrite en Java, FRODO 2[21], sous licence GNU Affero General Public License, propose une interface pour Java, avec un module permettant de faire appel à la bibliothèque depuis python. Elle propose une bibliothèque de 16 algorithmes, notamment ADOPT, DPOP et des variantes, SynchBB, DSA, Max-Sum et MGM. La seconde plate-forme est pyDCOP[22], une bibliothèque écrite en python pour python par Orange (entreprise) sous licence Open Source BSD-3. pyDCOP inclut 13 algorithmes, notamment Max-Sum et des variantes, DSA et des variantes, DPOP, MGM et SynchBB. pyDCOP propose aussi une librairie permettant de déployre les algorithmes de manière décentralisée sur de l'IoT.
Remove ads
Voir aussi
Livres et revues de littérature
- (en) Ferdinando Fioretto, Enrico Pontelli et William Yeoh, « Distributed constraint optimization problems and applications: A survey », Journal of Artificial Intelligence Research, vol. 61, , p. 623–698 (lire en ligne)
- (en) Boi Faltings, « Distributed Constraint Programming », Walsh, Toby (éd.) Handbook of Constraint Programming, Elsevier, vol. 2, , p. 699-729 (ISBN 978-0-444-52726-4, lire en ligne)
- (en) Amnon Meisels, Distributed Search by Constrained Agents, Springer, (ISBN 978-1-84800-040-7, lire en ligne)
- (en) Yoav Shoham et Kevin Leyton-Brown, Multiagent Systems: Algorithmic, Game-Theoretic, and Logical Foundations, Cambridge University Press, (ISBN 978-0-521-89943-7, lire en ligne), chap. 1 et 2.
- (en) Makoto Yokoo, Distributed constraint satisfaction: Foundations of cooperation in multi-agent systems, Springer, (ISBN 978-3-540-67596-9, lire en ligne)
- (en) Makoto Yokoo et Katsutoshi Hirayama, « Algorithms for distributed constraint satisfaction: A review », Autonomous Agents and Multiagent Systems, vol. 3, no 2, , p. 185–207 (lire en ligne)
- Gauthier Picard, Optimisation sous contraintes distribuée – une introduction. Tutoriel donné aux Journées Francophones sur les Systèmes Multi-Agents, 2018 [présentation en ligne]
Remove ads
Notes et références
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads