Apa sebenarnya kelas FP, FNP, dan TFNP?

13

Dalam bukunya Computational Complexity , Papadimitriou mendefinisikan FNP sebagai berikut:

Misalkan adalah bahasa dalam NP . Dengan Proposisi 9.1, ada polinomial-waktu decidable, polynomially seimbang hubungan sehingga untuk semua string : Ada string dengan jika dan hanya jika . Masalah fungsi yang terkait dengan , dinotasikan , adalah masalah komputasi berikut:L x y R L ( x , y ) x L L F LRLxyRL(x,y)xLLFL

Diberikan , temukan string sedemikian rupa sehingga jika string semacam itu ada; jika tidak ada string seperti itu, kembalikan "tidak".y R L ( x , y )xyRL(x,y)

Kelas semua masalah fungsi yang terkait seperti di atas dengan bahasa dalam NP disebut FNP . FP adalah subkelas yang dihasilkan jika kita hanya mempertimbangkan masalah fungsi dalam FNP yang dapat diselesaikan dalam waktu polinomial.

(...)

(...), kami menyebut masalah dalam FNP total jika untuk setiap string setidaknya ada satu sedemikian rupa sehingga . Subkelas FNP yang berisi semua masalah fungsi total dilambangkan dengan TFNP .R y R ( x , y )xyR(x,y)

Dalam diagram venn dalam ikhtisar bab, Papadimitriou menyiratkan bahwa FP TFNP FNP .

Saya mengalami kesulitan memahami mengapa tepatnya ia berpendapat bahwa FP TFNP karena masalah dalam FP tidak harus total per se.

Untuk mendapatkan pemahaman yang lebih baik, saya telah membajak literatur untuk menemukan definisi FP , FNP dan sejenisnya yang kedap air , tanpa hasil.

Menurut pendapat saya yang sangat (rendah hati), saya pikir ada sedikit materi didaktik (benar!) Dari topik ini.

Untuk masalah keputusan, kelas adalah set bahasa (yaitu set string).

Apa sebenarnya kelas untuk masalah fungsi? Apakah mereka set hubungan, bahasa, ...? Apa definisi yang solid?

Auberon
sumber
4
Notasi umum agak ceroboh. Pertama, FP adalah dan digunakan untuk menunjukkan kelas fungsi poli-waktu (karenanya total) di luar konteks masalah pencarian NP, di mana ia telah didefinisikan ulang. Kedua, setiap masalah pencarian yang diselesaikan dalam waktu polinomial memiliki ekstensi total yang dapat dipecahkan dalam waktu polinomial, jadi dalam hal itu, tidak ada banyak perbedaan nyata antara definisi total dan non-total FP, sehingga keduanya dikonfigurasikan oleh penyalahgunaan bahasa.
Emil Jeřábek 3.0

Jawaban:

11

Komentar Emil Jerabek adalah ringkasan yang bagus, tetapi saya ingin menunjukkan bahwa ada kelas lain dengan definisi yang lebih jelas yang menangkap konsep yang kurang lebih sama, dan untuk memperjelas hubungan antara semua hal ini.

[Peringatan: sementara saya yakin definisi saya sudah benar, beberapa hal di bawah ini mencerminkan preferensi pribadi saya - saya sudah berusaha menjelaskan tentang di mana itu.]

Dalam dunia deterministik, kelas fungsi hanyalah kumpulan fungsi (dalam arti matematis biasa dari kata "fungsi", yaitu peta ). Terkadang kami ingin mengizinkan "fungsi parsial," yang outputnya "tidak ditentukan" untuk input tertentu. (Secara ekuivalen, fungsi yang didefinisikan pada subset dari daripada semua itu.)Σ ΣΣΣ

Sayangnya, ada dua definisi berbeda untuk melayang-layang, dan sejauh yang saya tahu mereka tidak setara (meskipun mereka "setara secara moral").FP

  • F P F N P , T F N PFP (definisi 1) adalah kelas fungsi yang dapat dihitung dalam waktu polinomial. Setiap kali Anda melihat dan tidak dalam konteks di mana orang berbicara tentang , ini adalah definisi yang saya asumsikan.FPFNP,TFNP

Dalam dunia nondeterministik, segala sesuatunya menjadi sedikit lucu. Di sana, lebih mudah untuk mengizinkan "fungsi parsial, multi-nilai." Itu wajar untuk juga menyebut hal seperti itu hubungan biner , yaitu subset dari . Tetapi dari sudut pandang kompleksitas, seringkali berguna secara filosofis dan mental untuk memikirkan hal-hal ini sebagai "fungsi nondeterministik." Saya pikir banyak dari definisi ini diklarifikasi oleh kelas-kelas berikut (yang definisinya sepenuhnya distandarisasi, jika tidak sangat terkenal):Σ×Σ

  • x x x { ( x , y ) : y  adalah output oleh beberapa cabang perhitungan pada input  x }NPMV : Kelas "fungsi parsial, multi-nilai" dihitung oleh mesin nondeterministic dalam waktu polinomial. Apa artinya ini adalah ada mesin nondeterministik poli-waktu, dan pada input , pada setiap cabang nondeterministik mungkin memilih untuk menerima dan membuat beberapa output, atau menolak dan tidak membuat output. Output "multi-nilai" pada input kemudian merupakan himpunan semua output pada semua cabang nondeterministic ketika diberikan sebagai input. Perhatikan bahwa set ini bisa kosong, jadi sebagai "fungsi multi-nilai" ini mungkin hanya sebagian. Jika kita memikirkannya dalam hubungan biner, ini berhubungan dengan hubungan .xxx{(x,y):y is output by some branch of the computation on input x}

  • N P M V xNPMVt : Total "fungsi" di , yaitu, pada setiap input , setidaknya satu cabang menerima (dan karenanya menghasilkan output, berdasarkan definisi)NPMVx

  • N P M V Σ NPSV : Fungsi bernilai tunggal (berpotensi parsial) di . Namun ada beberapa fleksibilitas di sini, di mana beberapa cabang dapat menerima, tetapi jika ada cabang yang menerima, maka semua cabang yang menerima harus dijamin untuk membuat output yang sama (sehingga benar-benar bernilai tunggal). Namun, masih dimungkinkan bahwa tidak ada cabang yang menerima, jadi fungsinya hanyalah "fungsi parsial" (yaitu tidak didefinisikan pada semua ).NPMVΣ

  • N P S V Σ * Σ * N P S V t = F P N Pc o N PNPSVt : Fungsi total bernilai tunggal di . Ini benar-benar fungsi, dalam arti kata yang biasa, . Ini adalah latihan yang tidak terlalu sulit untuk melihat bahwa (menggunakan Def 1 untuk FP di atas).NPSVΣΣNPSVt=FPNPcoNP

Ketika kita berbicara tentang fungsi yang berpotensi multi-nilai, berbicara tentang penahanan kelas kompleksitas tidak benar-benar berguna lagi: tanpa syarat hanya karena tidak mengandung "fungsi" multi-nilai apa pun, tetapi tidak. Sebaliknya, kita berbicara tentang "c-containment", dilambangkan . Fungsi (berpotensi parsial, bernilai multi) memurnikan fungsi (berpotensi parsial bernilai multi) jika: (1) untuk setiap input yang menghasilkan beberapa output, demikian juga , dan (2) output dari selalu merupakan bagian dari output dariN P S V N P M V c f g x g f f g N P M V N P S V N P M V c N P S VNPMVNPSVNPSVNPMVcfgxgffg . Pertanyaan selanjutnya adalah apakah setiap "memiliki . Jika demikian, kami menulis .NPMVNPSVNPMVcNPSV

  • f : D Σ D Σ P F x D f ( x ) x DPF (sedikit kurang standar) adalah kelas fungsi (berpotensi parsial) yang dapat dihitung dalam waktu-poli. Artinya, fungsi ( ) adalah di jika ada poli-waktu mesin deterministik seperti itu, pada input yang output mesin , dan pada input mesin tidak membuat output (/ menolak / mengatakan "tidak" / namun Anda ingin mengatakannya).f:DΣDΣPFxDf(x)xD

  • F N P R Σ × Σ R f ( y ) [ R ( x , y ) ] f y f F N P R R P F N PFNP adalah kelas "masalah fungsi" (bukan kelas fungsi). Saya juga akan memanggil sebagai "kelas relasional", tetapi kata-kata apa pun yang Anda gunakan untuk menggambarkannya, Anda perlu mengklarifikasi diri sendiri setelah itu, itulah sebabnya saya tidak terlalu menyukai definisi ini. Untuk setiap hubungan biner, ada "masalah fungsi" yang terkait. Apa itu masalah fungsi? Saya tidak memiliki definisi matematika yang bersih seperti yang saya lakukan untuk bahasa / fungsi / hubungan; melainkan ditentukan oleh apa solusi yang valid: solusi yang valid untuk masalah fungsi yang terkait dengan adalah setiap fungsi (berpotensi parsial) sehingga jikaFNPRΣ×ΣRf(y)[R(x,y)]f mengeluarkan semua , dan jika tidak tidak menghasilkan. adalah kelas masalah fungsi yang terkait dengan hubungan sehingga (bila dianggap sebagai bahasa berpasangan) dan p-seimbang. Jadi bukan kelas fungsi, bukan kelas bahasa, tetapi kelas "masalah fungsi," di mana "masalah" di sini didefinisikan secara kasar dalam hal apa artinya menyelesaikannya.yfFNPRRPFNP

  • F N P R R x y R ( x , y )TFNP kemudian adalah kelas masalah fungsi di - didefinisikan oleh relasi seperti di atas - seperti total, dalam arti bahwa untuk setiap ada sehingga .FNPRRxyR(x,y)

Agar tidak harus menulis hal-hal seperti "Jika setiap (resp., ) masalah fungsi memiliki solusi dalam (resp., sesuai dengan di atas definisi), lalu ... "dalam konteks ini orang menggunakan Definisi 2 dari , yaitu:T F N P P F F P F PFNPTFNPPFFPFP

  • F N P y 0 y x y 0 y R y y 0FP (definisi 2) adalah kelas masalah fungsi di yang memiliki solusi poli-waktu. Orang dapat mengasumsikan bahwa solusi (= fungsi) di sini adalah total dengan memilih string khusus yang bukan valid untuk apa pun , dan memiliki fungsi output ketika seharusnya tidak ada valid . (Jika perlu, kita dapat memodifikasi relasi dengan menambahkan setiap dengan 1, dan kemudian menjadikan sebagai string 0; ini tidak mengubah kerumitan apapun yang terlibat).FNPy0yxy0yRyy0

Inilah bagaimana berbagai definisi ini berhubungan satu sama lain, (definisi 2, yang harus Anda asumsikan karena itu dalam konteks di mana ia dibandingkan dengan ) adalah setara ke . (def 2) setara dengan (def 1).FNPFPFNPNPMVcPFTFNPFPNPMVtcFP

Joshua Grochow
sumber
Terima kasih atas jawaban Anda yang luas. Saya mencoba mencernanya dan sejauh ini sangat membantu. Saya berasumsi, bagaimanapun, yang Anda maksud FP FNP dan FP TFNP dalam paragraf terakhir?
Auberon
1
@Auberon: Tidak, paragraf terakhir menerjemahkan antara berbagai dugaan. Dikatakan bahwa , dll.FNPFPNPMVcPF
Joshua Grochow
@JoshuaGrochow atau mungkin atau hierarki runtuh? Juga apakah dalam atau sebaliknya berlaku (tampaknya masuk akal karena tampaknya tidak ada implikasi juga)? NPPTFNPNPPUPPUPPTFNP
T ....
3

Selain jawaban Joshua yang luas, saya ingin menambahkan definisi berikut dari Elaine Ruch Automata, Computability, dan Complexity-nya .

Kelas FP : Sebuah relasi biner adalah di IFF ada polinomial waktu algoritma deterministik itu, diberi masukan sewenang-wenang , dapat menemukan beberapa seperti yang .QFPxy(x,y)Q

Kelas FNP : Sebuah relasi biner adalah di IFF ada waktu polinomial deterministik verifier, diberi pasangan input yang sewenang-wenang , menentukan apakah . Setara, ada di iff ada algoritma waktu polinomial nondeterministic yang, diberi input sewenang-wenang , dapat menemukan beberapa sedemikian rupa sehinggaQFNP(x,y)(x,y)QQFNPxy(x,y)Q

Dari definisi ini jelas bahwa . Dia juga secara singkat berbicara tentang masalah di luar .F N PFPTFNPFNPFNP

Bagi saya, ini adalah sumber daya paling memuaskan yang terdiri dari satu halaman tunggal yang telah saya temukan sejak lama.

Auberon
sumber
Setelah saya memberikan definisi ini beberapa pemikiran, saya menduga bahwa dua definisi 'setara' dari sama sekali tidak setara ...FNP
Auberon
Saya pikir untuk mendapatkan kesetaraan kita perlu mengasumsikan bahwa relasi dibatasi p (yaitu, ada polinom sehingga jika sedemikian sehingga , maka ada seperti dengan ). Juga, kita harus menentukan apa artinya bagi "algoritma nondeterministic untuk menemukan " - yaitu, apa artinya bagi algoritma nondeterministic untuk "membuat output"? Ini adalah bagian dari mengapa saya suka keluarga definisi y ( x , y ) Q y | y | p ( | x | ) ypy(x,y)Qy|y|p(|x|)y
NPMV