
- •1 Описання формальної моделі алгоритма на основі рекурсивних функції
- •2 Описання аналітичної моделі алгоритму у вигляді елементарної машини тьюринга та композиції мт
- •3 Розробка аналітичної і програмної моделі алгоритму машини тьюринга, що розпізнає мову
- •4. Розробка аналітичної моделі алгоритму із використанням нормальних алгоритмів маркова
- •Додаток б
- •Додаток в
- •Додаток г
4. Розробка аналітичної моделі алгоритму із використанням нормальних алгоритмів маркова
4.1 Реалізація алгоритму у вигляді Марковських підстановок
Завданням є описання нормального алгоритму Маркова, що реалізує функцію над числами в унарному коді.
Послідовність підстановок Маркова наведена у таблиці 4.1.
Таблиця 4.1 – Нормальний алгоритм Маркова
x1 x* |
→ → |
1x /a |
Продвигаємо х до дільника і замінюємо його на а для копіювання дільника (*a111 → *yyy111) |
a1 a 1y |
→ → → |
y1a
y1 |
Копіюємо дільник |
b1 b= b |
→ → → |
1b =1 =1 |
Збільшуємо результат ділення на 1 |
1/y 1/ /1 |
→ → → |
/ 1*b b1 |
Віднімаємо від діленого дільник по одній цифрі |
x= /y dy d1 1d d= d |
→ → → → → →. →. |
d= d d d d
0 |
Залишаємо у слові тільки результат ділення |
|
→ |
x |
Ставимо x на початку слова |
4.2 Тестові приклади
Тестовий приклад для вихідного слова 11111*11 приведений на рисунку 4.1.
11111*11 x11111*11 11111x*11 11111/a11 11111/y1a1 11111/y1y1a 11111/y1y1 11111/yy11 1111/y11 111/11 111*b11 111*11b 111*11=1 x111*11=1 111x*11=1 111/a11=1 111/y1a1=1 111/y1y1a=1 111/y1y1=1 111/yy11=1 11/y11=1 1/11=1 1*b11=1 1*11b=1 1*11=11 x1*11=11 1x*11=11 1/a11=11 1/y1a1=11 1/y1y1a=11 1/y1y1=11 1/yy11=11 /y11=11 d11=11 d=11 11 |
Рисунок 4.1 – Тестовий приклад
Оскільки
,
результат після виконання Марковських
підстановок дорівнює 11 в унарному коді;
алгоритм працює правильно.
Тестовий приклад для вихідного слова 11*11 приведений на рисунку 4.2. Тестовий приклад для вихідного слова 1*111 приведений на рисунку 4.3.
1*1 x1*1 1x*1 1/a1 1/y1a 1/y1 /1 b1 1b 1=1 x1=1 1x=1 1d=1 d=1 1 |
Рисунок 4.2 – Тестовий приклад
1*111 x1*111 1x*111 1/a111 1/y1a11 1/y1y1a1 1/y1y1y1a 1/y1y1y1 1/yy11y1 1/yy1y11 1/yyy111 /yy111 dy111 d111 d 0 |
Рисунок 4.3 – Тестовий приклад
Оскільки
,
результат після виконання Марковських
підстановок дорівнює 0; алгоритм працює
правильно.
ВИСНОВОК
Під час виконання даного курсового проекту були досліджені основні розділи теорії алгоритмів, а саме реалізована рекурсивна функція, побудовані машини Тьюринга, нормальний алгоритм Маркова. Також було розглянуте поняття часової складності алгоритму.
Усі розглянуті формальні алгоритми мають різну важкість при реалізації та різну часову складність, проте вони еквіваленті між собою для будь-якої задачі.
Була виконана програмна реалізація емулятора роботи машини Тьюринга, досліджена робота МТ, що розпізнає задану мову, оцінена її складність.
ПЕРЕЛІК ПОСИЛАНЬ
1. http://uk.wikipedia.org/wiki/Теорія_алгоритмів.
2. Колєчкіна, Л.М. Теорія алгоритмів та математична логіка.
3. Марков А.А., Нагорный Н.М., Теория алгоритмов, М., 1984.
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
ДОНЕЦЬКИЙ НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСІТЕТ
КАФЕДРА КОМП’ЮТЕРНИХ СИСТЕМ МОНІТОРИНГУ
ДОДАТОК А
ТЕХНІЧНЕ ЗАВДАННЯ
ДО КУРСОВОЇ РОБОТИ
ПО КУРСУ «ТЕОРІЯ АЛГОРИТМІВ І ФОРМАЛЬНИХ МОВ»
Тема: «Побудова аналітичних моделей алгоритмів
і оцінка їх складності»
Керівники:
__________________ Назарова І.А.
«____» _____________ 2011 р.
__________________ Родрігес А.Е.
«____» _____________ 2011 р.
Виконавець:
студент групи КЕМ-08
__________________ Григор’єв Є.А.
«____» _____________ 2011 р.
Донецьк, 2011 р.
1. Підставою для розробки є завдання на курсову роботу, видане кафедрою комп’ютерних систем моніторингу.
2. Метою розробки є створення програмної моделі машини Тьюринга, що розпізнає мову .
3. Вимоги до програми:
- при перевірці слова на приналежність мові необхідно заборонити введення з клавіатури символів не з вхідного алфавіту заданої мови;
- при перевірці слова на приналежність мові виводити на екран кожен крок роботи машини Тьюринга;
- зберігати протокол роботи машини Тьюринга в текстовому файлі;
- для генерації слів завдовжки n використовувати метод повного перебору.
4. Вимоги до програмної документації:
- пояснювальна записка;
- керівництво користувача.
5. Етапи розробки:
№ |
Найменування етапу |
Термін виконання |
1 |
Видача завдання, складання ТЗ, його затвердження |
2 тиждень |
2 |
Технічне проектування. Побудова формальних моделей алгоритмів |
2-4 тиждень |
3 |
Робоча проектування. Визначення структур даних для представлення МТ, побудова алгоритмів |
4-5 тиждень |
4 |
Написання програми |
5-9 тиждень |
5 |
Налагодження програми |
9-12 тиждень |
6 |
Написання пояснювальної записки |
9-13 тиждень |
7 |
Захист курсової роботи |
13-14 тиждень |
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
ДОНЕЦЬКИЙ НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСІТЕТ
КАФЕДРА КОМП’ЮТЕРНИХ СИСТЕМ МОНІТОРИНГУ
ПОЯСНЮВАЛЬНА ЗАПИСКА ДО КУРСОВОГО ПРОЕКТУ
ПО КУРСУ «ТЕОРІЯ АЛГОРИТМІВ І ФОРМАЛЬНИХ МОВ»