Кіріспе
Бағдарламамен есептелетін математикалық функция. Есептелетін функциялар – есептеу теориясының негізгі зерттеу нысандары. Есептелетін функциялар – алгоритмдер туралы интуитивті түсініктердің формалды аналогы, функцияның жұмысын атқара алатын алгоритм болған жағдайда, функция есептелетін болып саналады, яғни функция доменінің кірісі берілгенде, ол тиісті шығысты қайтара алады. Есептелетін функциялар есептеудің нақты бір моделіне, мысалы Тьюринг машиналарына немесе регистрлік машиналарға сілтеме жасамай, есептеуді талқылау үшін қолданылады. Дегенмен, кез келген анықтама белгілі бір есептеу моделіне сілтеме жасауы керек, бірақ барлық дұрыс анықтамалар функциялардың бірдей класын береді. Есептелетін функциялар жиынтығын тудыратын есептеудің ерекше модельдері – Тьюринг есептелетін функциялары және жалпы рекурсивті функциялар. Чёрч-Тьюринг тезисіне сәйкес, есептелетін функциялар – механикалық (яғни автоматты) есептеу құрылғысын қолдана отырып, шексіз уақыт және жад кеңістігі берілгенде есептеуге болатын функциялар. Нақтырақ айтқанда, есімдегі әрбір есептеу моделі тек есептелетін функцияларды ғана есептеуге болады, ал барлық есептелетін функцияларды Тьюринг машиналары, регистрлік машиналар, лямбда-есептеу және жалпы рекурсивті функциялар сияқты көріне бермейтін әртүрлі есептеу модельдерінің кез келгені есептей алады. Есептелетін функцияның нақты анықтамасынан бұрын математиктер көбінесе «тиімді есептелетін» бейресми терминін қолданды. Бұл термин кейіннен есептелетін функциялармен теңестірілді. Бұл функциялардың тиімді есептелуі оларды тиімді түрде есептеуге болатынын білдірмейді (яғни, ақылға қонымды уақыт ішінде есептеуге болады). Шындығында, кейбір тиімді есептелетін функциялар үшін оларды есептейтін кез келген алгоритмнің жұмыс уақыты кіріс ұзындығымен экспоненциалды (немесе тіпті суперекспоненциалды) өседі, яғни өте тиімсіз болады деп көрсетуге болады. Іске асырылатын есептеу және есептеу күрделілігі салалары тиімді есептеуге болатын функцияларды зерттейді. Блум аксиомаларын есептелетін функциялар жиынтығында абстрактілі есептеу күрделілігі теориясын анықтау үшін қолдануға болады. Есептеу күрделілігі теориясында есептелетін функцияның күрделілігін анықтау мәселесі функциялық мәселе деп аталады.
Computable functions are the basic objects of study in computability theory. Computable functions are the formalized analogue of the intuitive notion of algorithms, in the sense that a function is computable if there exists an algorithm that can do the job of the function, i. e. given an input of the function domain it can return the corresponding output. Computable functions are used to discuss computability without referring to any concrete model of computation such as Turing machines or register machines. Any definition, however, must make reference to some specific model of computation but all valid definitions yield the same class of functions. Particular models of computability that give rise to the set of computable functions are the Turing computable functions and the general recursive functions. According to the Church–Turing thesis, computable functions are exactly the functions that can be calculated using a mechanical (that is, automatic) calculation device given unlimited amounts of time and storage space. More precisely, every model of computation that has ever been imagined can compute only computable functions, and all computable functions can be computed by any of several models of computation that are apparently very different, such as Turing machines, register machines, lambda calculus and general recursive functions. Before the precise definition of computable function, mathematicians often used the informal term effectively calculable. This term has since come to be identified with the computable functions. The effective computability of these functions does not imply that they can be efficiently computed (i. e. computed within a reasonable amount of time). In fact, for some effectively calculable functions it can be shown that any algorithm that computes them will be very inefficient in the sense that the running time of the algorithm increases exponentially (or even superexponentially) with the length of the input. The fields of feasible computability and computational complexity study functions that can be computed efficiently. The Blum axioms can be used to define an abstract computational complexity theory on the set of computable functions. In computational complexity theory, the problem of determining the complexity of a computable function is known as a function problem.
Ресми тілдер
Компьютерлік ғылымдағы есептеу теориясында формальды тілдерді қарастыру жиі кездеседі. Әліпби – кездейсоқ жиын. Әліпбидегі сөз – әліпбидегі символдардың шекті тізбегі; бір символ бірнеше рет пайдаланылуы мүмкін. Мысалы, екілік тізбектер – дәл {0, 1} әліпбиіндегі сөздер. Тіл – белгіленген әліпбидегі барлық сөздер жиынының кіші жиыны. Мысалы, дәл 3 бірлік қамтитын барлық екілік тізбектер жиыны – екілік әліпбидегі тіл. Формальды тілдің маңызды қасиеті – берілген сөздің тілге жататынын анықтау үшін қажетті қиындық деңгейі. Есептеу функциясының тілдегі кез келген сөзді қабылдауына мүмкіндік беру үшін кейбір кодтау жүйесін жасау қажет; бұл әдетте стандартты процедура саналады. Тіл есептеуге болады (синонимдер: рекурсивті, шешімді) егер әрбір әліпбидегі w сөзі үшін, сөз тілде болса және сөз тілде болмаса, есептеуге болатын f функциясы болса. Демек, тілдегі кез келген сөздің тілге жататынын дұрыс анықтай алатын процедура болған жағдайда ғана тіл есептеуге болады. Тіл есептеулік тұрғыдан саналатын (синонимдер: рекурсивті саналатын, жартылай шешімді) болады, егер f(w) функциясы тек қана w сөзі тілде болғанда ғана анықталса. "Саналатын" терминінің этимологиясы табиғи сандардың саналатын жиындарымен бірдей.
Черч-Тюрингтің диссертациясы
Черч-Тюринг тезисі жоғарыда аталған үш қасиетке ие процедурадан есептелетін кез келген функция есептеуге болатын функция болып табылады. Бұл үш қасиет ресми түрде көрсетілмегендіктен, Черч-Тюринг тезисін дәлелдеу мүмкін емес. Келесі фактілер көбінесе тезистің негіздемесі ретінде қарастырылады: есептеудің көптеген эквивалентті модельдері белгілі, және олардың барлығы есептеуге болатын функцияның бірдей анықтамасын береді (немесе кейбір жағдайларда, нашарлау нұсқасын). Әзірге, жалпы тиімді есептеуге қабілетті деп есептелетін, күштірек есептеу моделі ұсынылмаған. Черч-Тюринг тезисі кейде нақты есептеу процедурасын беру арқылы белгілі бір функцияның есептеуге болатынын дәлелдеу үшін қолданылады. Мұндай қолдануға рұқсат етіледі, себебі осы тезистің барлық осындай қолданыстарын есептеудің бір моделінде функция үшін ресми процедура жазу арқылы алып тастауға болады деп саналады.
Many equivalent models of computation are known, and they all give the same definition of computable function (or a weaker version, in some instances). No stronger model of computation which is generally considered to be effectively calculable has been proposed. The Church–Turing thesis is sometimes used in proofs to justify that a particular function is computable by giving a concrete description of a procedure for the computation. This is permitted because it is believed that all such uses of the thesis can be removed by the tedious process of writing a formal procedure for the function in some model of computation.
Дәлелденуі
Функцияны (немесе, сондай-ақ, жиынтықты) қарастыра отырып, оның есептелуі ғана емес, сонымен қатар оны белгілі бір дәлелдеу жүйесінде (әдетте бірінші реттік Пеано арифметикасында) дәлелдеуге болатыны да қызығушылық тудыруы мүмкін. Дәлелдеу арқылы есептелетіні көрсетілген функция – дәлелденетін толық функция деп аталады. Дәлелденетін толық функциялар жиыны рекурсивті түрде санауға болады: олардың есептелуін дәлелдейтін барлық сәйкес дәлелдемелерді тізімдеп, барлық дәлелденетін толық функцияларды санауға болады. Бұл дәлелдеу жүйесінің барлық дәлелдемелерін тізімдеп, қатысы жоқ дәлелдемелерді назардан тыс қалдыру арқылы іске асырылуы мүмкін.
Рекурсивті анықталатын функцияларға қатынасы
Рекурсивті анықтамамен анықталған функцияда әрбір мән сол функцияның немесе басқа функциялардың бұрын анықталған басқа мәндерінің бірінші реттік формуласымен анықталады, олар жай ғана тұрақты шамалар болуы мүмкін. Мұндай функциялардың біреуі – примитивті рекурсивті функциялар. Кез келген мұндай функция дәлелді түрде толық болады: 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 рекурсивті функциясының аргументі ретінде қолданылуы мүмкін.
Гипер есептеу
Чёрч-Тьюринг тезисі есептеуге болатын функцияларға алгоритмі бар барлық функциялар кіретінін айтса да, алгоритмдерге қойылатын талаптарды жеңілдететін, одан кең функциялар кластарын қарастыру мүмкін. Гиперкомпутация саласы қалыпты Тьюринг есептеулерінен асып түсетін есептеу модельдерін зерттейді.