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 x∈X 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) y∈L(x) contoh dan solusibiayaataunilainya. opt memberitahu kita apakah kita memaksimalkan atau meminimalkan.
Ini memungkinkan kita untuk menentukan apa solusi optimal : Biarkan yopt∈L(x) menjadi solusi optimal dari instance x∈X dari masalah optimasi O=(X,L,f,opt) dengan
f(x,yopt)=opt{f(x,y′)∣y′∈L(x)}.
Solusi optimal sering dilambangkan dengan
y∗ .
Sekarang kita dapat mendefinisikan kelas NPO : Misalkan NPO adalah himpunan semua masalah optimasi O=(X,L,f,opt) dengan:
- X∈P
- Ada polinomial pdengan |y|≤p(|x|) untuk semua instance x∈X dan semua solusi yang layak y∈L(x) . Selanjutnya ada algoritma deterministik yang memutuskan dalam waktu polinomial apakah y∈L(x) .
- f dapat dievaluasi dalam waktu polinomial.
Intuisi di baliknya adalah:
- Kami dapat memverifikasi secara efisien jika x sebenarnya adalah contoh valid dari masalah optimasi kami.
- Ukuran solusi yang layak dibatasi secara polinomi dalam ukuran input, dan kita dapat memverifikasi secara efisien jika y∈L(x) adalah solusi fesible dari instance x .
- Nilai solusi y∈L(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)y∈L(x)x∈X
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 ∗ ) | .y∈L(x)x∈XO=(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 .AOkAx∈Xk
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 .Minimum−EdgeColoring1
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ϵSEBUAH( x )SEBUAHxO = ( X, L , f, O p t )f( x , y) > 0x ∈ Xy∈ L ( x )
ϵSEBUAH( x ) : = { 0| f(x,A(x))−f(x,y∗)|max{f(x,A(x)),f(x,y∗)}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)=y∈L(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)δ≥0x∈X
ϵA(x)≤δ∀x∈X.
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
ϵSEBUAH( n ) = sup { ϵSEBUAH(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/2Minimal−VertexCoverMinimal−VertexCover1/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 |Minimum−SetCoverdan dengan demikianMinimum-SetCoverakan menjadiln(n)
|C||C∗|≤Hn≤1+ln(n)
Minimum−SetCover -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) > 0x ∈ Xy∈ L ( x )SEBUAHHAI rSEBUAH( x ) dari instance x ∈ X adalah
r A ( x ) = { 1 f ( x , A ( x ) ) = f ( x , y ∗ ) maks { f ( x , A ( x ) )A ( x ) = y∈ L ( x )x ∈ X
rSEBUAH(x)={1max{f(x,A(x))f(x,y∗),f(x,y∗)f(x,A(x))}f(x,A(x))=f(x,y∗)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)r≥1x∈X
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 ) = 1Minimum−SetCover(1+ln(n))Minimum−VertexCover2rA(x)=11−ϵA(x)ϵA(x)=1−1rA(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/2r≥2
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.ONPOrr≥1
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:O1≤APO2ghc
- untuk semua x 1 ∈ X 1 dan rasional r > 1g(x1,r)∈X2x1∈X1r>1
- jika L 1 ( x 1 ) ≠ ∅ untuk semua x 1 ∈ X 1 dan rasional r > 1L2(g(x,r1))≠∅L1(x1)≠∅x1∈X1r>1
- untuk semua x 1 ∈ X 1 dan rasional r > 1 dan untuk semua y 2 ∈ L 2 ( g ( x 1 , r ) )h(x1,y2,r)∈L1(x1)x1∈X1r>1y2∈L2(g(x1,r))
- Untuk tetap, kedua fungsi g dan h dapat dihitung dengan dua algoritma dalam waktu polinomial dalam panjang inputnya.rgh
- Kami memiliki untuk semua x 1 ∈ X 1 dan rasional r > 1 dan untuk semua y 2
f2(g(x1,r),y2)≤r⇒f1(x1,h(x1,y2,r))≤1+c⋅(r−1)
x1∈X1r>1y2∈L2(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 1 ∈ A P X juga.O2∈APXO1≤APO2O1∈APX
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 .ONPOCNPOOC≤APO′∈C O′≤APO
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 .C≤APC
NPOAPXNPOSATWeighted−SatisfiabilityNPOMaximum−3SATAPX