Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТЕОРІЯ АЛГОРИТМІВ ТА АВТОМАТІВ_Конспект лекцій(....doc
Скачиваний:
16
Добавлен:
20.04.2019
Размер:
3.18 Mб
Скачать
  1. Програма копіювання

Машина Тьюрінга починає працювати зі стрічкою, на якій записано слово Р з алфавіту А, і через скінченну кількість тактів зупиняється і на стрічці записано слово Р*Р.

Р – слово з алфавіту А= , тобто скінченна послідовність символів з А. Сукупність всіх слів з алфавіту А позначаємо . Будемо вважати що:

1) що * ;

2) що машина починає і закінчує свою роботу на самому лівому непорожньому символі, записаному на стрічці;

3) слово Р складається тільки з не порожніх символів, тобто без прогалин (Λ ми можемо винести з слова).

Програма м.т.

Наприклад,

├…├ ├…├ ├…├

├…├ ├…├

├…├

├…├

    1. Програма посиленого копіювання

Слово дублюється n раз.

Напишемо програму для n=3

Програма м.т.

  1. Програма перекладу

Є два алфавіти: А= і В= . Слово Р – з А, Р/ - з В.

Машина Тюрінга Т2 переводить довільне слово Р з А в слово Р/ з алфавіту В наступним чином: кожний елемент замінюється на

2.1 Програма вибіркового переводу

Нехай на стрічці написано n слів Р1,…,Pn , що розділені * з алфавіта А.

Виділимо слова з номерами i1,i2,…ik. Машина Т2i1…ik переводить в алфавіт В слова Рi1 ,…,Pik в Рi1/,…,Pik/, а всі інші залишає без змін.

Приклад:

  1. Програма сортування

Нехай два неперетинних алфавіти А= і В= ,

Розглянемо

Позначимо через слово з алфавіту С, .

(А) – слово, що отримане з видаленням символів з алфавіту В, що до нього входять.

(В) – слово, що отримане з видаленням символів з алфавіту А, що до нього входять.

Наприклад:

=

(А)=

(В)=

Машина Тюрінга Т3 починає зі слова і через скінченну кількість тактів зупиняється і на стрічці записано слово (А)* (В)

Програма м.т.

Операції над програмами

  1. Операція суперпозиції

  2. Введення заборонених символів

  3. Розгалуження за сигнальною буквою (або умовний перехід)

  4. Операція проекції

  5. Об’єднання двох програм

  6. Цикл

  1. Операція суперпозиції

Побудуємо машину , яка задане слово перекладає в слово

Для цього змінимо в програмі стан на

Програма

А програму перенумеруємо

Програма стара: ; нова:

В програмі стан не змінимо.

2. Операція введення заборонених символів

Побудуємо машину , яка задане слово Р з алфавіту С перекладає в нове слово, причому з символами з алфавіту А буде працювати так само як і машина , а символи з алфавіту В не помічатиме.

Для цього кожний стан машини перепишемо двома станами

Наприклад, перепишемо

перепишемо

і доповнимо командами та

3. Розгалудження за сигнальною буквою

Нехай задані дві машини та , що підраховують функції та

Побудуємо машину , яка перекладає слово , де - спеціальний символ з алфавіту , в нове слово, при цьому якщо , то в слово , а якщо , то в слово

Для этого:

  1. Перенумеруємо стани так, щоб не співпадали з станами машини

  2. Попередньо запишемо 4 команди

Стани машини перенумеруємо через , не змінюємо. Стани машини перенумеруємо через , не змінюємо.