Кіріспе

Шешім қабылдау мәселелерін зерттеуге қолданылатын абстрактілі машина. Oracle Corporation компаниясы сататын есептеу жабдықтары.

Күрделілік теориясы мен есептеу теориясында оракул машинасы – шешім қабылдау мәселелерін зерттеуге арналған абстрактілі машина. Оны бір операцияда белгілі бір мәселелерді шеше алатын "оракул" деп аталатын қара қораппен жабдықталған Тьюринг машинасы ретінде көруге болады. Мәселе кез келген күрделілік класына жатуы мүмкін. Тіпті шешілмейтін мәселелер, мысалы, тоқтау мәселесі де қолданылуы мүмкін.

Оракулдар

Оракул машинасы оракулға қосылған Тьюринг машинасы ретінде қарастырылуы мүмкін. Оракул, осы контексте, кейбір мәселені шеше алатын бірлік, мысалы, шешім қабылдау мәселесі немесе функциялық мәселе болуы мүмкін. Мәселе міндетті түрде есептелуге жарамды болуы керек емес; оракул Тьюринг машинасы немесе компьютерлік бағдарлама деп есептелмейді. Оракул – бұл белгілі бір есептеу мәселесінің кез келген мысалы үшін шешім бере алатын "қара жәшік": Шешім қабылдау мәселесі A табиғи сандар (немесе жолдар) жиыны ретінде ұсынылады. Мәселенің мысалы – кез келген табиғи сан (немесе жол). Егер сан (жол) жиынтықта болса, мысалға жауап "ИӘ", әйтпесе "ЖОҚ". Функциялық мәселе f функциясы арқылы табиғи сандардан (немесе жолдардан) табиғи сандарға (немесе жолдарға) бейнеленеді. Мәселенің мысалы – f үшін x кіріс. Шешім – f(x) мәні. Оракул машинасы Тьюринг машинасының барлық стандартты операцияларын орындай алады, сонымен қатар оракулдан осы оракул үшін есептеу мәселесінің кез келген мысалының шешімін алу үшін сұрау жіберуге болады. Мысалы, егер мәселе A табиғи сандар жиыны үшін шешім қабылдау мәселесі болса, оракул машинасы оракулға табиғи санды жібереді, ал оракул сол сан A жиынының мүшесі екенін көрсететін "иә" немесе "жоқ" деп жауап береді.

Баламалы анықтамалар

Жоғарыда келтірілген анықтамаға көптеген балама анықтамалар бар. Олардың көпшілігі оракул шешімдік есепті шешетін жағдайға арналған. Бұл жағдайда: Кейбір анықтамалар оракул таспасына жауап жазудың орнына, ASK күйіне қосымша екі арнайы күй – ИӘ және ЖОҚ күйлерін қосады. Оракулға жүгінген кезде, егер оракул таспасының мазмұны оракул жиынында болса, келесі күй ИӘ деп таңдалады, ал мазмұны оракул жиынында болмаса, ЖОҚ деп таңдалады. Кейбір анықтамаларда жеке оракул таспасын пайдаланудан аулақ тұру ұсынылады. Оракул күйіне кіргенде, таспа символы көрсетіледі. Оракул жұмыс таспасында осы таспа символы неше рет кездесетінін анықтау арқылы сұралады. Егер бұл сан оракул жиынында болса, келесі күй ИӘ күйі болады; әйтпесе, келесі күй ЖОҚ күйі болады. Тағы бір балама анықтама оракул таспасын тек оқуға арналған етіп белгілейді және ASK және ЖАУАП күйлерін толығымен жояды. Машинаны іске қосу алдында, оракул жиынының индикаторлық функциясы 0 және 1 символдары арқылы оракул таспасына жазылады. Содан кейін машина оракул таспасындағы тиісті жаққа қарап, ондағы мәнді оқып оракулға сұрақ қоя алады. Бұл анықтамалар Тьюрингтік есептеу тұрғысынан эквивалентті: функция, егер ол олардың кез келгенінде оракулмен есептелсе, осы анықтамалар бойынша берілген оракулдан оракулмен есептелуі мүмкін. Алайда, анықтамалар есептеу күрделілігі тұрғысынан эквивалентті емес. Ван Мелкебектің анықтамасындай, өзінің әліпбиі болуы мүмкін оракул таспасын пайдалану, әдетте қажет.

Оракул машиналарының күрделілік сыныптары

L тілі үшін оракулмен A класындағы алгоритммен шешілетін шешімдік проблемалардың күрделілік класы AL деп аталады. Мысалы, PSAT – Бульдік қанағаттандыру проблемасы үшін оракулмен детерминистік Тьюринг машинасымен полиномиалдық уақытта шешілетін проблемалар класы. AB белгісін келесі анықтаманы қолдану арқылы B тілдерінің жиынтығына (немесе B күрделілік класына) кеңейтуге болады: Егер L тілі B класы үшін толық болса, онда AL=AB, егер A класындағы машиналар B класының толықтығының анықтамасында қолданылатын қысқартуларды орындай алса. Атап айтқанда, SAT полиномиалдық уақыт қысқартуларына қатысты NP толық болғандықтан, PSAT=PNP. Алайда, егер A = DLOGTIME болса, онда ASAT, ANP-ге тең болмауы мүмкін. (Жоғарыда берілген анықтама толыққанды стандартты емес. Кейбір жағдайларда, мысалы, уақыт және кеңістік иерархиясы теоремаларын дәлелдеуде, абстрактілі машинаны анықтайтын класс тек бір тіл үшін бір оракулға қол жеткізе алады деп қарастыру пайдалы. Бұл жағдайда, егер B класы толыққанды анықталмаған болса, оған қолжетімді қысқартулар бойынша толық проблемалар болмайды. NP ⊆ PNP деп түсініледі, бірақ NPNP, PNP, NP және P теңдігі туралы мәселе ең жақсы жағдайда күмәнді болып қалады. Олардың әртүрлі екеніне сеніледі, және бұл полиномиалдық иерархияның анықтамасына әкеледі. Оракул машиналары А оракулы үшін PA және NPA арасындағы қатынасты қарастыра отырып, күрделілік классстары P және NP арасындағы қатынасты зерттеу үшін пайдалы. Атап айтқанда, PA=NPA және PB≠NPB сияқты A және B тілдері бар екені көрсетілді. P = NP сұрағының екі жаққа да салыстырмалы түрде қарастырылуы бұл сұраққа жауап беру қиын екендігінің дәлелі ретінде қарастырылады, өйткені салыстырмалы түрде қарастырылатын дәлелдеу әдісі (яғни оракулдың қосылуынан әсер етпейтін) P = NP сұрағына жауап бермейді. Дәлелдеудің көп бөлігі салыстырмалы түрде жасалады. Оракулдың барлық мүмкін оракулдардың (шексіз жиынтық) арасынан кездейсоқ таңдалуын қарастыруға болады. Бұл жағдайда, 1 ықтималдығымен PA≠NPA екені көрсетілді. Егер сұрақ барлық оракулдар үшін дұрыс болса, онда ол кездейсоқ оракул үшін де дұрыс деп айтылады. Мұндай терминологияны таңдау кездейсоқ оракулдардың тек 0 немесе 1 ықтималдығымен мәлімдемені қолдауымен негізделген. (Бұл Колмогоровтың нөлден бірге дейінгі заңынан туындайды.) Бұл P≠NP үшін тек әлсіз дәлел, өйткені мәлімдеме кездейсоқ оракул үшін дұрыс, бірақ қарапайым Тьюринг машиналары үшін жалған болуы мүмкін; мысалы, кездейсоқ оракул A үшін IPA≠PSPACEA, бірақ IP = PSPACE.

Оракулдар мен тоқтату проблемалары

Тоқтату мәселесіне оракул бар машина нақты Тьюринг машиналарының нақты кірістерде тоқтатылуын анықтай алады, бірақ ол, жалпы алғанда, өзімен эквивалентті машиналардың тоқтатылуын анықтай алмайды. Бұл машиналардың иерархиясын құрайды, олардың әрқайсысы күштірек тоқтату оракулымен және одан да қиын тоқтату мәселесімен жабдықталған. Осы машиналардың иерархиясын арифметикалық иерархияны анықтау үшін пайдалануға болады.

Криптографияға қолдану

Криптографияда оракулдар шифрлау протоколдарының қауіпсіздігін дәлелдеу үшін қолданылады, әсіресе хэш-функция қолданылған жағдайларда. Протоколдың қауіпсіздігін төмендету мына жағдайда беріледі: хэш-функцияның орнына кездейсоқ оракул әр сұрауға кездейсоқ, бірақ тұрақты түрде жауап береді. Оракул, хэш-функция сияқты, барлық тараптарға, соның ішінде шабуылшыға қолжетімді деп есептеледі. Мұндай дәлел шабуылшы қауіпсіздікті төмендетудің негізгі қиын мәселесін шеше алмаса, протоколды бұзу үшін хэш-функцияның белгілі бір қасиеттерін пайдалануға мәжбүр болатынын көрсетеді; олар хэш-функцияны қара жәшік ретінде (яғни, кездейсоқ оракул ретінде) қарастыра алмайды.