Qual è la differenza tra "Decisione" e "Verifica" nella teoria della complessità?


16

Nella teoria del calcolo di Michael Sipser a pagina 270 scrive:

P = la classe di lingue per le quali è possibile decidere rapidamente l'appartenenza.
NP = la classe di lingue per cui è possibile verificare rapidamente l'appartenenza.

Qual è la differenza tra "deciso" e "verificato"?


1
A proposito, sono sicuro che le porzioni delle virgolette non sono le definizioni formali degli usi di P e NP Sipser. Le definizioni (o alcuni dei primi risultati) dovrebbero rispondere alla domanda.
Raffaello

Risposte:


12

Il compito di decidere l' appartenenza è: dato qualsiasi input , decidere se x L , ovvero calcolare la seguente funzione:XXL

χL(X)={1XL0XL

D'altra parte, il compito di verificare l' appartenenza è: dato qualsiasi input X e una (proposta) prova (o testimonianza ) di appartenenza, controlla rapidamente se con quella prova ¹.XL

Ad esempio, considera la fattorizzazione in fattori primi. Dato , calcolare tutti i fattori primi di n . D'altra parte, dato ( n , { i 1 , ... , i k } ) , verifica che k j =nNn(n,{io1,...,ioK}). Quale è più facile?Πj=1Kioj=n

Un altro esempio: dato un grafico ponderato , decidere se esiste un cerchio Hamilton (che visita tutti i nodi) con peso al massimo k . D'altra parte, dato ( G , ( v 1 , , v n ) ) , verifica se il percorso v 1v n visita tutti i nodi esattamente una volta e ha un peso al massimo k . Qual è più difficile?sol=(V,E)K(sol,(v1,...,vn))v1vnK


  1. Quindi dirai "no" se ma la prova è sbagliata. Va bene, però, se consideriamo le macchine non deterministiche in questo contesto; è solo importante poterindovinarela prova corretta e verificarla (rapidamente).XL

In realtà, se puoi verificare l' appartenenza al tempo polinomiale con una macchina Turing deterministica M, è abbastanza facile costruire una TM M 'non deterministica che decida l' appartenenza: basta enumerare in modo non deterministico tutti i possibili input e quindi comporre con M.
Romuald

8

Se ignoriamo i problemi di efficienza, c'è un altro esempio che illustra la differenza per analogia. Sappiamo che il problema di arresto non è determinabile: dato un codice per una macchina Turing, non esiste un modo efficace per determinare se la macchina si arresta se viene eseguita senza input.e

Ma se una macchina si ferma, non è difficile dimostrarlo a qualcun altro: basta dire loro quanti passi fa la macchina prima che si fermi. Possono far funzionare la macchina per molti passaggi e sapere se hai detto la verità (ignorando l'efficienza, ovviamente).

Quindi il set di fermare le macchine di Turing non è decidibile, ma è verificabile. Si noti che non è necessario fornire alcuna prova per le macchine che non lo fanno fermano. La verifica è asimmetrica, nel senso che solo l'appartenenza nel set ha l'essere verificabile, l'adesione fuori del set non lo fa.

La situazione con P e NP è analoga. Una lingua è in NP se esiste un sistema di prove tale che ogni oggetto che si trova nella lingua ha una breve prova (delimitata da un polinomio nella dimensione dell'oggetto) che può essere verificata in modo efficiente (con una serie di passaggi delimitati da un polinomio delle dimensioni dell'input).

D'altra parte, una lingua è in P se c'è un modo per dire se un oggetto arbitrario è o non è nella lingua usando una serie di passaggi delimitati da un polinomio nella dimensione dell'oggetto. Ora dobbiamo preoccuparci di input arbitrari, non solo di oggetti nella lingua. Ma questo problema è simmetrico: se una lingua è in P, lo è anche il suo complemento. La questione se il complemento di ogni lingua NP sia anche una lingua NP non è risolta.

(Questa analogia potrebbe suggerire che i problemi NP sono relativi a problemi P come i re-set sono a set calcolabili. Questo è un po 'vero, ma può essere fuorviante. È un fatto di base che un set che è re e co-re è calcolabile, mentre non è noto se ogni set che è NP e Co-NP sia in P).

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.