Perché NP in EXPTIME?


11

C'è un modo semplice per capire perché NP è in EXPTIME? Mi sembra a priori concepibile che potrebbe esserci un problema che richiede tempo superesponenziale per essere risolto, ma la cui soluzione potrebbe essere verificata in tempo polinomiale.


In effetti, NP PSPACE.

Benvenuti in Informatica! Che cosa hai provato? Dove ti sei bloccato? Non vogliamo fare solo il tuo lavoro (domestico) per te; vogliamo che tu capisca. Tuttavia, poiché non sappiamo quale sia il tuo problema di fondo, quindi non possiamo iniziare ad aiutarti. Vedi qui per una discussione pertinente. Se non sei sicuro di come migliorare la tua domanda, perché non chiedere in giro in Computer Science Chat ? Potresti anche voler consultare le nostre domande di riferimento .
Raffaello

Risposte:


17

Qualsiasi problema in NP è in EXPTIME perché è possibile utilizzare il tempo esponenziale per provare tutti i possibili certificati o enumerare tutti i possibili percorsi di calcolo di una macchina non deterministica.

Più formalmente, ci sono due definizioni principali di NP . Uno è che una lingua  è in NP se esiste una relazione  tale cheLR

  • esiste un polinomio tale che, per tutti , ,p(x,y)R|y|p(|x|)
  • data la stringa , possiamo determinare in tempo polinomiale inse ex#y|x#y|(x,y)R
  • L={x(x,y)R} .

Quindi, se abbiamo tempo esponenziale e vogliamo sapere se , possiamo semplicemente provare tutti i possibili valori di per ~ e vedere se per uno di quelli. Ci vuole tempo , quindi EXPTIME .xL|Σ|p(n)y(x,y)R2O(p(n))L

In alternativa, possiamo definire NP come l'insieme delle lingue decise dalle macchine di Turing non deterministiche a tempo polinomiale. In questo caso, supponiamo che  sia deciso dalla macchina  nel tempo per alcuni polinomi  , per input di lunghezza  . Poi  rende al massimo scelte non deterministiche, mentre la determinazione se . Esaminando la funzione di transizione di , possiamo trovare una costante  tale che  abbia al massimo  scelte non deterministiche ad ogni passo del calcolo (indipendentemente dall'input), quindi ha al massimoLMp(n)pnMp(|x|)xLMkMkkp(|x|)=2O(p(|x|)) diverse sequenze di scelte non deterministiche durante la lettura dell'input  . Dato il tempo esponenziale, possiamo simulare ognuna di queste possibilità una dopo l'altra e vedere se una di esse accetta.x


2
Strettamente parlando, il polinomio nel secondo necessità proiettile da scegliere una volta per tutte, ma non può dipendere ed . ;)xy
Martin Berger,

Qual è esattamente la definizione di EXPTIME? Lo ricordo come , ma la tua risposta sembra assumere . Non è ovvio che il polinomio extra possa essere incluso senza renderlo una classe di complessità diversa. O(k|x|)O(kp(|x|))
Kasperd,

3
@kasperd Secondo Wikipedia, EXPTIME è definito come il problema decisionale che può essere risolto in . O(kp(|x|))
tparker,
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.