Es gibt ein (sehr allgemeines) Problem, das ich mir im Rahmen eines Projekts angeschaut habe: Eine Variante dieses Problems bleibt auch bei Graphen mit zwei Eckpunkten und einer einzigen Kante NP-hart, und eine andere Variante ist NP-hart bei Bäumen. Da die NP-Härte der ersten Variante offensichtlich nicht von der Form des Graphen herrührt, ist die zweite wahrscheinlich interessanter.
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
Wenn Sie nicht alle Downloads erfordern geroutet werden , sondern versuchen , die Summe der Dateigrößen der Downloads zu maximieren , die sind geroutet können Sie leicht Subset-Summe für dieses Problem vermeiden: Sie haben einen einzelnen Server mit riesigen Mengen an Speicherplatz, ein Einzelner Client, der mit einer Kante mit einer Kapazität verbunden ist, die dem Zielwert der Teilmengeninstanz entspricht, und für jede Ganzzahl in der Teilmengeninstanz wird eine Datei mit der gleichen Größe erstellt. Der Kunde möchte dann alle diese Dateien herunterladen.
Eine (viel?) Interessantere Variante für diese Frage ist der Fall, dass Sie versuchen, die Anzahl der Kanten zu minimieren, deren Kapazität überschritten wird - vielleicht modelliert das Netzwerk, an dem wir arbeiten, die transatlantischen Internetkabel und das Ersetzen eines Kabels ist so kostspielig, dass der Unterschied besteht Die Kosten für ein schnelleres Upgrade auf einen Faktor zwei und ein schnelleres Upgrade auf einen Faktor drei sind vernachlässigbar gering. Wir sagen auch, dass die Platzierungen der Dateien auf den Servern bereits angegeben sind und nicht geändert werden können, sodass wir uns ausschließlich mit den Routing-Problemen befassen.
US⊆P(U)u∈U
s∈Su∈su
Die Idee ist, dass der Client die Dateien benötigt, die für alle Servercluster eindeutig sind, sodass die Ränder, die den Client mit den Serverclustern verbinden, bereits an der Grenze ihrer Kapazitäten sind (ihre Kapazitäten sind 1, die Dateien haben Größe 1). Wenn der Client Elemente des Universums von einem Cluster herunterlädt, wird die Kante, die eine Verbindung zu diesem Cluster herstellt, überlastet. Da müssen wir nur die Anzahl minimierenBei Überlastungen (und nicht, um wie viel wir die Kapazitäten überschreiten) kann der Client die restlichen Elemente des Universums, die auf diesem Servercluster gehostet sind (also die übrigen Elemente der entsprechenden Teilmenge), ohne Abzüge herunterladen. Dies entspricht daher der gewählten Teilmenge. Der Client möchte alle Dateien im Universum einmal herunterladen, damit das Universum tatsächlich abgedeckt wird. Um die Anzahl der überladenen Kanten zu minimieren, müssen wir die Anzahl der ausgewählten Teilmengen minimieren.
Beachten Sie, dass die obige Konstruktion einen Baumgraphen ergibt. Dies ist also ein Beispiel für ein NP-hartes Problem bei Bäumen.