Компютърна история

Машини на Тюринг и теория на изчислимостта

Машини на Тюринг и теория на изчислимостта

Машината на Тюринг е централната теоретична конструкция в компютърните науки. Машината на Тюринг е абстрактен математически модел на изчисление. Използването на машини на Тюринг помага да се обясни какво е изчислението чрез разграничаване на така наречените „изчислими функции.”

Ранното изследване на логиката на Алън Тюринг се фокусира върху известен нерешен проблем, известен като Entscheidungsproblem. Entscheidungsproblem (грубо преведено от немски като проблем за решение) е предложено от философа и математик Дейвид Хилберт през 1928 г. Проблемът попита дали има алгоритъм, който да решава всяко твърдение на официален език.

Официалният език е система от аксиоми и правила за извод, като тези в аритметиката или логиката от първи ред. Аксиомите могат да бъдат всякакви символи, а правилата за извод могат да бъдат всеки списък с правила за манипулиране на тези символи.  „Вземане на решение за всеки оператор“ означава или извеждане дали изявлението е вярно / невярно, или извеждане дали изявлението е производно / невъзможно. Теоремата за пълнота на Кърт Годел доказа, че алгоритъмът, решаващ за валидност, е еквивалентен на ефективна процедура, решаваща за производност. Докладът на Алън Тюринг от 1936 г. „За изчислими числа, с приложение към проблема Entscheidungsproblem“, доказва отрицателен резултат, че е невъзможно алгоритмично да се реши всяко твърдение във формална система.

Алън Тюринг

За да докаже отрицателен резултат за проблема Entscheidungs, Тюринг трябваше да формализира понятието алгоритъм. Формализирането на алгоритъм на Тюринг е математически модел на изчисленията, който по-късно става известен като машина на Тюринг. Машината на Тюринг има краен набор от състояния, в които машината може да бъде. Машината на Тюринг има безкрайно дълга лента, която е разделена на квадрати. На всеки квадрат в лентата има символ, изтеглен от краен набор от символи. Във всеки момент от изчислението машината на Тюринг чете символа на един квадрат от лентата. Машината на Тюринг може да замени този символ с друг символ и да се премести или на квадрат вдясно, или в квадрат отляво. Действието, което машината на Тюринг предприема, автоматично се определя от състоянието, в което се намира машината. След като се извърши заместващият символ и се премине към различно квадратно действие, машината на Тюринг може да премине в различно състояние. Всяко различно състояние има различен набор от правила за това как да заменим символите и в коя посока да се движим.

Рядко физическо изпълнение на дизайна на машината на Тюринг (без безкрайна лента)

Каноничната формулировка на машината на Тюринг обикновено се състои от двоична азбука от изключително 0s и 1s. Тази формулировка отговаря на интуицията на съвременните компютърни програмисти, като се има предвид, че всички съвременни компютри използват двоичен файл. Всъщност машините на Тюринг са неутрални по отношение на размера на азбуката на символите. Машината на Тюринг може също да използва всякакви символи, независимо дали са цифри или изтеглени от всякакъв друг вид азбуки, като изобразителни символи или латинска азбука. Всяка формулировка на всяка възможна крайна азбука е доказуемо редуцируема до двоична машина на Тюринг.

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

Тезата на Чърч-Тюринг твърди еквивалентността на изчислими функции и функции, които могат да бъдат изчислени от машина на Тюринг. Това води до това, че всички функции, които не могат да бъдат изчислени от машините на Тюринг, не могат да бъдат изчислени по друг метод. Дейвид Хилбърт очакваше положителен отговор на проблема Entscheidungsproblem, което би означавало, че всички проблеми са изчислими. Резултатът на Тюринг доведе до откриването на много несъвместими проблеми.

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

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

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

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

Най-добрите приложения за картографиране на геймпад за Linux
Ако искате да играете игри на Linux с геймпад вместо типична система за въвеждане на клавиатура и мишка, има някои полезни приложения за вас. Много ко...
Полезни инструменти за геймърите на Linux
Ако искате да играете игри на Linux, има вероятност да сте използвали приложения и помощни програми като Wine, Lutris и OBS Studio, за да подобрите иг...
HD Remastered Games за Linux, които никога преди не са имали издание на Linux
Много разработчици и издатели на игри излизат с HD ремастер на стари игри, за да удължат живота на франчайза, моля феновете, които искат съвместимост ...