Alla ricerca di fonti di letteratura per la seguente idea


12

Sono abbastanza certo di non essere il primo a intrattenere l'idea che presenterò. Tuttavia, sarebbe utile se riuscissi a trovare qualsiasi letteratura relativa all'idea.

L'idea è di costruire una Turing Machine M con la proprietà che se P = NP allora M risolverà 3-SAT in tempo polinomiale. (La scelta di 3-SAT è arbitraria. Potrebbe essere davvero un problema in NP).

Giusto per essere chiari, questo non è un reclamo che P = NP. In effetti, credo il contrario. Dico semplicemente che se P = NP, allora M fornirà una soluzione a tempo polinomiale. Se stai cercando una soluzione efficiente, dovrei avvertire che questo è lungi dall'essere efficiente.

M è costruito come segue: in primo luogo, assumere una codifica canonica per tutte le macchine di Turing e applicare una numerazione a queste macchine. Quindi, c'è una Turing Machine numero 1, un numero 2, ecc. L'idea di una Universal Turing Machine in grado di leggere il formato per una macchina fornita e quindi simulare il funzionamento della macchina su input separati è piuttosto nota. M utilizzerà una macchina di Turing universale per costruire e simulare ciascuna macchina di Turing a turno.

Simula innanzitutto il funzionamento di Turing Machine 1 per un singolo passaggio.
Quindi esamina l'output di Turing Machine 1.
Simula il funzionamento di Turing Machine 1 per due passaggi e osserva l'output, quindi procede a simulare Turing Machine 2 per 2 passaggi. Continua e gira in questo modo, a sua volta eseguendo Turing Machine 1 per k passi poi 2 per k passi ... poi infine macchina k per k passi.

Dopo ogni corsa di simulazione, esamina l'output della corsa. Se l'output è un'assegnazione di variabili che soddisfano l'istanza del problema 3-SAT, M si ferma in uno stato di accettazione. Se, d'altra parte, l'output è una stringa di prova in un linguaggio di prova verificabile con il risultato comprovato che l'istanza del problema non è soddisfacente, M si ferma in uno stato di rifiuto. (Per un linguaggio di prova, potremmo ad esempio usare gli assiomi di Peano con la logica del secondo ordine e gli assiomi logici di base in stile Hilbert. Lascio che sia un esercizio per il lettore capire che se P = NP, un valido esiste un linguaggio di prova ed è verificabile in tempo polinomiale).

Qui dirò che M risolverà 3-SAT in tempo polinomiale se e solo se P = NP. Alla fine, l'algoritmo troverà una macchina di Turing magica con il numero K, che in tal caso è un risolutore efficiente per il problema del 3-SAT ed è in grado di fornire una prova dei suoi risultati in caso di successo o fallimento. Alla fine K verrà simulato eseguendo passi poli (strlen (input)) per alcuni polinomi. Il polinomio per M è approssimativamente il quadrato del polinomio per k nel fattore più grande, ma con alcune terribili costanti nel polinomio.

Per ribadire la mia domanda qui: voglio sapere se esiste una fonte letteraria che utilizza questa idea. Sono un po 'meno interessato a discutere l'idea stessa.

Risposte:


16

Sembra che questa idea sia attribuita a Levin (si chiama ricerca ottimale). Credo che questo fatto sia ben noto. Un algoritmo simile è descritto in Wikipedia per esempio, sebbene usando il problema della somma dei sottoinsiemi. In questo articolo di scholarpedia puoi trovare diversi riferimenti sull'argomento, incluso un puntatore all'algoritmo originale e ad altri algoritmi di ricerca ottimali.

φP=NPφ

Commento 2: Come Jaroslaw Blasiok ha sottolineato in un'altra risposta, questo algoritmo non decide Sat solo assumendo P = NP.


Ho appena trovato il riferimento di Wikipedia, e in effetti menziona Levin, ma senza citazione. Potrebbe essere che questo è diventato semplicemente folklore ma non è mai stato usato nella letteratura pubblicata. Indipendentemente da ciò, questo è utile. Grazie.
Bill Province,

Benvenuto. Ho trovato una homepage con diversi riferimenti sull'argomento. Ho modificato la risposta per includerla.
Mateus de Oliveira Oliveira,

6

L'idea di far funzionare in diagonale tutte le possibili macchine di Turing è stata precedentemente utilizzata da Leonid Levin in quella che ora è conosciuta come Levins Universal Search. Sfortunatamente, e contrariamente al malinteso estremamente comune, per quello che so le variazioni nella ricerca universale di Levins NON sono in grado di fornire un algoritmo esplicito per risolvere il SAT (problema decisionale) in tempo polinomiale, dato il solo presupposto che P = NP - e nessuno dei due algoritmi lo fa .

L'avvertenza del ragionamento proposto risiede (come molto spesso) nella "facile esercitazione lasciata al lettore" - non sono stato in grado di provare me stesso l'esercizio e non credo che la sua affermazione sia vera, vale a dire:

Supponendo P = NP, ci sono dimensioni polinomiali che lo ZFC dimostra dell'insoddisfacibilità della data formula booleana.

Inoltre: non riesco a vedere come dimostrare l'esistenza di ZFC polinomialmente breve dimostra l'insoddisfazione sotto il presupposto (più forte) che "P = NP è dimostrabile in ZFC". Diventa facile comunque sotto presupposto ancora più forte, vale a dire:

(*) Esiste una macchina M in esecuzione in un tempo polinomiale che risolve in modo dimostrabile SAT.

E questo, credo, il presupposto corretto in base al quale il tuo algoritmo risolve SAT in tempo polinomiale. Sopra con "risolvebile SAT" intendo: esiste una macchina M e una prova ZFC che M risolve SAT.

Si noti che questo presupposto è ancora leggermente più debole di quello seguente: (**) Esiste la macchina M, che gira in modo dimostrabile in tempo polinomiale e risolve in modo dimostrabile SAT.

Sotto (**) si può avere una costruzione esplicita che raggiunge lo stesso obiettivo, che è ancora più semplice: enumerare tutte le prove ZFC fino a trovare la macchina corretta M (impiegando tempo costante), quindi eseguire M su una determinata istanza.

È vero, tuttavia, che sotto l'assunzione di P = NP esiste un sistema di prova polinomialmente verificabile con brevi prove di insoddisfacibilità di una determinata formula. Sfortunatamente non conosciamo né il sistema di prova né il verificatore in modo manuale, e non è utile in questa impostazione.

f1(x)

Si noti che questo schema si applica, ad esempio, al problema FACTORING; qui f è solo una moltiplicazione (definita solo per fattori diversi da \ pm 1) e B è un controllo di primarietà. Quindi la ricerca universale di Levins sarebbe (fino a un fattore costante) un algoritmo ottimale per FACTORING. Dato che l'algoritmo ottimale è più lento dell'algoritmo noto per il controllo della primarietà - nell'altro caso il controllo della primarietà diventa dominante.

NPcoNP


1
Se P = NP allora co-NP = co-P = P = NP. Quindi UNSATISFIABILITY è in NP, così ha testimoni di dimensioni polinomiali: non è necessario invocare una macchina di Turing. Non puoi convertire quel testimone in una prova ZFC che la formula non è soddisfacente? Non mi occupo dei meccanismi della prova ZFC, ma l'intuizione che ho ricevuto da vari luoghi è che, a meno che tu non abbia a che fare con "cose ​​strane", ZFC corrisponde a tutte le cose che pensavi di poter comunque provare, prima hai sentito parlare della teoria degli insiemi. Gli oggetti finiti come una formula booleana e un testimone polinomiale della sua insoddisfazione non sono probabilmente strani.
David Richerby,

Sì, se P = NP, allora UNSAT è in NP e ha un testimone dimensionale polinomiale. Vale a dire: testimone di dimensioni zero, tutto il lavoro è svolto dal verificatore, giusto? Ho solo un'idea in mente su come convertire questo testimone di dimensioni zero in ZFC per dimostrare l'insoddisfazione: dare una prova ZFC che la mia macchina risolve effettivamente UNSAT e quindi mostrare una corsa di questa macchina sulla formula - sarebbe una prova valida, e questo corrisponde al fatto che l'algoritmo proposto da OP funziona sotto (*). Ma cosa succederebbe se ci fosse una macchina complicata che riesce a risolvere SAT, ma questo fatto non è dimostrabile? Non che io creda che sia così
Jarosław Błasiok il

1
L'idea sbagliata a cui mi riferisco è: "se P = NP, allora Levins Universal Search fornisce l'algoritmo del tempo polinomiale che risolve il problema NP-completo" o come è talvolta affermato: "È impossibile avere solo una prova non costruttiva di P = NP, perché of Levins ". Entrambi sono falsi - la formulazione di Wikipedia presenta un metodo che si interrompe nel polytime su istanze YES di SUBSET SUM, ma non si ferma affatto sui casi NO - non è un algoritmo che decide la somma dei sottoinsiemi in polytime. La formulazione OP è migliore allo scopo, ma ha bisogno di un presupposto più forte di P = NP per decidere SAT nel tempo di trasmissione.
Jarosław Błasiok,

1
NPcoNP

1
Ora il modo di affrontarlo, dato che non si conosce esplicitamente il verificatore del problema di unSAT, sarebbe quello di provare a trovare una breve prova in una logica formale che già conosciamo e che possiamo verificare (siate assiomi ZFC o Peano - siamo più probabile trovare una breve prova nella prima), che questa istanza non è soddisfacente. Ma se si vuole dimostrare che esiste una prova così breve in questa logica formale, è necessario un presupposto più forte di P = NP.
Jarosław Błasiok,
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.