Машина Тьюринга: различия между версиями
орфография, викификатор
Byzantine (обсуждение | вклад) орфография, викификатор |
|||
Строка 1:
Журнал [[Журнал «Потенциал»|Потенциал]]
На страницах [[w:Википедия|Википедии]] уже сейчас можно найти информацию почти по любой теме. Задавшись целью разузнать побольше про [[w:машина Тьюринга|машину Тьюринга]], мы приглашаем Вас совершить вместе с нами свободное плавание по её статьям. Посетим статьи про машину Тьюринга и её разновидности, узнаем кое-что о первых [[w:хакер|
== Введение ==
[[Файл:turing.jpg|Машина Тьюринга|200px|right]]
Про машину Тьюринга, пожалуй, должен знать любой школьник, мечтающий стать [[w:программист|программистом]]. Ведь именно её считают основой основ теории [[w:алгоритм|алгоритмов]]. Конечно, это не инженерное устройство, не изобретение наподобие [[w:арифмометр|арифмометра]], а что-то вроде [[w:
Первым делом мы попадаем на страничку, которая, собственно, так и называется:
{{Рамка}}
== Машина Тьюринга ==
'''Машина Тьюринга (МТ)'''
Машина Тьюринга является расширением модели [[w:конечный автомат|конечного автомата]] и, согласно [[w:тезис Чёрча — Тьюринга|тезису Чёрча
В состав Машины Тьюринга входит бесконечная в обе стороны ''лента'', разделённая на ячейки, и ''управляющее устройство'' с конечным числом состояний.
Управляющее устройство может перемещаться влево и вправо по ленте,
читать и записывать в ячейки символы некоторого конечного алфавита.
Выделяется особый ''пустой'' символ, заполняющий все клетки ленты,
кроме тех из них (конечного числа), на которых записаны входные данные.
В управляющем устройстве содержится ''таблица переходов'', которая представляет алгоритм, ''реализуемый'' данной Машиной Тьюринга.
Каждое правило из таблицы предписывает
машине, в зависимости от текущего состояния и
наблюдаемого в текущей клетке символа, записать в эту клетку
Строка 36:
{{Акмар}}
Итак, машина Тьюринга
1. Для производства белков в клетке с помощью сложно устроенного фермента
2. Ещё более похож на машину Тьюринга процесс исправления ошибок в ДНК
Такая аналогия не нова, и в Википедии она тоже описана в статье «[[w:Молекулярный компьютер|Молекулярный компьютер]]»:
Строка 47:
== Молекулярный компьютер ==
'''Биомолекулярные вычисления''' или '''молекулярные компьютеры''' или даже [[w:ДНК|ДНК]]- или [[w:РНК|РНК]]-вычисления
Биомолекулярные вычисления
Основой всей системы хранения биологической информации, а стало быть, и ДНК-компьютеров, является способность атомов [[w:водород|
Молекула получается направленной: начинается с фосфатной группы и заканчивается дезоксирибозой. Длинные цепочки ДНК называют нитями, короткие
{{Акмар}}
Строка 61:
== Конечный автомат ==
'''Конечный автомат''' (в [[w:теория алгоритмов|теории алгоритмов]])
Формально конечный автомат определяется как пятёрка
Строка 67:
<math>M = (K , \Sigma , \pi , s , F)</math>
Где K
Автомат начинает работу в состоянии s, считывая по одному символы входной строки. Считанный символ переводит автомат в новое состояние из K, в соответствии с функцией переходов. Процесс продолжается до тех пор, пока не будет достигнуто одно из состояний F.
Строка 76:
{{Рамка}}
== Абстрактный автомат ==
'''Абстра́ктный автома́т''' (в [[w:теория алгоритмов|теории алгоритмов]])
Формально абстрактный автомат определяется как пятёрка
Строка 83 ⟶ 84 :
<math>~A = (S, X , Y, \delta , \lambda)</math>
Где S
Абстрактный автомат с выделенным начальным состоянием называется инициальным автоматом. Таким образом абстрактный автомат определяет семейство инициальных автоматов
Строка 92 ⟶ 93 :
Абстрактные автоматы образуют фундаментальный класс дискретных моделей как самостоятельная модель, и как основная компонента [[w:Машина Тьюринга|машин Тьюринга]], [[w:автомат с магазинной памятью|автоматов с магазинной памятью]], [[w:конечный автомат|конечных автоматов]] и других преобразователей информации.
[[w:Модель|Модель]] абстрактного автомата широко используется, как базовая, для построения дискретных моделей распознающих, порождающих и преобразующих последовательности [[w:символ|
{{Акмар}}
С каждым определением мы всё больше вторгаемся в область чистой математики. Язык становится строже, появляются формальные определения, состоящие из математических символов. Если двигаться дальше, мы придём к теории алгоритмов и теории вычислимости. Путешествовать по страницам Википедии можно долго, но лучше запастись водой и едой, на случай забредания в пустыни аксиом и определений, или хотя бы надёжными ссылками на учебники по математике, например http://www.mccme.ru/free-books/, или статьи журнала
Надеюсь, после этого объяснения вам стало немного яснее, что же такое машина Тьюринга?
Строка 101 ⟶ 102 :
Давайте вернёмся к истории этого термина.
Итак, как мы уже упоминали, Алан Тьюринг поведал миру о своей машине в 1937 году в так называемом Тезисе Чёрча-Тьюринга. Про Алана Тьюринга
{{Рамка}}
== Алан Тьюринг ==
'''Тьюринг, Алан Матисон''' (23 июня 1912
{{Акмар}}
В самой статье больше про труды Тьюринга: помимо текста про машину Тьюринга, который мы еще приведем дальше, повествуется о том, что он работал над
Несмотря на свою старомодность, тест Тьюринга всплыл неожиданным образом в современном мире общения по интернету. К примеру, можно встретить текст диалога двух пользователей ICQ, один из которых является
{{Рамка}}
== Тест Тьюринга ==
'''Тест Тьюринга'''
Судья (человек) переписывается на естественном языке с двумя собеседниками, один из которых
▲'''Тест Тьюринга''' — тест, предложенный Аланом Тьюрингом в 1950 г. в статье «Вычислительные машины и разум» (Computing machinery and intelligence) для проверки, является ли компьютер разумным в человеческом смысле слова.
Переписка должна производиться через контролируемые промежутки времени, чтобы судья не мог делать заключения исходя из скорости ответов.
▲Судья (человек) переписывается на естественном языке с двумя собеседниками, один из которых — человек, другой — компьютер. Если судья не может надёжно определить, кто есть кто, компьютер прошёл тест. Предполагается, что каждый из собеседников стремится, чтобы человеком признали его. С целью сделать тест простым и универсальным, переписка сводится к обмену текстовыми сообщениями.
Тест был инспирирован салонной игрой, в ходе которой гости пытались угадать пол человека, находящегося в другой комнате, путём написания вопросов и чтения ответов. В оригинальной формулировке Тьюринга, человек должен был притворяться человеком противоположного пола, а тест длился 5 минут.
▲Переписка должна производиться через контролируемые промежутки времени, чтобы судья не мог делать заключения исходя из скорости ответов. (Во времена Тьюринга компьютеры реагировали медленнее человека. Сейчас это правило необходимо, потому что они реагируют гораздо быстрее, чем человек).
▲Тест был инспирирован салонной игрой, в ходе которой гости пытались угадать пол человека, находящегося в другой комнате, путём написания вопросов и чтения ответов. В оригинальной формулировке Тьюринга, человек должен был притворяться человеком противоположного пола, а тест длился 5 минут. Сейчас эти правила не считаются необходимыми и не входят в спецификацию теста.
Тьюринг предложил тест, чтобы заменить бессмысленный, по его мнению, вопрос «может ли машина мыслить?» на более определённый.
Тьюринг предсказал, что компьютеры в конечном счёте пройдут его тест.
Пока что ни одна программа и близко не подошла к прохождению теста. Такие программы, как Элиза ([[w:ELIZA|ELIZA]]), иногда заставляли людей верить, что они говорят с человеком, как, например, в неформальном эксперименте, названном AOLiza. Но такие «успехи» не являются прохождением теста Тьюринга. Во-первых, человек в таких беседах не имел никаких оснований считать, что он говорит с программой, в то время как в настоящем тесте Тьюринга человек активно пытается определить, с кем он беседует. Во-вторых, документированые случаи обычно относятся к таким чатам, как [[w:IRC|IRC]], где многие беседы отрывочны и бессмысленны. В-третьих, многие пользователи IRC используют английский как второй или третий язык, и бессмысленный ответ программы, вероятно, спишется ими на языковый барьер.
Ежегодно производится соревнование между разговаривающими программами, и наиболее человекоподобной, по мнению судей, присуждается приз Лебнера (Loebner).
Самый лучший результат в тесте Тьюринга показала программа [http://www.alicebot.org/ A.L.I.C.E.] выиграв тест 3 раза (в 2000, 2001 и 2004).
=== Ссылки ===
* Тьюринг А.
* Книга на английском: Roger Penrose
* Статья Алана Тьюринга:
** Alan Turing,
** В сети:
*** http://xn--80agpkhko7a.xn--p1ai/%D0%9C%D0%B0%D1%88%D0%B8%D0%BD%D0%B0.html браузерный эмулятор машины Тьюринга
*** http://www.loebner.net/Prizef/TuringArticle.html
* [http://www.loebner.net/Prizef/loebner-prize.html Сайт конкурса на приз Лебнера]
* Статья
* [http://crl.ucsd.edu/~saygin/papers/MMTT.pdf
{{Акмар}}
Возвращаемся опять к машине Тьюринга. В выдержке из статьи про Алана Тьюринга утверждается, что впервые понятие машины Тьюринга было предложено в составе т. н. тезиса Чёрча-Тьюринга:
== Выдержка из статьи Википедии
{{Рамка}}
Любая интуитивно вычислимая функция является частично вычислимой, или, эквивалентно, может быть вычислена с помощью некоторой машины Тьюринга.
Алан Тьюринг высказал предположение (известное как Тезис Чёрча-Тьюринга), что любой алгоритм в интуитивном смысле этого слова может быть представлен эквивалентной машиной Тьюринга. Уточнение представления о вычислимости на основе понятия машины Тьюринга (и других эквивалентных ей понятий) открыло возможности для строгого доказательства алгоритмической неразрешимости различных массовых проблем (
{{Акмар}}
В статье под названием
{{Рамка}}
== Те́зис Чёрча—Тью́ринга ==
'''Те́зис Чёрча—Тью́ринга'''
В самой общей форме оно гласит, что любая интуитивно вычислимая функция является [[w:частично вычислимая функция|частично вычислимой]], или, эквивалентно, может быть вычислена с помощью некоторой [[w:Машина Тьюринга|машины Тьюринга]].
Строка 171:
{{Акмар}}
С этого перекрёстка можно двинуться в сторону, к примеру, теории вычислимости.
{{Рамка}}
== Универсальная машина Тьюринга ==
'''Универсальной машиной Тью́ринга''' называют [[w:машина Тьюринга|машину Тьюринга]], которая может заменить собой любую машину Тьюринга. Получив на вход программу и входные данные, она вычисляет ответ, который вычислила бы по входным данным машина Тьюринга, чья программа была дана на вход.
=== Формальное определение ===
Программу любой детерминированной машины Тьюринга можно записать, используя некоторый конечный алфавит, состоящий из символов состояния, скобок, стрелки и
Теорема об универсальной машине Тьюринга утверждает, что такая машина существует и моделирует другие машины с не более чем квадратичным замедлением (
▲Программу любой детерминированной машины Тьюринга можно записать, используя некоторый конечный алфавит, состоящий из символов состояния, скобок, стрелки и т.п.; обозначим этот машинный алфавит как <math>\Sigma_1</math>. Тогда универсальной машиной Тьюринга ''U'' для класса машин с алфавитом <math>\Sigma_2</math> и ''k'' входными лентами называется машина Тьюринга с ''k+1'' входной лентой и алфавитом <math>\Sigma_1 \cup \Sigma_2</math> такая, что если подать на первые ''k'' лент входное значение, а на ''k+1'' — правильно записанный код некоторой машины Тьюринга <math>M_1</math>, то ''U'' выдаст тот же ответ, какой выдала бы на этих входных данных <math>M_1</math>, или будет работать бесконечно долго, если <math>M_1</math> на этих данных не остановится.
▲Теорема об универсальной машине Тьюринга утверждает, что такая машина существует и моделирует другие машины с не более чем квадратичным замедлением (т.е. если исходная машина произвела ''t'' шагов, то универсальная произведёт не более ''ct<sup>2</sup>''). Доказательство у этой теоремы конструктивное (такую машину несложно построить, надо только аккуратно её описать). Теорема была предложена и доказана [[w:Тьюринг, Алан|Тьюрингом]] в 1936-37 г.
{{Акмар}}
Строка 190 ⟶ 188 :
== Недетерминированная машина Тьюринга ==
Обобщение [[w:машина Тьюринга|детерминированной машины Тьюринга]], в которой, при каждом переходе,
можно выполнять переход одновременно в несколько (константа) состояний
Таким образом, для каждого массива входных данных имеется не один, а несколько (в общем случае
▲Обобщение [[w:машина Тьюринга|детерминированной машины Тьюринга]], в которой, при каждом переходе,
▲можно выполнять переход одновременно в несколько (константа) состояний — можно считать, что происходит «клонирование» машины (состояние, содержимое лент, положение головок).
▲Таким образом, для каждого массива входных данных имеется не один, а несколько (в общем случае — экспоненциальное число) путей, по которым может развиваться вычисление.
Недетерминированная машина Тьюринга выдаст ответ '''1''', если ''существует хотя бы один'' путь
развития вычисления, на котором выдается ответ '''1''', и '''0'''
случае (таким образом, ответы «ДА» и «НЕТ» в случае недетерминированных вычислений несимметричны).
Строка 203 ⟶ 200 :
== Вероятностная машина Тьюринга ==
Обобщение детерминированной машины Тьюринга, в которой из любого состояния и значений на ленте машина может совершить один из нескольких (можно считать, без ограничения общности
▲Обобщение детерминированной машины Тьюринга, в которой из любого состояния и значений на ленте машина может совершить один из нескольких (можно считать, без ограничения общности — двух) возможных переходов, а выбор осуществляется вероятностным образом (подбрасыванием монетки).
Вероятностная Машина Тьюринга похожа на недетерминированную машину Тьюринга, только вместо недетерминированного перехода машина выбирает один из вариантов с некоторой вероятностью.
Строка 212 ⟶ 208 :
Вероятностная машина Тьюринга представляет собой детерминированную машину Тьюринга, имеющую дополнительно аппаратный источник случайных битов, любое число которых, например, она может «заказать» и «загрузить» на отдельную ленту и потом использовать в вычислениях обычным для МТ образом.
Класс алгоритмов, завершающихся за полиномиальное время на вероятностной машине Тьюринга и возвращающих ответ с ошибкой менее 1/3, называется [[w:
{{Акмар}}
== Дальнейшее чтение ==
* В Википедии
:* [[w:Машина Тьюринга|Машина Тьюринга]]
:* [[w:Универсальная машина Тьюринга
:* [[w:Недетерминированная машина Тьюринга|Недетерминированная машина Тьюринга]]
:* [[w:Вероятностная машина Тьюринга|Вероятностная машина Тьюринга]]
:* [[w:Теория алгоритмов|Теория алгоритмов]]
:* [[w:Алан Тьюринг|Статья об Алане Тьюринге]]
* В Викиучебнике
:* [[Чего не могут вычислительные машины]]
Строка 230 ⟶ 225 :
* [http://lib.custis.ru/index.php/%D0%9C%D0%B0%D1%88%D0%B8%D0%BD%D0%B0_%D0%A2%D1%8C%D1%8E%D1%80%D0%B8%D0%BD%D0%B3%D0%B0 Определения и примеры машин Тьюринга]
* [http://www.loonies.narod.ru/tmr.htm Программная система моделирования работы машины Тьюринга]
* [http://kleron.ucoz.ru/load/24-1-0-52 Программная реализация на
{{Готовность|75%}}
|