Я студент бакалавриата. Я понимаю, как Тьюринг придумал свою абстрактную машину (моделирующую человека, выполняющего вычисления), но мне кажется, что это неуклюжая, не элегантная абстракция. Почему мы рассматриваем «ленту», а машинная голова пишет символы, меняя состояние, смещая ленту назад и вперед?
Каково основное значение? DFA элегантен - кажется, он точно отражает то, что необходимо для распознавания обычных языков. Но машина Тьюринга, по моему мнению новичка, - просто неуклюжая абстрактная штуковина.
Подумав об этом, я думаю, что наиболее идеализированной моделью вычислений было бы сказать, что некоторая физическая система, соответствующая входной строке, после приведения в движение достигнет статического равновесия, которое при интерпретации эквивалентно той, которая использовалась для формирования система из исходной строки будет соответствовать правильной выходной строке. Это отражает понятие «автоматизация», поскольку система будет меняться детерминистически, основываясь исключительно на исходном состоянии.
Редактировать :
Прочитав несколько ответов, я понял, что меня смущает в машине Тьюринга то, что она не кажется минимальной. Разве каноническая модель вычислений не должна явно передавать суть вычислимости?
Кроме того, на случай, если неясно, я знаю, что DFA не являются полными моделями вычислений.
Спасибо за ответы.
Ответы:
Ну, DFA - это просто машина Тьюринга, которой разрешено только двигаться вправо, и которая должна принимать или отклонять, как только в ней заканчиваются вводимые символы. Так что я не уверен, что можно сказать, что DFA - это естественно, а машина Тьюринга - нет.
Если оставить в стороне критику вопроса, помните, что Тьюринг работал до появления компьютеров. Таким образом, он не пытался кодифицировать то, что делают электронные компьютеры, а, скорее, вычисления в целом. У моих родителей есть словарь 1930-х годов, в котором компьютер определяется как «кто-то, кто вычисляет», и именно отсюда пришел Тьюринг: для него в то время вычисления основывались на правилах скольжения, журнальных таблицах, карандашах и кусочках бумаги. При таком подходе переписывание символов на бумажной ленте не кажется плохой абстракцией.
Хорошо, хорошо, вы говорите (я надеюсь!), Но мы больше не в 30-х годах, так почему мы до сих пор используем это? Здесь я не думаю, что есть какая-то конкретная причина. Преимущество машин Тьюринга в том, что они достаточно просты, и мы неплохо доказываем, что с ними происходит. Хотя формальное указание программы Тьюринга для выполнения какой-то конкретной задачи очень утомительно, после того, как вы сделали это несколько раз, у вас есть разумное представление о том, что они могут сделать, и вам больше не нужно писать формальные спецификации. Модель также легко расширяется, чтобы включить другие естественные функции, такие как произвольный доступ к ленте. Так что это довольно полезная модель, которую мы хорошо понимаем, и у нас также есть довольно хорошее понимание того, как они соотносятся с реальными компьютерами.
Можно было бы использовать другие модели, но тогда нужно было бы выполнить огромное количество переводов между результатами для новой модели и огромным массивом существующей работы над тем, что могут делать машины Тьюринга. Никто не придумал замены для машин Тьюринга, у которых были достаточно большие преимущества, чтобы это выглядело как хорошая идея.
источник
Вы задаете несколько разных вопросов. Позвольте мне кратко ответить на них один за другим.
Что такого важного в модели машины Тьюринга?
В то время попытка Тьюринга определить вычислимость казалась наиболее удовлетворительной. В конечном итоге оказалось, что все описанные выше модели вычислений эквивалентны - все они описывают одно и то же понятие вычислимости. По историческим причинам модель Тьюринга стала наиболее каноническим способом определения вычислимости. Модель также очень элементарна и с ней легко работать, по сравнению со многими другими моделями, в том числе перечисленными выше.
Обычная компьютерная наука учит машины Тьюринга как определение вычислимости, а затем использует их также для изучения теории сложности. Но алгоритмы анализируются в отношении более реалистичной модели, известной как машина ОЗУ, хотя эта проблема обычно скрывается за секретом для cognoscenti.
Разве DFA не лучшая модель?
Это была первоначальная мотивация знаменитой статьи Рабина и Скотта «Конечные автоматы» и проблемы их решения:
Однако оказалось, что, хотя машины Тьюринга слишком сильны, DFA слишком слабы . В настоящее время теоретики предпочитают понятие вычисления полиномиального времени , хотя это понятие также не без проблем. Тем не менее, DFA и NFA по-прежнему имеют свое применение, главным образом в компиляторах (используемых для лексического анализа) и сетевых устройствах (используемых для чрезвычайно эффективной фильтрации).
Не слишком ли ограничена модель машины Тьюринга?
Тезис Черча-Тьюринга утверждает , что машины Тьюринга захватить физическое понятие вычислимости. Юрий Гуревич предпринял попытку доказать этот тезис, сформулировав более общий класс вычислительных устройств, известных как абстрактные автоматы, и доказав, что они эквивалентны по мощности машинам Тьюринга. Возможно, эти машины аналогичны вашей идеализированной модели.
источник
Основополагающее значение имеет идея об эквивалентности по Тьюрингу. Точная модель не важна, если она эквивалентна по Тьюрингу. Но лучше использовать более простую модель, чтобы вы могли легче доказать эквивалентность другим моделям.
Точнее, лучше упростить моделирование этой модели в других моделях, так как мы знаем, что большинство продвинутых языков программирования эквивалентны по Тьюрингу (с некоторыми предположениями об адресах памяти) и могут использоваться для моделирования других моделей.
Существуют и другие модели, такие как лямбда-исчисление и грамматика (переписывание строк). Но проще определить временные и пространственные ограничения в машине Тьюринга. Вы также можете использовать язык программирования, такой как Brainfuck, но это требует ненужной работы, например, для переопределения символов, чтобы иногда получить логически тривиальную модификацию.
Таким образом, машина Тьюринга показалась мне вполне подходящей, если вам нужно выучить одну модель для всего. Но если вы все равно собираетесь изучать несколько моделей, я не вижу ничего плохого в том, чтобы выучить лямбда-исчисление для идеи эквивалентности по Тьюрингу, Brainfuck для доказательства эквивалентности по Тьюрингу других моделей и практических языков программирования (лучше с доступным стеком и без скрытых переменных). для ограничений времени / пространства, и рассматривайте машину Тьюринга только как инструмент, доказывающий, что эти вещи эквивалентны, если никто не удосужился найти способ обойти это. Это естественно случается, если вы сначала не начали изучать основную теорию, а сделали это только тогда, когда нашли ее полезной.
источник
Я хотел бы ответить на эту часть вопроса, добавленную в редактировании:
Это одна из сущностей вычислимости: каково бы ни было общее понятие вычислимости, должна быть одна машина, которая делает все это. Это именно то, что делает универсальная машина Тьюринга. Это также то, что делают современные компьютеры (при условии физически нереалистичной идеализации обладания бесконечной памятью).
Еще один способ выразить это, который напрямую касается вашей озабоченности тем, что машины Тьюринга не являются минимальными, состоит в том, что они настолько минимальны, насколько они могут быть, при условии, что они описывают общее понятие вычислимости, для которого существует универсальная машина.
источник
Машины Тьюринга не предназначены для буквального использования; программирование в них - это то, что можно сделать только один раз в качестве упражнения, чтобы понять, как они работают.
Они специально не созданы для того, чтобы «делать» что-либо. Они не должны быть минимальными, они не должны быть удобными для работы.
Это просто модель машины, которую вы могли бы построить, которая была бы такой же выразительной и мощной, как любая другая машина, которую вы когда-либо могли построить в физической вселенной (насколько мы знаем сегодня).
Они были определены Тьюрингом такими, какими они являются по следующим основным причинам:
Было бы возможно выбрать другой язык? Точно! Можно было использовать любой из известных нам тьюринговых языков. Но было бы гораздо сложнее построить теоретическую основу на более сложной машине.
Я бы сказал, что они даже не являются «популярной моделью вычислений»; никто никогда не будет ничего вычислять с машиной Тьюринга. Это чисто теоретическая концепция, разработанная теоретическими учеными-компьютерщиками.
источник
Почему он популярен, может быть, самый популярный? Вы должны помнить, что Тьюринг изобрел эту «машину» за много лет до появления электронных компьютеров. ТМ работает с бумагой, ручкой, резиной и, что не менее важно, человеческим мозгом. Таким образом, каждый может выполнить «вычисления» с этой машиной. Каждый означает человека, который никогда не изучал компьютеры, программируя языки. Это просто в использовании. Когда вы думаете об этом, вы обнаруживаете парадокс: эта машина представляет собой сборку почти ничего, но вы можете управлять всем. На мой взгляд, парадокс «почти ничего / против / всего» является причиной его популярности. Я хотел бы заметить, что TM не объясняет рекурсию в явном виде, а TM имеет дело только с «прыжком». Эта особенность (явно говоря о рекурсии) может быть источником головной боли для новичков, например, в лямбда-исчислении концепция Y-комбинатора почти не понятна; Точнее, ТМ пользуется популярностью потому, что парадокс «почти ничего / против / всего» без головной боли рекурсии.
источник