Saya akan menggunakan angka mulai dari daripada , karena saya merasa jauh lebih alami.01
Berikut adalah dua kelas masalah yang bisa kita pecahkan dengan cara ini:
Fungsi dalam TFNP (yaitu, masalah pencarian NP total bernilai tunggal)
(Ini menggeneralisasi contoh dengan permutasi satu arah. Ini termasuk sebagai masalah keputusan kasus khusus dari .)UP∩coUP
Pengaturannya adalah bahwa kita memiliki predikat waktu polinomial , dan polinom sedemikian rupa sehingga untuk setiap panjang , terdapat unik panjang sedemikian rupa sehingga bertahan. Tugas komputasi, diberikan , temukan .R(x,y)p(n)xnym=p(n)R(x,y)xy
Sekarang, saya akan menganggap wlog bahwa adalah genap, sehingga . Algoritma ini untuk menghasilkan acak acak , dan outputm2m≡1(mod3)y∈[0,2m)
y (sebagai solusi dari masalah pencarian) jika ;R(x,y)
y−y′ (sebagai elemen acak dari ) jika , dan ;{0,1,2}y−y′∈{1,2}R(x,y′)
ymod3 (sebagai elemen acak dari ) jika tidak ada memecahkan .{0,1,2}y′∈{y,y−1,y−2}R(x,y′)
Jika tidak ada solusi dari masalah pencarian, pilihan acak akan memberikan dan kali, dan kali (satu lagi). Namun, jika menyelesaikan masalah pencarian, kami mengutak-atik elemen (yang mengenai ketiga kelas residu) sehingga mereka hanya menghasilkan residu dan , yang meratakan keunggulan . (Saya berasumsi di sini wlog bahwa .)2m12 (2m−1)/30 (2m+2)/3yy,y+1,y+2120y<2m−2
PPA- masalah pencarian3
Cara mudah untuk mendefinisikan PPA- adalah sebagai masalah pencarian NP banyak orang dapat direduksi ke jenis masalah berikut. Kami memiliki fungsi waktu polinomial tetap , dan polinomial , sehingga untuk setiap input panjang , pemetaan yang diinduksi terbatas pada input panjang adalah fungsi memuaskan untuk setiap . Tugasnya adalah, diberikan , temukan fixpoint dari : .3f(x,y)p(n)xnfx(y)=f(x,y)ym=p(n)fx:[0,2m)→[0,2m)fx(fx(fx(y)))=yyxyfxfx(y)=y
Kita dapat menyelesaikan ini dengan cara pada pertanyaan sebagai berikut: diberikan panjang , kita menghasilkan acak panjang , dan outputxnym=p(n)
y jika ini adalah fixpoint dari ;fx
jika tidak, , , dan adalah elemen yang berbeda. Kita dapat melabeli mereka sebagai dengan , dan output sedemikian rupa sehingga .yfx(y)fx(fx(y)){y,fx(y),fx(fx(y))}={y0,y1,y2}y0<y1<y2i∈{0,1,2}y=yi
Jelas dari definisi bahwa ini memberikan distribusi yang seragam pada , karena titik non-fix datang tiga kali lipat.{0,1,2}y
Biarkan saya tunjukkan untuk catatan kesetaraan masalah di atas dengan masalah lengkap Papadimitriou untuk PPA- , karena kelas ini sebagian besar diabaikan dalam literatur. Masalahnya disebutkan dalam Buss, Johnson: "Bukti proposisi dan pengurangan antara masalah pencarian NP", tetapi mereka tidak menyatakan kesetaraan. Untuk PPA, masalah serupa (LONELY) diberikan dalam Beame, Cook, Edmonds, Impagliazzo, dan Pitassi: "Kompleksitas relatif masalah pencarian NP". Tidak ada yang istimewa dari , argumen di bawah ini berfungsi secara mutatis mutandis untuk setiap prime aneh.33
Proposisi: Masalah pencarian NP berikut ini banyak waktu-satu dapat direduksi satu sama lain:
Diberikan sirkuit yang mewakili grafik tidak berarah bipartit , dan simpul yang derajatnya tidak dapat dibagi oleh , temukan simpul lain seperti itu.(A∪B,E)u∈A∪B3
Diberikan sirkuit yang merepresentasikan grafik berarah , dan simpul yang derajat keseimbangannya (yaitu, out-degree minus in-degree) tidak dapat dibagi dengan , temukan verteks semacam itu.(V,E)u∈V3
Dengan sirkuit yang menghitung fungsi sedemikian rupa sehingga , temukan titik fix dari .f:[0,2n)→[0,2n)f3=idf
Bukti:
1≤p2 jelas, karena cukup untuk mengarahkan tepi dari kiri ke kanan.
2≤p1 : Pertama, mari kita buat grafik bipartit berbobot. Biarkan dan menjadi salinan : , . Untuk setiap tepi asli , kami menempatkan tepi dari bobot , dan sebuah tepi dari bobot . Ini membuat sama dengan keseimbangan derajat dalam grafik asli. Jika adalah titik keseimbangan yang diberikan , kami menambahkan tepi ekstra dari beratABVA={xA:x∈V}B={xB:x∈V}x→y{xA,yB}1{xB,yA}−1deg(xA)=−deg(xB)xub≢0(mod3){uA,uB}b, sehingga , dan . akan menjadi simpul pilihan kami.deg(uA)=2b≢0(mod3)deg(uB)=0uA
Untuk membuat grafik menjadi grafik tanpa arah polos tanpa bobot, pertama-tama kita mengurangi semua modulo bobot , dan menjatuhkan semua tepi bobot . Ini hanya menyisakan tepi bobot dan . Yang terakhir dapat diganti dengan gadget yang sesuai. Misalnya, alih-alih berat tepi , kami menyertakan simpul baru , untuk , dengan tepi , , , , : ini membuat30122{xA,yB}wAizBii=0,…,3{xA,yB}{xA,zBi}{wAi,yB}{wAi,zBi}{wAi,zB(i+1)mod4}deg(wAi)=deg(zBi)=3, Dan memberikan kontribusi ke dan .5≡2(mod3)xAyB
3≤p2 : Biarkan saya berasumsi untuk kesederhanaan adalah bahkan . Kami membuat grafik terarah pada sebagai berikut:n2n≡1(mod3)V=[0,2n)
Kami menyertakan tepian dan untuk setiap .3x+1→3x3x+2→3xx<2n/3−1
Jika adalah orbit non-fixpoint dari , kami menyertakan tepi dan .x0<x1<x2fx0→x1x0→x2
Titik puncak yang dipilih adalah . Klausa pertama menyumbang saldo atau untuk setiap simpul . Demikian juga, klausa kedua berkontribusi saldo atau untuk simpul yang bukan titik fix. Dengan demikian, dengan asumsi belum menjadi fixpoint, itu memang modulo tidak seimbang , dan modulo tidak seimbang simpul lainnya adalah fixpoint dari .u=2n−11−2≡1(mod3)≠u−12≡−1(mod3)u33f
1≤p3 : Kita dapat mengasumsikan bahwa dengan genap, dan simpul diberikan memiliki derajat .A=B=[0,2n)nu∈A≡2(mod3)
Kita dapat secara efisien melabeli insiden tepi dengan simpul sebagai , di mana . Dengan cara ini, menjadi himpunan bagian dari , yang kami identifikasikan dengan . Kami mendefinisikan fungsi pada sebagai berikut.y∈B(y,j)j<deg(y)E[0,2n)×[0,2n)[0,22n)f[0,2n)×[0,2n)
Pada komplemen : untuk setiap , dan sehingga , kita membuat , , . Juga, , , untuk . Ini menghilangkan poin , dan poin untuk setiap yang derajatnya tidak dapat dibagi oleh .Ey∈Bjdeg(y)≤3j<2n−1f(y,3j)=(y,3j+1)f(y,3j+1)=(y,3j+2)f(y,3j+2)=(y,3j)f(3i,2n−1)=(3i+1,2n−1)f(3i+1,2n−1)=(3i+2,2n−1)f(3i+2,2n−1)=(3i,2n−1)3i<2n−1(2n−1,2n−1)3−(deg(y)mod3)(y,i)y∈B3
Pada : untuk setiap , kami memperbaiki enumerasi tepi insiden yang efisien , di mana . Kami menempatkan , , untuk . Ini meninggalkan poin untuk setiap simpul yang derajatnya tidak dapat dibagi oleh .Ex∈A(y0,j0),…,(yd−1,jd−1)d=deg(x)f(y3i,j3i)=(y3i+1,j3i+1)f(y3i+1,j3i+1)=(y3i+2,j3i+2)f(y3i+2,j3i+2)=(y3i,j3i)i<⌊d/3⌋deg(x)mod3x∈A3
Karena , dua dari tepi insidennya ditinggalkan; kita membuatnya menjadi siklus lagi menggunakan sebagai poin ketiga. Poin yang tersisa dibiarkan sebagai fixpoints dari . Dengan konstruksi, salah satu dari mereka akan memunculkan solusi (1).deg(u)≡2(mod3)f(2n−1,2n−1)f