
- •Введение
- •Описание формальной модели алгоритма на основе рекурсивных функций
- •Аналитическая модель Машины Тьюринга
- •2.1 Элементарная Машина Тьюринга
- •2 Трассировка алгоритма на каком-то контрольном значении Рисунок 1 - Тестирование Машины Тьюринга .2 Композиция Машин Тьюринга
- •Распознающая Машина Тьюринга
- •3.1 Постановка задачи
- •2.3.2 Описание распознающей Машины Тьюринга
- •Аналитическая модель Нормальных алгоритмов Маркова
- •Заключение
- •Список ссылок
Министерство образования и науки украины
донецкий национальный технический институт
Факультет КНТ
Кафедра ПМИ
пояснительная записка
к курсовой работе по курсу:
«Дискретные структуры»
Выполнил: ст. гр. ПС09а
Глумов А. Г.
Проверил: доц. каф. ПМИ, к.т.н.
Назарова И. А.
Донецк — 2010
Реферат
Отчет по курсовой работе содержит: __ страниц, __ рисунков, __ таблиц, __ приложений, __ источников.
Объект исследования – рекурсивные функции, машины Тьюринга, нормальные алгоритмы Маркова.
Цель – сформировать формальное определение алгоритма в виде трех аналитических моделей, написать программную реализацию машины Тьюринга, распознающей язык L = { www│w{0, 1}*}, построить график временной сложности.
Результат – формальное определение алгоритмов на основе рекурсивных функций, машин Тьюринга и нормальных алгоритмов Маркова, программная реализация машины Тьюринга, распознающей язык L = { www│w{0, 1}*}, график временной сложности машины Тьюринга, файловый вариант протокола работы машины Тьюринга.
МАШИНА ТЬЮРИНГА, ВРЕМЕННАЯ СЛОЖНОСТЬ, АЛФАВИТ, ЛЕНТА, ЯЗЫК, РАСПОЗНАВАНИЕ, ПРОТОКОЛ, ПРИНАДЛЕЖНОСТЬ
СОДЕРЖАНИЕ
Введение 4
1 Описание формальной модели алгоритма на основе рекурсивных функций 5
2 Аналитическая модель Машины Тьюринга 8
2.1 Элементарная Машина Тьюринга 8
2.1.6 Описание Машины Тьюринга таблицей состояний 9
2.2 Композиция Машин Тьюринга 12
3 Распознающая Машина Тьюринга 15
3.1 Постановка задачи 15
2.3.2 Описание распознающей Машины Тьюринга 15
2.3.3 Временная сложность машины 19
4 Аналитическая модель Нормальных алгоритмов Маркова 20
Заключение 22
Список ссылок 23
Приложение А 25
Приложение Б 52
Введение
Машина Тьюринга (МТ) — абстрактный исполнитель (абстрактная вычислительная машина). Была предложена Аланом Тьюрингом в 1936 году для формализации понятия алгоритма.
Машина Тьюринга является расширением конечного автомата и, согласно тезису Чёрча — Тьюринга, способна имитировать все другие исполнители (с помощью задания правил перехода), каким-либо образом реализующие процесс пошагового вычисления, в котором каждый шаг вычисления достаточно элементарен.
В состав машины Тьюринга входит бесконечная в обе стороны лента (возможны машины Тьюринга, которые имеют несколько бесконечных лент), разделённая на ячейки, и управляющее устройство, способное находиться в одном из множества состояний. Число возможных состояний управляющего устройства конечно и точно задано.
Управляющее устройство может перемещаться влево и вправо по ленте, читать и записывать в ячейки ленты символы некоторого конечного алфавита. Выделяется особый пустой символ, заполняющий все клетки ленты, кроме тех из них (конечного числа), на которых записаны входные данные.
Управляющее устройство работает согласно правилам перехода, которые представляют алгоритм, реализуемый данной машиной Тьюринга. Каждое правило перехода предписывает машине, в зависимости от текущего состояния и наблюдаемого в текущей клетке символа, записать в эту клетку новый символ, перейти в новое состояние и переместиться на одну клетку влево или вправо. Некоторые состояния машины Тьюринга могут быть помечены как терминальные, и переход в любое из них означает конец работы, остановку алгоритма.[1]
Описание формальной модели алгоритма на основе рекурсивных функций
Определение понятия примитивно рекурсивной функции является индуктивным. Оно состоит из указания класса базовых примитивно рекурсивных функций и двух операторов (подстановки и примитивной рекурсии), позволяющих строить новые примитивно рекурсивные функции на основе уже имеющихся.
К базовым примитивно рекурсивным фунциям относят:
нулевую функцию;
последователь;
выбор аргумента [2].
Задание: доказать примитивную рекурсивность функции «ближайшее к n простое число».
Текст доказательства….
Протестируем
приведённую выше схему вычисления
ближайшего к
простого числа на конкретных примерах.
Пример 1.
В качестве параметра возьмём простое число 5.
======
Тест функции
======
Рисунок 1.1 - Тест алгоритма на числе 5
Пример 2:
В качестве параметра возьмём 15:
======
Тест функции
Рисунок 1.2 - Тест алгоритма на числе 15
Аналитическая модель Машины Тьюринга
2.1 Элементарная Машина Тьюринга
Задание: реализовать Машину Тьюринга для вычисления функции получения остатка от деления двух чисел в унарном коде с сохранением данных. Описать полученную машину тремя способами: правилами переходов, таблицей состояний и графом состояний.
Во входных данных находятся делимое и делитель в унарном коде, разделённые символом «*». В выходных данных к входным должна добавиться конструкция «=<число>», где <число> - результат вычислений в унарном коде.
Пример входных данных: 11111111*111
Пример выходных данных: 11111111*111=11
Ниже приведено описание элементарной машины Тьюринга тремя способами: списком правил переходов, таблицей состояний и графом:
2
<<Правила переходов>>
Рисунок 1 - Правила переходов для Машины Тьюринга
.1.6 Описание Машины Тьюринга таблицей состоянийТаблица 1 - Таблица состояний Машины Тьюринга
q\a |
1 |
* |
λ |
_ |
= |
# |
q0 |
|
|
|
|
|
|
q1 |
|
|
|
|
|
|
Продолжение таблицы 2.1
q\a |
1 |
* |
λ |
_ |
= |
# |
q2 |
|
|
|
|
|
|
q3 |
|
|
|
|
|
|
q4 |
|
|
|
|
|
|
q5 |
|
|
|
|
|
|
q6 |
|
|
|
|
|
|
q7 |
|
|
|
|
|
|
q8 |
|
|
|
|
|
|
q9 |
|
|
|
|
|
|
q10 |
|
|
|
|
|
|
q11 |
|
|
|
|
|
|
Рисунок с графом переходов.
====
Рисунок 2.2 - Граф переходов
На рисунке 2.3 приведено тестирование работы Машины Тьюринга для входных данных 11111*11.