КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Машина Тьюринга
Определение алгоритма Тема 4. ЭЛЕМЕНТЫ ТЕОРИИ АЛГОРИТМОВ Цели и задачи изучения темы: В данной теме изучаются основы работы машины Тьюринга. Проблема, решаемая с помощью компьютера, предварительно должна быть решена алгоритмически. Должно быть задано формальное предписание, следуя которому можно получить итоговый результат для решения всех задач определенного типа. Отметим важнейшие черты (свойства) алгоритма: Массовость — применимость алгоритма не к одной задаче, а к классу задач. Дискретность — четкая разбивка на отдельные этапы (шаги) алгоритма. Детерминированность — такая организация этапов выполнения, при которой всегда ясно как осуществить переход от одного этапа к другому. Конечность — для получения результата при применении алгоритма к решению конкретной задачи выполняется конечная последовательность шагов алгоритма: Отметим, что если наличие алгоритма само по себе служит доказательством существования алгоритма, то для доказательства его отсутствия необходимо иметь строгое математическое определение алгоритма. Попытки формализовать понятие алгоритма привели к созданию машины Тьюринга, как некоего воображаемого устройства, реализующего алгоритм. Ещё одним шагом в определении понятия алгоритма стало появление рекурсивных функций, как функций, формализующих понятие алгоритма и реализующих интуитивное понятие вычислимости. Вскоре было установлено, что множество рекурсивных функций совпадает с множеством функций, вычислимых на машинах Тьюринга. Появлявшиеся затем новые понятия, претендующие на объяснение понятия алгоритма, оказывались эквивалентными функциям, вычислимым на машинах Тьюринга, а значит, и рекурсивным функциям. Итогом развернувшейся дискуссии о том, что такое алгоритм, стало утверждение, называемое сейчас тезисом Чёрча. Машина Тьюринга представляет собой (абстрактное) устройство, состоящее из ленты, управляющего устройства и считывающей головки. Лента разбита на ячейки. Во всякой ячейке в точности один символ из внешнего алфавита A={a0,a1,...,an}. Некоторый символ (будем обозначать его А) алфавита А называется пустым, а любая ячейка, содержащая в данный момент пустой символ, называется пустой ячейкой (в этот момент). Лента предполагается потенциально неограниченной в обе стороны Управляющее устройство в каждый момент времени находится в некотором состоянии qj, принадлежащем множеству Q= {q0,q1,,qm} (m=1) Множество Q называется внутренним алфавитом. Одно из таких состояний (обычно q0) называется заключительным, а некоторое другое (обычно qi) -начальным. Считывающая головка перемещается вдоль ленты так, что в каждый момент времени она обозревает ровно одну ячейку ленты. Головка может считывать содержимое обозреваемой ячейки и записывать в нее вместо обозреваемого символа некоторый новый символ из внешнего алфавита А (возможно тот же самый). В процессе работы управляющее устройство в зависимости от состояния, в котором оно находится и символа, обозреваемого головкой, изменяет свое внутреннее состояние q. Затем выдает головке приказ напечатать в обозреваемой ячейке определенный символ из внешнего алфавита А, а потом приказывает головке либо остаться на месте, либо сдвинуться на одну ячейку вправо, либо сдвинуться на одну ячейку влево. Попав в заключительное состояние, машина прекращает работу. Конфигурацией на ленте (или машинным словом) называется совокупность, образованная: 1. Последовательностью a i(1), a i(2),…,a i(s) символов из внешнего алфавита А, записанных в ячейках ленты, где ai(1).- символ записанный в первой ячейке слева и т.д. (любая такая последовательность называется словом), 2. состоянием внутренней памяти qr; 3. номером k воспринимаемой ячейки. Конфигурацию машины будем записывать так:
ai(l),ai(2),…ai(r-l) ai(r)а i(r+l), а i(r+2), …ai(s) qr здесь r-воспринимаемая ячейка, выделяется в виде дроби. Если машина, находясь во внутреннем состоянии qi, воспринимает ячейку с символом аu, записывает к следующему моменту времени в эту ячейку символ аг, переходит во внутреннее состояние qs и сдвигается по ленте, то говорят, что машина выполняет команду qiau qsarS, где символ S может принять одно из значений: -1 - сдвиг головки влево; +1 - сдвиг головки вправо; 0 - головка остается на месте. Список всех команд (пятерок), определяющих работу машины Тьюринга, называется программой этой машины. Программу машины часто задают в виде таблицы. Так для описанной выше ситуации в таблице на пересечении строки аu и столбца qi будет стоять qsarS (см. таб.4.1.1) Таб.6.2.1.
Если в программе машины для пары (qi,au) пятерка отсутствует, то в таблице на пересечении строки au, и столбца q i ставится прочерк. Итак, машина Тьюринга есть, по определению, набор M=(A,Q,II), где А — внешний алфавит, Q — алфавит внутренних состояний, П — программа. Если машина, начав работу с некоторым словом Р, записанным на ленте, придет в заключительное состояние, то она называется применимой к этому слову. Результатом ее работы считается слово, записанное на ленте в заключительном состоянии. В противном случае, машина называется не применимой к слову Р. Пример 4.1.1. Построим машину Тьюринга, складывающую натуральные числа, записанные в унарной системе счисления (т.е. записанные при помощи одного символа |. Например 5=||.). Решение. Рассмотрим алфавит А = {|, +, ^}. Машина определяется следующей программой:
Выпишем последовательно возникающие при работе этой машины конфигурации на исходном слове ||+, т.е. 2+3. Здесь при записи конфигурации будем использовать следующее соглашение: состояние, в котором находится машина, записывается в круглых скобках справа за обозреваемой буквой.
Пример 6.2.2. Построить машину Тьюринга, удваивающую натуральные числа, записанные в унарной системе счисления. Решение. Искомую машину построим в алфавите А={|, a, ^}. Программа такой машины может выглядеть так:
Применим полученную машину к слову І І Введение новой буквы и замена исходных | на a позволяет различить исходные | и новые (приписанные) |. Состояние q1 обеспечивает замену | на a, состояние q2 обеспечивает поиск a, предназначенных для замены на |, и останов машины в случае, когда a не обнаружено, q3 обеспечивает дописывание | в случае, когда произошла замена a на |.
Дата добавления: 2014-01-04; Просмотров: 1391; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |