Imposta problema di ottimizzazione - è np-completo?


10

Impostare S={e1,,en} . Per ogni elemento ei , abbiamo peso wi>0 e costo ci>0 . L'obiettivo è trovare il sottoinsieme M di dimensione k che massimizzi la seguente funzione obiettivo:

eiMwi+eiMwicieiMci
.

Il problema è NP-difficile?

Poiché la funzione obiettivo sembra strana, è utile spiegare un'applicazione della funzione obiettivo.

Supponiamo di avere n oggetti e1 a en e ci sono ci copie di ogni oggetto ei nel nostro inventario. Abbiamo alcuni clienti e sono interessati in questi oggetti in proporzione con il loro peso wi , il che significa che l'oggetto con maggiore wi è più popolare. Abbiamo un sistema di vendita online e dobbiamo rispondere correttamente alle richieste dei nostri clienti. Non possiamo riconoscere gli oggetti dalle loro forme (sembrano tutti uguali!). Ma abbiamo qualche classificatore per trovarli. Ogni classificatore può essere utilizzato per rilevare copie di un oggetto. Miriamo a eseguire il classificatore k per massimizzare la soddisfazione dei nostri clienti.

wici=pin


Il termine giusto è inferiore o uguale al peso maggiore di un elemento non in M. Quindi, se si dispone di un elemento con un peso elevato, è meglio inserirlo in M, piuttosto che lasciarlo sprecare. Quindi M dovrebbe consistere degli elementi con i pesi più grandi di k. Giusto?
zotachidil,

Non è corretto, perché anche i costi sono importanti. Considera il seguente esempio:
Nasooh,

w1 = 50, c1 = 80 - w2 = 40, c2 = 15 - w3 = 10, c3 = 5. Per k uguale a 1, scegliere e2 è più vantaggioso di e1.
Nasooh,

Hai ragione. Hmm ...
zotachidil,

2
Grazie per aver cercato di spiegare la motivazione. Sfortunatamente, la connessione tra la tua spiegazione e la funzione oggettiva nella domanda non mi è ancora del tutto chiara, ma immagino che dovrò essere soddisfatto della spiegazione attuale per mantenere la domanda entro un termine ragionevole.
Tsuyoshi Ito,

Risposte:


2

La risposta che segue osserva che un caso speciale del problema è risolvibile in tempi polinomiali. Questo non risponde completamente alla domanda nel post, ma può fornire alcune informazioni su ciò che potrebbe essere necessario per una prova di durezza NP e può provocare un ulteriore interesse per il post ...

cinD=ici

(S,w,c,K)w,cR+nS={1,2,,n}MSKiMwiciiMciiMwi

(d1,d2,k,m)0d1d2D0kKkmn

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

Partizionando le possibili soluzioni per in quelle che contengono quelle che non lo fanno, otteniamo la ricorrenza Lasciamo i casi limite come un esercizio.ϕ(d1,d2,k,m)m

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

Il numero di sottoproblemi è , e per ogni lato destro della ricorrenza può essere valutata nel tempo costante, quindi le piste algoritmo in tempo polinomiale in e . O(n2D2)nD  

Corollario. A meno che P = NP, qualsiasi riduzione che mostri la durezza NP si ridurrà ai casi in cui non è polinomiale in .Dn

Osservazione. A meno che non mi sbagli, c'è anche un PTAS per il problema nel post, basato sull'arrotondamento del e quindi sull'uso della programmazione dinamica. Tuttavia, l'esistenza di un PTAS non ha alcuna influenza diretta sul fatto che il problema sia NP-difficile, come richiesto nel post.wi

Sono anche curioso --- qualcuno sa se il caso speciale quando (per ogni ) ha un algoritmo poly-time? (EDIT: lo fa, per il commento di Willard Zhan questo sembra essere ottimizzato prendendo per contenere i elementi più grandi.)wi=ciiMk


1
Il caso di non a minimizzare , che è ottimizzato quando costituito dal più grande 'S? ( i j M w i w j ) / ( i M w i ) M w iwi=ci(ijMwiwj)/(iMwi)Mwi
Willard Zhan,

@WillardZhan, sì, sembra giusto.
Neal Young

-6

Stai chiedendo la massimizzazione di una funzione senza restrizioni?

È davvero semplice Se M è il set più grande, allora è la soluzione migliore. Non c'è bisogno di calcolare nulla.

Questo problema sembra simile al problema dello zaino, che è NP a proposito.


3
La domanda dice: "il sottoinsieme M di dimensione k".
Tsuyoshi Ito,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.