Ustaw problem optymalizacji - czy jest np. Kompletny?

10

Ustawiono . Dla każdego elementu mamy wagę i kosztujemy . Celem jest znalezienie podzbioru o rozmiarze który maksymalizuje następującą funkcję celu: .e i w i > 0 c i > 0 M k e iM w i + e iM w i c iS={e1,,en}eiwi>0ci>0Mk

eiMwi+eiMwicieiMci

Czy problem jest trudny NP?

Ponieważ funkcja celu wydaje się dziwna, pomocne jest wyjaśnienie zastosowania funkcji celu.

Załóżmy, że mamy n przedmiotów od do a w naszym ekwipunku są kopie każdego obiektu . Mamy kilku klientów, którzy są zainteresowani tymi obiektami proporcjonalnie do ich wagi , co oznacza, że ​​obiekt o większym jest bardziej popularny. Mamy internetowy system sprzedaży i musimy poprawnie odpowiadać na prośby naszych klientów. Nie możemy rozpoznać obiektów po ich kształtach (wszystkie wyglądają tak samo!). Ale mamy jakiś klasyfikator, aby je znaleźć. Każdy klasyfikator może służyć do wykrywania kopii obiektu. Naszym celem jest uruchomienie k klasyfikatora, aby zmaksymalizować zadowolenie naszych klientów.e n c i e i w i w ie1encieiwiwi

PS: Przydatne może być przemyślenie przypadku, w którym dla wszystkich ; jednak nie jestem pewien. [ Myliłem się co do tego! Zgodnie z tym założeniem jest w P ]i nwici=pin

Nasooh
źródło
Właściwy termin jest mniejszy lub równy największej wadze elementu spoza M. Więc jeśli masz element o dużej wadze, lepiej jest umieścić go w M, niż pozwolić mu się zmarnować. Zatem M powinno składać się z elementów o największej masie k. Dobrze?
zotachidil
To nie jest poprawne, ponieważ koszty są również ważne. Rozważ następujący przykład:
Nasooh,
w1 = 50, c1 = 80 - w2 = 40, c2 = 15 - w3 = 10, c3 = 5. Dla k równego 1 wybór e2 jest korzystniejszy niż e1.
Nasooh,
Masz rację. Hmm ...
zotachidil,
2
Dziękujemy za próbę wyjaśnienia motywacji. Niestety związek między twoim wyjaśnieniem a funkcją celu w pytaniu jest nadal dla mnie całkowicie niejasny, ale sądzę, że muszę być zadowolony z obecnego wyjaśnienia, aby pytanie było rozsądne.
Tsuyoshi Ito,

Odpowiedzi:

2

Poniższa odpowiedź zauważa, że ​​szczególny przypadek problemu można rozwiązać w czasie wielomianowym. To nie w pełni odpowiada na pytanie zawarte w poście, ale może dać pewien wgląd w to, co może być potrzebne do potwierdzenia twardości NP i może wywołać dodatkowe zainteresowanie postem ...

Obserwacja. Problemem stanowisko zawiera algorytm, który, biorąc pod uwagę wszystkie przypadki, gdzie każdy jest liczbą całkowitą, jest uruchamiany w czasie wielomian n i D = Σ i c i .cinD=ici

Szkic próbny. Napraw dowolne dane wejściowe gdzie w , c R n + i (WLOG) S = { 1 , 2 , , n } . Lekko odtwarzając problem, celem jest znalezienie M S o rozmiarze K maksymalizującym i M w i c i(S,w,c,K)w,cR+nS={1,2,,n}MSK.iMwiciiMciiMwi

Rozważ następujący program dynamiczny. Dla dowolnych liczb całkowitych z 0 d 1d 2D , 0 k K , i k m n , zdefiniuj ϕ ( d 1 , d 2 , k , m ) = max {i M w(d1,d2,k,m)0d1d2D0kKkmn Pożądanym rozwiązaniem jest maks. D ϕ(d,d,K,n).

ϕ(d1,d2,k,m)=max{iMwi(ci/d11) : M[m],|M|=k,iMci=d2}.
maxdϕ(d,d,K,n)

Dzieląc możliwe rozwiązania dla na te, które zawierają m, a te, które tego nie robią, otrzymujemy powtarzalność ϕ ( d 1 , d 2 , k , m ) = max { ϕ ( d 1 , d 2 - c m , k - 1 , m - 1 ) + w mϕ(d1,d2,k,m)m Sprawy graniczne zostawiamy jako ćwiczenie.

ϕ(d1,d2,k,m)=max{ϕ(d1,d2cm,k1,m1)+wm(cm/d11)ϕ(d1,d2,k,m1).

Liczba podproblemów jest , a każda strona prawy nawrotu można ocenić w stałym czasie, tak przebiegów algorytmu czasu wielomian n i D . O(n2D2)nD  

Dn

wi

wi=ciiMk

Neal Young
źródło
1
wi=ci(ijMwiwj)/(iMwi)Mwi
@WillardZhan, tak, to wydaje się słuszne.
Neal Young,
-6

Pytasz o maksymalizację funkcji bez ograniczeń?

To jest naprawdę proste. Jeśli M jest największym zestawem, to jest najlepszym rozwiązaniem. Nie trzeba niczego obliczać.

Ten problem wydaje się podobny do problemu plecaka, który jest nawiasem mówiąc NP.

Guillermo.
źródło
3
Pytanie brzmi: „podzbiór M rozmiaru k”.
Tsuyoshi Ito