
- •До лабораторної роботи № 1
- •6.050102 “Комп’ютерна інженерія”
- •1. Мета роботи
- •2. Теоретичні відомості
- •2.1. Поняття алгоритму
- •2.2. Машина Тьюрінга
- •2.3. Структура машини Тьюрінга
- •2.4. Такт роботи машини Тьюрінга
- •2.5. Програма для машини Тьюрінга
- •2.6. Правила виконання програми
- •2.7. Приклади створення програм для мт
- •2.8. Емулятор машини Тьюрінга
- •2.9. Дослідження ефективності машин Тьюрінга
- •3. Порядок виконання роботи
- •4. Завдання на лабораторну роботу
- •4.1. Вибір варіанту індивідуального завдання
- •4.2. Варіанти завдань
- •5. Вимоги до оформлення звіту
- •1. Мета роботи
- •6. Контрольні завдання
- •Список літератури
- •Мета роботи……………………………………..………………………………………...…3
- •Теоретичні відомості..........….………………………………………………………….…. .3
- •2.1. Поняття алгоритму….………………………………………………………...….…. .3
- •Методичні вказівки
- •" Програмування машин Тьюрінга"
- •6.050102 “Комп’ютерна інженерія”
2.8. Емулятор машини Тьюрінга
Емулятор машини Тьюрінга - це навчальна модель універсального виконавця (абстрактної обчислювальної машини).
В пакет включені наступні файли:
turing.exe - основна програма - емулятор машини Тьюрінга
EXAMPLES - підкаталог із прикладами програм для емулятора
Середовище емулятора має такий вигляд:
Машина Тьюрінга - це автомат, який керується таблицею. Зовні таблиця МТ дещо відрізняється від наведених вище таблиць. Рядки в таблиці відповідають символам обраного алфавіту A, а стовпці — станам Q. У кожній комірці таблиці, що відповідає деякому символу ai і деякому стану qj, перебуває запис, що складається із трьох частин:
1. символ з алфавіту A;
2. напрямок переміщення: > (вправо), < (наліво) або . (на місці);
3. новий стан каретки.
На початку роботи машина Тьюрінга перебуває в стані q1. Стан q0 — це кінцевий стан: потрапивши в нього, автомат закінчує роботу.
У верхній частині програми знаходиться поле редактора, у яке можна ввести умову задачі у вільній формі.
Стрічка переміщається вліво і вправо за допомогою кнопок, розташованих зліва і справа від неї. Подвійним кліком по комірці стрічки (або кліком правою клавішою миші) можна змінити вміст комірки стрічки.
За допомогою меню Лента можна запам'ятати стан стрічки у внутрішньому буфері і відновити стрічку з буфера.
В полі Алфавит задаються символи обраного алфавіту. Пробіл додається до введених символів автоматично.
В таблиці в нижній частині вікна набирається програма. В першому стовпці записані символи алфавіту, він заповнюється автоматично. В першому рядку перераховуються всі можливі стани. Додати або видалити стовпці таблиці (стани) можна за допомогою кнопок, розташованих над таблицею.
При введенні команди в комірку таблиці спочатку потрібно ввести новий символ, потім напрямок переходу та номер стану. Якщо символ пропущений, за замовчуванням він не змінюється. Якщо пропущено номер стану, за замовчуванням стан не змінюється.
Праворуч у поле Комментарий можна вводити в довільній формі коментарі до розв'язання. Найчастіше там пояснюють, що означає кожний стан машини Тьюрінга.
Програма може виконуватись безупинно (F9) або по кроках (F8). Команда, яка має виконуватись, підсвічується зеленим кольором. Швидкість виконання регулюється за допомогою меню Скорость.
Задачі для машини Тьюрінга можна зберігати у файлах. Зберігається умова задачі, алфавіт, програма, коментарі і початковий стан стрічки. При завантаженні задачі з файлу і збереженні в файл стан стрічки автоматично записується в буфер.
2.9. Дослідження ефективності машин Тьюрінга
Будемо оцінювати ефективність роботи МТ з точки зору часової (T), місткісної (М) та програмної (Р) складностей алгоритму.
Часова складність визначається послідовністю миттєвих станів машини і дорівнює кількості тактів, які треба виконати МТ для переробки заданого слова.
Місткісна складність визначається кількістю комірок стрічки, які використовуються в процесі виконання програми по переробці заданого слова.
Програмна складність визначається загальною кількістю тактів, записаних в таблиці МТ.
Наприклад, якщо запустити програму EXAMPLES\ double_word.tur , то середовище емулятора МТ набуде такого вигляду:
Запустивши покроково (F8) програму на виконання можна порахувати, що кількість виконаних тактів по переробці слова abbab дорівнює 84, тобто часова складність T=84.
Можна зауважити, що в процесі роботи використовуються комірки стрічки з номерами від -1 до 10, тобто місткісна складність М=12.
Табличне представлення МТ містить 22 заповнені комірки, отже програмна складність цієї МТ дорівнює Р=22.