Скачать презентацию Математическая логика и теория алгоритмов Тема 8 Машины Скачать презентацию Математическая логика и теория алгоритмов Тема 8 Машины

Лекция 12_Тема 8_Машины Тьюринга (продолж).ppt

  • Количество слайдов: 14

Математическая логика и теория алгоритмов Тема 8 Машины Тьюринга Гайкова Любовь Вадимовна Лекция 12 Математическая логика и теория алгоритмов Тема 8 Машины Тьюринга Гайкова Любовь Вадимовна Лекция 12 1

План лекции 2. 3. Машина Тьюринга Ø Реализация машины Тьюринга Ø Универсальная машина Тьюринга План лекции 2. 3. Машина Тьюринга Ø Реализация машины Тьюринга Ø Универсальная машина Тьюринга Алгоритмически неразрешимые проблемы 2

Реализация машины Тьюринга аналог Бесконечная в одну сторону рабочая лента МТ Наращиваемая память ПК Реализация машины Тьюринга аналог Бесконечная в одну сторону рабочая лента МТ Наращиваемая память ПК Какого количества и каких команд достаточно, чтобы реализовать операции машины Тьюринга? 3

Сдвиг (влево, вправо): сдвиг головки на одну позицию влево или вправо Реализация машины Тьюринга Сдвиг (влево, вправо): сдвиг головки на одну позицию влево или вправо Реализация машины Тьюринга Переход, р: безусловный переход (БП) к команде с номером р Команды, необходимые для реализации операций машины Тьюринга Если, s, p: условный переход к команде с номером р, если в обозреваемой ячейке находится символ s Печать, s: печать символа s в обозреваемую ячейку Стоп: останов 4

ПРИМЕР 1 Реализация машины Тьюринга Начало программы нахождения НОД для МТ имеет вид: 00: ПРИМЕР 1 Реализация машины Тьюринга Начало программы нахождения НОД для МТ имеет вид: 00: если, а, 02; /*если в начальном состоянии прочитан символ а, то на команду 02*/ 01: переход, 05 /*если нет, то на проверку другого символа*/ 02: печать, а; 03: сдвиг, влево; 04: переход, 00; /*возврат в начальное состояние*/ 05: если, b, 07; /*если в начальном состоянии прочитан символ b, то на команду 07*/ 06: переход, 10; /*если нет, то на проверку другого символа*/ 07: печать, b; 08: сдвиг, влево; 09: … 5

ВЫВОД 1 Реализация машины Тьюринга Для того, чтобы автоматическое вычислительное устройство могло реализовать любой ВЫВОД 1 Реализация машины Тьюринга Для того, чтобы автоматическое вычислительное устройство могло реализовать любой алгоритм, достаточно, чтобы оно могло: • работать с ЛИНЕЙНОЙ памятью – аналогом полубесконечной входной ленты МТ; • реализовать пять перечисленных выше операций Все современные компьютеры – являются универсальными вычислителями 6

Реализация машины Тьюринга ВЫВОД 2 Конструкции выбора (if-then-else) Конструкции цикла (while) Конструкции перехода (goto) Реализация машины Тьюринга ВЫВОД 2 Конструкции выбора (if-then-else) Конструкции цикла (while) Конструкции перехода (goto) Лишняя ! следует Возможность реализации МТ на языке высокого уровня Какие управляющие конструкции достаточны для реализации любой МТ? 7

Почему конструкция перехода может отсутствовать в общем наборе операторов для МТ? Введем обозначения state Почему конструкция перехода может отсутствовать в общем наборе операторов для МТ? Введем обозначения state — переменная типа состояние symbol — переменная типа символ Реализация машины Тьюринга Элементарные операции языка Читатъ(с) — чтение очередного символа из обозреваемой ячейки входной ленты (или моделирующего ее массива) и помещение его в переменную с Писать(с) — печатать символ с в обозреваемую ячейку входной ленты Сдвиг(D) — имитация сдвига головки чтения-записи по рабочей ленте МТ (фактически изменение индекса читаемого элемента одномерного массива) 8

ПРИМЕР 2 Реализация машины Тьюринга Любая программа для МТ может иметь вид: begin j ПРИМЕР 2 Реализация машины Тьюринга Любая программа для МТ может иметь вид: begin j state = s 0; // начальное состояние while (state ! = стоп) do // повторяем цикл, пока не придем в заключительное состояние { Читать(symbol); … if (state==s $ $ symbol == x) // реализация { // команды машины Тьюринга state = p; // <(s, x)j(p, y, D)> Писать(y); Сдвиг (D) } else if (state==j … 9 end

ЭТО ВАЖНО Реализация машины Тьюринга Любую МТ и, следовательно, ЛЮБОЙ АЛГОРИТМ можно реализовать на ЭТО ВАЖНО Реализация машины Тьюринга Любую МТ и, следовательно, ЛЮБОЙ АЛГОРИТМ можно реализовать на языке высокого уровня с использованием только трех конструкций: ПОСЛЕДОВАТЕЛЬНОСТЬ, ВЫБОР и ЦИКЛ Доказана основная теорема структурного программирования, суть которого заключается в следующем: для спецификации алгоритмов достаточно очень небольшого числа программных структур – последовательности, выбора и цикла, каждая с одной точкой входа и одной точкой выхода следует соотношение между статическим текстом программы и возможными динамическими путями всех выполнений программы 10

Универсальная МТ Конечный набор (s, x) (p, y, D) Программавида пятерок Команды МТ Алгоритм Универсальная МТ Конечный набор (s, x) (p, y, D) Программавида пятерок Команды МТ Алгоритм работы МТ 1. В левой части каждой команды МТ ищет пару: • значение очередного состояния – s; • значение очередного входного символа – х 2. Если такой пары нет, МТ останавливается 3. Если пара найдена, то три символа справа представляют собой: • значение следующего состояния – р; • значение символа, который надо напечатать в обозреваемой ячейке - у; • направление движения вдоль ленты - D 11

МТ, выполняющая описанный выше алгоритм, называется УНИВЕРСАЛЬНОЙ МТ Универсальная МТ В качестве исходной информации МТ, выполняющая описанный выше алгоритм, называется УНИВЕРСАЛЬНОЙ МТ Универсальная МТ В качестве исходной информации описание DM имитирует машину М Начальное состояние S Входная лента ТМ машины М 12

ü Алгоритмически неразрешимые проблемы Проблема эквивалентности алгоритмов По двум произвольным заданным алгоритмам (либо в ü Алгоритмически неразрешимые проблемы Проблема эквивалентности алгоритмов По двум произвольным заданным алгоритмам (либо в виде программы для МТ, либо на алгоязыке) определить, будут ли они выдавать одинаковые выходные результаты на любых исходных данных Проблема тотальности По произвольному заданному алгоритму определить, будет ли он завершаться (останавливаться) на всех возможных входных наборах Проблема эквивалентности грамматик По двум произвольным грамматикам, представленным в виде наборов синтаксических диаграмм, определить, совпадают ли определяемые ими языки 13

ü Алгоритмически неразрешимые проблемы Десятая проблема Гильберта Найти алгоритм, который по заданному многочлену Р(х1, ü Алгоритмически неразрешимые проблемы Десятая проблема Гильберта Найти алгоритм, который по заданному многочлену Р(х1, …, хn) с целыми коэффициентами определяет, имеет ли уравнение Р=0 решение в целых числах Проблема соответствия (Э. Пост) Пусть ( 1, 1), ( 2, 2), …, ( n, n), упорядоченные пары непустых цепочек. Существует ли такое число р>0, для которого цепочки i 1… ip совпадают? 14