Tutti i problemi NP si riducono a problemi NP-completi: quindi come possono i problemi NP non essere completi?


10

Il mio libro afferma questo

  • Se un problema decisionale B è in P e A si riduce a B, il problema decisionale A è in P.
  • Un problema decisionale B è NP completo se B è in NP e per ogni problema in A in NP, A si riduce a B.
  • Un problema decisionale C è NP completo se C è in NP e per alcuni problemi NP completi B, B si riduce a C.

Quindi le mie domande sono

  1. Se B o C è in NP completo e tutti i problemi in NP si riducono a un problema NP completo, usando la prima regola, come può un problema NP non essere completo NP?
  2. Se A si riduce a B, B si riduce a A?

2
Fatto interessante legato al tuo # 1: Se P non è uguale a NP, sappiamo che ci devono essere problemi NP che non sono completi di NP (questo si chiama teorema di Ladner. Vedi Intermedio NP ). La cosa strana è che non siamo sicuri di eventuali problemi di calcolo comuni che rientrano in questa categoria. Il problema usato nel teorema di Ladner è costruito artificialmente per dimostrare il teorema, ma è praticamente irrilevante.
Lucas Cook,

4
@Lucas, Factoring e GraphIso sono ipotizzati come NPI, vedi anche questo .
Kaveh,

@Kaveh: bella lista di candidati NPI, grazie! Per chiarire, stavo dicendo che non siamo "sicuri" di un problema NPI naturale con la stessa certezza dei problemi di Ladner. Cioè, se , gli unici problemi NPI noti per certo sono quelli artificiali relativi alla gerarchia di Ladner. PNP
Lucas Cook,

Risposte:


13

Se A si riduce a B, B si riduce a A?

No. Per un esempio davvero inventato, ogni possibile problema calcolabile A è riducibile al problema Halting: basta passare come input l'algoritmo che risolve il problema A ma con una while(true)virata alla fine dopo il caso vero o falso. Tuttavia, sappiamo che il problema di Halting non è calcolabile, quindi non può essere ridotto a tale algoritmo A.

L'idea di base è che se c'è una riduzione da A a B, puoi imparare che B è almeno altrettanto difficile da risolvere, quindi A e richiede un algoritmo almeno altrettanto potente.

Quindi, se un problema A si riduce a un semplice problema B, allora possiamo dedurre A è facile (poiché la riduzione ci fornisce l'algoritmo efficiente) e se un problema difficile A ridotto a un problema B, possiamo dedurre che anche B è difficile ( poiché se B fosse facile, anche A dovrebbe essere facile). Tuttavia c'è ancora la possibilità di fare una sciocca riduzione da un problema facile a un problema difficile, ma in questo caso non possiamo dedurre alcuna conclusione.


8

Se B o C è in NP Complete e tutti i problemi in NP si riducono a NP Complete, usando la prima regola, come può un problema NP non essere NP completo?

La prima regola riguarda i problemi in P. Non ha nulla a che fare con la completezza NP. Se il problema A è NP completo e il problema B si riduce ad A, ciò non significa che B sia NP completo.

Se A si riduce a B, B si riduce a A?

Non generalmente, no.


"Non in generale, no.", Perché? Un po 'di spiegazione potrebbe anche essere utile per i neofiti. Dovrebbe essere fornita anche una spiegazione per la tua prima risposta.
nbro,

-1

Ho solo l'idea di base per quanto riguarda i problemi NPC e NP. Ma tutto ciò che voglio commentare riguarda "Se A viene ridotto a B, allora B viene ridotto a A?"

Prendi semplicemente in considerazione un set A con {2,3,4,5} elementi e un set B con {3,4} al suo interno. Quindi A può essere ridotto a B. Ma B non può essere ridotto a A. Invece B può essere espanso ad A se B guadagna {2,5} elementi.

Ma se A e B stanno avendo lo stesso. quindi A può essere ridotto a B o B può essere ridotto a A.


Questa non è affatto la giusta idea di riduzione. La riduzione non riguarda l'insieme che guadagna o perde elementi. Piuttosto, si tratta di essere in grado di convertire un'istanza di un problema in un altro usando una macchina / algoritmo di Turing.
jmite,

Ok. Quindi, se un problema viene ridotto a un altro utilizzando un algoritmo, non è possibile recuperare il problema dall'output ridotto usando di nuovo lo stesso algoritmo.
Naveen CS,

1
Non sono del tutto sicuro di cosa intendi, ma penso che non sia possibile. Se non sbaglio, queste riduzioni possono essere molte a una. A si riduce a B se un numero polinomiale di chiamate a una subroutine che risolve B consente di risolvere A in tempo polinomiale.
Esempi

2
La domanda riguarda i problemi di decisione, non i set. In che modo è utile guardare i set? Usare la parola "ridotto" per indicare che un insieme è un superset di un altro non è nemmeno una terminologia comune.
Gilles 'SO- smetti di essere malvagio',
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.