КАТЕГОРИИ: Архитектура-(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) |
Машина Тьюринга и функции, вычислимые по Тьюрингу
Опишем алгоритмическую модель, предложенную А. Тьюрингом в 30-х годах прошлого столетия и оказавшую влияние на разработку ЭВМ. Машина Тьюринга состоит из следующих элементов: 1) ленты, разбитой на ячейки и бесконечной в обе стороны. В каждой ячейке может быть записан один из символов конечного алфавита 2) управляющего устройства, которое может находиться в одном из конечного числа внутренних состояний 3) считывающей/пишущей головки, которая может перемещаться вдоль ленты и в каждый момент времени обозревает (считывает) одну из ячеек ленты. Функционирование машины Тьюринга осуществляется в дискретные моменты времени а) записывает в эту ячейку символ внешнего алфавита; б) сдвигает считывающую головку на один шаг влево или один шаг вправо или оставляет ее на месте; с) переходит в новое внутреннее состояние. Таким образом, работа машины определяется системой команд вида
где Предполагается, что для каждой пары Работа машины заключается в изменении конфигураций. Конфигурация представляет собой совокупность внутреннего состояния, состояния ленты (т.е. размещения букв внешнего алфавита по ячейкам или слова, записанного на ленте), положения головки на ленте. Предположим, что в начальный момент времени на ленте все ячейки, кроме конечного их числа, содержат пустой символ. Следовательно, и в любой другой момент времени лента будет иметь лишь конечное число ячеек, содержащих непустые символы. Активной зоной конфигурации назовем минимальную связную часть ленты, содержащую обозреваемую ячейку, а также все ячейки, в которых записаны непустые символы. Конфигурацию можно представить в виде машинного слова в алфавите
Это обстоятельство записываем в виде: Если машина применима к конфигурации Потребуем, чтобы заключительные конфигурации машины находились в стандартной форме. Этого всегда можно добиться, добавляя к машине Т два новых состояния
При этом состояние а) обе машины применимы к одним и тем же начальным конфигурациям; б) результаты применения обеих машин совпадают; с) заключительные конфигурации у машины Определим теперь вычисление функций на машине Тьюринга. Будем рассматривать словарные частичные[5] функции f типа Говорят, что машина Тьюринга Т правильно вычисляет частичную функцию f для любого если если Функция f называется правильно вычислимой по Тьюрингу, если существует машина Тьюринга Т, которая ее правильно вычисляет. Аналогичные определения могут быть сделаны и для функций нескольких переменных. Для этого достаточно множество слов, являющихся аргументами, записать в виде одного слова, введя знак-разделитель. Ограничимся соответствующим определением для числовых функций. Рассмотрим частичную функцию Рассмотрим несколько примеров на построение машин Тьюринга. 1. Пусть
Пусть 2. Пусть
Пусть 3. Пусть
Пусть Прямое построение машин Тьюринга для решения даже простых задач может оказаться затруднительным. Однако существуют приемы, которые облегчают данный процесс, если использовать способы сочетания программ нескольких машин в результирующие программы. Дадим некоторое представление об этих приемах, что позволит говорить о существовании тех или иных машин, на деталях же построения конкретных программ останавливаться не будем. Суперпозиция машин. Пусть даны две машины Тьюринга Схематически суперпозиция изображается так:
Соединение машин. Пусть даны машины Тьюринга T 1 и T 2, вычисляющие словарные функции
® Ветвление машин. Пусть даны машины Тьюринга T 1 и T 2, вычисляющие словарные функции
Существование машины Т вытекает из следующих конструкций. Пусть
Теперь заключительные состояния Реализация цикла. Важным приемом в программировании является разбиение решаемой задачи на циклы. После выполнения каждого цикла проверяется выполнимость некоторого условия. Если условие выполнено, то выдается результат, если нет, то цикл повторяется. Точнее, процедура задается так. Пусть имеем словарные функции
Пояснение: Заключительные состояния Входной алфавит машины есть
В течение цикла t стирается одна палочка и к числу t – 1 в двоичной записи прибавляется 1. Формальное описание машины Тьюринга, однако, требует большого числа технических деталей, и поэтому мы их опускаем. Таким образом, язык тьюрингова программирования содержит основные операторы программирования на алгоритмических языках и позволяет устраивать последовательное выполнение программ, параллельное их соединение, использовать условные переходы («если Ф, выполнить f 1, иначе f 2»), реализовывать цикл («пока Ф, выполнять f 1, иначе f 2»). Это является основанием для предположения о том, что для всех процедур, претендующих называться алгоритмическими, существует (при подходящем кодировании) реализующая их машина Тьюринга. Данное предположение носит название тезиса Тьюринга. Данный тезис доказать нельзя, поскольку здесь используется интуитивное понятие алгоритма. Подтверждением тезису является математическая практика, а также то, что описание алгоритма в любой другой алгоритмической модели может быть сведено к описанию его в виде машины Тьюринга. Однако принятие тезиса Тьюринга позволяет истолковывать утверждения о несуществовании машин Тьюринга для решения конкретных задач как утверждения о несуществовании алгоритмов вообще.
Дата добавления: 2014-12-29; Просмотров: 1758; Нарушение авторских прав?; Мы поможем в написании вашей работы! |