Машината на Тюринг — въображаемото устройство, което определи границите на всеки компютър

Машината на Тюринг — въображаемото устройство, което определи границите на всеки компютър | Д-р Атанас Илчев
📞 Онлайн уроци по математика за цялата страна гл.ас. д-р Атанас Илчев Индивидуални и групови уроци • Тел: 0883 375 433 Подготовка за НВО, ДЗИ, кандидатстудентски изпити 📞 Онлайн уроци по математика за цялата страна гл.ас. д-р Атанас Илчев Индивидуални и групови уроци • Тел: 0883 375 433 Подготовка за НВО, ДЗИ, кандидатстудентски изпити
★ Интересно от математиката

Машината на Тюринг —
въображаемото устройство, което определи границите на всеки компютър

Никога не е построена. Няма екран, няма процесор в съвременния смисъл, няма RAM-памет. Съществува единствено на хартия като математическа абстракция. И въпреки това машината на Тюринг вероятно е най-важната абстракция в историята на информатиката — защото доказва веднъж завинаги какво компютрите могат да изчислят и какво им е принципно невъзможно. Отговорът на втория въпрос е изненадващ: има задачи, които никой компютър — колкото и бърз — никога няма да може да реши.

Д-р Атанас Илчев Поредица: Интересно от математиката
1936
г. — Тюринг подава знаменитата си статия; тогава е на 23 години
Дълга лента с клетки — единствената „памет" на машината
0
Реално построени машини на Тюринг — тя съществува само като математически модел
Алгоритъм, който решава проблема на спирането — математически доказано е невъзможен

Въпросът, който разтревожил математиката

През 1928 г. Давид Хилберт поставя пред математиката прочутия Entscheidungsproblem — въпроса дали съществува общ механичен метод, който за всяка формула от формалната логика да решава дали тя е общовалидна. В по-широк философски смисъл въпросът е още по-дръзък: може ли математическото разсъждение да бъде сведено до алгоритъм?

Хилберт е оптимист. В реч от 1930 г. произнася думите, станали негово мото: „Wir müssen wissen, wir werden wissen" — „Трябва да знаем, ще знаем." Целта му е пълна механична формализация на цялата математика. Осем години по-късно младият британски математик Алън Тюринг публикува статия с отговора — и отговорът е „не". За да го докаже, Тюринг измисля едно въображаемо устройство — устройство, което никога не е построено, но което е променило завинаги нашето разбиране за изчисленията, логиката и границите на познанието.

Какво е машината на Тюринг

Представете си безкрайно дълга хартиена лента, разделена на клетки. Всяка клетка съдържа един символ — например „0", „1" или е празна. Над лентата се движи глава за четене и запис, която може да прочете символа в текущата клетка, да запише нов символ на нейно място и да се придвижи една клетка наляво или надясно. Машината се управлява от таблица с правила — „програмата" — и се намира в едно измежду краен брой вътрешни състояния.

Една стъпка на машината изглежда така: „Ако съм в състояние A и виждам символ „1" — запиши „0", придвижи се надясно и премини в състояние B." Това е всичко. Нищо повече. Но от тези прости правила, повторени достатъчно пъти, може да се симулира всяко изчисление, което съвременен компютър е способен да извърши.

Машината работи стъпка по стъпка, следвайки правилата, докато достигне специално „крайно" състояние — или не го достигне никога и продължава да работи безкрайно. Изходът от изчислението е написаното върху лентата в края. В оригиналната статия Тюринг говори за „автоматична машина" (a-machine). Именно Алонзо Чърч в рецензия от 1937 г. въвежда термина „машина на Тюринг" — и той остава до днес.

Машината на Тюринг — лента, глава и правила 0 1 1 0 1 0 0 1 0 …-4 -3 -2 -1 0 +1 +2 +3 +4… ГЛАВА чете / пише Текущо състояние: Състояние A Активна клетка Лента (безкрайна) Четяща/пишеща глава
Лентата и четящата/пишещата глава на машината на Тюринг. Главата чете символа в активната клетка, записва нов символ и се придвижва наляво или надясно според таблицата с правила.
ⓘ Примерна програма с две вътрешни състояния
Текущо
състояние
Прочетен
символ
Запиши
символ
Движи
главата
Ново
състояние
A 0 0 → надясно A
A 1 1 → надясно B
B 0 1 ← наляво B
B 1 0 ← наляво СПРИ
Примерна таблица с правила — „програмата" на машината. Само 4 реда с инструкции, но достатъчни за просто изчисление. Реалните програми могат да имат стотици или хиляди такива редове.
ⓘ Колко е проста машината?
Първоначалната идея на Тюринг не е просто да измисли машина, а да формализира какво означава човек да изчислява механично — стъпка по стъпка, по правило. Затова моделът е толкова прост. Известни са удивително малки универсални машини на Тюринг; например има еднолентови универсални машини само с 2 символа и 15 вътрешни състояния. Нито един реален компютър няма безкрайна памет — машината на Тюринг е идеализиран модел, позволяващ да мислим за изчислимостта в чист вид, без ограниченията на конкретния хардуер. За образователни цели многократно са строени механични и електронни демонстрации в духа на машината на Тюринг, макар че самият математически модел изисква идеализирана неограничена лента.

Универсалната машина — прародителят на всеки компютър

Тюринг прави нещо гениално: осъзнава, че описанието на всяка машина на Тюринг може да се запише като низ от символи върху лентата на друга машина. Така може да се построи универсална машина на Тюринг, която чете описанието на произволна машина от лентата и я симулира стъпка по стъпка.

Това е революционна идея: едно и същото физическо устройство може да изпълнява различни програми в зависимост от входа. Преди Тюринг изчислителните машини са мислени като специализирани уреди — машина за събиране, друга за умножение, трета за шифроване. Универсалната машина на Тюринг е концептуалният прародител на програмируемия компютър с обща цел. Джон фон Нойман директно черпи от тази идея при проектирането на архитектурата на първите реални компютри след войната — архитектура, носеща неговото име и лежаща в основата на всеки процесор, произведен до днес.

„Можем да сравним компютъра с книга с инструкции. Самата книга не мисли — но позволява на четящия да следва точни стъпки. Компютърът е универсалната машина на Тюринг в плът и кръв." — парафраза на идеята на Тюринг от 1936 г.

Проблемът на спирането — въпросът без отговор

Тюринг използва своята машина, за да постави и отговори на един от най-важните въпроси в историята на математиката: може ли компютър да определи предварително дали дадена програма ще завърши или ще работи вечно?

Звучи като практичен въпрос — и е такъв. Когато пишете програма с цикъл, понякога не е ясно дали тя ще спре. Не би ли било удобно да разполагаме с програма-детектор, която анализира произволен код и отговаря: „Тази ще спре" или „Тази ще работи вечно"? Такъв детектор би имал огромна практическа стойност — за отстраняване на грешки, за верификация на софтуер, за сигурността на системите.

Тюринг доказва: такъв детектор е математически невъзможен. Не защото компютрите са недостатъчно бързи или паметта им е малка. А защото самото съществуване на такъв алгоритъм води до логическо противоречие — независимо от конструкцията му. Проблемът на спирането (Halting Problem) е алгоритмично неразрешим — принципно нерешим от никакъв алгоритъм, никога.

Доказателството — логиката срещу себе си

Тюринг доказва неразрешимостта чрез елегантен метод, наречен диагонален аргумент — идея, заимствана от Георг Кантор и приложена в нов контекст. Ето логиката накратко:

Допуснете, че съществува програма H, която за произволна програма P отговаря правилно: „спира" или „не спира". Сега конструираме програма D, която прави следното: пуска H върху P(P) и ако H казва „спира" — D влиза в безкраен цикъл. Ако H казва „не спира" — D спира веднага.

Питаме: какво се случва, ако пуснем D върху себе си? Ако D(D) спира, тогава H е казало „спира" — но по конструкция D трябва да зациклява. Ако D(D) зациклява, тогава H е казало „не спира" — но по конструкция D трябва да спре. Противоречие и в двата случая. Следователно H не може да съществува.

Интуицията зад доказателството. Помните ли парадокса на лъжеца — „Това изречение е лъжа"? Ако е вярно, то е лъжа; ако е лъжа, то е вярно. Тюринг конструира програмен еквивалент на точно такова самореференциращо противоречие. Програмата, питаща себе си дали ще спре, се самоунищожава логически. Изчислимостта среща самата себе си и се проваля — не случайно, а неизбежно.

Тезата на Чърч–Тюринг — какво означава „изчислимо"

По същото време американският математик Алонзо Чърч независимо стига до същите заключения чрез различен формализъм — ламбда смятането. Малко по-рано Емил Пост формулира свой вариант — „Post machines". Три независими подхода, водещи до един и същи отговор, подсказват нещо дълбоко: вероятно е открита универсална истина, а не просто следствие от избрания формализъм.

Така се ражда тезата на Чърч–Тюринг: всяка функция, интуитивно изчислима по алгоритъм, може да се изчисли от машина на Тюринг. Тезата не е теорема — не може да се докаже строго, тъй като понятието „интуитивно изчислимо" е неформално. Но от 1936 г. до днес никой не е намерил алгоритъм, надхвърлящ силата на машината на Тюринг. Като модел на алгоритмичното изчисление машината на Тюринг улавя възможностите на всеки общопрограмируем компютър.

ⓘ Тюринг-пълни системи навсякъде около нас
Програмен език се нарича „Тюринг-пълен", ако може да симулира универсална машина на Тюринг. Python, Java, C и JavaScript са очевидни примери. По-изненадващо е, че такава изчислителна пълнота се среща и на неочаквани места — например във формулния език на Excel с LAMBDA, в LaTeX, а дори и в някои игрови и формални системи. Оказва се, че някои на пръв поглед неочаквани системи също могат да реализират универсално изчисление.
Йерархия на изчислимостта ✓ Разрешими (изчислими) Аритметични операции Сортиране, търсене Шифроване, компресия Всеки алгоритъм Машината спира и дава верен отговор за всеки вход „да" или „не" — винаги ~ Полуразрешими (частично разрешими) „Тази програма ще спре" (при положителен отговор машината спира и потвърждава; при отрицателен — може да работи безкрайно) Може да се потвърди при „да", но не може да се решава общо „да" — понякога; „не" — никога ✗ Неразрешими (алгоритмично) Проблем на спирането Busy Beaver (n ≥ 6) „Дали две програми правят едно и също?" Никакъв алгоритъм не може да даде верен отговор за всеки вход нито „да", нито „не" — никога Разрешимите ⊂ Полуразрешимите ⊂ Всички формално зададени задачи Неразрешимите са в „Всички задачи", но извън полуразрешимите
Три класа задачи в теорията на изчислимостта. Машината на Тюринг решава всичко в зелената колона. Червената колона — може само да потвърди „да". Жълтата колона — никакъв алгоритъм не може да реши тези задачи в общия случай.

Неразрешимостта е навсякъде

Проблемът на спирането не е изолиран казус. Тюринг показва, че много привидно практични задачи са принципно неразрешими — чрез т.нар. свеждане: ако дадена задача беше разрешима, бихме могли да решим и проблема за спирането, а той доказано не е.

Дали две програми правят едно и същото нещо? Неразрешимо. Дали дадена програма ще достигне определен ред при изпълнение? Неразрешимо. Дали дадена програма съдържа злонамерен код? В общия случай — неразрешимо. Именно затова антивирусните програми не могат да бъдат математически съвършени: те работят с евристики и познати сигнатури, но не могат да решат общия проблем.

Последствията за сигурността на софтуера. Ако проблемът на спирането беше разрешим, щяхме да можем да напишем програма, автоматично проверяваща дали произволен код е коректен, безопасен или злонамерен. Тъй като е неразрешим, формалната верификация на сложен софтуер остава трудна, непълна и скъпа — въпрос на частични методи, а не на пълно решение. Никаква по-бърза хардуерна платформа не може да преодолее тази граница — тя е логическа, не физическа.

Busy Beaver — когато простотата скрива безкрайността

Унгарският математик Тибор Радо формулира през 1962 г. задачата „Зает Бобър" (Busy Beaver): каква е максималната дължина на изчислението, което може да извърши машина на Тюринг с точно n вътрешни състояния, преди да спре? Тази функция — BB(n) — расте по-бързо от всяка изчислима функция и самата тя е принципно неизчислима. Да я определиш за всички n би означавало да решиш проблема за спирането.

Стойностите за малки n се намират с огромни усилия: BB(1) = 1, BB(2) = 6, BB(3) = 21, BB(4) = 107. Намирането само на BB(5) отнема над 40 години. Самата машина-рекордьор с 47 176 870 стъпки е известна още от 1989 г. — трудността е била да се докаже, че никоя друга машина с 5 състояния не може да я надмине. На 2 юли 2024 г. международен онлайн колектив — координирани в Discord сървър с над 135 000 съобщения от около 400 участници — обявява окончателния отговор: BB(5) = 47 176 870. За да стигнат до него, изследователите проверяват над 17 трилиона комбинации от машини с 5 състояния, а доказателството е формализирано с асистента Coq и е публично достъпно.

ⓘ Известни стойности на функцията Busy Beaver
n (брой
състояния)
BB(n) — максимален
брой стъпки
Доказано
от / кога
Бележка
1 1 Радо, 1962 Тривиален случай
2 6 Радо, 1962 Доказано при създаването
3 21 Линн, 1971 Отнело девет години
4 107 Брейди, 1983 Изискало компютърна помощ
5 47 176 870 bbchallenge.org,
юли 2024
Машината-рекордьор известна от 1989 г.; доказано окончателно от колектив с помощта на Coq
6 10↑↑15 Неизвестно Свързано с изключително трудни Collatz-подобни процеси; долната граница е астрономически голяма
≥ 7 неизвестно Неизвестно Стойностите не са известни; общата функция BB(n) е неизчислима
Стойностите на функцията Busy Beaver — всяка следваща е несравнимо по-голяма. След ред 5 задачата става драматично по-трудна и следващите стойности остават неизвестни.
BB(6) — отвъд границата на известното. За BB(6) точната стойност все още не е известна. Изследователите са открили машини с 6 състояния, чието поведение е свързано с изключително трудни, Collatz-подобни процеси — което показва колко далеч отвъд обикновената интуиция стигат тези въпроси. Долната граница за BB(6) е вече астрономически голямо число, изискващо специална нотация, за да се запише компактно.

Връзката с теоремата на Гьодел

Само пет години преди Тюринг австрийският математик Курт Гьодел публикува своята прочута теорема за непълнотата (1931): всяка достатъчно богата формална аритметична система съдържа твърдения, които не могат да бъдат нито доказани, нито опровергани в рамките на самата система. Хилберт се е надявал да намери пълна и непротиворечива основа за цялата математика. Гьодел и Тюринг заедно показват, че тази програма има принципни ограничения.

Двете теореми не са случайно свързани — те са двете лица на едно и същото ограничение. Тюринг сам разработва тази връзка в докторската си дисертация от 1938 г., показвайки как недоказуемите твърдения на Гьодел могат да се конструират механично. Всяка достатъчно изразителна формална система неизбежно среща стена от вътрешни ограничения — не защото науката е несъвършена, а защото самата логика е такава.

„Гьодел ни казва: не всичко може да се докаже. Тюринг ни казва: не всичко може да се изчисли. И двамата ни казват едно и същото нещо с различни думи." — обобщение на дълбоката връзка между двете теореми

Машината на Тюринг и изкуственият интелект

В есето си от 1950 г. „Изчислителни машини и интелигентност" Тюринг поставя въпроса директно: „Може ли машина да мисли?" Веднага отбелязва, че въпросът е трудно дефинируем, и предлага заместителен критерий — имитационната игра. Любопитен исторически детайл е, че оригиналната игра не започва направо като „човек срещу машина" — тя е формулирана първоначално с трима участника (мъж, жена и разпитващ), и едва после Тюринг я преобразува в тест за машинна интелигентност. Тестът е известен по-късно просто като Тест на Тюринг: ако съдия не може да различи машината от човека при текстов разговор, машината се смята за преминала теста.

Почти 30 години нито една машина не преминава теста при строгите му условия. В едно експериментално изследване от 2024 г. най-успешната настройка на GPT-4 е оценявана като човешка в приблизително половината разговори — около 50%, при около 67% за реалните хора и около 22% за ELIZA. Това е впечатляващ резултат, но не означава, че тестът е окончателно „решен" или че машината „мисли" в човешкия смисъл; по-скоро показва колко убедително съвременните модели могат да имитират човешка комуникация.

„Детето-машина" на Тюринг. В същото есе Тюринг предлага нещо по-провокативно: вместо да се програмира директно „интелигентна" машина, да се програмира машина с разума на дете, която да се обучава чрез опит. „Вместо да се опитваме да произведем програма, симулираща ума на възрастен, защо да не се опитаме да произведем такава, симулираща ума на дете?" В този смисъл Тюринг не предлага просто „мислеща машина", а машина, която се учи — идея, удивително близка до днешната логика на машинното обучение, формулирана 70 години преди ChatGPT.

Квантовите компютри — надхвърлят ли машината на Тюринг?

Квантовите компютри са едно от най-горещите направления в науката. Те използват квантова суперпозиция и заплетеност, за да извършват изчисления, недостъпни за класическите компютри при разумно време. Дали надхвърлят границите на машината на Тюринг?

Отговорът е: не по отношение на изчислимостта, но да по отношение на скоростта. Квантовите компютри са теоретично Тюринг-еквивалентни — изчисляват точно същите функции, но за определени задачи (факторизация на числа, търсене в бази данни) го правят експоненциално по-бързо. Проблемът на спирането остава неразрешим дори за квантов компютър. Границите, поставени от Тюринг, са логически — никое физическо устройство, колкото и мощно, не може да ги преодолее.

ⓘ Хиперизчисленията — отвъд Тюринг?
Съществуват спекулативни теоретични модели на хиперизчисление, но засега те не описват реално налична физическа технология и остават извън стандартната теория на изчислимостта. Никакво известно физическо явление не ни позволява да изчислим повече от машина на Тюринг.

Какво машината на Тюринг ни казва за нас самите

Има нещо дълбоко обезпокоително и едновременно освобождаващо в идеята, че съществуват принципно нерешими задачи. Обезпокоително — защото означава, че има истини, до които никога няма да стигнем по алгоритмичен път. Освобождаващо — защото означава, че изчислимостта не е всичко. Светът е по-богат от всяка програма.

Хилберт искал пълна математическа сигурност. Гьодел показа, че тя е невъзможна в логически смисъл. Тюринг показа, че е невъзможна и в изчислителен смисъл. Заедно те разкриха нещо неочаквано: математиката е дисциплина с хоризонти, до края на която никога не можем да стигнем — и именно това я прави неизчерпаемо интересна.

Машината на Тюринг — тази проста конструкция от лента, глава и таблица с правила — е едновременно модел на всяко изчисление и доказателство за неговите граници. Родена от ума на млад студент в тих кабинет в Кеймбридж, тя и 90 години по-късно остава теоретичната основа зад всеки лаптоп, смартфон и облачен сървър.

Хронология

1928
Давид Хилберт формулира Entscheidungsproblem — дали съществува общ механичен метод, решаващ за всяка формула от формалната логика дали е общовалидна. Убеден е, че отговорът е „да".
1931
Курт Гьодел доказва теоремата за непълнотата — всяка достатъчно богата формална система съдържа недоказуеми твърдения. Така оптимистичната програма на Хилберт се оказва принципно ограничена.
1936
23-годишният Алън Тюринг подава статията „За изчислимите числа" — въвежда машината на Тюринг и доказва неразрешимостта на проблема за спирането.
1936
Алонзо Чърч независимо публикува еквивалентен резултат чрез ламбда смятане. Заедно с Тюринг формулират тезата на Чърч–Тюринг.
1937
Чърч въвежда термина „машина на Тюринг" в рецензия на статията — оттогава устройството носи това име.
1945
Джон фон Нойман прилага идеята за универсалната машина при проектирането на архитектурата на първите реални компютри.
1950
Тюринг публикува „Изчислителни машини и интелигентност" — предлага Теста на Тюринг и концепцията за „детето-машина".
1962
Тибор Радо формулира функцията Busy Beaver — неизчислима функция, растяща по-бързо от всяка изчислима.
юли 2024
Международен онлайн колектив доказва BB(5) = 47 176 870 след проверка на над 17 трилиона машини. Доказателството е формализирано в Coq.
2024
В експериментално изследване GPT-4 е оценяван като човешки в около половината разговори. Дискусията за машинната интелигентност продължава.
Днес
Всеки съвременен общ програмируем компютър — от лаптопа до смартфона — е практическо въплъщение на идеята за универсална програмируема машина. Проблемът на спирането остава алгоритмично неразрешим — математически доказано завинаги.
ⓘ Машината на Тюринг накратко
Безкрайна лента, глава за четене/запис, таблица с правила, краен брой вътрешни състояния. От тази проста конструкция следва: всяко изчисление, което може да се извърши по алгоритъм, може да се симулира от машина на Тюринг. И обратно — онова, което машината на Тюринг не може да изчисли, не може да изчисли нищо: нито по-бърз процесор, нито квантов компютър. Включително не може да реши дали самата тя ще спре.
Машина на Тюринг Алън Тюринг Проблем на спирането Изчислимост Теория на автоматите Теорема на Гьодел История на математиката Д-р Атанас Илчев
📖 Още интересни статии
Любопитно от математиката — всички статии
Истории за велики математици, изненадващи открития и идеи, променили света — всичко събрано на едно място.

Запишете урок

Индивидуални и групови онлайн уроци по математика за цялата страна

🎓 Подготовка за изпити
  • НВО по математика след 7 клас
  • НВО по математика след 10 клас
  • Кандидатстудентски изпити по математика
  • Софийски университет „Св. Климент Охридски“
  • УАСГ – Университет по архитектура, строителство и геодезия
  • Технически университет – София и др.
  • Прием в университети в чужбина (ISEE, SAT, A-Level и др.)
📚 Текущо обучение и студенти
  • Усвояване на текущия учебен материал (всички класове)
  • Студенти по всички математически дисциплини:
    Математически анализ, Линейна алгебра, Аналитична геометрия, Диференциални уравнения, Теория на вероятностите, Статистика и др.

Харесва ли ви съдържанието?

Ако тази статия ви е харесала, можете да подкрепите създаването на нови безплатни материали.

📞 Онлайн уроци по математика за цялата страна гл.ас. д-р Атанас Илчев Индивидуални и групови уроци • Тел: 0883 375 433 Подготовка за НВО, ДЗИ, кандидатстудентски изпити 📞 Онлайн уроци по математика за цялата страна гл.ас. д-р Атанас Илчев Индивидуални и групови уроци • Тел: 0883 375 433 Подготовка за НВО, ДЗИ, кандидатстудентски изпити

Коментари

Популярни публикации от този блог

Множества. Основни понятия - обединение, сечение, разлика и допълнение на множества

Триъгълник. Сбор на ъгли в триъгълник. Външен ъгъл на триъгълник 7 клас

Ъгли получени при пресичането на две прави с трета. Теореми признаци, за успоредност на две прави 7 клас