6.4. Машины Тьюринга как модели алгоритмов
В 1937г. английский математик Тьюринг опубликовал работу, в которой он, уточняя понятие алгоритма, прибегал к воображаемой вычислительной машине.
Машина должна перерабатывать какие-то объекты в исходные результаты. Этими объектами являются слова, построенные из символов-букв.
Машина состоит из бесконечной в обе стороны ленты, разбитой на ячейки, и рабочей головки. Машина работает в дискретные моменты времени t=0,1,2… В каждый момент времени во всякой ячейке ленты записана одна буква из некоторого конечного алфавита А={а0, а1,…аn}, называемым внешним алгоритмом машины, а головка находится в одном состояний из конечного множества внутренних состояний Q={q0, q1,…,qz}. Будем считать, что а0-пустой символ, т.е. в ячейке ничего не написано.
Основной частью машины является логический блок, который работает следующим образом. В каждый момент времени рабочая головка обозревает одну ячейку ленты и в зависимости от того, что там написано и от своего внутреннего состояния она заменяет символ в обозреваемой ячейке, переходит в новой состояние и сдвигает на одну ячейку или остается на месте. Введем для обозначения этого движения символы d-1, d0, d+1 соответственно. Т.о. работа МТ задается системой команд вида:
qj*ai-qk*ax*dy
Все случаи сочетания qj и ai для разных j и j и все реакции машины на них можно представить в виде функциональной таблицы с двумя входами. Если головка в состоянии qj читаем символ ai, то в следующий момент она записывает в эту ячейку символ ax переход.. в состояние qk и в зависимости от того каково dy головка сдвигает на одну ячейку влево, вправо или остается на месте.
| q1, q2 … | qj | qz |
a0 |
|
|
|
ai |
| qk ax dy |
|
an |
|
|
|
Примеры построения машин Тьюринга
Постороить машину Тьюринга, реализующую «сложение» чисел.
В машине Тюринга все числа представляются в единичном коде, состоящем из Х единиц. Поэтому сложить а и в значит переработать слова 1а * 1в в слово 1а+в. Это преобразование выполняет машина c 4-мя состояниями и системой команд вида λ
*λ d+
q1 qz
c1 λd+ λ λ d+
q2 q3
1λ d-
1 1d+ * 1 d-
q1* q2 λ d+
q11 q2 λ d+
q21 q21d+
qz* q31d-
q31 q31d-
q3 λ qz λ d+
Построить машину Тьюринга, которая вычисляет функцию а(Х)=Х+1
число Х запишем в виде строки, состоящей из букв 1 (палочек)
| q1 | q2 |
a | 1d0q2 | - |
1 | 1d-q1 | 1d0q2 |
При работе машины возможны два случая:
работа машины после конечного числа шагов прекратили с выдачей сигнала «останов.»
Машина никогда не останавливается, никакого результата она не дает.
В первом случае говорят, что машина применила к исходному данному, во втором – не применима. Соответствия устанавливаются между теми исходными данными, к которым они применимы, и результат ее работы представляет собой некоторую функцию (в математическом смысле).
Если для функции f(x) можно построить МТ, которая к ней применима, то говорят, что f(x) вычислена по Тьюрингу. Функцию, для вычисления которой существует МТ, называют вычислимой.
Тезис Тьюринга: любая вычислимая функция вычислимая по Тьюрингу, или всякий алгоритм может быть реализован машиной Тьюринга.
Проблема остановки: Можно ли построить машину То такую что для любой машины Тк любых исходных данных а для машины Т.
Ответ на этот вопрос отрицательный, т.к. сформулирована и доказана следующая теорема.
Теорема Тьюринга: не существует машины То, решающей проблему остановки для произвольной машины Т.
Неразрешимость проблемы остановки можно интерпретировать как несуществование общего алгоритма для отладки программы.
- Литература
- Перечень компьютерных программ, наглядных и других пособий, методических указаний и материалов и технических средств обучения
- 1.2.Операции над множествами
- 1.3. Булева алгебра множеств
- 1.4. Разбиения и покрытия
- 2. Отношения бинарные и n-арные
- 2.1. Декартово произведение
- 2.2. Бинарные отношения (соответствия)
- 2.3. Операции над бинарными отношениями
- 2.4. Функциональные отношения
- 2.5. Бинарные отношения на множестве
- 2.6. Алгебраические системы
- 3. Основные понятия теории графов
- 3.1. Абстрактный граф
- 3.2. Графическое представление бинарного отношения
- Множеств а и в
- 3.3. Матричные представления графа
- 3.4. Части графа
- 3.5. Достижимость и связность
- 3.6. Доминирующие множества графа
- 3.7. Независимые множества графа
- 3.8. Раскраска графа
- 3.9.Планарность графов
- 3.10. Инварианты графов
- 4. Булевы функции
- 4.1. Способы задания булевой функции
- 4.2. Элементарные булевы функции и алгебраические формы
- 4.3. Интерпретации булевой алгебры
- 4.4. Нормальные формы булевых функций
- 4.4.1. Дизъюнктивные нормальные формы
- 4.4.2. Конъюнктивные нормальные формы
- 4.5 Полнота и замкнутость системы логических функций
- 4.6. Локальные упрощения днф
- 4.6.1. Удаление избыточных элементарных конъюнкций
- 4.6.2. Удаление избыточных литералов
- 4.7. Графическое представление булева пространства и булевых функций
- 4.7.1. Булев гиперкуб
- 4.7.2. Развертка гиперкуба на плоскости. Карта Карно
- 4.8. Минимизация днф
- 4.8.1. Метод Квайна-МакКласки
- 4.8.2. Метод Блейка-Порецкого
- 4.8.3. Визуально-матричный метод минимизации
- 5. Элементы математической логики
- 5.1 Алгебра высказываний
- Всякое высказывание логично следует из самого себя.
- 2. Закон противоречия:
- Если из а следует b, а b ложно, то а тоже ложно.
- 5.2. Логические отношения
- 5.3.Проверка правильности рассуждений
- 5.4. Решение логических задач методом характеристического уравнения
- 5.6. Кванторы
- 5.7 Эквивалентные соотношения. Префиксная нормальная форма
- 6. Основы теории алгоритмов
- 6.1. Интуитивное понятие об алгоритме
- 6.2. Три типа алгоритмических моделей
- 6.3. Кризис теории множеств антиномии. Выводы из антиномий
- 6.4. Машины Тьюринга как модели алгоритмов
- 6.5. Алгоритмы решения некоторых задач теории графов на графах
- 7. Конечный автомат и его описание.
- 7.2. Представления автомата
- 7.3. Связь между моделями Мили и Мура
- 7.4. Автомат с абстрактным состоянием. Булев автомат
- 7.5. Понятие о регулярных выражениях алгебры событий.
- 7.6. Задачи абстрактной теории конечных автоматов
- 8. Комбинаторные задачи и методы комбинаторного поиска
- 8.1. Задачи подсчета числа комбинаторных решений
- 8.2. Особенности оптимизационных комбинаторных задач
- 8.3. Вычислительная сложность
- 8.4. Методы комбинаторного поиска
- 8.5. Задача о кратчайшем покрытии и методы ее решения
- 8.5.1. Постановка задачи
- 8.5.2. Приближенные методы решения задачи
- 8.5.3. Точный метод
- Вопросы к зачету
- 28. Нормальные формы булевых функций. Дизъюнктивные нормальные формы
- 44. Эквивалентные соотношения. Префиксная нормальная форма
- Практический раздел Контрольная работа Указания по выбору варианта
- Контрольное задание №1. Используя диаграммы Эйлера-Венна, решить задачу
- Методические указания
- Задачи для самостоятельного решения
- Контрольное задание №2. Получить сднф, скнф, используя таблицу истинности. Построить днф, кнф, упростив выражение.
- Методические указания
- Задачи для самостоятельного решения
- Контрольное задание №3. Упростить схему (рис. 2)
- Методические указания
- Задачи для самостоятельного решения
- Задачи для самостоятельного решения
- Методические указания
- Задачи для самостоятельного решения
- Контрольное задание №6. Найти инварианты неориентированного графа, заданного матрицей смежности
- Методические указания
- Задачи для самостоятельного решения