Кіріспе

Компьютерлік ғылымда кездейсоқ қолжетімділік машинасы (RAM немесе RA машинасы) – бұл жалпы сыныптағы тіркелім машиналарын сипаттайтын есептеу моделі. RA машинасы есептеу машинасына өте ұқсас, бірақ оның регистрлерін «жанама адрестеу» мүмкіндігімен толықтырылған. «Реестрлер» түсінік бойынша, кәдімгі компьютердің негізгі жадына тең, бірақ регистрлер кез келген мөлшердегі натурал сандарды сақтауға қосымша қабілетті. Есептеу машинасы сияқты, RA машинасы машинаның шекті күй бөлігіндегі орындалу нұсқауларын қамтиды (бұл Гарвард архитектурасы деп аталады). RA машинасының универсалды Тьюринг машинасымен теңдестірілген нұсқасы, оның бағдарламасы мен деректері регистрлерде сақталатын болса, кездейсоқ қолжетімділікпен сақталған бағдарлама машинасы немесе RASP машинасы деп аталады. Бұл фон Нейман архитектурасының мысалы және компьютер туралы қалыпты түсінікке ең жақын. Тьюринг машинасы мен есептеу машинасы модельдерімен бірге RA машинасы мен RASP машинасы модельдері есептеу күрделілігін талдау үшін қолданылады. Ван Эмде Боас (1990) осы үшеуін көрсеткіш машинасымен бірге «тізбекті машина» модельдері деп атайды, оларды «параллель кездейсоқ қолжетімділік машинасы» модельдерінен ажырату үшін.

Үлгіге кіріспе

Кездейсоқ қолжетімділік машинасы (RAM) тұжырымдамасы ең қарапайым модельден басталады, яғни есептегіш машина моделінен. Дегенмен, екі өзгеріс оны есептегіш машинадан ерекшелендіреді. Біріншісі, машинаға жанама адрестеудің қолайлылығын қосады; екіншісі, модельді бір немесе бірнеше қосымша (арнайы) тіркегіштерді қосу арқылы дәстүрлі аккумуляторлық компьютерге жақындатады, олардың ең көп таралғаны – "аккумулятор" деп аталады.

Шектелген жанамалық және примитивті рекурсивті функциялар

Егер біз Минскийдің бір регистрдегі бір ғажайып санды қолдану әдісінен бас тартсақ және машина моделінің "компьютер сияқты" болатынын белгілесек, рекурсивті функцияларды (сонымен қатар μ рекурсивті функциялары деп те аталады) – толық және толық емес түрлерін есептеу үшін осы бағыттың проблемасын шешуге тура келеміз. Біздің қарапайым санау машинасы моделі "шектеулі" бағытты жүзеге асыра алады және осылайша "кезек бойынша анықтама" деп аталатын бастапқы рекурсивті "операторды" пайдалана отырып, бастапқы рекурсивті функциялардың кіші класын есептей алады (Клине (1952) 229-бет және Булос Бургесс Джеффри 74-бет). Мұндай "шектелген бағыт" – еңбекке толы, жалықтыратын нәрсе. "Кезек бойынша анықтама" машинадан көрсеткіш регистрінің мазмұнын анықтау/ажыратуды талап етеді, бұл мазмұнды кейс операторы нақты жариялаған санға/атына сәйкес келуге тырысу арқылы, сәттілікке жеткенше қайта-қайта әрекет етумен жүзеге асырылады. Осылайша, кезек бойынша анықтама, мысалы, ең төменгі мекен-жайдан басталады және сәйкес келуге тырысып, ең жоғарғы мекен-жайға қарай үздіксіз жалғасады: N регистріндегі сан 0-ға тең бе? Егер жоқ болса, онда ол 1-ге тең бе? 2-ге? 3-қа? 65364-ке? Егер жоқ болса, онда біз соңғы сан 65365-ке жеттік және бұл сан сәйкес келуі керек, әйтпесе бізде проблема туындайды! "Шектелген" бағыт жарым рекурсивті функцияларды есептеуге мүмкіндік бермейді, себебі олар үшін шексіз бағыт, яғни μ операторы қажет. Егер біз 65367 санына дейін жалғастыра алсақ және шындығында сол регистрде іздегеніміз болса, онда есептеуді сәтті аяқтауға болар еді! Бірақ егер 65367 санында қажетті нәрсе болмаса, қаншалықты алға жылжу керек? Тьюрингтік эквивалент болу үшін санау машинасы бір регистрлі Минский Гёдель санының әдісін пайдалануы керек немесе қажет болған жағдайда, өз регистрлік тізбесінің соңғы шектерін зерттеу қабілетімен толықтырылуы керек, тіпті шексіздікке дейін. ("Ол жерде" бірдеңе таба алмау алгоритмнің тоқтамауының мағынасын анықтайды; қараңыз Клине (1952) XII тарау, Ішкі рекурсивті функциялар, әсіресе 323-325 беттер.) Бұл туралы толығырақ төмендегі мысалда қараңыз.

Шекті және шексіз

Кез келген санау машинасының шексіз "адрес" тіркелгісі болмаса, оның "r" тіркелгісін атау арқылы көрсетуі қажеттігі – модельдің "r" шекті болуын талап ететінін көрсетеді, бірақ ол "шексіз" болып табылады, себебі модель өзінің жұмысын атқару үшін қажетті тіркелгілер санының жоғарғы шегін білдірмейді. Мысалы, r < 83,617,563,821,029,283,746 немесе r < 2^1,000,001 және т.б. талаптары жоқ. Осылайша, біздің модель белгілі бір есептеуді орындау үшін қажет болған жағдайда тіркелгілер санын "кеңейте" алады. Дегенмен, модель қандай санға кеңейсе де, ол шекті болуы керек – оны табиғи санмен индекстеуге болады: ω мүмкін емес. Біз бұл шектеуден құтылу үшін, жанама адресті анықтайтын тіркелгінің адресін беру үшін шексіз тіркелгіні пайдалана аламыз.