Se P = NP, potremmo ottenere prove della congettura di Goldbach ecc.?


35

Questa è una domanda ingenua, per mia competenza; scusa in anticipo.

La congettura di Goldbach e molte altre domande irrisolte in matematica possono essere scritte come brevi formule nel calcolo del predicato. Ad esempio, l'articolo di Cook "I computer possono scoprire regolarmente prove matematiche?" formula quella congettura come

n[(n>22|n)rs(P(r)P(s)n=r+s)]

Se limitiamo l'attenzione alle prove polinomialmente lunghe, i teoremi con tali prove sono in NP. Quindi se P = NP, potremmo determinare se, per esempio, la congettura di Goldbach è vera nel tempo polinomiale.

La mia domanda è: saremmo anche in grado di esibire una prova in tempo polinomiale?

Modifica . Secondo i commenti di Peter Shor e Kaveh, avrei dovuto qualificare la mia affermazione secondo cui potremmo determinare se la congettura di Goldbach è vera se in effetti è uno dei teoremi con una breve prova. Che ovviamente non lo sappiamo!


8
Innanzitutto, per esibire una breve (<1000 pagine?) Prova della congettura di Goldbach, ci deve essere una breve prova. P = NP non ha alcuna influenza su questo.
Peter Shor,

4
@Suresh, @Kaveh: sembra che ti sbagli di grosso. Qui abbiamo un'istanza concreta di un problema di ricerca NP. Il quantificatore che qui è rilevante è l'esistenza di una prova (in un sistema formale adatto) del teorema.
Kristoffer Arnsfelt Hansen,

2
Un'altra osservazione è che possiamo effettivamente scrivere un algoritmo, che se P = NP troverà una prova per una data affermazione se esiste nel tempo polinomiale nella lunghezza della frase e nella lunghezza della prova più breve. (questo polinomio è un limite che vale per tutti i teoremi), sarà comunque un algoritmo "astronomico".
Kristoffer Arnsfelt Hansen,

4
@Joe: No, posso davvero scrivere l'algoritmo proprio ora! (Anche non sapendo se P = NP). L'idea è quella che è conosciuta come la ricerca universale di Levin.
Kristoffer Arnsfelt Hansen,

4
@Kristoffer: Cool! Non sapevo di LS. Vedo che Marcus Hutter ha una sorta di improvvisazione su LS: "L'algoritmo più veloce e più breve per tutti i problemi ben definiti". International Journal of Foundations of Computer Science, 13 (3): 431-443, 2002.
Joseph O'Rourke,

Risposte:


27

Infatti!

Se P = NP, non solo possiamo decidere se esiste una prova della lunghezza n per la congettura di Goldbach (o qualsiasi altra affermazione matematica), ma possiamo anche trovarla in modo efficiente!

Perché? Perché possiamo chiederci: esiste una prova condizionata sul primo bit ..., quindi c'è una prova condizionata sui primi due bit ..., e così via ...

E come vorresti sapere n? Proverai tutte le possibilità, in ordine crescente. Quando facciamo un passo nella prima possibilità, proviamo anche un passo in ciascuna delle possibilità 1 .. (i-1).


3
L'algoritmo di ricerca universale di Levin non è questo?
Mohammad Al-Turkistany,

2
@turkistany: sì, lo è!
Dana Moshkovitz,

25

Dana ha risposto alla domanda. Ma ecco alcuni commenti sul lato pratico.

P=NPP=NPP=coNP

NPlP=NPl

P=NPllP=NPPDTime(n2)), quindi si può prendere questo algoritmo ed eseguirlo per verificare la presenza di prove di lunghezza fattibile ma molto grande che sarà più grande di qualsiasi prova che un essere umano possa mai inventare, e se l'algoritmo non trova una risposta, allora il la sentenza è praticamente impossibile da dimostrare. Il trucco citato da Dana funzionerà anche qui per trovare la prova.

Per mezzi pratici:

  1. P=NPDTime(10000n10000)

  2. troverà una prova solo se ce n'è una (cioè la frase non è una frase indecidibile in ZFC), inoltre la prova dovrebbe essere fattibile in breve.

  3. PNPNP=DTime(nlogn)


(n10)
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.