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?P≠NPP=NP


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 P≠NP algoritme berjalan dalam waktu eksponensial.


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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.