Questo NP è difficile? Non posso provarlo.


11

Ho un problema e credo sia NP-difficile, ma non posso provarlo.

Ecco un grafico di livello, in cui il livello 0 è il livello più elegante e il livello L il più basso.

ci sono dei bordi diretti tra i livelli, dove un bordo (A, B) indica che il nodo A può [coprire] il nodo B. E quando A può coprire B, ogni nodo su qualsiasi percorso da A a B può coprire B, B può coprire si.

Finalmente ecco che arriva un insieme di nodi S. Devo scegliere un altro insieme di nodi ANS, e assicurarmi che per ogni nodo q in S, esista un nodo p in ANS e p copre q.

Per ogni nodo c'è un costo e devo ridurre al minimo il costo totale di set ANS.

È un problema NP-difficile? Penso di sì ma non posso provarlo.

Potresti aiutarmi?

Grazie mille.


il costo del nodo dallo strato superiore è più costoso in qualsiasi percorso nel grafico.

Sì, in effetti sembra NP difficile. Guarda il problema con la copertura minima del set simile. it.wikipedia.org/wiki/Set_cover_problem

C'è qualche limitazione nel bordo diretto, come i bordi collega solo un nodo nel livello superiore a un nodo nel livello inferiore? Posso chiarire che non può esserci bordo tra i nodi nello stesso livello?
solo il

@justhalf No, non c'è bordo tra i nodi nello stesso livello. Grazie :)
qin.sun il

Risposte:


6

Sì, questo problema è sicuramente NP difficile. Sto pubblicando questa risposta poiché hai bisogno di prove.

Se segui questo link http://en.wikipedia.org/wiki/Set_cover_problem , si dice che la versione di ottimizzazione del problema di copertura minima del set è NP-Hard.

Il problema nel collegamento:

Dato un insieme di elementi {1,2, ..., m} (chiamato universo) e un insieme S di n insiemi la cui unione è uguale all'universo, il problema di copertura dell'insieme è quello di identificare il sottoinsieme più piccolo di S la cui unione è uguale alla universo. Ad esempio, considera l'universo U = {1, 2, 3, 4, 5} e il set di insiemi S = {{1, 2, 3}, {2, 4}, {3, 4}, {4, 5}}. Chiaramente l'unione di S è U. Tuttavia, possiamo coprire tutti gli elementi con il seguente numero ridotto di insiemi: {{1, 2, 3}, {4, 5}}

È possibile correlare questo al problema come segue:

S è l'insieme di nodi che coprono almeno un nodo nel set di input. Questo può essere trovato conducendo un DFS sui nodi del set di input con la direzione dei bordi invertita.

Ora il problema descritto nel collegamento è un caso speciale del tuo problema, in cui il costo di ciascun nodo è uguale e vuoi solo minimizzare il numero di nodi (set).

Quindi il tuo problema è ancora più difficile da risolvere nel caso generale e quindi è NP Hard.


Penso che ciò sia vero con la definizione dell'OP, ma non specifica nemmeno se è possibile "coprire" un nodo con un bordo nello stesso livello di quel nodo. In tal caso, il problema sembra leggermente diverso. Altrimenti, se puoi coprire un nodo solo attraverso un bordo da un livello superiore, allora sembra effettivamente essere equivalente a impostare l'ottimizzazione della copertura
roliu

@roliu Che importanza avrebbe se gli stessi nodi layer possono essere coperti o meno. Il problema, a quanto ho capito, è che abbiamo un grafico diretto con un percorso tra il nodo da A a B significa che A copre B.

Hm, non sono sicuro di indovinare. È strano perché non penso che quasi nessuna delle informazioni nell'OP sia effettivamente utile. Gli strati sembrano irrilevanti, così come la transitività. Per lo più sto solo aspettando che l'OP chiarisca che in realtà intendeva qualcosa di diverso. In particolare, puoi mostrare che non è solo difficile come la copertina, ma in realtà è equivalente. Perché ogni minima copertura del problema del PO conterrà solo nodi vicini del suo set di input S. Forse ci sono costi negativi o qualcosa del genere ...
roliu
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.