
Міністерство освіти і науки, молоді та спорту України
Національний університет “Львівська політехніка”
Кафедра ЕОМ
Звіт
з лабораторної роботи № 1
на тему:
" Програмування машин Тьюрінга "
З дисципліни:
" Aлгоритми та методи обчислень "
Вибір індивідуального завдання:
DN = 25
Pr1 = №(D) = 68
№ V=(25+68)%30+1=4
Виконав:
ст. гр. КІ-25
Добринін О.В.
Перевірив:
асистент
Ігнатович А.О.
Львів – 2012
Мета роботи
Вивчити принципи роботи машин Тюринга, набути практичних навичок програмування машин Тьюрінга.
Постановка задачі
Загальна частина
Розробити алгоритм розв'язання задачі згідно з індивідуальним завданням. Використання додаткових символів, що не входять в алфавит А, має бути обгрунтоване.
Скласти програму для мишини Тьюрінга. В початковому стані каретка МТ має розпізнавати перший зліва символ вхідного слова Р. В кінцевому стані каретка МТ має зупинитись під одним із символів вихідного слова (під яким саме - не має значення).
Відлагодження і тестування програми провести в середовищі емулятора мишини Тьюрінга. Записати в середовищі емулятора в поле Условие задачи варіант і умову індивідуального завдання. В поле Комментарий записати коротке пояснення дій, які реалізуються у відповідних станах каретки.
Визначити часову (T), місткісну (M) та програмну (P) складності алгоритму, представленого у вигляді програми для МТ.
Індивідуальне завдання
A={a,b}. Замінити в непорожньому слові P кожне входження символа a на символи bb.
Словесний опис алгоритму
Для розв'язання цієї задачі потрібно перемістити каретку під комірку із символом а і потім записати в цю комірку символ b, зсунути каретку на пусте місце вліво, записати там символ b. І виконувати ці дії в циклі до тих пір поки не зустрінеться пустий символ справа і потім зсунути каретку на один символ вліво.
Алгоритм у вигляді програми для МТ
Вхідне слово: bbabaab
4.1 Повна таблиця
Q A |
a0 |
a |
b |
q1 |
q0a0L |
q2bL |
q1bR |
q2 |
q1bR |
|
q2bL |
4.2 Скорочена таблиця
Q A |
a0 |
a |
b |
q1 |
q0L |
q2bL |
R |
q2 |
q1bR |
|
L |
4.3 Протокол роботи МТ
K0 |
|
|
|
|
b |
b |
a |
b |
a |
a |
b |
|
|
|
|
|
q1 |
|
|
|
|
|
|
|
|
K1 |
|
|
|
|
b |
b |
a |
b |
a |
a |
b |
|
|
|
|
|
|
|
q1 |
|
|
|
|
|
|
K2 |
|
|
|
|
b |
b |
b |
b |
a |
a |
b |
|
|
|
|
|
|
|
q2 |
|
|
|
|
|
|
K3 |
|
|
|
|
b |
b |
b |
b |
a |
a |
b |
|
|
|
|
q2 |
|
|
|
|
|
|
|
|
|
K4 |
|
|
|
b |
b |
b |
b |
b |
a |
a |
b |
|
|
|
|
q1 |
|
|
|
|
|
|
|
|
|
K5 |
|
|
|
b |
b |
b |
b |
b |
a |
a |
b |
|
|
|
|
|
|
|
|
|
q1 |
|
|
|
|
K6 |
|
|
|
b |
b |
b |
b |
b |
b |
a |
b |
|
|
|
|
|
|
|
|
|
q2 |
|
|
|
|
K7 |
|
|
|
b |
b |
b |
b |
b |
b |
a |
b |
|
|
|
q2 |
|
|
|
|
|
|
|
|
|
|
K8 |
|
|
b |
b |
b |
b |
b |
b |
b |
a |
b |
|
|
|
q1 |
|
|
|
|
|
|
|
|
|
|
K9 |
|
|
b |
b |
b |
b |
b |
b |
b |
a |
b |
|
|
|
|
|
|
|
|
|
|
q1 |
|
|
|
K10 |
|
|
b |
b |
b |
b |
b |
b |
b |
b |
b |
|
|
|
|
|
|
|
|
|
|
q2 |
|
|
|
K11 |
|
|
b |
b |
b |
b |
b |
b |
b |
b |
b |
|
|
q2 |
|
|
|
|
|
|
|
|
|
|
|
K12 |
|
b |
b |
b |
b |
b |
b |
b |
b |
b |
b |
|
|
q1 |
|
|
|
|
|
|
|
|
|
|
|
K13 |
|
b |
b |
b |
b |
b |
b |
b |
b |
b |
b |
|
|
|
|
|
|
|
|
|
|
|
|
q0 |
|
K14 |
|
b |
b |
b |
b |
b |
b |
b |
b |
b |
b |
|
|
|
|
|
|
|
|
|
|
|
q0 |
|
Ефективність алгоритму
5.1 Часова складність
Кількість виконаних тактів по переробці слова bbabaab дорівнює 42, тобто часова складність T=42.
5.2 Місткісна складність
В процесі роботи використовуються комірки стрічки з номерами від -3 до 6, тобто місткісна складність М=10.
5.3 Програмна складність
Табличне представлення МТ містить 5 заповнені комірки, отже програмна складність цієї МТ дорівнює Р=5.
Результати виконання програми
Висновок
У цій лабораторній роботі я вивчив принципи роботи машин Тюринга та набув практичних навичок програмування машин Тьюрінга.