Algoritma yang menjalankan waktu tergantung pada P vs NP

18

Adakah yang diketahui, contoh eksplisit dari suatu algoritma dengan properti sedemikian sehingga jika maka algoritma ini tidak berjalan dalam waktu polinomial dan jika maka ia berjalan dalam waktu polinomial?PNPP=NP

pengguna2925716
sumber
9
Semacam. Jika P = NP, algoritma pencarian universal Levin berjalan dalam waktu polinomial untuk menerima instance en.wikipedia.org/wiki/…
Emil Jeřábek mendukung Monica
@ Emil: jika P = NP maka juga P = coNP, jadi tidak bisakah Anda secara bersamaan melakukan pencarian Levin pada pelengkap bahasa Anda, sehingga memberikan algoritma waktu yang benar-benar poly pada semua contoh?
Joshua Grochow
3
@ JoshuaGrochow Untuk mengekspresikan bahasa sebagai coNP, saya perlu terlebih dahulu mengetahui algoritma polytime untuk NP, mengalahkan seluruh tujuan.
Emil Jeřábek mendukung Monica

Jawaban:

17

Jika Anda berasumsi bahwa dapat dibuktikan dalam PA (atau ZFC), contoh sepele adalah sebagai berikut:P=?NP

Input: N   (integer in binary format)
For I = 1 to N do
begin
  if I is a valid encoding of a proof of P = NP in PA (or ZFC)
    then halt and accept
End
Reject

Contoh lain - kurang sepele - yang tidak bergantung pada asumsi adalah sebagai berikut:

Input: x   (boolean formula)
Find the minimum i such that
  1) |M_i| < log(log(|x|))  [ M_1,M_2,... is a standard fixed TM enumeration] 
  2) and  M_i solves SAT correctly 
       on all formulas |y| < log(log(|x|))
          halting in no more than |y|^|M_i| steps
          [ checkable in polynomial time w.r.t. |x| ]
  if such i exists simulate M_i on input x 
      until it stops and accept/reject according to its output
      or until it reaches 2^|x| steps and in this case reject;
  if such i doesn't exist loop for 2^|x| steps and reject.

Jika P=NP algoritme akan segera atau lambat - misalkan pada input x0 - cari indeks waktu polinomial mesin Turing (atau versi empuknya) MSAT yang memecahkan SAT dalam O(|x||MSAT|) dan untuk semua input yang lebih besar dari x0 akan terus mensimulasikan dan menghentikannya dalam waktu polinomial (perhatikan bahwa langkah 2 juga dapat diperiksa dalam waktu polinomial). Dengan kata lain jika P=NP Algoritma memecahkan SAT dalam waktu polinomial pada semua kecuali sejumlah contoh.

Jika PNP algoritme berjalan dalam waktu eksponensial.

Marzio De Biasi
sumber
Bagaimana saya memutuskan dengan cepat apakah "Saya adalah penyandian yang valid dari bukti P = NP dalam PA (atau ZFC)"?
user2925716
saya
2
Asumsi tinggi.
Jirka Hanika
1
Jika P ≠ NP, runtime dari algoritma tanpa syarat adalah superpolynomial (seperti yang diminta), tetapi jika NP hanya sedikit superpolynomial, bukan eksponensial. Kita dapat mengubah algoritma untuk membuatnya io-eksponensial, tetapi terbukti membuatnya eksponensial (bukan hanya io-eksponensial) jika P ≠ NP kemungkinan sama sulitnya dengan menyelesaikan P = NP.
Dmytro Taranovsky
1
x|M.saya|2x