Кіріспе

Бағдарламамен есептелетін математикалық функция. Есептелетін функциялар – есептеу теориясының негізгі зерттеу нысандары. Есептелетін функциялар – алгоритмдер туралы интуитивті түсініктердің формалды аналогы, функцияның жұмысын атқара алатын алгоритм болған жағдайда, функция есептелетін болып саналады, яғни функция доменінің кірісі берілгенде, ол тиісті шығысты қайтара алады. Есептелетін функциялар есептеудің нақты бір моделіне, мысалы Тьюринг машиналарына немесе регистрлік машиналарға сілтеме жасамай, есептеуді талқылау үшін қолданылады. Дегенмен, кез келген анықтама белгілі бір есептеу моделіне сілтеме жасауы керек, бірақ барлық дұрыс анықтамалар функциялардың бірдей класын береді. Есептелетін функциялар жиынтығын тудыратын есептеудің ерекше модельдері – Тьюринг есептелетін функциялары және жалпы рекурсивті функциялар. Чёрч-Тьюринг тезисіне сәйкес, есептелетін функциялар – механикалық (яғни автоматты) есептеу құрылғысын қолдана отырып, шексіз уақыт және жад кеңістігі берілгенде есептеуге болатын функциялар. Нақтырақ айтқанда, есімдегі әрбір есептеу моделі тек есептелетін функцияларды ғана есептеуге болады, ал барлық есептелетін функцияларды Тьюринг машиналары, регистрлік машиналар, лямбда-есептеу және жалпы рекурсивті функциялар сияқты көріне бермейтін әртүрлі есептеу модельдерінің кез келгені есептей алады. Есептелетін функцияның нақты анықтамасынан бұрын математиктер көбінесе «тиімді есептелетін» бейресми терминін қолданды. Бұл термин кейіннен есептелетін функциялармен теңестірілді. Бұл функциялардың тиімді есептелуі оларды тиімді түрде есептеуге болатынын білдірмейді (яғни, ақылға қонымды уақыт ішінде есептеуге болады). Шындығында, кейбір тиімді есептелетін функциялар үшін оларды есептейтін кез келген алгоритмнің жұмыс уақыты кіріс ұзындығымен экспоненциалды (немесе тіпті суперекспоненциалды) өседі, яғни өте тиімсіз болады деп көрсетуге болады. Іске асырылатын есептеу және есептеу күрделілігі салалары тиімді есептеуге болатын функцияларды зерттейді. Блум аксиомаларын есептелетін функциялар жиынтығында абстрактілі есептеу күрделілігі теориясын анықтау үшін қолдануға болады. Есептеу күрделілігі теориясында есептелетін функцияның күрделілігін анықтау мәселесі функциялық мәселе деп аталады.

Ресми тілдер

Компьютерлік ғылымдағы есептеу теориясында формальды тілдерді қарастыру жиі кездеседі. Әліпби – кездейсоқ жиын. Әліпбидегі сөз – әліпбидегі символдардың шекті тізбегі; бір символ бірнеше рет пайдаланылуы мүмкін. Мысалы, екілік тізбектер – дәл {0, 1} әліпбиіндегі сөздер. Тіл – белгіленген әліпбидегі барлық сөздер жиынының кіші жиыны. Мысалы, дәл 3 бірлік қамтитын барлық екілік тізбектер жиыны – екілік әліпбидегі тіл. Формальды тілдің маңызды қасиеті – берілген сөздің тілге жататынын анықтау үшін қажетті қиындық деңгейі. Есептеу функциясының тілдегі кез келген сөзді қабылдауына мүмкіндік беру үшін кейбір кодтау жүйесін жасау қажет; бұл әдетте стандартты процедура саналады. Тіл есептеуге болады (синонимдер: рекурсивті, шешімді) егер әрбір әліпбидегі w сөзі үшін, сөз тілде болса және сөз тілде болмаса, есептеуге болатын f функциясы болса. Демек, тілдегі кез келген сөздің тілге жататынын дұрыс анықтай алатын процедура болған жағдайда ғана тіл есептеуге болады. Тіл есептеулік тұрғыдан саналатын (синонимдер: рекурсивті саналатын, жартылай шешімді) болады, егер f(w) функциясы тек қана w сөзі тілде болғанда ғана анықталса. "Саналатын" терминінің этимологиясы табиғи сандардың саналатын жиындарымен бірдей.

Черч-Тюрингтің диссертациясы

Черч-Тюринг тезисі жоғарыда аталған үш қасиетке ие процедурадан есептелетін кез келген функция есептеуге болатын функция болып табылады. Бұл үш қасиет ресми түрде көрсетілмегендіктен, Черч-Тюринг тезисін дәлелдеу мүмкін емес. Келесі фактілер көбінесе тезистің негіздемесі ретінде қарастырылады: есептеудің көптеген эквивалентті модельдері белгілі, және олардың барлығы есептеуге болатын функцияның бірдей анықтамасын береді (немесе кейбір жағдайларда, нашарлау нұсқасын). Әзірге, жалпы тиімді есептеуге қабілетті деп есептелетін, күштірек есептеу моделі ұсынылмаған. Черч-Тюринг тезисі кейде нақты есептеу процедурасын беру арқылы белгілі бір функцияның есептеуге болатынын дәлелдеу үшін қолданылады. Мұндай қолдануға рұқсат етіледі, себебі осы тезистің барлық осындай қолданыстарын есептеудің бір моделінде функция үшін ресми процедура жазу арқылы алып тастауға болады деп саналады.

Дәлелденуі

Функцияны (немесе, сондай-ақ, жиынтықты) қарастыра отырып, оның есептелуі ғана емес, сонымен қатар оны белгілі бір дәлелдеу жүйесінде (әдетте бірінші реттік Пеано арифметикасында) дәлелдеуге болатыны да қызығушылық тудыруы мүмкін. Дәлелдеу арқылы есептелетіні көрсетілген функция – дәлелденетін толық функция деп аталады. Дәлелденетін толық функциялар жиыны рекурсивті түрде санауға болады: олардың есептелуін дәлелдейтін барлық сәйкес дәлелдемелерді тізімдеп, барлық дәлелденетін толық функцияларды санауға болады. Бұл дәлелдеу жүйесінің барлық дәлелдемелерін тізімдеп, қатысы жоқ дәлелдемелерді назардан тыс қалдыру арқылы іске асырылуы мүмкін.

Рекурсивті анықталатын функцияларға қатынасы

Рекурсивті анықтамамен анықталған функцияда әрбір мән сол функцияның немесе басқа функциялардың бұрын анықталған басқа мәндерінің бірінші реттік формуласымен анықталады, олар жай ғана тұрақты шамалар болуы мүмкін. Мұндай функциялардың біреуі – примитивті рекурсивті функциялар. Кез келген мұндай функция дәлелді түрде толық болады: f-тың k-арғы функциясы үшін, кез келген мәнді анықтаманы кері бағытта, итеративті түрде есептеуге болады және шекті итерация санынан кейін (оңай дәлелденгендей) тұрақты шамаға жетеді. Керісінше, бұл дұрыс емес, себебі барлық дәлелді түрде толық функциялар примитивті рекурсивті емес. Шындығында, барлық примитивті рекурсивті функцияларды санап шығуға болады және en(n,m) = fn(m) шартымен функцияны анықтауға болады, мұндағы fn – n-ші примитивті рекурсивті функция (k-арғы функциялар үшін бұл fn(m,m,…m) ретінде белгіленеді). Енді g(n) = en(n,n) + 1 функциясы дәлелді түрде толық, бірақ примитивті рекурсивті емес, бұл диагонализация аргументімен көрсетіледі: егер g = fj болатын j болса, онда g(j) = en(j,j) + 1 = fj(j) + 1 = g(j) + 1 қарама-қайшылығы туындайды. (Барлық примитивті рекурсивті функциялардың Гёдель сандарын примитивті рекурсивті функциямен санауға болады, бірақ примитивті рекурсивті функциялардың мәндерін санау мүмкін емес.) Мұндай функциялардың бірі – Акерман функциясы: ол рекурсивті анықталғандықтан, оның есептелу мүмкіндігін дәлелдеу оңай (бірақ ұқсас диагонализация аргументін рекурсивті анықтамамен анықталған барлық функциялар үшін де құруға болады; демек, рекурсивті анықтауға болмайтын дәлелді түрде толық функциялар бар).

Дәлелденбейтін жиынтық функциялар

Дыбыс тұрғысынан дұрыс жүйеде, дәлелдеме арқылы толық деп танылған әрбір функция шын мәнінде толық болады, бірақ керісінше дұрыс емес: жеткілікті күшті және дұрыс (Пиано арифметикасын қоса алғанда) әрбір бірінші реттік дәлелдеу жүйесінде, басқа дәлелдеу жүйесінде, осы жүйеде толық екені дәлелденбеген толық функциялардың бар екенін дәлелдеуге болады. Егер толық есептелетін функциялар оларды құратын Тьюринг машиналары арқылы тізімделсе, онда жоғарыдағы тұжырымды, егер дәлелдеу жүйесі дұрыс болса, жоғарыда көрсетілгенге ұқсас диагональдау аргументімен, алдында берілген дәлелдеме арқылы толық функциялардың тізімін пайдалана отырып көрсетуге болады. Тиісті дәлелдемелерді тізімдейтін Тьюринг машинасы қолданылады, және әрбір n енгізілімі үшін fn(n) шақырылады (мұнда fn – бұл тізімдегі n-ші функция), оны n-ші дәлелдемеге сәйкес есептейтін Тьюринг машинасы арқылы. Мұндай Тьюринг машинасының тоқтауы, егер дәлелдеу жүйесі дұрыс болса, кепілдендірілген.

Есептелмейтін функциялар мен шешілмейтін мәселелер

Кез келген есептелетін функцияда оны есептеудің нақты, бірмәнді нұсқауларын беретін шекті процедура болады. Бұдан әрі, бұл процедура есептеу моделі қолданатын шекті әліпбиде кодталуы тиіс, сондықтан есептелетін функциялар санаулы ғана. Мысалы, функциялар биттер тізбегі арқылы (әліпби) кодталуы мүмкін. Шын сандар санауға келмейтіндіктен, көпшілік шын сандар есептелетін емес. Есептелетін сан туралы қараңыз. Табиғи сандардағы шекті функциялар жиыны санауға келмейді, сондықтан олардың көпшілігі есептелетін емес. Мұндай функциялардың нақты мысалдары – «Баспалы бобр», Колмогоровтың күрделілігі немесе Чейтин тұрақтысы сияқты есептелетін емес санның цифрларын шығаратын кез келген функция. Сол сияқты, табиғи сандардың көпшілігі кіші жиындары есептелетін емес. Тоқтату мәселесі осы сияқты алғашқы жиын болып табылады. Дэвид Гильберт ұсынған Entscheidungsproblem математикалық тұжырымдардың (табиғи сандар ретінде кодталған) дұрыстығын анықтау үшін тиімді процедура бар ма деген сұрақ қойды. Тьюринг және Черч 1930 жылдары тәуелсіз түрде осы табиғи сандар жиынының есептелетін емес екенін көрсетті. Church-Turing тезисіне сәйкес, бұл есептеулерді орындай алатын тиімді процедура (алгоритммен) жоқ.

Салыстырмалы есептеу мүмкіндігі

Функцияның есептелуі ұғымын кез келген A табиғи сандар жиынына қатысты қарастыруға болады. f функциясы A-да есептелетін (балама түрінде, A-ға қатысты есептелетін) деп аталады, егер ол A жиынына оракул ретінде қол жеткізуге мүмкіндік беретін өзгерістермен есептелетін функцияның анықтамасын қанағаттандырса. Есептелетін функцияның ұғымы сияқты, қатысты есептелу де көптеген есептеу модельдерінде эквивалентті анықтамаларға ие болуы мүмкін. Бұл көбінесе есептеу моделіне қосымша қарапайым операцияны қосу арқылы іске асырылады, ол берілген бүтін санның A жиынына жататынын анықтайды. Сондай-ақ, f функциясы g функциясында есептелетінін, g функциясын оның графигімен теңестіру арқылы айтуға болады.

Жоғары рекурсиялық теория

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

Гипер есептеу

Чёрч-Тьюринг тезисі есептеуге болатын функцияларға алгоритмі бар барлық функциялар кіретінін айтса да, алгоритмдерге қойылатын талаптарды жеңілдететін, одан кең функциялар кластарын қарастыру мүмкін. Гиперкомпутация саласы қалыпты Тьюринг есептеулерінен асып түсетін есептеу модельдерін зерттейді.