Le tecniche per dimostrare che il problema è nella durezza "limbo"


36

Dato un nuovo problema in NP cui vera complessità è da qualche parte tra P ed essere NP completo, ci sono due metodi che conosco che potrebbero essere usati per dimostrare che risolvere questo è difficile:

  1. Mostra che il problema è GI-completo (GI = Isomorfismo grafico)
  2. Dimostrare che il problema è in . In base a risultati noti, tale risultato implica che se il problema è NP-completo, il PH crolla al secondo livello. Ad esempio, il famoso protocollo per nonisomorfismo grafico fa esattamente questo.coAM

Ci sono altri metodi (forse con diversi "punti di forza") che sono stati usati? Per ogni risposta, è richiesto un esempio di dove è stato effettivamente utilizzato: ovviamente ci sono molti modi in cui si potrebbe provare a mostrarlo, ma esempi rendono l'argomento più convincente.


12
Se un problema sembra abbastanza difficile, ma non sei in grado di dimostrare che si tratta di NPC, un rapido controllo è contare il numero di stringhe di lunghezza n nella lingua: se l'insieme è scarso, è improbabile che sia NPC (altrimenti P = NP dal teorema di Mahaney) ... quindi è meglio indirizzare gli sforzi per dimostrare che è in P :-) :-) Un esempio dal blog di Fortnow & Gasarch : {(n, k): esiste un modo per partizionare { 1, ..., n} in al massimo k caselle in modo che nessuna casella abbia x, y, z con x + y = z}
Marzio De Biasi

5
@MarzioDeBiasi mi sembra una risposta.
Sasho Nikolov,

2
Esistono due parti di tale dimostrazione: mostrare la difficoltà di collocare il problema in BPP e mostrare la difficoltà di collocare il problema nella classe NP-complete. (Ricorda che la completezza GI significa solo "è in GI ed è GI-difficile".)

1
+1 per Ricky Demer; potremmo voler avere un elenco di metodi per la prima parte.
Pteromys,

2
Per problemi in FNP senza ovvie versioni decisionali in NP, PPAD è una classe utile (e in crescita) da considerare. I problemi completi di PPAD includono molti problemi nel trovare punti fissi, ad esempio gli equilibri di Nash. L'elenco di Shiva è utile: cs.princeton.edu/~kintali/ppad.html
András Salamon,

Risposte:


47

Mostrare che il tuo problema è in coAM (o SZK) è davvero uno dei modi principali per aggiungere prove per "limbo di durezza". Ma oltre a ciò, ce ne sono molti altri:

  • Mostra che il tuo problema è in NP ∩ coNP. (Esempio: factoring.)
  • Mostra che il tuo problema è risolvibile in tempi quasipolinomiali. (Esempi: dimensione VC, giochi gratuiti approssimativi.)
  • Mostra che il tuo problema non è più difficile che invertire le funzioni a senso unico o risolvere NP in media. (Esempi: molti problemi nella crittografia.)
  • Mostra che il tuo problema si riduce a (ad es.) Giochi unici o Espansione di piccoli set.
  • Mostra che il tuo problema è in BQP. (Esempio: factoring, anche se ovviamente è anche in NP ∩ coNP.)
  • Escludere grandi classi di riduzioni della completezza NP. (Esempio: The Circuit Minimization Problem, studiato da Kabanets e Cai.)

Sono sicuro che ce ne sono altri che sto dimenticando.


2
È una lista eccellente, Scott!
Suresh Venkat,

1
Solo curioso ... quale di queste tecniche mostra che è improbabile che il problema sia risolvibile in tempi polinomiali (o RP o BPP)? Non ho visto nessuno che sembrava farlo.
Philip White,

2
Philip: hai ragione, loro no. Per fornire prove del fatto che un particolare problema NP non si trova in P, tutto si riduce a (1) tentando di inserirlo in P e fallendo, e / o (2) riducendo altri problemi che la gente non ha inserito in P a quel problema.
Scott Aaronson,

23

Dal commento sopra: se un problema sembra abbastanza difficile, ma non sei in grado di dimostrare che è NP-completo, un rapido controllo è contare il numero di stringhe di lunghezza n nella lingua: se l'insieme è scarso è è improbabile che sia NPC, altrimenti P = NP dal teorema di Mahaney ... quindi è meglio orientare gli sforzi per dimostrare che è in P :-) :-)

Un esempio è il problema della suddivisione dei numeri in k-box (dal blog di Fortnow & Gasarch, fonte originale: Cyberpuzzles del dottor Ecco ):

{ 1 , . . . , n }  in al massimo k caselle in modo che nessuna casella abbia  x , y , z  con  x + y = z }{(n,k) there exists a way to partition  {1,...,n} into at most k boxes so that no box has x,y,z with x+y=z}


23

Ecco tre aggiunte all'elenco di Scott:

  • Mostra il tuo problema è in pochiP. Ciò significa che il numero di soluzioni è limitato da un polinomio. (Esempio: problema di Turnpike). Nessun problema NP completo è noto per essere in pochi P. (impossibile a meno che pochi P = NP).
  • Mostra che il tuo problema è in o in N P [ l o g 2 n ] (può essere risolto utilizzando un numero limitato di bit non deterministici, esempio Problema relativo al set dominante nei tornei) LOGNPNP[log2n]
  • Mostrare che il problema ha densità sub-esponenziale (H. Buhrman e JM Hitchcock dimostrato minore densità vincolata ( ), a meno che la gerarchia polinomiale collassa. Pertanto, qualsiasi N P set -complete deve avere qualche ε > 0 tale che infinitamente -molti numeri interi n 0 , il set contiene almeno 2 n ϵ stringhe di lunghezza n .). Questo è molto più forte del provare solo la scarsità (come affermato nella risposta di Marzio). 2nϵNPϵ>0n02nϵn

coNPNP/poly


1
O anche in UP (non solo FewP)!
Joshua Grochow,
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.