Saya akan menulis yang berikut sebagai komentar, tapi terlalu panjang untuk masuk.
Pertama mari kita gambarkan arti dari “algoritma di kelas dengan oracle untuk bahasa A.” (Kebutuhan untuk ini ditunjukkan oleh Tsuyoshi Ito). Kami akan menggunakan konvensi yang sama yang digunakan oleh Ladner dan Lynch . Konvensi ini dijelaskan dengan baik oleh Bennett & Gill :C
dapat didefinisikan dengan berbagai cara, tergantung pada bagaimana rekaman kueri ditangani. Kami mengikuti konvensi Ladner dan Lynch [LL]: Tape kueri tidak dibebankan terhadap batas ruang, tetapi untuk menjaga agar tidak digunakan sebagai pita kerja, pita kueri adalah satu arah dan hanya menulis, dan dihapus secara otomatis mengikuti setiap permintaan. (Simon [Si] memperlakukan pita kueri sebagai salah satu dari pita kerja, pita baca / tulis dua arah yang dibebankan terhadap batas ruang. Definisi Ladner-Lynch kurang ketat dan mungkin lebih alami, karena untuk ramalan acakA∈ L O G S P A C E ALOGSPACEAA∈LOGSPACEA berlaku dengan probabilitas 1 untuk [LL] tetapi tidak untuk [Si])
[LL] RE LADNER DAN NA LYNCH, Relatisasi pertanyaan tentang kompabilitas ruang log , Matematika. Teori Sistem, 10 (1976), hlm. 19-32.
[Si] J. SIMON, Pada Beberapa Masalah Sentral dalam Kompleksitas Komputasi , Tek. Rep TR 75-224, Departemen Ilmu Komputer, Universitas Cornell, Ithaca, NY, 1975.
Definisi standar kelas kompleksitas mesin oracle adalah sebagai berikut: Biarkan B dan C menjadi kelas kompleksitas . Kemudian, adalah kelas kompleksitas yang sah, yang didefinisikan sebagai X = ⋃ L ∈ C B L . Di sini, B LX=BCX=⋃L∈CBLBL mewakili kelas kompleksitas masalah keputusan dipecahkan oleh algoritma di kelas B dengan oracle untuk bahasa L.
Karena X adalah kelas kompleksitas yang sah, untuk setiap kelas kompleksitas A, kita dapat berbicara tentang kelas kompleksitas dan X A = ( B C ) AAX=A(BC)XA=(BC)A .
mengacu pada kelas kompleksitas masalah keputusan dipecahkan oleh algoritma di kelas A dengan oracle untuk setiap bahasa L ' ∈ X = ⋃ L ∈ C B L . Dengan kata lain, A X = ⋃ L ′ ∈ { ⋃ L ∈ C B L } A L ′ .AXL′∈X=⋃L∈CBLAX=⋃L′∈{⋃L∈CBL}AL′
mengacu pada kelas kompleksitas masalah keputusan dipecahkan oleh algoritma di kelas X = ⋃ L ∈ C B L dengan oracle untuk setiap bahasa L ' ∈ A . Dengan kata lain, X A = ⋃ L ′ ∈ A X L ′ = ⋃ L ′ ∈ A ( ⋃ L ∈ C B L ) L ′ .XAX=⋃L∈CBLL′∈AXA=⋃L′∈AXL′=⋃L′∈A(⋃L∈CBL)L′
Klaim: (BL1)L′∪(BL2)L′=(BL′)L1∪L2 .
Side Note: Since it's 3:00 AM now, I'm too sleepy to check the validity of the above claim! I think it's valid & elementary to prove, yet it's nice to see the actual proof.
Oleh karena itu, seseorang dapat menulis XA=⋃L′∈A(⋃L∈CBL)L′=⋃L∈C,L′∈A(BL′)L .
Contoh
X=PNPcoNP⊆XNPcoNPNP⊆XNP=(PNP)NP
Epilog
Sebuah diskusi yang bermanfaat dengan Tsuyoshi Ito mengungkapkan (bagi saya) bahwa tidak mudah untuk secara ganda merelatifkan kelas kompleksitas. Bahkan, mendefinisikan satu pun tampaknya bermasalah. Saya harus belajar lebih banyak untuk melihat apakah ada definisi yang memuaskan yang pernah diberikan. Sementara itu, saya menghargai setiap komentar yang dapat digunakan untuk menyelesaikan masalah ini.