Le problème k-centre (k-center problem en anglais[1]) est un problème d'optimisation combinatoire, une branche de l'algorithmique. Le problème peut se décrire de façon informelle ainsi : étant donné n villes, il faut ouvrir une caserne de pompiers dans k villes, tel que la distance entre chaque ville et la plus proche caserne soit minimisée.
De façon plus formelle, il s'agit, étant donné un ensemble de points V, de choisir un sous-ensemble de k points, appelés centres, tel que le maximum des distances des points de V au plus proche centre soit minimisée. Dans la majorité des cas on considère implicitement que l'espace est métrique, le problème s'exprime alors naturellement comme un problème sur un graphe dont les arêtes ont des poids respectant l'inégalité triangulaire.
Ce problème est surtout étudié du point de vue de l'approximation. Il en existe plusieurs variantes, avec des métriques particulières, ou d'autres coûts à minimiser. Une application différente du placement d'installations, est le partitionnement de données(clustering).
Définition formelle
Le problème s'exprime de la façon suivante dans le cas métrique.
Étant donné un entier k et un graphe complet non-orienté G = (V, E) dont les distances d(vi, vj) ∈ N respectent l'inégalité triangulaire, trouver un sous-ensemble S ⊆ V avec |S| = k qui minimise: . Autrement dit on considère le problème d'optimisation dont la fonction objectif est [2].
Le cas général sans métrique est peu étudié car trop difficile même du point de vue de l'approximation. Plus précisément, sans hypothèse le problème n'est pas dans APX[3]. Le reste de l'article traite implicitement du cas métrique.
L'algorithme glouton suivant a été proposé par Gonzalez en 1985[6].
Il est parfois appelé farthest first traversal[7].
Choisir un premier sommet arbitraire et en faire un centre.
Faire k–1 fois :
Trouver un sommet dont la distance aux centres déjà ouverts est maximale
En faire un centre.
La solution calculée est dans le pire cas, deux fois moins bonne que la solution optimale. On le prouve rapidement. À la fin de l'algorithme, soit r la distance maximale d'un point à un centre, et soit p un tel point. Soit S l'ensemble constitué des centres et de p. L'ensemble S a k+1 points à distance au moins r les uns des autres. Alors dans la solution optimale, au moins deux points de S doivent partager un même centre (il y a plus de points dans S que de centres dans la solution optimale). D'après l'inégalité triangulaire, au moins l'un de ces points partageant le même centre est à distance r/2 d'un centre[7].
On peut obtenir une 2-approximation par la méthode du seuil (ou threshold method[8] aussi appelé parametric pruning[9],[10]). Elle consiste à tester toutes les solutions possibles : la valeur optimale étant un coût présent sur une arête, le nombre d'arêtes est polynomial et on peut faire un test polynomial pour chaque valeur. Le test consiste à enlever les arêtes de poids supérieurs et à vérifier que l'on peut obtenir une 2-approximation dans le graphe élagué.
Soit une instance (G , k) pour le problème de l'ensemble dominant. On la transforme en une instance G', le graphe complet ayant les mêmes sommets, avec les poids suivants sur les arêtes : 1 pour les arêtes de G, et 2 pour les autres. Si l'ensemble dominant est de taille inférieure à k alors G' a une solution k-centre de coût 1, sinon une solution de coût 2. Ainsi un algorithme d'approximation de ratio inférieur à 2, donne une réponse pour le problème de l'ensemble dominant qui est lui-même NP-difficile.
Un cas particulier est celui ou la métrique est euclidienne, parfois appelé k-centre géométrique[5].
Une façon classique de modifier le problème est de rajouter des capacités différentes aux centres. Ainsi un certain nœud, s'il est choisi comme centre, ne pourra servir qu'un nombre restreint de voisins.
Le problème k-médiane, utilise le même cadre, mais avec une autre fonction à minimiser. Dans le problème de l'emplacement d'installations (facility location problem[1]), on remplace le paramètre k par des coûts d'ouverture et de liaison.
↑Samir Khuller et Yoram J. Sussmann, « The Capacitated \emph{K}-Center Problem », SIAM J. Discrete Math., vol. 13, no 3, , p. 403-418
↑Dorit S Hochbaum, « Various notions of approximations: Good, better, best, and more », dans Approximation algorithms for NP-hard problems, PWS Publishing Co., , p. 346-446
↑ a et b(en) Pierluigi Crescenzi, Viggo Kann, Magnús Halldórsson, Marek Karpinski et Gerhard Woeginger, « Metric k-center », sur A compendium of NP optimization problems, .
↑ a et bTeofilo F. Gonzalez, « Clustering to minimize the maximum intercluster distance », Theoretical Computer Science, vol. 38, , p. 293-306 (DOI10.1016/0304-3975(85)90224-5)
↑Dorit S. Hochbaum et David B. Shmoys, « A Best Possible Heuristic for the k-Center Problem », Mathematics of Operations Research, vol. 10, no 2, , p. 180-184
↑Wen-Lian Hsu et George L. Nemhauser, « Easy and hard bottleneck location problems », Discrete Applied Mathematics, Elsevier, vol. 1, no 3, , p. 209-215
↑David Eisenstat, Philip N. Klein et Claire Mathieu, « Approximating k-center in planar graphs », dans Proceedings of the Twenty-Fifth Annual ACM-SIAM Symposium on Discrete Algorithms, SODA 2014, Portland, Oregon, USA, January 5-7, 2014, , p. 617-627