Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Машина Тьюринга.




 

Понятие конечного автомата возникло из близкого понятия, введенного в 1936 г. логиком Тьюрингом. Тьюринг рассмотрел гипотетическую машину, имеющую конечное множество внутренних состояний и одну бесконечную ленту, разделенную на ячейки, которые машина может передвигать вправо или влево на одну ячейку за такт. В каждой ячейке машина может записывать символ из конечного алфавита . Первоначально лента должна быть пустой, кроме конечного числа ячеек, заполненных заранее. (Эти заранее заполненные ячейки можно представлять программой запуска машины).

Особенности машины Тьюринга, отличающие ее от конечного автомата, состоят в следующем:

1) лента машины Тьюринга бесконечна;

2) машина Тьюринга может двигаться вдоль ленты в любом направлении.

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

Формальное определение машины Тьюринга следующее.

Определение 1:Машина Тьюринга – это пять объектов , из которых:

1) - есть конечный алфавит символов, которые могут быть записаны в ячейках и являются одновременно входными и выходными: ;

2) - есть конечное множество внутренних состояний, ;

3) -функция перехода в новое состояние, она действует из в ;

4) - функция выхода, ;

5) - функция, регулирующая движение ленты, она действует из во множество .

Машина Тьюринга работает по определенным тактам следующим образом. Она начинает работать, находясь в начальном состоянии . После считывания первого символа последовательности из ячейки машина переходит в новое внутреннее состояние, определяемое функцией . Затем записывает в ячейке новый символ, являющийся значением функции , перемещает ленту вправо (П) или влево (Л), или остается на месте и прекращает работу (останов.) в зависимости от значения функции .

Таким образом, работа машины состоит в повторении следующего цикла: считывания символа из ячейки, переход в новое внутреннее состояние, впечатывание нового символа в эту ячейку, выбор которого определяет функция (может оказаться, что это тот же самый символ), сдвиг ленты вправо или влево, либо остановка. Лента бесконечна в обоих направлениях, однако вначале (и, значит, после любого такта) заполнено лишь конечное число ячеек.

Алфавит машины Тьюринга обычно состоит из символов . Символ # служит для обозначения пустых ячеек, символы необходимы для записи чисел. Для того чтобы записать на ленте ненулевое число, нужно в ячейки вписать столько единиц, какова величина числа. Ноль служит для записи одноименного числа, а также выступает в качестве разделителя между числами. Но некоторых задачах алфавит может быть произвольным.

Пример. Машина Тьюринга дана следующим описанием. Она считывает входную последовательность, состоящую из нулей и единиц, печатает символ Ч, если число считанных единиц четное и Н, если нечетное. Строке из нулей и единиц предшествует и последуют пустые ячейки, обозначаемые символом #. Символы Ч и Н печатаются в первой пустой ячейки вслед за входной строкой.

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

Остановка машины происходит после того, как будут выданы нужные результаты.

Функции удобно рассматривать, пользуясь обозначениями Тьюринга. В этом случае машина Тьюринга описывается множеством строк следующего вида: . В каждой такой строке каждый символ определяет один из пяти тактов работы машины:

- текущее состояние машины;

- считываемый из ячейки символ;

- следующее состояние машины, ;

- символ, печатаемый в ячейке, ;

- одна из команд: .

Набор строк подобного вида называют программой работы машины Тьюринга.

В этих обозначениях описанная выше машина задается так:

,

,

,

,

,

,

,

,

Программы работы машины Тьюринга содержат все известные алгоритмические моменты (циклы, ветвления).

Следующий несложный результат показывает, что машины Тьюринга умеют делать все, что умеют конечные автоматы.

 

Теорема: Пусть - конечный автомат. Пусть и определены основные функции для всех :

,

,

Тогда машина Тьюринга ставит в соответствие входным строкам те же выходные строки, что и автомат .

Доказательство: Любую входную строку автомата можно записать на ленте машины так, чтобы входной символ был записан в -й ячейке. Описанная выше машина Тьюринга напечатает на выходе символ в -й ячейке, перейдет в состояние и передвинется в -ю ячейку. Добравшись до -й ячейки, она остановится.

Замечание: Если входной алфавит конечного автомата содержит пробел, он должен обозначатся специальным символом в алфавите , чтобы избежать неоднозначности. Значения функций , мы не определили, ибо для нас они безразличны. Мы получили не полностью описанные автоматы с безразличными состояниями.

Машины Тьюринга обладают большими возможностями, чем конечные автоматы. Можно, например, описать машины Тьюринга, вычисляющие разные функции от чисел, подаваемых на вход. Стандартным представлением неотрицательного числа в машине Тьюринга является последовательность из единиц, стоящих подряд. Два таких числа отделяются нулем. Например, строка ##111011## представляет упорядоченную пару чисел (3,2). Строка ##110111101## представляет собой последовательность чисел (2, 4, 1).

Пример: Следующая машина Тьюринга складывает два неотрицательных целых числа, поданных на вход:

,

,

,

,

,

,

,

Машина превращает две последовательности единиц, разделенные нулем, в последовательность единиц, представляющую число, равное сумме чисел на входе. Можно описать машину Тьюринга, способную сложить три целых числа, четыре целых числа или любое число, даже неограниченное наперед целых чисел.

 




Поделиться с друзьями:


Дата добавления: 2014-01-03; Просмотров: 720; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.022 сек.