Il y a un problème (très général) que j'ai examiné dans le cadre d'un projet: une variante de ce problème reste NP-difficile même sur les graphiques à deux sommets et un seul bord, et une variante différente est NP-difficile sur les arbres. Puisque la dureté NP de la première variante ne découle évidemment pas de la forme du graphique, la seconde est probablement plus intéressante.
SCG=(V,E)S⊂VC⊂VS∩C=∅s∈S|s|Ff∈F|f|e∈EteR⊆C×F(c,f)∈Rcf
s∈SAs∑f∈As|f|≤|s|PrGr=(c,f)∈Rcsf∈AseDer=(c,f)∈DePre∑(c,f)∈De|f|≤te
Si vous ne souhaitez pas tous les téléchargements à routés mais essayez plutôt de maximiser la somme des filesizes des téléchargements qui sont routées , vous avez pouvez facilement réduire sous - ensemble somme à ce problème: vous avez un seul serveur avec de grandes quantités d'espace, une un seul client connecté au serveur avec une arête de capacité égale à la valeur cible de l'instance de sous-ensemble et pour chaque entier de l'instance de sous-ensemble, vous créez un fichier de taille égale; le client souhaite ensuite télécharger tous ces fichiers.
Une variante (beaucoup?) Plus intéressante pour cette question est le cas où vous essayez de minimiser le nombre d’arêtes dont la capacité est dépassée - peut-être que le réseau sur lequel nous travaillons modélise les câbles Internet transatlantiques et que le remplacement d’un câble est si coûteux que la différence en coût de mise à niveau à un facteur deux plus rapide et une mise à niveau à un facteur trois plus rapide est négligeable. Nous disons également que les emplacements des fichiers sur les serveurs sont déjà définis et ne peuvent pas être modifiés. Nous examinons donc uniquement les problèmes de routage.
US⊆P(U)u∈U
s∈Su∈su
L'idée est que le client a besoin de fichiers uniques pour tous les clusters de serveurs, de sorte que les arêtes reliant le client aux clusters de serveurs sont déjà à la limite de leurs capacités (leurs capacités sont 1, les fichiers ont une taille 1). Si le client télécharge des éléments de l'univers à partir de n'importe quel cluster, le bord qui se connecte à ce cluster est surchargé. Puisque nous avons seulement besoin de minimiser le nombrede surcharges (et non de combien nous dépassons les capacités), le client peut télécharger le reste des éléments de l’univers hébergé sur ce cluster de serveurs (donc le reste des éléments du sous-ensemble correspondant) sans pénalité. Cela correspond donc au sous-ensemble choisi. Le client souhaite télécharger tous les fichiers de l'univers une fois. Ainsi, l'univers sera effectivement couvert. Pour minimiser le nombre d'arêtes surchargées, nous devons minimiser le nombre de sous-ensembles choisis.
Notez que la construction ci-dessus génère un graphe d'arbre. Il s'agit donc d'un exemple de problème NP-difficile sur les arbres.