Masalah keputusan vs masalah "nyata" yang tidak ya-atau-tidak


36

Saya membaca di banyak tempat bahwa beberapa masalah sulit untuk diperkirakan ( sulit untuk memperkirakannya ). Tetapi pendekatan bukanlah masalah keputusan: jawabannya adalah bilangan real dan bukan Ya atau Tidak. Juga untuk setiap faktor perkiraan yang diinginkan, ada banyak jawaban yang benar dan banyak yang salah, dan ini berubah dengan faktor perkiraan yang diinginkan!

Jadi bagaimana orang bisa mengatakan bahwa masalah ini NP-hard?

(Terinspirasi oleh peluru kedua di Seberapa sulit menghitung jumlah jalur sederhana antara dua node dalam grafik terarah? )

Jawaban:


27

Seperti yang Anda katakan, tidak ada keputusan untuk dibuat, sehingga kelas kompleksitas baru dan jenis pengurangan baru diperlukan untuk sampai pada definisi NP-hardness yang tepat untuk masalah optimisasi .

Salah satu cara untuk melakukan ini adalah memiliki dua kelas baru NPO dan PO yang berisi masalah optimasi dan mereka tentu saja meniru kelas NP dan P untuk masalah keputusan. Pengurangan baru juga dibutuhkan. Kemudian kita dapat membuat ulang versi NP-hardness untuk masalah optimasi di sepanjang garis yang berhasil untuk masalah keputusan. Tetapi pertama-tama kita harus setuju apa masalah optimasi .

Definisi: Misalkan O=(X,L,f,opt) menjadi optimasi-masalah . X adalah himpunan input atau instance yang cocok dikodekan sebagai string. L adalah fungsi yang memetakan setiap instance xX ke serangkaian string, solusi yang layak dari instance x . Ini adalah himpunan karena ada banyak solusi untuk masalah optimasi. Jadi kita haven sebuah fungsi objektif f yang memberitahu kita untuk setiap pasangan (x,y) yL(x) contoh dan solusibiayaataunilainya. opt memberitahu kita apakah kita memaksimalkan atau meminimalkan.

Ini memungkinkan kita untuk menentukan apa solusi optimal : Biarkan yoptL(x) menjadi solusi optimal dari instance xX dari masalah optimasi O=(X,L,f,opt) dengan

f(x,yopt)=opt{f(x,y)yL(x)}.
Solusi optimal sering dilambangkan dengany .

Sekarang kita dapat mendefinisikan kelas NPO : Misalkan NPO adalah himpunan semua masalah optimasi O=(X,L,f,opt) dengan:

  1. XP
  2. Ada polinomial pdengan |y|p(|x|) untuk semua instance xX dan semua solusi yang layak yL(x) . Selanjutnya ada algoritma deterministik yang memutuskan dalam waktu polinomial apakah yL(x) .
  3. f dapat dievaluasi dalam waktu polinomial.

Intuisi di baliknya adalah:

  1. Kami dapat memverifikasi secara efisien jika x sebenarnya adalah contoh valid dari masalah optimasi kami.
  2. Ukuran solusi yang layak dibatasi secara polinomi dalam ukuran input, dan kita dapat memverifikasi secara efisien jika yL(x) adalah solusi fesible dari instance x .
  3. Nilai solusi yL(x) dapat ditentukan secara efisien.

Ini mencerminkan bagaimana NP didefinisikan, sekarang untuk PO : Misalkan PO adalah himpunan semua masalah dari NPO yang dapat diselesaikan dengan algoritma deterministik dalam waktu polinomial.

Sekarang kita dapat mendefinisikan apa yang ingin kita sebut pendekatan-algoritma : Sebuah pendekatan-algoritma dari optimasi-masalah adalah sebuah algoritma yang menghitung solusi yang layak y L ( x ) untuk sebuah contoh x x .O=(X,L,f,opt)yL(x)xX

Catatan: Bahwa kami tidak meminta solusi optimal, kami hanya memiliki apa yang layak .

Sekarang kita memiliki dua jenis kesalahan: Kesalahan absolut dari solusi yang layak dari instance x X dari optimasi-masalah O = ( X , L , f , o p t ) adalah | f ( x , y ) - f ( x , y ) | .yL(x)xXO=(X,L,f,opt)|f(x,y)f(x,y)|

Kami menyebut kesalahan absolut dari algoritme aproksimasi untuk masalah optimasi O yang dibatasi oleh k jika algoritma A menghitung untuk setiap instance x X solusi yang layak dengan kesalahan absolut yang dibatasi oleh k .AOkAxXk

Contoh: Menurut Teorema Vizing yang indeks kromatik dari grafik (jumlah warna di tepi mewarnai dengan jumlah paling sedikit warna yang digunakan) adalah salah atau Δ + 1 , di mana Δ adalah derajat maksimal simpul. Dari pembuktian teorema, suatu algoritma-aproksimasi dapat dirancang yang menghitung pewarnaan tepi dengan Δ + 1 warna. Oleh karena itu kami memiliki algoritma-aproksimasi untuk M i n i m u m - E d g e C o l o r i nΔΔ+1ΔΔ+1 -Masalah di mana kesalahan absolut dibatasi oleh 1 .MinimumEdgeColoring1

Contoh ini merupakan pengecualian, kesalahan absolut kecil jarang terjadi, jadi kami mendefinisikan kesalahan relatif dari aproksimasi-algoritma A pada contoh x dari masalah optimasi O = ( X , L , f , o p t ) dengan f ( x , y ) > 0 untuk semua x X dan y L ( x ) menjadiϵA(x)AxO=(X,L,f,opt)f(x,y)>0xXyL(x)

ϵA(x):={0f(x,A(x))=f(x,y)|f(x,A(x))f(x,y)|max{f(x,A(x)),f(x,y)}f(x,A(x))f(x,y)

di mana adalah solusi yang layak dihitung dengan pendekatan-algoritma A .A(x)=yL(x)A

Kita sekarang dapat menentukan pendekatan-algoritma untuk optimasi-masalah O = ( X , L , f , o p t ) menjadi δ -approximation-algoritma untuk O jika kesalahan relatif ε A ( x ) dibatasi oleh δ 0 untuk setiap instance x X , dengan demikian ϵ A ( x ) δAO=(X,L,f,opt)δOϵA(x)δ0xX

ϵA(x)δxX.

Pilihan dalam penyebut definisi kesalahan relatif dipilih untuk membuat definisi simetris untuk memaksimalkan dan meminimalkan. Nilai kesalahan relatif ϵ A ( x ) [ 0 , 1 ] . Dalam hal masalah pemaksimalan, nilai solusi tidak pernah kurang dari ( 1 - ϵ A ( x )max{f(x,A(x)),f(x,y)}ϵA(x)[0,1] dan tidak pernah lebih besar dari 1 / ( 1 - ϵ A ( x ) ) f ( x , y ) untuk masalah meminimalkan.(1ϵA(x))f(x,y)1/(1ϵA(x))f(x,y)

Sekarang kita dapat memanggil masalah optimasi -dapat diperkirakan jika ada δ -aproksimasi-algoritma A untuk O yang berjalan dalam waktu polinomial.δδAO

Kami tidak ingin melihat kesalahan untuk setiap instance , kami hanya melihat pada kasus terburuk. Jadi kita mendefinisikan ϵ A ( n ) , kesalahan relativ maksimal aproksimasi-algoritma A untuk optimisasi-masalah O menjadi ϵ A ( n ) = sup { ϵ A ( x ) | x | n } .xϵA(n)AO

ϵA(n)=sup{ϵA(x)|x|n}.

Dimana harus menjadi ukuran instance.|x|

Contoh: Pencocokan maksimal dalam grafik dapat ditransformasikan menjadi penutup simpul minimal dengan menambahkan semua simpul insiden dari pencocokan ke penutup simpul. Jadi 1 / 2 | C | ujung-ujungnya tertutup. Karena setiap penutup vertex termasuk optimal seseorang harus memiliki salah satu node dari setiap tepi tertutup, jika tidak maka dapat ditingkatkan, kami memiliki 1 / 2 | C | f ( x , y ) . Oleh karena itu | C | - f ( x , y C1/2|C|1/2|C|f(x,y) Jadi algoritma serakah untuk pencocokan maksimal adalah1/2-approximatio-algoritma untukMinimal-VertexCover. Oleh karena ituMinimal-VertexCoveradalah1/2-approximable.

|C|f(x,y)|C|12
1/2MinimalVertexCoverMinimalVertexCover1/2

Sayangnya kesalahan relatif tidak selalu merupakan gagasan kualitas terbaik untuk perkiraan seperti contoh berikut ini menunjukkan:

Contoh: Algoritma serakah yang sederhana dapat mendekati . Analisis menunjukkan bahwa | C |MinimumSetCoverdan dengan demikianMinimum-SetCoverakan menjadiln(n)

|C||C|Hn1+ln(n)
MinimumSetCover -dapat diperkirakan.ln(n)1+ln(n)

Jika kesalahan relatif mendekati , definisi berikut ini menguntungkan.1

Mari menjadi optimasi-masalah dengan f ( x , y ) > 0 untuk semua x X dan y L ( x ) dan A sebuah pendekatan-algoritma untuk O . The pendekatan-rasio r A ( x ) dari solusi yang layak A ( x ) = yO=(X,L,f,opt)f(x,y)>0xXyL(x)AO rA(x) dari instance x X adalah r A ( x ) = { 1 f ( x , A ( x ) ) = f ( x , y ) maks { f ( x , A ( x ) )A(x)=yL(x)xX

rA(x)={1f(x,A(x))=f(x,y)max{f(x,A(x))f(x,y),f(x,y)f(x,A(x))}f(x,A(x))f(x,y)

Seperti sebelumnya kita sebut perkiraan-algoritma sebuah r -approximation-algoritma untuk optimasi-masalah O jika pendekatan-rasio r A ( x ) dibatasi oleh r 1 untuk setiap masukan x X . r A ( x ) r Dan lagi-lagi jika kita memiliki r -approximation-algoritma A untuk optimasi-masalah O maka O disebut r -approximableArOrA(x)r1xX

rA(x)r
rAOOr. Sekali lagi kami hanya peduli pada kasus terburuk dan mendefinisikan aproksimasi-rasio maksimal menjadi r A ( n ) = sup { r A ( x ) | x | n } . Dengan demikian, aproksimasi-rasio lebih besar dari 1 untuk solusi suboptimal. Dengan demikian solusi yang lebih baik memiliki rasio yang lebih kecil. Untuk M i n i m u m - S e t C orA(n)
rA(n)=sup{rA(x)|x|n}.
1 kita sekarang dapat menulis bahwa itu adalah ( 1 + ln ( n ) ) -approximable. Dan dalam kasus M i n i m u m - V e r t e x C o v e r kita tahu dari contoh sebelumnya bahwa itu 2-tak dapat diperkirakan. Antara kesalahan relatif dan aproksimasi-rasio kami memiliki hubungan sederhana: r A ( x ) = 1MinimumSetCover(1+ln(n))MinimumVertexCover2
rA(x)=11ϵA(x)ϵA(x)=11rA(x).

Untuk penyimpangan kecil dari optimal dan r < 2 kesalahan relatif menguntungkan atas pendekatan-rasio, yang menunjukkan kekuatan untuk penyimpangan besar ε 1 / 2 dan r 2 .ϵ<1/2r<2ϵ1/2r2

Dua versi -approximable tidak tumpang tindih karena satu versi selalu α 1 dan yang lainnya α 1 . Kasus α = 1 tidak bermasalah karena ini hanya dicapai oleh algoritma yang menghasilkan solusi yang tepat dan akibatnya tidak perlu diperlakukan sebagai algoritma perkiraan.αα1α1α=1

Kelas lain sering muncul APX . Hal ini mendefinisikan sebagai himpunan semua optimasi-masalah dari N P O yang haven sebuah r -approximation-algoritma dengan r 1 yang berjalan dalam waktu polinomial.ONPOrr1

Kita hampir lewat. Kami ingin menyalin ide sukses reduksi dan kelengkapan dari teori kompleksitas. Pengamatan adalah bahwa banyak varian keputusan sulit dari optimasi-masalah dapat direduksi satu sama lain sementara varian optimasi mereka memiliki sifat yang berbeda mengenai perkiraannya. Hal ini disebabkan oleh pengurangan waktu polinomial-Karp yang digunakan dalam pengurangan kelengkapan NP, yang tidak mempertahankan fungsi objektif. Dan bahkan jika fungsi objektif dipertahankan, pengurangan waktu polinomial-Karp dapat mengubah kualitas solusi.

Yang kita butuhkan adalah versi reduksi yang lebih kuat, yang tidak hanya memetakan instance dari optimasi-masalah ke instance O 2 , tetapi juga solusi yang baik dari O 2 kembali ke solusi yang baik dari O 1 .O1O2O2O1

Oleh karena itu kita mendefinisikan pendekatan-melestarikan-pengurangan selama dua optimasi-masalah dan O 2 = ( X 2 , L 2 , f 2 , o p t 2 ) dari N P O . Kami menyebutnya O 1 A P-dapat direduksi menjadi O 2O1=(X1,L1,f1,opt1)O2=(X2,L2,f2,opt2)NPOO1 APO2, ditulis sebagai , jika ada dua fungsi g dan h dan konstanta c dengan:O1APO2ghc

  1. untuk semua x 1X 1 dan rasional r > 1g(x1,r)X2x1X1r>1
  2. jika L 1 ( x 1 ) untuk semua x 1X 1 dan rasional r > 1L2(g(x,r1))L1(x1)x1X1r>1
  3. untuk semua x 1X 1 dan rasional r > 1 dan untuk semua y 2L 2 ( g ( x 1 , r ) )h(x1,y2,r)L1(x1)x1X1r>1y2L2(g(x1,r))
  4. Untuk tetap, kedua fungsi g dan h dapat dihitung dengan dua algoritma dalam waktu polinomial dalam panjang inputnya.rgh
  5. Kami memiliki untuk semua x 1X 1 dan rasional r > 1 dan untuk semua y 2
    f2(g(x1,r),y2)rf1(x1,h(x1,y2,r))1+c(r1)
    x1X1r>1y2L2(g(x1,r))

Dalam definisi ini dan h tergantung pada kualitas solusi r . Jadi untuk kualitas yang berbeda fungsi dapat berbeda. Keumuman ini tidak selalu diperlukan dan kami hanya bekerja dengan g ( x 1 ) dan h ( x 1 , y 2 ) .ghrg(x1)h(x1,y2)

Sekarang kita memiliki gagasan pengurangan untuk masalah optimasi, kita akhirnya dapat mentransfer banyak hal yang kita ketahui dari teori kompleksitas. Sebagai contoh jika kita tahu bahwa dan kita menunjukkan bahwa O 1 A P O 2 maka O 1A P X juga.O2APXO1APO2O1APX

Akhirnya kita dapat mendefinisikan apa yang kita maksud dengan -hard dan C -complete untuk masalah optimasi:CC

Mari menjadi optimasi-masalah dari N P O dan C kelas optimasi-masalah dari N P O kemudian O disebut C -Hard terhadap A P jika untuk semua O 'C O ' A P O memegang .ONPOCNPOOCAPOC OAPO

Jadi sekali lagi kita memiliki gagasan tentang masalah yang paling sulit di kelas. Tidak mengherankan sebuah -HardC masalah disebut -Lengkap terhadap A P jika itu adalah unsur C .CAPC

NPOAPXNPOSATWeightedSatisfiabilityNPOMaximum3SATAPX


11
Oh dan tolong terima permintaan maaf saya untuk posting yang relatif panjang ini, tetapi saya tidak punya waktu untuk menulis yang lebih pendek.
uli

1
garis pukulan tentu saja adalah bahwa dengan teorema PCP Anda dapat menautkan MAX3SAT dan SAT, sehingga menunjukkan bahwa NP-sulit untuk memperkirakan MAX 3SAT lebih baik daripada beberapa konstanta. Itu setara dengan teorema Cook-Levin, dalam arti tertentu.
Suresh

1
@ Suresh Tentu saja, tapi hasil ini yang Anda sebutkan membutuhkan pengurangan kesenjangan-menjaga sejauh yang saya ingat. Dan seperti yang sudah Anda tulis tentang mereka di posting Anda, saya tidak ingin menduplikasi mereka di sini.
uli

Jawaban bagus, +1! Saya ingin tahu apakah jawaban Anda didasarkan pada beberapa referensi?
Tim

@Tim Tentu saja ada buku, saya mencantumkan beberapa di komentar dari jawaban
uli

19

Biasanya yang ditampilkan adalah NP-hardness dari versi "Gap" masalah. Misalnya, Anda ingin menunjukkan bahwa sulit untuk memperkirakan SET COVER hingga dalam faktor 2.

Anda menetapkan contoh "janji" SET COVER yang akan kami panggil 2-GAP-SET-COVER:

  • 2

Misalkan kita menunjukkan bahwa masalah dalam memutuskan mana dari dua kasus yang menjadi masalah adalah NP-complete. Kemudian kami telah menunjukkan bahwa mendekati SET COVER ke dalam faktor 2 adalah NP-hard, karena kita bisa menggunakan algoritma seperti itu untuk membedakan kedua kasus ini.


4

Dua jawaban yang ada sangat informatif tetapi saya tidak berpikir salah satu dari mereka benar-benar menjawab pertanyaan, yaitu, "Bagaimana masalah yang bahkan bukan masalah keputusan menjadi NP-hard, ketika NP adalah kelas masalah keputusan ? "

LLL

Beberapa contoh.

  1. LLLL
  2. #SAT adalah masalah menghitung jumlah penugasan yang memuaskan ke rumus CNF. Jelas bukan dalam NP karena, seperti yang Anda amati, NP adalah kelas masalah keputusan dan #SAT bukan salah satunya. Namun, #SAT adalah NP-hard di bawah pengurangan Turing polinomial-waktu karena kita dapat mengurangi SAT untuk itu. Diberikan contoh SAT, kami bertanya berapa banyak tugas yang memuaskan ada: jika ada setidaknya satu, kita mengatakan "memuaskan"; jika tidak, "tidak memuaskan".
  3. φφφφ=φ(Z1Z10)Ziφφφφφ
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.