Una forte durezza NP può davvero essere dimostrata usando semplici riduzioni del tempo polifunzionale?


17

Di recente ho letto una prova che intendeva dimostrare che un problema era fortemente NP-difficile, semplicemente riducendo ad esso (in tempo polinomiale) da un problema fortemente NP-difficile. Questo non aveva alcun senso per me. Avrei pensato che avresti dovuto dimostrare che tutti i numeri utilizzati nella riduzione e le istanze del problema a cui stai riducendo erano limitati polinomialmente nella dimensione del problema.

Ho quindi visto che Wikipedia ha dato le stesse istruzioni generali per questo tipo di prova, ma non ero davvero convinto fino a quando ho visto Garey & Johnson dire sostanzialmente la stessa cosa. Per essere precisi, dicono: "Se è NP-duro in senso forte ed esiste una trasformazione pseudo-polinomiale da Π a Π , allora Π è NP-duro in senso forte", e "Nota che, per definizione, un algoritmo temporale polinomiale è anche un algoritmo temporale pseudo-polinomiale. "ΠΠΠ'Π'

Certo, prendo la parola di Garey & Johnson su questo — non capisco come possa essere corretto, che è quello con cui mi piacerebbe un po 'di aiuto. Ecco il mio ragionamento (presumibilmente imperfetto) ...

Ci sono problemi fortemente NP-completi, e tutti questi sono (per definizione) fortemente NP-difficili e NP-completi. Ogni problema NP-completo può (per definizione) essere ridotto a qualsiasi altro nel tempo polinomiale (e quindi pseudopolinomiale). Date le dichiarazioni di Garey & Johnson, mi sembra quindi che ogni problema NP-completo sia fortemente NP-completo e, quindi, che ogni problema NP-difficile sia fortemente NP-difficile. Questo, ovviamente, rende insignificante il concetto di forte durezza NP ... quindi cosa mi sto perdendo?

Modifica / aggiorna (basato sulla risposta di Tsuyoshi Ito):

Il requisito (d) dalla definizione di Garey & Johnson di una trasformazione (pseudo) polinomiale (il tipo di riduzione necessaria per conferire la durezza NP in senso forte) è che la massima magnitudine numerica nell'istanza risultante sia limitata polinomialmente, come una funzione delle dimensioni del problema e della grandezza numerica massima dell'originale. Questo, ovviamente, significa che se il problema originale è NP-difficile in senso forte (cioè, anche quando le sue magnitudini numeriche sono limitate polinomialmente nella dimensione del problema), ciò sarà vero anche per il problema a cui si riduce. Questo non sarebbe necessariamente il caso di una normale riduzione del tempo polifunzionale (ovvero, senza questo requisito aggiuntivo).


Grande! La mia matematica TA l'ha fatto ieri e ho pensato che fosse sospetto. Ora posso dargli un link.
Raffaello

Risposte:


14

Secondo la terminologia dell'articolo di Garey e Johnson, le trasformazioni del tempo polinomiale non sono necessariamente trasformazioni pseudo-polinomiali perché potrebbero violare l'elemento (d) nella definizione 4.


1
Giusto, quindi un algoritmo polinomiale è necessariamente pseudopolinomiale, ma una riduzione polinomiale non è necessariamente quella che G&J chiama una trasformazione pseudopolinomiale. In effetti, il loro oggetto (d) è esattamente quello che pensavo mancasse (cioè, una restrizione sulla dimensione del numero). Grazie.
Magnus Lie Hetland,

9

Per espandere la risposta di Tsuyoshi:

Nel contesto di Garey e Johnson, prendere in considerazione una trasformazione da PARTITION (p. 47, Sez. 3.1) a PROGRAMMAZIONE MULTIPROCESSORE (p. 65, Sez. 3.2.1, Voce (7)).

La trasformazione (per restrizione) comporta l'impostazione D=12Σun'UNl(un')l(un')q2ioDΠ[f(io)]q2[io],[io]) (ovvero l'elemento (d) nella definizione di una trasformazione pseudo-polinomiale).

Ad esempio, basta considerare un'istanza di MULTIPROCESSOR SCHEDULING in cui il valore di tutta è esponenziale nel numero di l ( a ) (cioè | A | ). Stai ancora manipolando lo stesso numero di "oggetti combinatori" (per così dire), ma sono tutti estremamente grandi. Quindi, NP completo, ma non fortemente NP completo.l(un')l(un')|UN|

Potresti voler leggere Wikipedia su un argomento correlato . Ad esempio, abbiamo un algoritmo di tempo polinomiale dinamico basato sulla programmazione per il problema KNAPSACK completo NP - almeno, purché i numeri siano abbastanza piccoli. Quando i numeri diventano troppo grandi, questo algoritmo "tempo polinomiale" mostrerà "comportamento esponenziale". (G&J, p. 91, Sec 4.2)

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.