Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Теория вычислительных процессов. Лабораторный практикум. Учебное пособие
.pdf
11
a1
q1
a0
a2l
q3
q4
q2
a0
a2
a1
a1p
a0l
a0p
a1r
a0
a1
a2
a2l
a3r
a2r
Рис. 1. Граф машины Тьюринга
Правило функционирования поясним неформально на распространенной
«физической» модели машины Тьюринга. Машина схематически представлена на рис. 2 и состоит из потенциально бесконечной (в обе стороны)
ленты, управления и головки, перемещаемой вдоль ленты. Лента разбита
на клетки, которые могут содержать символы из алфавита V или быть
пустыми, т. е. содержать символ #. Управление на каждом шаге работы
машины находится в одном из состояний из Q, расшифровывает программу, которая однозначно определяет поведение машины и управляет
головкой. Головка в каждый момент расположена против некоторой
клетки ленты и может считывать символы с ленты, записывать их на ленту и перемещаться в обе стороны вдоль ленты.
Рис. 2. Машина Тьюринга
Машина функционирует следующим образом: в начальный момент на
ленте записано некоторое слово из V, а управление находится в начальном
состоянии q0. Начальное слово, равно как и слова, появляющиеся в про-

12
цессе работы машины, ограничено с двух сторон пустыми символами #.
Головка обозревает крайний слева символ заданного слова.
Работа машины состоит в повторении следующего цикла элементарных
действий:
1) считывание символа, находящегося против головки;
2) поиск применимой команды, а именно той команды q a q' a' d, в
которой q — текущее состояние управления, а — считанный символ;
3) выполнение найденной команды, состоящее в переводе управления в
новое состояние q', записи в обозреваемую головкой клетку символа а' (вме-
сто стираемого символа а) и последующем перемещении головки вправо,
если d = r, перемещении влево, если d = l, или сохранении ее в том же положении, если d = р.
Машина останавливается в том и только в том случае, если на оч ередном шаге ни одна из команд не применима. Результат работы остановившейся машины — заключительное слово на ленте.
Пусть #a1a2…a
…an# — слово, возникшее на ленте в процессе
k-1ak
работы машины и машина находится в состоянии q, головка — над символом ak. Под конфигурацией машины Тьюринга понимается совокупность ее текущего состояния, обрабатываемого слова и положения
головки на ленте. Конфигурацию можно записать как #a1a2…a
k-1qak
…an#,
т. е. символ состояния записывается перед символом входного слова, на
который указывает головка машины. Протоколом машины Тьюринга
называется последовательность ее конфигураций, записанных в порядке
возникновения в процессе работы.
Машина Тьюринга, перерабатывая начальные слова на ленте в заключительные, задает словарную функцию, для которой начальные слова —
значения аргумента, заключительные — значения функции. (Для представления n-местной функции начальное слово на ленте имеет вид #a1 #a2 #
… #an #, где подслова a1, a2,…, a
не содержат символа #. При интерпре-
n
тации заключительного слова на ленте как значения функции символ #
игнорируется). Если машина не останавливается, начав работу с некоторым словом на ленте, то функция, задаваемая машиной, считается неопределенной для этого слова. Таким образом, машина Тьюринга Т задает частичную функцию FT и способ вычисления ее значений. Хотя машины Тьюринга оперируют со словами, они могут задавать и числовые
функции в силу установленной связи между словами и числами.
По определению, функция F является (частично) вычислимой, если
существует машина Тьюринга Т такая, что F
= F. Говорят также, что
T
для функции F существует (частичный) алгоритм вычисления ее значе-
ний, задаваемый машиной Т.

13
Для машины Тьюринга, как и для всех других формальных способов
задания алгоритмов, включая программы для ЭВМ, характерны следующие свойства:
1) конструктивность — машина Тьюринга представляет собой конеч-
ный объект, построенный по определенным правилам из базовых объектов;
2) конечность — процесс нахождения значений функции для тех
значений аргументов, для которых она определена, состоит из конечного числа шагов;
3) однозначность — результат работы машины единственным обра-
зом определяется начальным словом;
4) массовость — машина работает с любым начальным словом на лен-
те, составленным из символов ее алфавита.
Машина Тьюринга однозначно задается своей программой. Если упорядочить ее команды и закодировать последовательность команд словом
в алфавите машины Тьюринга, то можно получить ее описание в собственном алфавите. Заметим, что одной и той же машине Тьюринга соответствуют различные словарные представления в ее алфавите в зависимости от выбора упорядочений множеств Q, V, I, но по любому из этих
представлений программа машины восстанавливается однозначно.
Массовые алгоритмические проблемы
Массовые алгоритмические проблемы формулируются следующим
образом: необходимо указать алгоритм, который бы определял, обладает
ли предъявленный объект из некоторого класса объектов интересующим
нас свойством, принадлежит ли он множеству М всех объектов, обладающих этим свойством. Если множество М разрешимо, т. е. вычислима его
характеристическая функция, то поставленная проблема также разрешима. Если множество М перечислимо, т. е. вычислима его частичная характеристическая функция, то поставленная проблема частично разрешима.
Если же не вычислима и частичная характеристическая функция множества М, то поставленная проблема не является частично разрешимой.
Разрешимость множества М означает, что существует всегда останавливающаяся (оканчивающая работу за конечное время) машина Тьюринга, позволяющая для любого слова в алфавите V через конечное число
шагов установить, принадлежит ли это слово множеству М или нет. Перечислимость множества М означает, что существует машина Тьюринга,
которая останавливается в том и только том случае, если предъявленное
слово принадлежит множеству М.
Связь между разрешимыми и перечислимыми множествами устанавливает следующая теорема.

14
M
H
T
M
H
T
M
H
T
M
H
T
M
H
T
M
H
T
M
H
T
M
H
T
2*
:VF
s
M
Т е о р е м а 1 (Пост). Множество М V* разрешимо тогда и только
тогда, когда М и его дополнение M = V* \ M перечислимы.
Д о к а з а т е л ь с т в о. Если множества М и Mперечислимы, то существуют машины Тьюринга
и
, задающие частичные характе-
ристические функции этих множеств. Машина
останавливается
только в том случае, если начальное слово принадлежит множеству М.
Машина
останавливается только в том случае, если начальное слово
принадлежит множеству M. Алгоритм вычисления принадлежности
слова множеству М сводится к следующей процедуре. Выполняется по
одной команде каждой машиной Тьюринга (с одним и тем же начальным
словом на лентах). Если после выполнения одной команды машина
останавливается, то результат работы алгоритма — символ 1. Если
останавливается машина
, то результат — символ 0. Если ни одна из
машин не остановится, то выполняется следующая пара команд, и т. д.
Так как — элемент либо из М, либо из M, то через конечное число ша-
гов либо
, либо
остановится. Таким образом, алгоритм вычис-
ляет значение характеристической функции множества М, следовательно
множество М разрешимо.
Рассмотрим некоторые проблемы, связанные с анализом свойств машины Тьюринга.
1. Проблема остановки. Машина Тьюринга, начав работу, или
останавливается, или работает бесконечно. Проблема остановки
формулируется так. Пусть Мs — множество всех пар слов в алфавите V, в
каждой паре первое слово — словарное представление некоторой
машины Тьюринга, второе — такое слово, что эта машина
останавливается, начав работу над ним. Является ли множество Мs
разрешимым?
Т е о р е м а 2 (Тьюринг). Проблема остановки машины Тьюринга не-
разрешима.
Д о к а з а т е л ь с т в о. Неразрешимость проблемы остановки машины Тьюринга означает невычислимость характеристической функции
{0, 1}.
Предположим, что характеристическая функция множества Мs вычислима, т. е. множество Мs разрешимо. Известно, что множество Мt

15
),(
s
M
F
t
M
T
s
M
T
s
M
F
s
M
F
2*
:VH
s
M
s
M
H
s
M
T
s
M
T
s
M
H
s
M
T
всех словарных представлений машин Тьюринга над алфавитом V
разрешимо (доказательство не приводим). Из разрешимости множеств
М
и М
следует вычислимость частичной одноместной функции G : V*
s
t
{0, 1}, которая задается следующим образом: G() =
для
всех Мt и не определена для всех Мt. Алгоритм вычисления G()
следующий. Выполняются команды машины Тьюринга
. Если обна-
руживается, что слово Мt , то управление передается машине
иначе алгоритм зацикливается.
Введем еще одну частичную одноместную функцию K : V* {0}. Эта
функция определена только для тех слов, для которых G() = 0, причем
для всех этих слов K() = G() = 0. Функция K вычислима. Машина
Тьюринга TK совпадает с машиной Тьюринга TG за исключением случая,
когда TG останавливается: машина TK продолжает работу, выясняет , каков результат — 1 или 0, и в первом случае зацикливается, во втором —
останавливается.
Пусть K — словарное представление машины Тьюринга T
те V. Допустим, что машина T
на слове K не останавливается. Тогда
K
в алфави-
K
(K, K) = 0, G (K) = 0 и K (K) = 0, т. е. машина TK останавливается
со значением 0. Допустим, что машина T
ется. Тогда
(K, K) = 1, G(K) = 1 и значение K(K) в этом случае
на слове K останавлива-
K
не определено, т. е. машина TK зацикливается. Оба допущения приводят к противоречию, что опровергает гипотезу о разрешимости
множества Мs.
Т е о р е м а 3. Проблема остановки является частично разрешимой.
Д о к а з а т е л ь с т в о. Частичная разрешимость проблемы остановки
машины Тьюринга означает перечислимость множества Мs и, следовательно, вычислимость частичной характеристической функции
{1}.
,
Алгоритм вычисления функции
ставление машины Тьюринга
работает над начальным словом . Если
(, s), где s — словарное пред-
, следующий. Машина Тьюринга
(, s) = 1, то машина
остановится после выполнения конечного числа шагов, иначе — за-
циклится.

16
*
:VF
M
s
M
s
M
d
M
2. Проблема пустой ленты. Необходимо определить, является ли раз-
решимым множество М словарных представлений машин Тьюринга, которые останавливаются, начав работу над пустой лентой.
Т е о р е м а 4. Проблема пустой ленты неразрешима.
Д о к а з а т е л ь с т в о. Неразрешимость проблемы пустой ленты
означает не вычислимость характеристической функции
{0,
1}.
Каждой паре (T, ), где Т — некоторая машина Тьюринга, а — слово
в ее алфавите, сопоставим машину T, программа которой совпадает с
программой машины Т, за исключением того, что, начав работу, машина
T стирает начальное слово на ленте и вместо него записывает слово .
Машина T, начавшая работу с пустой лентой, ведет себя после записи
слова так же, как и машина T, примененная к . В частности, машина T
остановится в том и только в том случае, если остановится машина T,
примененная к слову . Предположим, что проблема остановки машин
Тьюринга с пустой лентой разрешима. Тогда окажется разрешимой проблема остановки в общем случае. Действительно, для того, чтобы узнать,
останавливается ли некоторая машина Тьюринга T, примененная к слову
, следует сконструировать машину T. Выяснив, останавливается ли T
при пустой ленте, мы тем самым узнаем, останавливается ли T, примененная к . Это противоречит теореме 2, что и опровергает предположение о разрешимости проблемы пустой ленты.
3. Проблема зацикливания. Машина Тьюринга, начав работу, или
останавливается, или работает бесконечно. Проблема зацикливания
формулируется так. Пусть Мc — множество всех пар слов в алфавите V, в
каждой паре первое слово — словарное представление некоторой
машины Тьюринга, второе — такое слово, что эта машина зацикливается,
начав работу над ним. Является ли множество Мc перечислимым?
Т е о р е м а 5. Проблема зацикливания машин Тьюринга не является
частично разрешимой.
Д о к а з а т е л ь с т в о. Из теоремы 1 и перечислимости множества Мs
следует, что дополнение
множества Мs до множества всех пар слов в
алфавите V неперечислимо, так как в противном случае оказалось бы разрешимым множество Мs. Но
= Мc
, где Мd — множество всех
пар слов, первые слова в которых являются словарными представлениями

17
d
M
d
M
s
M
машин Тьюринга, а
шимо, множества Мd и
— его дополнение. Так как множество Мt разре-
разрешимы.
Предположим, что проблема зацикливания частично разрешима, а
множество Мc — перечислимо. Тогда окажется перечислимым множе-
ство
(как объединение двух перечислимых множеств), что неверно.
Контрольные вопросы
1. Дайте определение функции. Что называется областью определения
и областью значений? Дайте определение полностью определенной
функции и частичной функции. Приведите примеры.
2. Дайте определение n-местной функции. Приведите примеры.
3. Дайте определение словарной функции. Приведите примеры.
4. Что такое предикат?
5. Что такое характеристическая функция множества? Что является
областью отправления, областью определения и областью значений этой
функции? Приведите пример характеристической функции конечного
множества.
6. Какая функция называется вычислимой?
7. Что представляет собой машина Тьюринга? Каково ее назначение?
Каков принцип функционирования машины Тьюринга? При каком
условии машина Тьюринга останавливается? Как с помощью машины
Тьюринга вычислить n-местную функцию?
8. При вычислении каких функций машина Тьюринга может
зациклиться? При вычислении каких функций машина Тьюринга не
может зациклиться?
9. Как формулируются массовые алгоритмические проблемы?
10. Дайте определения разрешимым и перечислимым множествам.
11. Приведите примеры множеств, которые не являются разрешимыми
и примеры множеств, которые не являются перечислимыми.
12. Приведите примеры невычислимых функций.
13. Сформулируйте и докажите теорему Поста.
14. Докажите неразрешимость проблемы остановки и пустой ленты.
15. Докажите, что проблема остановки является частично разрешимой.
16. Докажите, что проблема зацикливания не является частично
разрешимой.

18
Л а б о р а т о р н а я р а б о т а № 2
Одноленточные автоматы
Цель работы: изучить модель одноленточного конечного автомата.
З а д а н и е
1. Изучить назначение одноленточного автомата, способы задания, ал-
горитм функционирования.
2. Изучить основные понятия:
— конечный одноленточный автомат;
— детерминированный одноленточный автомат;
— полностью и частично определенный одноленточный автомат;
— эквивалентность одноленточных автоматов;
— минимизация одноленточных автоматов.
3. Изучить алгоритмы проверки эквивалентности и минимизации
одноленточных автоматов.
4. Построить конечный одноленточный автомат A1, который допускает
слова, принадлежащие заданному множеству слов (см. «Варианты
заданий»).
5. Построить конечный одноленточный автомат A2, эквивалентный
автомату A1. Количество состояний автомата должно быть на 4 состояния
больше, чем количество состояний автомата A1.
6. Проверить эквивалентность автоматов A1 и A2.
7. Минимизировать автомат A2.
8. Написать программу, определяющую эквивалентность двух
автоматов и использовать программу для проверки эквивалентности
автоматов A1 и A2 .
9. Написать программу, минимизирующую конечный одноленточный
автомат. Использовать программу для минимизации автоматов A1 и A2.
Варианты заданий
Вариант 1.
Все слова, в которых перед и после каждой 1 стоит 0.
Вариант 2.
Все слова, начинающиеся с 0 и кончающиеся на 1.
Вариант 3.
Все слова, в которых после пары 00 следуют только единицы, причем
их число четно.

19
Вариант 4.
Все слова, в которых каждый третий символ — единица.
Вариант 5.
Все слова, в которых между вхождениями единиц четное число нулей.
Вариант 6.
Все слова, начинающиеся четным числом нулей и заканчивающиеся
последовательностью единиц.
Вариант 7.
Все слова из нулей и единиц, содержащие три единицы.
Вариант 8.
Все слова, в которых за каждым вхождением пары 11 следует 0.
Вариант 9.
Все слова, начинающиеся последовательностью нулей, за которой
следует 10 и заканчивающиеся последовательностью единиц.
Вариант 10.
Все слова, в которых число единиц четное, а число нулей — нечетное.
Т е о р е т и ч е с к и е с в е д е н и я
Основные понятия
Одноленточный конечный автомат над алфавитом V задается набором A = {V, Q, R, q0, #, I} и правилом функционирования, общим для всех
таких автоматов. В наборе А
V — входной алфавит (конечное множество допустимых входных
символов), из которого формируются слова, считываемые автоматом;
Q — конечное непустое множество состояний (QV=);
R — множество выделенных заключительных состояний (RQ);
q0 — выделенное начальное состояние;
I — программа автомата;
# — «пустой» символ.
Программа автомата I представляет собой множество команд вида q а
q', в которой qQ, q'Q, aV и для любой пары (q, a) существует
единственная команда, начинающаяся этими символами. Программу автомата можно рассматривать как функцию δ: Q×V→ Q переходов автомата, которая паре (состояние, символ алфавита) ставит в соответствие
новое состояние (состояние перехода).

20
a
q1
q2
q0
q3
b
b b b
a
a
Рис. 3. Граф одноленточного конечного автомата
Неформально одноленточный автомат можно представить как абстрактную машину, похожую на машину Тьюринга, но имеющую следующие особенности:
1) выделены заключительные состояния;
2) машина считывает символы с ленты, ничего не записывая на нее;
3) на каждом шаге головка автомата, считав символ с ленты и перейдя
согласно программе в новое состояние, обязательно передвигается вправо
на одну клетку;
4) автомат останавливается в том и только в том случае, когда головка
достигнет конца слова, т.е. символа .
Говорят, что автомат допускает слово в алфавите V, если, начав работать с лентой, содержащей это слово, он останавливается в заключительном состоянии. Автомат A задает характеристическую функцию
множества MA допускаемых им слов в алфавите V, т. е. он распознает,
принадлежит ли заданное слово множеству MA, если связать с остановкой
в заключительном состоянии символ 1, а с остановкой в незаключительном состоянии — 0.
Наглядным способом задания одноленточного автомата является граф
автомата (рис.3).
Автомат А представляется графом, множество вершин которого соответствует множество состояний Q, и из вершины q в вершину q' ведет
дуга, помеченная символом а, тогда и только тогда, когда программа автомата содержит команду q а q'. Вершины, соответствующие заключительным состояниям, рисуются жирной линией. Работе автомата над
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
