Кіріспе
Теориялық компьютерлік ғылым мен математикадағы есептеу теориясы – есептеу моделінде алгоритм қолданып, қандай мәселелерді шешуге болады, оларды қаншалықты тиімді шешуге болады немесе қандай дәрежеде (мысалы, нақты шешімдерге қарағанда жуықтап) шешуге болады деген мәселелерді зерттейтін сала. Бұл сала үш негізгі тармаққа бөлінеді: автоматтар теориясы және формальды тілдер, есептеу мүмкіндіктері теориясы және есептеу күрделілігі теориясы. Олардың бәрі "Компьютерлердің негізгі қабілеттері мен шектеулері қандай?" деген сұраққа байланысты. Есептеуді қатаң түрде зерттеу үшін компьютер ғалымдары есептеу моделі деп аталатын компьютерлердің математикалық абстракциясын пайдаланады. Қолданыста бірнеше модель бар, бірақ ең көп зерттелгені – Тьюринг машинасы. Компьютер ғалымдары Тьюринг машинасымен айналысады, себебі оны құру оңай, талдауға болады және нәтижелерді дәлелдеу үшін қолдануға мүмкіндік береді. Сонымен қатар, көптеген адамдар оны есептеудің ең күшті және "ақылға сыятын" моделі деп санайды (Church–Тьюринг тезисін қараңыз). Потенциалды шексіз жад сыйымдылығы іске аспайтын қасиет сияқты көрінуі мүмкін, бірақ Тьюринг машинасы шешетін кез келген шешілетін мәселе үшін әрқашан шектеулі жад көлемі жеткілікті. Сондықтан, теориялық тұрғыдан алғанда, Тьюринг машинасымен шешілетін кез келген мәселені шектеулі жады бар компьютер де шеше алады.
In theoretical computer science and mathematics, the theory of computation is the branch that deals with what problems can be solved on a model of computation, using an algorithm, how efficiently they can be solved or to what degree (e. g., approximate solutions versus precise ones). The field is divided into three major branches: automata theory and formal languages, computability theory, and computational complexity theory, which are linked by the question: "What are the fundamental capabilities and limitations of computers?". In order to perform a rigorous study of computation, computer scientists work with a mathematical abstraction of computers called a model of computation. There are several models in use, but the most commonly examined is the Turing machine. Computer scientists study the Turing machine because it is simple to formulate, can be analyzed and used to prove results, and because it represents what many consider the most powerful possible "reasonable" model of computation (see Church–Turing thesis). It might seem that the potentially infinite memory capacity is an unrealizable attribute, but any decidable problem solved by a Turing machine will always require only a finite amount of memory. So in principle, any problem that can be solved (decided) by a Turing machine can be solved by a computer that has a finite amount of memory.
Тарих
Есептеу теориясын компьютерлік ғылым саласындағы барлық түрдегі үлгілерді жасау ретінде қарастыруға болады. Сондықтан математика және логика пайдаланылады. Өткен ғасырда ол математикадан тәуелсіз, жеке академиялық ғылым ретінде қалыптасты. Есептеу теориясының алғашқы дамушылары Рамон Лулл, Алонзо Черч, Курт Гёдель, Алан Тьюринг, Стивен Клини, Роза Петер, Джон фон Нейман және Клод Шеннон болды.
Ресми тіл теориясы
Тіл теориясы – әліпбидегі операциялар жиынтығы ретінде тілдерді сипаттаумен айналысатын математиканың бір саласы. Ол автоматтар теориясымен тығыз байланысты, себебі автоматтар формальды тілдерді жасау және тану үшін қолданылады. Формальды тілдердің бірнеше кластары бар, олардың әрқайсысы алдыңғысына қарағанда күрделі тілдік сипаттамаға мүмкіндік береді, яғни Чомски иерархиясы, және әрқайсысы оны танитын автоматтар класына сәйкес келеді. Автоматтар есептеу үлгілері ретінде қолданылатындықтан, формальды тілдер есептеуді қажет ететін кез келген мәселені сипаттаудың басты тәсілі болып табылады.
Есептеу теориясы
Есептеу теориясы негізінен проблеманың компьютерде шешілу мүмкіндігінің деңгейімен айналысады. Тьюринг машинасымен тоқтату мәселесін шеше алмайтыны туралы мәлімдеме – есептеу теориясының ең маңызды нәтижелерінің бірі, себебі ол Тьюринг машинасы арқылы оңай формулировкаланатын, бірақ шеше алмайтын нақты мәселенің мысалы. Есептеу теориясының көп бөлігі тоқтату мәселесінің нәтижесіне сүйенеді. Есептеу теориясындағы маңызды қадамдардың бірі – Райс теоремасы, ол барлық тривиальды емес ішінара функциялардың қасиеттері үшін, Тьюринг машинасы осы қасиетке ие ішінара функцияны есептейтін-есептемейтінін анықтау мүмкін емес екенін көрсетеді. Есептеу теориясы математикалық логиканың рекурсия теориясы деп аталатын саласымен тығыз байланысты, ол есептеудің Тьюринг моделіне келтірілетін модельдерін ғана зерттеу шектеуін жояды. Рекурсия теориясын зерттейтін көптеген математиктер мен есептеушілер оны есептеу теориясы деп атайды.
Есептеулік күрделілік теориясы
Күрделілік теориясы проблеманы компьютерде шешуге бола ма, сонымен қатар проблеманы қаншалықты тиімді шешуге болатынын қарастырады. Екі негізгі аспект қарастырылады: уақыт күрделілігі және жад күрделілігі, олар есеп жүргізу үшін қанша қадам қажет және осы есептеуді орындау үшін қанша жад қажет екенін көрсетеді. Берілген алгоритмге қанша уақыт пен жад қажет екенін талдау үшін компьютерлік ғалымдар мәселені шешу үшін қажетті уақыт немесе жадты кіріс мәселесінің мөлшеріне байланысты функция ретінде көрсетеді. Мысалы, сандар тізімі ұзарған сайын, сандардың ұзақ тізімінен белгілі бір санды табу қиындай түседі. Егер тізімде n сан болса, тізім сұрыпталмаған немесе индекстелмеген болса, ізделіп отырған санды табу үшін әр санды қарауға тура келеді. Осылайша, бұл мәселені шешу үшін компьютер мәселенің мөлшерімен сызықтық түрде өсетін қадамдар жиынтығын орындауы керек деуге болады. Бұл мәселені жеңілдету үшін компьютерлік ғалымдар Big O белгісін қабылдады, ол функцияларды машинаның құрылысының нақты аспектілерін ескермей, проблемалардың мөлшері артқан сайын асимптотикалық мінез-құлқына назар аударуға мүмкіндік береді. Алдыңғы мысалда, мәселені шешу үшін шамамен қадамдар қажет деуге болады. Мүмкін, компьютерлік ғылымдағы ең маңызды ашық мәселе – NP деп белгіленген проблемалардың кең класын тиімді шешуге бола ма деген сұрақ. Бұл мәселе күрделілік сыныптары P және NP тақырыбында талқыланады, ал P және NP проблемасы 2000 жылы Клей математикалық институты жариялаған жеті Мыңжылдық сыйлық проблемасының бірі болып табылады. Мәселенің ресми сипаттамасын Тьюринг сыйлығының иегері Стивен Кук жасаған.