« Problème de couverture par ensembles » : différence entre les versions

Un article de Wikipédia, l'encyclopédie libre.
Contenu supprimé Contenu ajouté
m v2.04b - Correction syntaxique (Modèle avec paramètre obsolète)
Vers75 (discuter | contributions)
Ajout de quelques références plus récentes
Ligne 77 : Ligne 77 :
* Le [[problème de couverture maximale]].
* Le [[problème de couverture maximale]].


== Algorithmes d'approximation ==
== Algorithmes ==
=== Algorithmes d'approximation ===

Le problème de couverture par ensemble étant NP-complet, de nombreux [[algorithme d'approximation|algorithmes d'approximation]] ont été inventés. On peut citer en exemple l'[[algorithme glouton]], un algorithme de ''dual fitting'', un algorithme par arrondi à partir du [[optimisation linéaire|programme linéaire]], et un [[schéma primal-dual]]<ref>{{Approximation algorithms (Vazirani)}}, chap. 2, 13, 14 et 15.</ref>. On peut analyser l'algorithme glouton avec la [[méthode des poids multiplicatifs]]<ref name=AroraHK>
Le problème de couverture par ensemble étant NP-complet, de nombreux [[algorithme d'approximation|algorithmes d'approximation]] ont été inventés. On peut citer en exemple l'[[algorithme glouton]], un algorithme de ''dual fitting'', un algorithme par arrondi à partir du [[optimisation linéaire|programme linéaire]], et un [[schéma primal-dual]]<ref>{{Approximation algorithms (Vazirani)}}, chap. 2, 13, 14 et 15.</ref>. On peut analyser l'algorithme glouton avec la [[méthode des poids multiplicatifs]]<ref name=AroraHK>
{{article
{{article
Ligne 91 : Ligne 91 :
Il existe des résultats sur la difficulté d'approximation du problème, dus d'abord à [[Carsten Lund|Lund]] et [[Mihalis Yannakakis|Yannakakis]]<ref>{{harvnb |Lund|Yannakakis|1994}}</ref>
Il existe des résultats sur la difficulté d'approximation du problème, dus d'abord à [[Carsten Lund|Lund]] et [[Mihalis Yannakakis|Yannakakis]]<ref>{{harvnb |Lund|Yannakakis|1994}}</ref>
puis [[Uriel Feige|Feige]]<ref>{{harvnb|Feige|1998}}</ref>, puis {{Lien|langue=en|trad=Ran Raz|fr=Ran Raz|texte=Raz}}, [[Shmuel Safra|Safra]], [[Noga Alon|Alon]] et Moshkovitz. Ce dernier résultat donne une borne inférieure de <math>c\cdot\ln{n}</math>, où <math>c</math> est une constante, sous l'hypothèse [[problème P=NP|P différent de NP]]<ref>{{harvnb|Raz|Safra|1997}}</ref>{{,}}<ref>{{harvnb|Alon|Moshkovitz|Safra|2006}}</ref>. Ces résultats sont basés sur les [[Système de preuve interactive|preuves interactives]] et le [[théorème PCP]]<ref>Voir par exemple l'introduction de l'article de Lund et Yannakakis.</ref>.
puis [[Uriel Feige|Feige]]<ref>{{harvnb|Feige|1998}}</ref>, puis {{Lien|langue=en|trad=Ran Raz|fr=Ran Raz|texte=Raz}}, [[Shmuel Safra|Safra]], [[Noga Alon|Alon]] et Moshkovitz. Ce dernier résultat donne une borne inférieure de <math>c\cdot\ln{n}</math>, où <math>c</math> est une constante, sous l'hypothèse [[problème P=NP|P différent de NP]]<ref>{{harvnb|Raz|Safra|1997}}</ref>{{,}}<ref>{{harvnb|Alon|Moshkovitz|Safra|2006}}</ref>. Ces résultats sont basés sur les [[Système de preuve interactive|preuves interactives]] et le [[théorème PCP]]<ref>Voir par exemple l'introduction de l'article de Lund et Yannakakis.</ref>.

=== Algorithmes heuristiques ===

Des techniques pour résoudre les problèmes de couverture comprennent les méthodes exactes, la programmation mathématique, et des méthodes heuristiques et métaheuristiques, les [[algorithmes génétiques]] ou [[Algorithme mémétique|mémétiques]]. Parmi cees méthodes, certains algorithmes métaheuristiques peuvent résoudre des cas volumineux du problème de couverture en un temps raisonnable. Leurs hybridations avec d'autres techniques donnent des résultats encore meilleurs, tant dans les applications de référence que dans le monde réel<ref name="BrévilliersLepagnot2018">{{cite journal|last1=Brévilliers|first1=Mathieu|last2=Lepagnot|first2=Julien|last3=Idoumghar|first3=Lhassane|last4=Rebai|first4=Maher|last5=Kritter|first5=Julien|title=Hybrid differential evolution algorithms for the optimal camera placement problem|journal=Journal of Systems and Information Technology|volume=20|issue=4|year=2018|pages=446–467|issn=1328-7265|doi=10.1108/JSIT-09-2017-0081}}</ref>{{,}}<ref name="PinardMoalic2020">
{{cite journal
|last1=Pinard|first1=Maxime
|last2=Moalic|first2=Laurent
|last3=Brévilliers|first3=Mathieu
|last4=Lepagnot|first4=Julien
|last5=Idoumghar|first5=Lhassane|title=A Memetic Approach for the Unicost Set Covering Problem
|journal = Lecture Notes in Computer Science
|titre volume = Learning and Intelligent Optimization (LION 2020)
|volume=12096|year=2020|pages=233–248|issn=0302-9743|doi=10.1007/978-3-030-53552-0_23}}</ref>.


== Importance du problème et historique ==
== Importance du problème et historique ==

Ce problème d'optimisation combinatoire peut être lié à un large éventail d'applications du monde réel, par exemple la programmation des équipes<ref name="Balas1983">{{chapitre|auteur1= E. Balas|titre = A class of location, distribution and scheduling problems: modeling and solution methods
|titre ouvrage = Proceedings of the Chinese-U.S. Symposium on Systems Analysis
|collection = Wiley Series on Systems Engineering and Analysis
|éditeur = Wiley |année = 1983 | isbn = 978-0-471-87093-7}}.</ref>, la localisation d'installations<ref name="FarahaniAsgari2012">{{cite journal|last1=Farahani|first1=Reza Zanjirani|last2=Asgari|first2=Nasrin|last3=Heidari|first3=Nooshin|last4=Hosseininia|first4=Mahtab|last5=Goh|first5=Mark|title=Covering problems in facility location: A review|journal=Computers & Industrial Engineering|volume=62|issue=1|year=2012|pages=368–407|issn=0360-8352|doi=10.1016/j.cie.2011.08.020}}</ref>
, les problèmes de logistique urbaine<ref name="BoschettiManiezzo2015">{{cite journal|last1=Boschetti|first1=Marco|last2=Maniezzo|first2=Vittorio|title=A set covering based matheuristic for a real-world city logistics problem|journal=International Transactions in Operational Research|volume=22|issue=1|year=2015|pages=169–195|issn=0969-6016|doi=10.1111/itor.12110}}</ref> et le placement optimal des caméras<ref name="KritterBrévilliers2019">{{cite journal|last1=Kritter|first1=Julien|last2=Brévilliers|first2=Mathieu|last3=Lepagnot|first3=Julien|last4=Idoumghar|first4=Lhassane|title=On the optimal placement of cameras for surveillance and the underlying set cover problem|journal=Applied Soft Computing|volume=74|year=2019|pages=133–153|issn=1568-4946|doi=10.1016/j.asoc.2018.10.025}}</ref>{{,}}
<ref name="BrévilliersLepagnot2018">{{cite journal|last1=Brévilliers|first1=Mathieu|last2=Lepagnot|first2=Julien|last3=Idoumghar|first3=Lhassane|last4=Rebai|first4=Maher|last5=Kritter|first5=Julien|title=Hybrid differential evolution algorithms for the optimal camera placement problem|journal=Journal of Systems and Information Technology|volume=20|issue=4|year=2018|pages=446–467|issn=1328-7265|doi=10.1108/JSIT-09-2017-0081}}</ref>


[[Vijay Vazirani]] dit dans son livre {{harv|Vazirani 2001}}, que «l'étude de ce problème a permis le developpement de techniques qui ont ensuite été utilisées dans tout le domaine [des algorithmes d'approximation]»<ref>En anglais : ''a problem whose study led to the development of fundamental techniques for the entire field''.</ref>.
[[Vijay Vazirani]] dit dans son livre {{harv|Vazirani 2001}}, que «l'étude de ce problème a permis le developpement de techniques qui ont ensuite été utilisées dans tout le domaine [des algorithmes d'approximation]»<ref>En anglais : ''a problem whose study led to the development of fundamental techniques for the entire field''.</ref>.

Version du 16 janvier 2021 à 13:21

En informatique théorique, le problème de couverture par ensembles (Set Cover problem en anglais[1]) est un problème d'algorithmique particulièrement important car c'est l'un des 21 problèmes NP-complets de Karp (Karp 1972).

Étant donné un ensemble A, on dit qu'un élément e est couvert par A si e appartient à A. Étant donné un ensemble U et une famille S de sous-ensembles de U, le problème consiste à couvrir tous les éléments U avec une sous-famille de S la plus petite possible.

Une version plus générale consiste à assigner des poids aux éléments de S, et à chercher la sous-famille de poids minimal.

Exemple introductif

On considère un ensemble de cinq éléments à couvrir : . On considère les sous-ensembles : et . On essaye de couvrir tous les éléments avec des sous-ensembles. Par exemple est une couverture, puisque chaque élément est dans au moins un des sous-ensembles. La couverture qui utilise le moins de sous-ensembles est , c'est donc cette couverture que l'on cherche à calculer.

Définition formelle

Le problème de décision est le suivant :

Entrée : un entier , un ensemble fini et un sous-ensemble de l'ensemble des parties de
Question : existe-il un sous-ensemble de , de taille inférieure à , tel que l'union des éléments présents dans les sous-ensembles de est égal à  ?

Le problème d'optimisation associé consiste à minimiser le nombre de sous-ensembles utilisés.

Dans une forme plus générale du problème, à chaque ensemble on associe un poids , et le but est de minimiser la somme des poids de la couverture.

Propriétés algorithmiques et complexité

NP-complétude

Le problème de couverture par ensembles est NP-difficile (et NP-complet dans sa forme décisionnelle). Une des preuves classiques est une réduction du problème de couverture par sommets.

Formulation sous forme de programme linéaire

Il est fructueux d'exprimer ce problème comme un problème d'optimisation linéaire en nombres entiers.

En prenant une variable pour chaque sous-ensemble, le programme linéaire naturel est le suivant :

minimiser : (Minimiser le nombre de sous-ensembles)
tel que : (Tous les éléments sont couverts)
. (Chaque sous-ensemble est, ou bien dans la couverture, ou bien pas)

Si l'on associe un poids à chaque ensemble, le problème devient :

minimiser : (Minimiser le poids total des sous-ensembles)
tel que : (Tous les éléments sont couverts)
. (Chaque sous-ensemble est, ou bien dans la couverture, ou bien pas)

Relations avec d'autres problèmes algorithmiques

Algorithmes

Algorithmes d'approximation

Le problème de couverture par ensemble étant NP-complet, de nombreux algorithmes d'approximation ont été inventés. On peut citer en exemple l'algorithme glouton, un algorithme de dual fitting, un algorithme par arrondi à partir du programme linéaire, et un schéma primal-dual[2]. On peut analyser l'algorithme glouton avec la méthode des poids multiplicatifs[3]. Le gap d'intégralité du LP est logarithmique.

Il existe des résultats sur la difficulté d'approximation du problème, dus d'abord à Lund et Yannakakis[4] puis Feige[5], puis Raz, Safra, Alon et Moshkovitz. Ce dernier résultat donne une borne inférieure de , où est une constante, sous l'hypothèse P différent de NP[6],[7]. Ces résultats sont basés sur les preuves interactives et le théorème PCP[8].

Algorithmes heuristiques

Des techniques pour résoudre les problèmes de couverture comprennent les méthodes exactes, la programmation mathématique, et des méthodes heuristiques et métaheuristiques, les algorithmes génétiques ou mémétiques. Parmi cees méthodes, certains algorithmes métaheuristiques peuvent résoudre des cas volumineux du problème de couverture en un temps raisonnable. Leurs hybridations avec d'autres techniques donnent des résultats encore meilleurs, tant dans les applications de référence que dans le monde réel[9],[10].

Importance du problème et historique

Ce problème d'optimisation combinatoire peut être lié à un large éventail d'applications du monde réel, par exemple la programmation des équipes[11], la localisation d'installations[12] , les problèmes de logistique urbaine[13] et le placement optimal des caméras[14], [9]

Vijay Vazirani dit dans son livre (Vazirani 2001), que «l'étude de ce problème a permis le developpement de techniques qui ont ensuite été utilisées dans tout le domaine [des algorithmes d'approximation]»[15].

Bibliographie

Notes et références

  1. cette traduction française est notamment présente dans la traduction de (Vazirani 2001) (voir la table des matières sur le site de Nicolas Schabanel (traducteur))
  2. (en) Vijay Vazirani, Approximation algorithms, Springer Verlag, 2001 (puis 2003), 380 p. (ISBN 978-3-540-65367-7), chap. 2, 13, 14 et 15.
  3. Sanjeev Arora, Elad Hazan et Satyen Kale, « The Multiplicative Weights Update Method: a Meta-Algorithm and Applications », Theory of Computing, vol. 8, no 1,‎ , p. 121-164 (lire en ligne)
  4. Lund et Yannakakis 1994
  5. Feige 1998
  6. Raz et Safra 1997
  7. Alon, Moshkovitz et Safra 2006
  8. Voir par exemple l'introduction de l'article de Lund et Yannakakis.
  9. a et b Mathieu Brévilliers, Julien Lepagnot, Lhassane Idoumghar, Maher Rebai et Julien Kritter, « Hybrid differential evolution algorithms for the optimal camera placement problem », Journal of Systems and Information Technology, vol. 20, no 4,‎ , p. 446–467 (ISSN 1328-7265, DOI 10.1108/JSIT-09-2017-0081)
  10. Maxime Pinard, Laurent Moalic, Mathieu Brévilliers, Julien Lepagnot et Lhassane Idoumghar, « A Memetic Approach for the Unicost Set Covering Problem », Lecture Notes in Computer Science, vol. 12096 « Learning and Intelligent Optimization (LION 2020) »,‎ , p. 233–248 (ISSN 0302-9743, DOI 10.1007/978-3-030-53552-0_23)
  11. E. Balas, « A class of location, distribution and scheduling problems: modeling and solution methods », dans Proceedings of the Chinese-U.S. Symposium on Systems Analysis, Wiley, coll. « Wiley Series on Systems Engineering and Analysis », (ISBN 978-0-471-87093-7).
  12. Reza Zanjirani Farahani, Nasrin Asgari, Nooshin Heidari, Mahtab Hosseininia et Mark Goh, « Covering problems in facility location: A review », Computers & Industrial Engineering, vol. 62, no 1,‎ , p. 368–407 (ISSN 0360-8352, DOI 10.1016/j.cie.2011.08.020)
  13. Marco Boschetti et Vittorio Maniezzo, « A set covering based matheuristic for a real-world city logistics problem », International Transactions in Operational Research, vol. 22, no 1,‎ , p. 169–195 (ISSN 0969-6016, DOI 10.1111/itor.12110)
  14. Julien Kritter, Mathieu Brévilliers, Julien Lepagnot et Lhassane Idoumghar, « On the optimal placement of cameras for surveillance and the underlying set cover problem », Applied Soft Computing, vol. 74,‎ , p. 133–153 (ISSN 1568-4946, DOI 10.1016/j.asoc.2018.10.025)
  15. En anglais : a problem whose study led to the development of fundamental techniques for the entire field.