Я б написав наступне як коментар, але це було занадто довго, щоб вписатися.
Давайте спочатку опишемо значення "алгоритмів класу з оракул для мови А." (На необхідність цього вказував Цуйосі Іто). Ми будемо використовувати ту саму конвенцію, яку використовували Ладнер та Лінч . Конвенція добре описана компанією Bennett & Gill :С
можна визначити різними способами, залежно від того, як обробляється стрічка запитів. Ми дотримуємося конвенцій Ладнера та Лінча [LL]: стрічка запиту не стягується з обмеженим пробілом, але щоб не використовувати її як робочу стрічку, стрічка запитів є односторонньою і лише для запису, і стирається автоматично після кожного запиту. (Саймон [Сі] трактує запитну стрічку як одну з робочих стрічок - двосторонню стрічку для читання / запису, яка заряджається проти пробілу. Визначення Ладнера-Лінча є менш обмежувальним і, можливо, більш природним, оскільки для випадкового оракулаA∈ L O G S P A C E AЛ О Г С П А С ЕАA ∈ L O G S P A C EА має вірогідність 1 для [LL], але не для [Si])
[LL] RE LADNER AND NA LYNCH, Релятивізація питань щодо обчислюваності простору журналу , Math. Теорія систем, 10 (1976), с.19-32.
[Si] Дж. СІМОН, Про деякі центральні проблеми складності обчислень , техн. Реп. TR 75-224, кафедра інформатики, Корнельський університет, Ітака, Нью-Йорк, 1975.
Стандартне визначення класів складності машин oracle таке: Нехай B і C - класи складності . Тоді є законним клас складності, визначається як X = ⋃ L ∈ C B L . Тут B L представляє клас складності задач рішення, розв’язуваних алгоритмом класу B з оракул для мови L.Х= ВСХ= ⋃L ∈ CБLБL
Так як X є законним класом складності, для будь-якого класу складності А, можна говорити про класи складності і X A = ( B C ) A .АХ= А( ВС)ХА= ( ВС)А
відноситься до класу складності завданьщо вирішуються рішення алгоритму в класі А з оракулом для будь-якої мови L ' ∈ X = ⋃ L ∈ C B L . Іншими словами, A X = ⋃ L ′ ∈ { ⋃ L ∈ C B L } A L ′ .АХL'∈ X= ⋃L ∈ CБLАХ= ⋃L'∈ { ⋃L ∈ CБL}АL'
відноситься до класу складності завданьщо вирішуються рішення алгоритму в класі X = ⋃ L ∈ C B L з оракулом для будь-якої мови L ' ∈ A . Іншими словами, X A = ⋃ L ′ ∈ A X L ′ = ⋃ L ′ ∈ A ( ⋃ L ∈ C B L ) L ′ .ХАХ= ⋃L ∈ CБLL'∈ AХА= ⋃L'∈ AХL'= ⋃L'∈ A( ⋃L ∈ CБL)L'
Претензія: .( ВL1)L'∪ ( ВL2)L'= ( ВL')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.
Таким чином, можна записати .ХА= ⋃L'∈ A( ⋃L ∈ CБL)L'= ⋃L ∈ C, L'∈ A( ВL')L
Приклад
Нехай . Ми знаємо , що C ущільнювача N P ⊆ X . Надання як доступ боку оракула до N P , один отримує: з про N P N P ⊆ X N P = ( P N P ) N P .X = PН Пc o N P ⊆XН Пc o N PН П⊆ XН П= ( РН П)Н П
Епілог
Плідна дискусія з Цуйосі Іто виявила (для мене), що подвійно релятивізувати клас складності подвійно непросто. Насправді навіть визначити один із них видається проблематичним. Я, безумовно, повинен більше вивчити, чи не було дано жодного задовільного визначення. Тим часом я вдячний за будь-який коментар, який можна використати для вирішення цієї проблеми.