Seperti yang sering terjadi dengan pengurangan NP, masuk akal untuk mencari masalah yang sama . Secara khusus, sulit untuk menyandikan kondisi global seperti "telah melihat beberapa node" ke PCP (dengan banyak polinomi) yang merupakan kontraindikasi masalah grafik, masalah pengepakan akan mengharuskan kita untuk menyandikan angka unary di PCP (membuat instance secara eksponensial besar), dan begitu seterusnya. Oleh karena itu, masalah string dengan hanya pembatasan lokal dapat diharapkan berfungsi dengan baik.
Pertimbangkan versi keputusan dari masalah supersequensi umum terpendek :
Diberikan dua string dengan | a | = n dan | b | = m dan k ∈ N , tentukan apakah ada string c ∈ Σ + dengan | c | ≤ k sehingga a dan b adalah c .a,b∈Σ+|a|=n|b|=mk∈Nc∈Σ+|c|≤kabc
Idenya adalah untuk membiarkan PCP membangun supersequences dan b dari kiri ke kanan, mengkodekan tumpang tindih ubin 'di mana posisi kita berada di a dan b , masing-masing. Ini akan menggunakan satu ubin per simbol dalam c , jadi k sesuai dengan batas BPCP: jika kita dapat menyelesaikan PCP ini dengan ubin ≤ k , Anda dapat membaca supersekuensinya dengan panjang yang sama, dan sebaliknya.ababck≤k
Konstruksi ubin agak membosankan, tetapi cukup jelas. Perhatikan bahwa kami tidak akan membuat petak yang tidak meneruskan atau b ; seperti itu tidak pernah bisa menjadi bagian dari supersequence umum terpendek , sehingga mereka berlebihan. Mereka dapat dengan mudah ditambahkan tanpa merusak sifat reduksi.ab
Angka-angka dalam tumpang tindih dikodekan dalam biner, tetapi menggunakan simbol di luar dan padding ke panjang log maks yang sama ( m , n ) . Dengan demikian kami memastikan bahwa ubin digunakan seperti yang disarankan oleh grafis (tetris), yaitu karakter dan tumpang tindih pengindeksan indeks tidak bercampur (PCP tidak mencegah hal ini per se). Kita butuh:Σlogmax(m,n)
- Mulai ubin: dapat memulai dengan sebuah 1 , b 1 atau keduanya jika mereka sama.ca1b1
- Ubin perantara: dapat melanjutkan dengan simbol berikutnya dalam a , dalam b atau keduanya jika keduanya sama.cab
- Mengakhiri ubin: berakhir dengan simbol terakhir dari a (jika yang terakhir dari b sudah terlihat), mirip dengan b , atau dengan simbol terakhir dari keduanya.cabb
Ini adalah skema ubin. Perhatikan bahwa ubin perantara harus dipakai untuk semua pasangan . Seperti disebutkan di atas, buat ubin tanpa ∗ hanya jika masing-masing karakter dalam a dan b cocok.(i,j)∈[n]×[m]∗ab
[ sumber ]
The adalah simbol untuk "tidak peduli"; pada ubin sebenarnya, simbol lain harus disalin di sana. Perhatikan bahwa jumlah ubin dalam Θ ( m n ) dan setiap ubin memiliki panjang 4 log maks ( m , n ) + 1 , sehingga instance BPCP yang dibuat (lebih dari alfabet Σ ∪ { 0 , 1 }∗Θ(mn)4logmax(m,n)+1Σ∪{0,1}plus simbol pemisahan) memiliki ukuran polinom. Lebih jauh, konstruksi setiap ubin jelas dimungkinkan dalam waktu polinomial. Oleh karena itu, pengurangan yang diusulkan memang merupakan transformasi polinomial yang valid yang mengurangi masalah supersequensi umum terpendek NP-lengkap menjadi BPCP.