Jest (bardzo ogólny) problem, na który patrzyłem w ramach projektu: wariant tego problemu jest trudny do NP nawet na wykresach z dwoma wierzchołkami i jedną krawędzią, a inny wariant jest trudny do NP na drzewach. Ponieważ twardość NP pierwszego wariantu oczywiście nie wynika z kształtu wykresu, drugi jest prawdopodobnie bardziej interesujący.
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
Jeśli nie wymagają wszystkie pobrane pliki mają być kierowane lecz starają się maksymalizować sumę filesizes tych pliki do pobrania, które są kierowane można łatwo zmniejszyć sumy podzbioru tego problemu: trzeba pojedynczy serwer z dużej ilości przestrzeni, pojedynczy klient podłączony do serwera o krawędzi o pojemności równej wartości docelowej instancji sumy częściowej i dla każdej liczby całkowitej w instancji sumy częściowej tworzony jest plik o równej wielkości; następnie klient chce pobrać wszystkie te pliki.
(Dużo?) Bardziej interesującym wariantem tego pytania jest to, że próbujesz zminimalizować liczbę krawędzi, których pojemność jest przekroczona - być może sieć, nad którą pracujemy, modeluje transatlantyckie kable internetowe i wymiana kabla jest tak kosztowna, że różnica koszt ulepszenia do współczynnika dwa szybciej, a podwyższenie do współczynnika trzy szybciej jest nieistotna. Mówimy również, że rozmieszczenie plików na serwerach jest już podane i nie można go modyfikować, dlatego przyglądamy się wyłącznie problemom z routingiem.
US⊆P(U)u∈U
s∈Su∈su
Chodzi o to, że klient potrzebuje plików, które są unikalne dla wszystkich klastrów serwerów, więc krawędzie łączące klienta z klastrami serwerów są już na granicy swoich możliwości (ich pojemności to 1, pliki mają rozmiar 1). Jeśli klient pobierze dowolne elementy wszechświata z dowolnego klastra, krawędź łącząca się z tym klastrem zostanie przeciążona. Ponieważ wymagamy jedynie zminimalizowania liczbyprzeciążeń (a nie o ile przekraczamy pojemności), klient może pobrać resztę elementów wszechświata hostowanego w tym klastrze serwerów (a więc resztę elementów odpowiedniego podzbioru) bez kary. Odpowiada to zatem wybranemu podzbiorowi. Klient chce raz pobrać wszystkie pliki z wszechświata, więc wszechświat rzeczywiście zostanie objęty, a aby zminimalizować liczbę przeciążonych krawędzi, musimy zminimalizować liczbę wybranych podzbiorów.
Zauważ, że powyższa konstrukcja daje wykres drzewa, więc jest to przykład trudnego NP problemu na drzewach.