81
Министерство образования и науки Российской Федерации Ярославский государственный университет им. П. Г. Демидова Е. В. Кузьмин, В. А. Соколов Автоматные счетчиковые машины Монография Ярославль 2 0 1 2

Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

Министерство образования и науки Российской ФедерацииЯрославский государственный университет

им. П. Г. Демидова

Е.В. Кузьмин, В.А. Соколов

Автоматные счетчиковые

машины

Монография

Ярославль 2 0 1 2

Page 2: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

УДК 519.7ББК З97+В1

К89

Рецензенты:доктор технических наук, профессор Д.О. Бытев;

кафедра теории и методики обучения информатике ЯГПУ им. К.Д. Ушинского

Кузьмин, Е.В. Автоматные счетчиковые машины: монография /К89 Е.В. Кузьмин, В. А. Соколов; Яросл. гос. ун-т. им. П. Г. Демидова. —

Ярославль: ЯрГУ, 2012. — 160 с.ISBN 978-5-8397-0893-8

Монография посвящена автоматным счетчиковым машинам и тем формальнымязыкам, которые способны распознавать/задавать эти абстрактные математиче-ские машины. Приведенные здесь результаты представляют интерес как длятеории формальных моделей вычислений, так и для теории формальных язы-ков, поскольку автоматные счетчиковые машины (и соответственно их языки)занимают особое положение в иерархии формализмов в границах от конечныхавтоматов до машин Тьюринга (счетчиковых машин Минского). Свойства ав-томатных счетчиковых машин изучаются с привлечением теории правильныхквазипорядков и теории вполне структурированных систем переходов, которыеоказываются полезными для решения задач анализа семантических свойств раз-личных формальных моделей, являющихся более слабыми по вычислительноймощности (выразительной способности), чем машины Тьюринга.

Предназначена для специалистов в области формальных языков и моделейвычислений. Может быть использована студентами старших курсов, магистранта-ми и аспирантами, специализирующимися в области теоретической информатикии прикладной математики.

Рис. 50. Библиогр.: 40 назв.

УДК 519.7ББК З97+В1

ISBN 978-5-8397-0893-8

c© Ярославский государственный университет им. П. Г. Демидова, 2012

c© Е.В. Кузьмин, В. А. Соколов, 2012

ОГЛАВЛЕНИЕ

Предисловие . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

Г л а в а 1. Счетчиковые машины . . . . . . . . . . . . . . . . . . . . . . . 6

1.1. Машины Тьюринга . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.2. Алгоритмические проблемы. . . . . . . . . . . . . . . . . . . . . . . . . 13

1.3. Счетчиковые машины Минского . . . . . . . . . . . . . . . . . . . . . 19

Г л а в а 2. Двухсчетчиковые машины . . . . . . . . . . . . . . . . . . . 36

2.1. Неразрешимые проблемы и метод сведения . . . . . . . . . . . . . 36

2.2. Двухголовочные автоматы . . . . . . . . . . . . . . . . . . . . . . . . . . 52

Г л а в а 3. Однорегистровые машины . . . . . . . . . . . . . . . . . . . 59

3.1. Однорегистровые машины . . . . . . . . . . . . . . . . . . . . . . . . . . 59

3.2. Теоремы по проблеме «входа» . . . . . . . . . . . . . . . . . . . . . . . 71

3.3. Теоремы по проблеме «выхода» . . . . . . . . . . . . . . . . . . . . . . 78

3.4. О вычислимых функциях . . . . . . . . . . . . . . . . . . . . . . . . . . 83

Г л а в а 4. Структурированные системы переходов . . . . . . . . . 89

4.1. Квазипорядок . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

4.2. Структурированные системы переходов . . . . . . . . . . . . . . . . 93

4.3. Автоматные системы переходов . . . . . . . . . . . . . . . . . . . . . . 103

Г л а в а 5. Автоматные счетчиковые машины . . . . . . . . . . . . . 109

5.1. Слабые счетчиковые машины . . . . . . . . . . . . . . . . . . . . . . . 109

5.2. Автоматные счетчиковые машины . . . . . . . . . . . . . . . . . . . . 119

5.3. Автоматные трехсчетчиковые машины . . . . . . . . . . . . . . . . . 128

Г л а в а 6. Языки автоматных счетчиковых машин . . . . . . . . 135

6.1. Автоматная счетчиковая машина-распознаватель . . . . . . . . . 135

6.2. Проблемы пустоты и распознавания слов. . . . . . . . . . . . . . . 137

6.3. Свойства замкнутости . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

6.4. Проблемы включения и равенства языков . . . . . . . . . . . . . . 149

Литература . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

Page 3: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

Предисловие

Монография посвящена автоматным счетчиковым машинам и темформальным языкам, которые способны распознавать/задавать эти аб-страктные математические машины. Приведенные здесь результатыпредставляют интерес как для теории формальных моделей вычис-лений, так и для теории формальных языков, поскольку автоматныесчетчиковые машины (и соответственно их языки) занимают особоеположение в иерархии формализмов в границах от конечных автоматовдо машин Тьюринга (счетчиковых машин Минского).

Свойства автоматных счетчиковых машин изучаются с привлече-нием теории правильных квазипорядков и теории вполне структу-рированных систем переходов, которые оказываются полезными длярешения задач анализа семантических свойств различных формальныхмоделей, являющихся более слабыми по вычислительной мощности(выразительной способности), чем машины Тьюринга.

Основные новые результаты, приведенные в этой монографии, каса-ются главным образом языков автоматных счетчиковых машин и пред-ставляют собой следующее.

В монографии определен и исследован класс языков, допускаемыхавтоматными счетчиковыми машинами. Доказано, что этот класс за-мкнут относительно операций объединения, пересечения, конкатена-ции, бесконечной итерации, гомоморфизма и обратного гомоморфизма,т. е. является полным абстрактным семейством языков. Также уста-новлено, что класс языков автоматных счетчиковых машин (ЯАСМ)замкнут относительно полной подстановки, но незамкнут относительнодополнения и операции обращения. Доказано, что для класса ЯАСМразрешимы проблемы пустоты и распознавания слова языка, заданногоавтоматной счетчиковой машиной, но неразрешимы проблемы включе-ния и равенства языков. Проведено сравнение с другими классами язы-ков — регулярными, контекстно-свободными, контекстно-зависимымиязыками и языками сетей Петри. Установлено, что класс АСМ-языковвключает в себя регулярные языки, несравним по включению с классомконтекстно-свободных языков и классом языков сетей Петри, но пол-ностью входит в класс контекстно-зависимых языков.

Кроме результатов, связанных с автоматными счетчиковыми маши-нами, в монографии приводятся предварительные сведения по теории

Предисловие 5

счетчиковых машин — абстрактных математических моделей вычисле-ний. Затрагиваются интересные факты из теории вычислимости. На-пример, в первой главе дается определение машины Тьюринга как фор-мализации интуитивного понятия алгоритма и приводится ее пример.С точки зрения понятия «массовых алгоритмических проблем» обсуж-даются разрешимые и неразрешимые проблемы для машин Тьюринга.Приводятся доказательства теорем о неразрешимости проблем «оста-новки» и «зацикливания». Далее описывается другой вид абстрактныхматематических машин — счетчиковые машины Минского. Показы-вается, что любую машину Тьюринга можно смоделировать машинойМинского всего лишь с тремя счетчиками. Более того, любая трехсчет-чиковая машина Минского моделируется машиной Минского с двумясчетчиками при условии специальной кодировки входа и выхода, чтопозволяет сделать вывод о равномощности двухсчетчиковых машинМинского и машин Тьюринга. Однако возникает вопрос о возмож-ности реализации входных и выходных кодировок также с помощьюдвухсчетчиковой машины. Эти задачи известны как проблема «входа»и проблема «выхода». Во второй главе на основе «базовых» неразре-шимых проблем остановки и зацикливания, которые двухсчетчиковыемашины наследуют от машин Тьюринга, с помощью метода сведениядоказывается неразрешимость ряда классических проблем для двух-счетчиковых машин Минского. На примере класса двухголовочныхавтоматов демонстрируется, каким образом счетчиковые машины могутиспользоваться для доказательства алгоритмической неразрешимостисвойств различных формализмов и абстрактных математических ма-шин. Третья глава посвящена (описанным ранее) проблемам «входа»и «выхода» для двухсчетчиковых машин Минского, которые для удоб-ства исследования этих проблем приводятся к виду однорегистровыхмашин. Показывается, что решения проблемы «входа» не существует,а проблема «выхода» затрагивает некоторые сложные вопросы теориичисел.

Page 4: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

Гл ав а 1

СЧЕТЧИКОВЫЕ МАШИНЫ

В середине 1930-х годов А. Тьюринг, A. Чёрч, С. Клини и Э. Постразличным образом формализовали способы получения значений вы-числимых функций, т. е. функций, для которых существует конструк-тивная процедура, или алгоритм, нахождения их значений. Позднеебыло установлено, что все эти независимо введенные определениявычислимости эквивалентны, т. е. задают один и тот же класс функций.Идея Тьюринга состояла в том, чтобы определять функцию с помощьюабстрактной «математической машины», вычисляющей значения функ-ции по значениям ее аргументов. Таким образом, конкретная машинаТьюринга задает конкретную вычислимую функцию, и его гипотеза(тезис) состояла в том, что каждая функция, для которой существуеталгоритм нахождения ее значений, представима некоторой машинойТьюринга, т. е. является вычислимой. Тезис Тьюринга не может бытьдоказан, так как наряду с формальным понятием вычислимой функ-ции он содержит эмпирическое понятие алгоритма. Однако интуиция,отсутствие опровергающих примеров и равносильность разных форма-лизаций вычислимости убеждают в справедливости этого тезиса.

Формализация интуитивного понятия алгоритма с помощью машинТьюринга позволяет математически строго доказывать алгоритмиче-скую неразрешимость различных проблем, т. е. доказывать принципи-альное отсутствие алгоритма их решения. Сам факт наличия алгоритмарешения некоторой задачи строго связывается с существованием ма-шины Тьюринга, реализующей этот алгоритм. В определенном смыс-ле понятия «алгоритм» и «машина Тьюринга» можно использоватькак эквивалентные. Если будет доказано, что не существует машиныТьюринга, решающей некоторую заданную проблему, то это будетозначать (исходя из тезиса) неразрешимость этой проблемы. Невоз-можность построения машины Тьюринга доказывается либо методом«от противного», что приводит к появлению «базовой» неразрешимойпроблемы, либо методом сведения (обычно «базовой») неразрешимойпроблемы к исследуемой. При исследовании свойств машин Тьюрингаи счетчиковых машин Минского нами будут применяться оба подхода.

1.1. Машины Тьюринга 7

В главе дается определение машины Тьюринга и приводится еепример. Разрешимые и неразрешимые проблемы обсуждаются с точкизрения понятия «массовых алгоритмических проблем». Доказываютсятеоремы о неразрешимости проблем «остановки» и «зацикливания»для машин Тьюринга. Обсуждается конструктивная «минимальность»(в выразительных средствах) машин Тьюринга. Затем описывается ещеодин способ формализации алгоритма — счетчиковая машина Мин-ского. Счетчиковые машины Минского имеют более «привычный вид»и походят на компьютерную программу, написанную на языке высоко-го уровня, поскольку содержат переменные, называемые счетчиками,и операторы условного и безусловного перехода, позволяющие строитьконструкции циклов. Машины Минского имеют такую же мощность,что и машины Тьюринга. Более того, любую машину Тьюринга можносмоделировать машиной Минского всего лишь с тремя счетчиками.

1.1. Машины Тьюринга

Опр е д е л е ни е. Машина Тьюринга T задает словарную функциюнад некоторым алфавитом V и представляет собой описание машины —набор (V ,Q, q0,#, I) — и правило функционирования, общее для всехмашин, где

• V — конечный алфавит машины;

• Q — конечное непустое множество символов, называемых состо-яниями машины (Q ∩ V = ∅);

• q0 — выделенный элемент множества Q, называемый начальнымсостоянием;

• # — специальный «пустой» символ, который не принадлежитни V , ни Q;

• I — программа машины.

Программа машины — это конечное множество слов вида

qa → q′a′d,

называемых командами, где q, q′ ∈ Q, a, a′ ∈ V ∪ {#}; → — вспо-могательный символ-разделитель; d — элемент множества {l, r, p},содержащего три специальных символа, которых нет ни в V , ни в Q.Предполагается также, что в программе I никакие две команды немогут иметь одинаковую пару первых двух символов.

Page 5: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

8 Гл. 1. Счетчиковые машины

# # a b c d e f g h

Головка Лента

Управление

Программа Состояние

Рис. 1.1. Машина Тьюринга

Правило функционирования поясним неформально на распростра-ненной «физической» модели машины Тьюринга. Машина состоитиз потенциально бесконечной (в обе стороны) ленты, управленияи считывающей–записывающей головки, перемещаемой вдоль ленты(см. рис. 1.1). Лента разбита на клетки, которые могут содержатьсимволы из алфавита V или быть пустыми, т. е. содержать символ #.Управление на каждом шаге работы машины находится в одном из со-стояний, расшифровывает программу, которая однозначно определяетповедение машины и управляет головкой. Головка в каждый моментрасположена против некоторой клетки ленты и может считывать сим-волы с ленты, записывать их на ленту и перемещаться в обе сторонывдоль ленты. Машина функционирует следующим образом. В началь-ный момент на ленте записано некоторое слово из символов алфави-та V , а управление находится в начальном состоянии q0. Начальноеслово (равно как и слова, появляющиеся в процессе работы машины)ограничено с двух сторон пустыми символами #. Головка обозреваеткрайний слева символ заданного слова.

Работа машины состоит в повторении следующего цикла элемен-тарных действий:

1) считывание символа, находящегося против головки;

1.1. Машины Тьюринга 9

2) поиск применимой команды, а именно той машинной команды

qa → q′a′d,

в которой q — текущее состояние управления, a — считанныйсимвол;

3) выполнение найденной команды, состоящее в переводе управ-ления в новое состояние q′, записи в обозреваемую головкойклетку символа a′ (вместо стираемого символа a) и последующемперемещении головки вправо, если d = r, влево, если d = l, илисохранении её в том же положении, если d = p.

Машина останавливается в том и только том случае, если на оче-редном шаге ни одна из команд не применима. Результат работыостановившейся машины — заключительное слово на ленте. МашинаТьюринга, перерабатывая начальные слова на ленте в заключительные,задает словарную функцию, для которой начальные слова — значенияаргумента, заключительные — значения функции. (Для представленияn-местной функции начальное слово на ленте имеет вид

#α1#α2# . . .#αn#,

где подслова α1, α2, . . . , αn не содержат символа #. При интерпрета-ции заключительного слова на ленте как значения функции символ #игнорируется.) Если машина не останавливается, начав работу с неко-торым словом на ленте, то функция, задаваемая машиной, считаетсянеопределенной для этого слова. Таким образом, машина Тьюринга Tзадает частичную функцию FT и способ вычисления ее значений.

Напомним, что если областью определения некоторой функцииF : X → Y служит всё множество X , то F — всюду определеннаяфункция, в противном случае — частичная.

Хотя машины Тьюринга оперируют со словами, они могут задаватьи числовые функции, поскольку каждое слово может быть взаим-но однозначно закодировано целым неотрицательным числом (причеммногими способами).

Например, аналитический вид функции K : V ∗ → N, кодирующейслова в произвольном конечном алфавите V = {a1, a2, . . . , an} целыминеотрицательными числами, может иметь следующий вид:

K(ε) = 0, где ε — пустая строка,

∀ai ∈ V , ∀α ∈ V ∗ : K(αai) = K(α) ∗ n+ i.

Page 6: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

10 Гл. 1. Счетчиковые машины

По определению, функция F является (частично) вычислимой, ес-ли существует машина Тьюринга T такая, что FT = F . Говорят также,что для функции F существует (частичный) алгоритм вычисленияее значений, задаваемый машиной T . Существуют функции, которыене являются вычислимыми.

Для машины Тьюринга, как и для всех других формальных спосо-бов задания алгоритмов, характерны следующие свойства:

1) конструктивность — машина Тьюринга представляет собой конеч-ный объект, построенный по определенным правилам из базовыхобъектов;

2) конечность — процесс нахождения функций для тех значенийаргументов, для которых она определена, состоит из конечногочисла шагов;

3) однозначность — результат работы машины единственным обра-зом определяется начальным словом;

4) массовость — машина работает с любым начальным словомна ленте, составленным из символов ее алфавита.

Следующее преобразование с помощью кодирования символов ислов из V ∗ словами в алфавите {0, 1} позволит нам в дальнейшемработать лишь с двоичными машинами Тьюринга, т. е. машинами,которые не имеют специальных служебных символов, а их алфавитсостоит только из 0 и 1:

код(#) = 0;

код(ai) = 11 . . . 1︸ ︷︷ ︸

i

0 (i = 1, . . . ,n);

код(αai) = код(α)код(ai).

Так как символ # кодируется нулем, то после преобразованиялюбому непустому слову на ленте исходной машины Тьюринга T будетсоответствовать двоичное слово на ленте новой машины Тьюринга Tb,начинающееся нулем и оканчивающееся двумя нулями.

В качестве примера рассмотрим следующую машину Тьюринга.Пусть алфавит V машины Тьюринга T состоит из двух символов —открывающей и закрывающей скобок: V = { (, ) }. Выделим во мно-жестве V ∗ подмножество M «правильных» слов, которые определимследующим образом:

1.1. Машины Тьюринга 11

1) пустое слово ε ∈ M ;

2) если слово α принадлежит множеству M , то слова ( )α, α( ) и (α)также принадлежат M .

Построим машину Тьюринга T , на ленту которой подаются словаиз V ∗, и машина узнает, принадлежит данное слово множеству Mили нет. Для этого машина должна остановиться с односимволь-ным словом «1» на ленте, если начальное слово принадлежит M , ис результатом «0» — в противном случае. Другими словами, машинаТьюринга T должна задавать такой предикат P : V ∗ → {0, 1}, что

P (α) =

{1, если α ∈ M ,0, если α /∈ M.

Добавим в алфавит машины T символы «0», «1» и «∗». Искомаямашина Тьюринга T имеет следующий вид (для простоты отождествиммашину T с ее описанием):

T = ({ (, ), 0, 1, ∗}, {q0, q1, q2, q3, q4}, q0, #, I),

где программа I содержит следующие команды (перенумерованные дляпоследующих ссылок):

1. q0 ( → q0 ( r. 2. q0 ) → q1 ∗ l.3. q0 ∗ → q0 ∗ r. 4. q0 # → q2 # l.5. q1 ( → q0 ∗ r. 6. q1 ∗ → q1 ∗ l.7. q1 # → q4 0 r. 8. q2 ( → q3 # l.9. q2 ∗ → q2 # l. 10. q2 # → q2 1 p.

11. q3 ( → q3 # l. 12. q3 ∗ → q3 # l.13. q3 # → q3 0 p. 14. q4 ( → q4 # r.15. q4 ) → q4 # r. 16. q4 ∗ → q4 # r.

Когда машина находится в состоянии q0, головка движется направов поиске первой слева закрывающей скобки. Найдя эту скобку, оназамещает ее звездочкой и возвращается назад в новом состоянии q1,в котором ищет парную открывающую скобку. Встретив ее, вновьвозвращается назад в состояние q0 и движется направо и т. д. Еслиголовка достигнет левого символа #, она записывает символ «0»(не нашлось парной открывающей скобки) и переходит в состояние q4,находясь в котором движется направо, стирая все символы. Если жеголовка достигнет правого символа #, она переходит в состояние q2

и возвращается к началу слова, стирая по пути символы. Если онавернется к началу слова, не встретив по пути открывающей скобки

Page 7: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

12 Гл. 1. Счетчиковые машины

(заданное слово правильное), она запишет «1», и машина остановится.Если же встретится хотя бы одна открывающая скобка (слово непра-вильное), машина перейдет в состояние q3, которое заставит головкузаписать «0» в начале слова и остановиться.

Функционирование машины Тьюринга можно описать с помощьюпротокола работы над заданным начальным словом. Пусть

#α1α2 . . . αk−1αk . . . αn#

— слово, возникшее на ленте в процессе работы машины после неко-торого шага, в результате которого машина находится в состоянии q(αi ∈ V ), а головка обозревает клетку, содержащую k-й слева символслова. Тогда слово

#α1α2 . . . αk−1 q αk . . . αn#

называется конфигурацией машины Тьюринга. Последовательностьконфигураций, выписанных в том порядке, в котором они следуютв процессе работы машины, и называется протоколом.

Так, протокол работы рассматриваемой машины Тьюринга над сло-вом «(( )( )» имеет следующий вид (между конфигурациями выписаныномера выполняемых команд):

#q0(( )( )# — применима команда 1, головка перемещается направо,игнорируя открывающие скобки;

#(q0( )( )# — применима команда 1;

#((q0)( )# — применима команда 2, обнаружена закрывающая скоб-ка, которая «зачеркивается» символом «*»;

#(q1(∗( )# — применима команда 5, головка возвращается обратнои находит парную открывающую скобку, которую зачеркивает;

#(∗q0∗( )# — применима команда 3, головка вновь движется вправов поиске закрывающей скобки;

#(∗∗q0( )# — применима команда 1;

#(∗∗(q0)# — применима команда 2, поскольку закрывающая скобкаобнаружена;

#(∗∗q1(∗# — применима команда 5, обнаружена парная открываю-щая скобка;

#(∗∗∗q0∗# — применима команда 3, снова движение направо;

#(∗∗∗∗q0# — применима команда 4, головка дошла до конца слова;

#(∗∗∗q2∗# — применима команда 9;

1.2. Алгоритмические проблемы 13

#(∗∗q2∗## — применима команда 9, головка движется влево в по-иске лишней открывающей скобки или начала слова, стирая на путизвёздочки;

#(∗q2∗### — применима команда 9;

#(q2∗#### — применима команда 9;

#q2(##### — применима команда 8, обнаружена лишняя откры-вающая скобка, которая стирается;

#q3###### — применима команда 13, обнаружено начало слова,и записывается «0»;

#q30##### — машина останавливается, так как ни одна из ко-манд ее программы не применима.

Результат работы построенной машины Тьюринга показывает, чтослово «(( )( )» не является правильным.

1.2. Алгоритмические проблемы

Изучая свойства алгоритмов, точнее, их формализаций — абстракт-ных математических машин, обычно имеют дело с так называемымимассовыми алгоритмическими проблемами. Интерес представляют ал-горитмы, которые могли бы по любой предъявленной машине Тьюрингаустановить, завершит ли она работу или же зациклится на задан-ном входном слове, будет ли она всегда останавливаться (независимоот входного слова), дают ли две машины Тьюринга, исходная и оп-тимизированная, один и тот же результат и т. д. Иными словами, насинтересуют алгоритмы, позволяющие анализировать другие алгорит-мы, представленные в некотором формальном виде, например в видемашины Тьюринга, счетчиковой машины или программы, написаннойна языке высокого уровня.

Массовые алгоритмические проблемы формулируются следующимобразом. Необходимо указать алгоритм, который бы определял, обла-дает ли предъявленный объект из некоторого класса объектов интере-сующим нас свойством; другими словами, принадлежит ли он множе-ству M всех объектов, обладающих этим свойством. Если существуеттакой частичный алгоритм, то говорят, что множество перечислимо,а поставленная массовая алгоритмическая проблема частично разреши-ма. Если этот алгоритм к тому же всюду определен, то множество Mразрешимо и поставленная проблема также разрешима. В этой главемы убедимся в существовании неразрешимых проблем и даже проблем,которые не являются частично разрешимыми, что свидетельствуето существовании невычислимых функций. Теоремы этой главы будут

Page 8: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

14 Гл. 1. Счетчиковые машины

использованы в последующих главах для доказательства неразрешимо-сти ряда проблем счетчиковых машин. Обсуждаемые понятия введемформально для множеств слов.

Оп р е д е л е ни е. Пусть V — алфавит, M ⊆ V ∗ — некоторое множествослов в этом алфавите. Характеристической функцией множества Mназывается предикат FM : V ∗ → {0, 1}, всюду определенный на V ∗:

FM (α) =

{1, если α ∈ M ,0, если α /∈ M.

Частичная характеристическая функция множества M — функцияHM : V ∗ → {1}, определенная только для слов из M и имеющая вид

HM (α) = 1 для всех α ∈ M.

Множество M называется разрешимым, если его характеристическаяфункция вычислима. Множество M перечислимо, если его частичнаяхарактеристическая функция вычислима. Разрешимость множества Mозначает существование всегда останавливающейся машины Тьюрин-га TFM

, которая позволяет для любого слова в алфавите V через конеч-ное число шагов установить принадлежность (или непринадлежность)этого слова множеству M . Перечислимость множества M означает,что существует машина Тьюринга THM

, которая останавливается в томи только том случае, если предъявленное слово принадлежит множе-ству M . Машина THM

не позволяет точно установить, принадлежитли заданное слово множеству M или нет, так как отсутствие ответак некоторому времени не несет никакой информации о том, появится онпозже или нет. Однако если машина THM

остановилась, то мы знаем,что предъявленное слово принадлежит M .

Связь между разрешимыми и перечислимыми множествами и, какследствие, между разрешимыми и частично разрешимыми проблемамиустанавливает теорема Э. Поста [22].

Т е о р ем а 1.1 (Пост). Множество M ⊆ V ∗ является разрешимымтогда и только тогда, когда M и его дополнение M = V ∗ \ Mперечислимы.

Дока з а т е л ь с т в о. Из разрешимости M следует его перечислимость.Действительно, машину Тьюринга TFM

, вычисляющую характеристи-ческую функцию множества M , легко преобразовать в машину THM

,

1.2. Алгоритмические проблемы 15

добавив к программе машины TFMкоманды, зацикливающие ее в том

случае, когда она останавливается с результатом «0». Новая машиназадает частичную характеристическую функцию множества M .

Пусть THMи THM

— это машины Тьюринга, задающие частичные

характеристические функции множеств M и M соответственно. Тогдаалгоритм распознавания, устанавливающий, принадлежит ли слово αмножеству M , сводится к следующей процедуре. Выполняется по однойкоманде каждой машины Тьюринга (с одним и тем же начальнымсловом α на лентах). Если после выполнения команды машина THM

остановится, то результат работы алгоритма — символ «1». Если оста-новится TH

M, то результат — символ «0». Если ни одна из машин

не остановится, тогда выполняется следующая пара команд, и т. д.Так как α — элемент или из M , или из M , то через конечное числошагов либо THM

, либо THM

завершит работу. Таким образом, алгоритмвычисляет значения характеристической функции множества M , т. е.можно построить машину Тьюринга TFM

, реализующую этот алгоритм,а это означает, что множество M разрешимо. �

Машина Тьюринга, начав работу над некоторым начальным словомна ленте, или останавливается, или работает бесконечно. Было быполезно иметь алгоритм, который для любой машины Тьюринга Tнад алфавитом V и для любого слова α в этом алфавите выяснял,остановится ли машина, начав работу над словом α или нет.

Проблему остановки можно сформулировать также в терминах мно-жеств. Пусть MS — множество всех пар слов в алфавите V , в каждойпаре первое слово — это словарное представление некоторой машиныТьюринга, второе — такое слово, что эта машина останавливается, на-чав работу над ним. Тогда проблема остановки состоит в определении,является ли множество MS разрешимым или неразрешимым. Для этогонеобходимо установить, является ли вычислимой характеристическаяфункция

FMS: V ∗2 → {0, 1}.

Следующая теорема, сформулированная A. Тьюрингом, утверждает,что функция FMS

не является вычислимой.

Т е о р ем а 1.2 (Тьюринг). Проблема остановки машины Тьюринганеразрешима.

Дока з а т е л ь с т в о. Предположим, что существует алгоритм, пред-ставленный машиной Тьюринга A (см. рис. 1.2), который, получив

Page 9: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

16 Гл. 1. Счетчиковые машины

Да

Нет

(T останавливается на α)

(T зацикливается на α)

T

α

A

Рис. 1.2. Гипотетическая машина Тьюринга A, реализующая алгоритм решенияпроблемы остановки

на вход произвольную машину Тьюринга T (точнее, ее словарноепредставление) и некоторое слово α, всегда завершает свою работу,причем с результатом «Да», если машина T останавливается на сло-ве α, и результатом «Нет», если T зацикливается на α.

Если машина A может решить проблему остановки для всех пар

(машина Тьюринга T , слово α),

то она может, конечно, сделать это для очень частного вида таких пар

(машина Тьюринга T , машина Тьюринга T ),

где вместо произвольного слова α подается словарное представлениемашины T . Следовательно, мы имеем алгоритм, определяющий, оста-новится ли машина Тьюринга на своем же собственном словарномпредставлении или нет.

T

T

A′ Да

Нет

(T останавливается на T)

(T зацикливается на T)

AT

Рис. 1.3. Машина Тьюринга A′ с одним входом

На основе машины A можно построить машину A′ (см. рис. 1.3),требующую в качестве входа только описание машины Тьюринга T ,

1.2. Алгоритмические проблемы 17

A′′

Нет (T зацикливается на T)

T A′

Рис. 1.4. Машина Тьюринга A′′, останавливающаяся только с ответом «Нет»

но поведение которой в остальном будет таким же, как и поведениемашины A.

Какой бы ни была внутренняя структура гипотетической машиныТьюринга A′, мы знаем, что должны существовать две ее финальныеконфигурации, соответствующие остановке, причем одна из них содер-жит ответ «Да», если машина T останавливается на словарном пред-ставлении машины T , а другая — ответ «Нет», если T зацикливаетсяна словарном представлении T . Проведем незначительные измененияв структуре машины A′ следующим образом. Добавим в программумашины A′ команды, зацикливающие A′ в том случае, когда оназавершает работу с ответом «Да». Для этого потребуется несколькокоманд, которые будут образовывать «петлю» с началом в финальнойконфигурации, содержащей ответ «Да». Таким образом, получим новуюмашину A′′ (см. рис. 1.4), завершающую свою работу тогда и толькотогда, когда машина T зацикливается на словарном представлении T .

Остается проделать ключевой шаг доказательства. Подадим на входмашине A′′ ее же словарное представление (см. рис. 1.5), т. е. словарноепредставление машины A′′. Получим, что машина A′′ на входномслове A′′ останавливается тогда и только тогда, когда поданная на

Нет (A′′ зацикливается на A′′)A′′A′′

Рис. 1.5. Машина Тьюринга A′′ с входным словом A′′

Page 10: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

18 Гл. 1. Счетчиковые машины

вход та же самая машина A′′ зацикливается на своем словарномпредставлении A′′. Но этого не может быть. Пришли к противоречию.Таким образом, машины A′′, A′ и, следовательно, A не существуют. �

Эта теорема демонстрирует существование невычислимых функций.Из тезиса Тьюринга следует, что для неразрешимых проблем нельзяпостроить алгоритм, который решал бы их «механически», напримерс помощью компьютера. Это означает, что неразрешимая проблемапредставляет собой слишком общую задачу, включающую некоторыеособые случаи (как, например, работу машины Тьюринга над собствен-ным словарным представлением). Попытки упростить неразрешимыепроблемы путем исключения особых случаев могут значительно обед-нять их, сделать тривиальными с точки зрения практики. В частности,теорема 1.2 не исключает возможности, что проблема остановки можетоказаться разрешимой для некоторого узкого класса машин Тьюринга.

Установив существование неразрешимых проблем и множеств, про-демонстрируем существование неперечислимых множеств и проблем,которые не являются частично разрешимыми. Для этого рассмотримпроблему зацикливания, состоящую в определении, существует лиалгоритм, хотя бы частичный, который выясняет заранее для произ-вольной машины Тьюринга и произвольного начального слова α, будетли машина работать бесконечно долго, т. е. надо установить, будетразрешимым или перечислимым множество MC ⊂ V ∗2 всех пар словтаких, что первое слово — словарное представление некоторой машиныТьюринга, а второе — слово, на котором эта машина зацикливается.

Т е о р ем а 1.3 (О зацикливании). Проблема зацикливания машиныТьюринга не является частично разрешимой.

Дока з а т е л ь с т в о. Из теоремы 1.1 и перечислимости множества MS

следует, что дополнение MS множества MS до множества всех парслов в алфавите V неперечислимо, так как в противном случае ока-залось бы разрешимым множество MS. Но MS = MC

⋃MD, где

MD — множество всех пар слов, первые слова в которых являютсясловарными представлениями машин Тьюринга, а MD — его допол-нение. Так как множество MT всех словарных представлений машинТьюринга разрешимо (любая машина Тьюринга может быть представ-лена в словарном виде по определенным правилам), множество MD

и множество MD разрешимы.

1.3. Счетчиковые машины Минского 19

Предположим, что проблема зацикливания частично разрешима,а множество MC — перечислимо. Тогда окажется перечислимым мно-жество MS , так как объединение перечислимого множества и разре-шимого множества есть перечислимое множество. Пришли к противо-речию. Следовательно, MC не может быть перечислимым, а проблемазацикливания не является частично разрешимой. �

Итак, мы пришли к тому, что для множества всех пар слов вида

(машина Тьюринга T , слово на ленте α)

не существует полного алгоритма, определяющего, остановится лимашина T на α или нет, более того, не существует даже частичногоалгоритма, который бы определял, зациклится ли T на α.

Отметим, что разрешимые множества могут включать в себя пе-речислимые множества, которые, в свою очередь, могут содержатьнеперечислимые подмножества. Это означает, что разрешимые множе-ства отличаются не меньшей количественной мощностью, а «меньшимразнообразием» своих элементов.

1.3. Счетчиковые машины Минского

Счетчиковая машина Минского представляет собой конечный ав-томат, имеющий доступ к памяти в виде нескольких неограниченныхсчетчиков, значениями которых могут быть лишь целые неотрицатель-ные числа. Над каждым счетчиком допустимы лишь две операции:безусловное увеличение на единицу и условное вычитание единицы(т. е. в случае, когда счетчик равен нулю, происходит переход в аль-тернативное состояние).

Счетчиковые машины были введены в классической монографииМ. Минского [24], в которой они получили название «программныемашины». Кроме того, в той же монографии были описаны равномощ-ные им регистровые машины, имеющие только лишь один регистр(счетчик), но множество возможных операций над регистром былорасширено с помощью операции умножения на константу и операцииусловного целочисленного деления на константу (переход в альтерна-тивное состояние осуществляется, если значение счетчика не делитсянацело на константу команды деления).

Для произвольной машины Тьюринга может быть построена мо-делирующая ее работу трехсчетчиковая машина Минского. Более то-го, любая трехсчетчиковая машина Минского моделируется машиной

Page 11: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

20 Гл. 1. Счетчиковые машины

Минского с двумя счетчиками при условии специальной кодировкивхода и выхода. Этот факт позволяет сделать вывод о равномощностидвухсчетчиковых машин Минского и машин Тьюринга. Отсюда следу-ет, что трехсчетчиковые машины Минского наследуют от машин Тью-ринга все неразрешимые проблемы, в частности «базовые» проблемыостановки и зацикливания. Опираясь на эти «базовые» неразрешимыепроблемы, с использованием метода сведения (описанного во второйглаве) далее будет показана для машин Минского неразрешимостьряда проблем, аналогичных проблемам машин Тьюринга, и некоторыхспецифических проблем, связанных со структурой машин Минского.

Благодаря тому, что машины Минского имеют такую же вычисли-тельную мощность, что и универсальные машины Тьюринга, а такжеиз-за своего очень простого вида, счетчиковые машины используютсядля доказательства тьюринговой мощности различных языков програм-мирования и формальных моделей программных систем.

Поскольку двухсчетчиковая машина моделирует работу произволь-ной машины Минского лишь при определенной кодировке входа и вы-хода, возникает вопрос о возможности реализации кодировок такжес помощью двухсчетчиковой машины. Эти задачи получили названияпроблемы «входа» и проблемы «выхода» соответственно. Изучениюэтих проблем посвящена третья глава.

Оп р е д е л е ни е. Счетчиковая машина Минского M задает некото-рую числовую функцию F : N

m → Nm, где N — множество целых

неотрицательных чисел, и представляет собой описание машины —набор (q0, qn,Q,X ,∆) — и правило функционирования, общее для всехмашин, где

• Q = {q0, . . . , qn} — конечное непустое множество состояниймашины M ;

• q0 ∈ Q — начальное состояние;

• qn ∈ Q — заключительное, или финальное, состояние;

• X = {x1, . . . ,xm} — конечное непустое множество счетчиков,которые могут принимать значения из множества N;

• ∆ = {δ0, . . . , δn−1} — набор правил перехода из одного состояниямашины в другое; δi — правило перехода для состояния qi.

1.3. Счетчиковые машины Минского 21

Состояния qi, 0 6 i 6 n− 1, подразделяются на два типа. Состоянияпервого типа имеют правила переходов вида:

δi : xj := xj + 1; goto qk,

где 1 6 j 6 m, 0 6 k 6 n. Для состояний второго типа имеем:

δi : if xj > 0 then (xj := xj − 1; goto qk) else goto ql,

где 1 6 j 6 m, 0 6 k, l 6 n. Для заключительного состояния qn пра-вило перехода не предусмотрено. Это означает, что при попаданиив состояние qn машина Минского M завершает свою работу.

Конфигурация машины Минского представляет собой набор(qi, c1, . . . , cm), где qi — состояние машины, c1, . . . , cm — натуральныечисла (включая ноль), являющиеся значениями соответствующихсчетчиков.

Исполнение машины Минского — это последовательность конфигу-раций s0 s1 s2 s3 . . . с начальной конфигурацией s0, индуктивно опреде-ляемая в соответствии с правилами переходов. Необходимо отметить,что счетчиковая машина имеет всего лишь одно (детерминированное)исполнение из начальной конфигурации s0, так как каждое состояниеимеет не более одного правила переходов.

Машина M , получив на вход некоторый набор значений счетчиков,стартует из состояния q0 и либо останавливается в состоянии qn с вы-ходным набором значений счетчиков, либо работает бесконечно долго(зацикливается), реализуя тем самым частичную числовую функцию.

Поскольку, как будет показано далее, машина Минского уже всегос двумя счетчиками может моделировать машину Тьюринга, проблема(остановки) достижения финального состояния из некоторой началь-ной конфигурации (q0, c1, c2) для двухсчетчиковой машины Минскогоне является разрешимой [24]. Однако существует простой частичныйалгоритм решения этой проблемы. Достаточно всего лишь запуститьсчетчиковую машину из начальной конфигурации и, если финаль-ное состояние достижимо, просто дождаться, когда она сгенерируетконфигурацию с финальным состоянием. Двойственная же пробле-ма, проблема зацикливания, не является даже частично разрешимой,т. е. не существует даже частичного алгоритма, который устанавливаетдля начальной конфигурации (q0, c1, c2), будет ли машина Минскогос двумя счетчиками работать бесконечно долго [26]. Более того, всеуказанное выше остается справедливым и при фиксированной нулевойначальной конфигурации (q0, 0, 0).

Page 12: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

22 Гл. 1. Счетчиковые машины

Итак, n-счетчиковая машина Минского имеет n счетчиков, каждыйиз которых может содержать неотрицательное целое число. Счетчи-ковую машину удобно представлять в виде программы, написаннойс помощью команд четырех типов, применяемых к счетчикам.

1. Увеличение значения определенного счетчика на единицу. Запи-сывается A+, где A — это имя счетчика.

2. Условный переход по значению счетчика. Если счетчик содер-жит 0, то происходит переход к другой команде (вне нормальнойпоследовательности) без изменения его значения. В противномслучае значение счетчика уменьшается на единицу, и выполне-ние программы продолжается в нормальной последовательности.Записывается A−, где A — имя счетчика, с использованием пра-восторонней стрелки, означающей переход по нулевому значениюсчетчика.

3. Безусловный переход. Обозначается стрелкой.

4. Оператор остановки. Записывается «Стоп».

Счетчиковые машины иногда называют «регистровыми машинами»или «программными машинами». Мы будем различать понятия «счет-чик» и «регистр» (хотя они обычно используются как синонимы).Термин «счетчик» будет употребляться в контексте операций условногоуменьшения на единицу или безусловного увеличения на единицу, в товремя как «регистр» будет применяться при более экзотических пре-образованиях, таких как операция удвоения, умножения на константуили условное деление.

Пр име р 1.1. Рассмотрим трехсчетчиковую машину 3cM , вычис-ляющую функцию 3X + 2Y . Исходные значения переменных X и Yнаходятся в счетчиках A и B соответственно. Третий счетчик Cимеет нулевое значение. После остановки машины результат будетнаходиться в счетчике C. (На диаграммах нормальное исполнениепрограммы направленно вниз страницы.)

Старт Стоп−A

+C+C

+C

−B

+C+C

1.3. Счетчиковые машины Минского 23

Число команд в программе этой машины может быть сокращеноследующим образом.

Старт Стоп−A

+C+C

+C

−B

Приме р 1.2. Построим четырехсчетчиковую машину, реализую-щую операцию умножения (содержимого) двух счетчиков A и B;результат сохраняется в счетчике C. Начальные значения счетчи-ков C и D установлены в ноль.

Старт Стоп−A

+C−B

+D−D+B

Приме р 1.3. Реализуем с помощью трехсчетчиковой машиныфункцию возведения числа в квадрат. Для этой цели воспользуемсятем фактом, что N 2 = (2N − 1) + (2N − 3) + . . .+ 3 + 1.

Старт Стоп−A

+C

−B+A

+C−A+B

Далее для большей наглядности и удобства имена и значениясчетчиков будем обозначать прописными (заглавными) буквами.

Т е о р ем а 1.4. Трехсчетчиковые машины Минского могут модели-ровать машины Тьюринга.

Дока з а т е л ь с т в о. Рассмотрим произвольную машину Тьюринга Tв двоичном виде, т. е. с алфавитом, состоящим из двух символов«0» и «1», и без специальных служебных символов ленты. Построим

Page 13: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

24 Гл. 1. Счетчиковые машины

для машины Тьюринга T моделирующую ее работу трехсчетчиковуюмашину 3cM с набором счетчиков A, B и C.

На бесконечной в обе стороны ленте машины Тьюринга T находит-ся бесконечно много символов «0», но число единиц (символов «1»)на ленте всегда будет конечным.

Разобьем ленту машины T на три части:

1) лента слева от считывающей/записывающей головки,

2) лента справа от головки

3) и ячейка ленты, находящаяся непосредственно напротив головки.

Левая часть ленты интерпретируется как бинарное число, соответ-ствующее значению счетчика A. Счетчик B содержит число, представ-ленное на правой части ленты в реверсной бинарной форме. Такимобразом, например, если лента имеет вид

. . . 000000001101 1 011010000000 . . . ,

то счетчик A будет содержать значение 13, а счетчик B будет хранитьчисло 22. Символ «1» под считывающей головкой соответствует томусостоянию программы счетчиковой машины 3cM , в которое эта маши-на только что перешла.

Каждая команда машины Тьюринга T моделируется некоторой под-программой счетчиковой машины 3cM . Например, предположим, чтомашина T на данном шаге записывает в текущую ячейку символ «1»и перемещает считывающую головку на одну ячейку вправо:

. . . 000000011011 0 110100000000 . . . ,

Запись единицы и сдвиг вправо означает, что левая часть лентыбудет увеличена на одну ячейку с символом «1». Таким образом,двоичное число, хранящееся в левой части ленты, умножается на 2и увеличивается на 1. Чтобы смоделировать эту ситуацию, счетчиковоймашине 3cM необходимо удвоить значение счетчика A и затем при-бавить к A единицу. Для реализации указанной последовательностиопераций используется вспомогательный счетчик C:

... ...−A+C

+A−C+A+A

1.3. Счетчиковые машины Минского 25

После выполнения этой подпрограммы счетчик A будет содержатьзначение 27.

При осуществлении сдвига вправо на одну ячейку двоичное числов реверсной форме, записанное в правой части ленты, также изме-няется. По сути, происходит деление на 2 без остатка. Однако оттого, каким именно будет остаток от деления, зависит дальнейшийвыбор ветки исполнения программы счетчиковой машины 3cM , моде-лирующей машину Тьюринга T . Остаток от деления (0 или 1) послесдвига будет находиться под считывающей головкой машины T . Такимобразом, при моделировании необходимо разделить (нацело) значениесчетчика B на 2, распознать остаток от деления и сделать соответ-ствующий условный переход. При выполнении этой задачи счетчик Cтакже используется для вспомогательных целей:

...

...−B

+B

...+C

−C ячейка = 0ячейка = 1−C

В результате в счетчик B будет записано число 11.Таким образом, каждой паре (состояние, символ ленты) машины

Тьюринга T будет соответствовать около десятка команд (не считаябезусловных переходов) счетчиковой машины 3cM . Например, после-довательное выполнение двух рассмотренных выше подпрограмм (в томпорядке, в котором они были представлены) соответствует командемашины Тьюринга T вида q 1 → q′ 1 r.

Поскольку алфавит рассмотренной машины Тьюринга T состоитвсего лишь из двух символов «0» и «1», то количество всех возможныхпар (состояние, символ ленты) для этой машины будет ограниченосверху числом 2|Q|, где Q — это множество состояний машины T .Следовательно, программа машины 3cM будет состоять не более, чемиз 2|Q| спаренных подпрограмм (т. е. подпрограмм, которые представ-ляют собой последовательное соединение двух подпрограмм, реализу-ющих адекватное изменение значений счетчиков A и B), построенныхисходя из изложенных выше соображений.

Для однозначности моделирования предполагаем, что считывающаяголовка машины Тьюринга в начальном состоянии находится слеваот слова на ленте и всегда обозревает символ «0», т. е. начальноесостояние моделирующей машины Минского будет соответствоватьпаре (q0, 0). �

Page 14: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

26 Гл. 1. Счетчиковые машины

При реализации машиной Тьюринга T функции от одного аргументаобычно используют «унарную» нотацию. Значение аргумента функциизаписывается на ленте в виде строки из символов «1», которой предше-ствует символ «0», обозреваемый считывающей головкой в начальномсостоянии. При моделировании такой машины Тьюринга счетчиковоймашиной Минского значение аргумента записывается в один из счетчи-ков. Вычисление функции F (N) счетчиковой машиной M начинаетсяустановкой значения одного счетчика в N и обнулением всех остальныхсчетчиков. Если функция F определена в N , то счетчиковая машина Mобязательно завершит работу со значением F (N) в конкретном (зара-нее определенном) счетчике. Если же F является неопределенной в N ,машина M будет работать бесконечно долго (никогда не остановится).

Т е о р ем а 1.5. Трехсчетчиковой машиной может быть вычислена(задана) любая вычислимая функция от одной переменной. При-чем таким образом, что результат будет возвращен счетчиковоймашиной (если она остановится) в тот же счетчик, в которомизначально содержался аргумент функции.

Дока з а т е л ь с т в о. Для каждой вычислимой функции можно по-строить вычисляющую ее машину Тьюринга. Построим счетчиковуюмашину 3cM , моделирующую работу такой машины Тьюринга T .

Аргумент N функции F задается на ленте машины T как последо-вательность из N символов «1», которой предшествует «0», непосред-ственно справа от считывающей головки. Но при способе моделиро-вания, описанном в доказательстве предыдущей теоремы, счетчиковаямашина 3cM интерпретирует запись на ленте справа от головки какбинарное представление числа (в реверсной форме), т. е. последова-тельности из N единиц будет соответствовать число

2N − 1

в счетчике B. Данная же теорема требует, чтобы машина 3cM на-чинала работу со значением N в одном из счетчиков. Следовательно,необходимо добавить входной преобразователь непосредственно передпрограммой машины 3cM . Входной преобразователь должен превра-щать N в 2N − 1.

Аналогичная проблема возникает после остановки машины T , по-скольку результат на ленте выглядит как последовательность из F (N)символов «1» с первым символом «0», расположенная непосредственно

1.3. Счетчиковые машины Минского 27

справа от считывающей головки. Возникает необходимость в построе-нии выходного преобразователя для 3cM , который бы менял содержи-мое счетчика

2F (N) − 1

на число F (N).

В итоге получаем следующую счетчиковую машину Минского.

+C

3cM – модель

машины T,

вычисляющей FСтарт −B

+A−A+B

−C

+B

−A Стоп

+A

+A−B

−A

Эта счетчиковая машина начинает работу со значением N в счетчикеC при нулевых значениях счетчиков A и B. Если машина останав-ливается, результат F (N) будет содержаться в счетчике C также принулевых значениях A и B. �

Теперь покажем, что если разрешить представление входа и выходав специальном кодированном виде, то для реализации вычислимойфункции можно обойтись двухсчетчиковой машиной Минского.

Т е о р ем а 1.6 (Минский). Для любой счетчиковой машины можетбыть построена моделирующая ее работу двухсчетчиковая машинапри соответствующей кодировке входа и выхода.

Дока з а т е л ь с т в о. Рассмотрим, например, произвольную четырех-счетчиковую машину 4cM со счетчиками W , X , Y и Z. Построимдля 4cM моделирующую ее работу двухсчетчиковую машину 2cMс счетчиками A и B. Содержимое всех четырех счетчиков закодируемодним числом

2W 3X5Y 7Z ,

которое будет храниться в счетчике A. Счетчик B является вспомога-тельным и изначально содержит нуль. Каждая команда машины 4cMмоделируется подпрограммой машины 2cM .

Page 15: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

28 Гл. 1. Счетчиковые машины

Здесь мы используем тот элементарный факт из арифметики, чтокаждое целое число может быть разложено на простые множителиединственным способом.

Важно то, что из одного числа 2W 3X5Y 7Z можно найти значенияW , X , Y и Z просто путем определения, сколько раз число может бытьразделено на 2, на 3, на 5 и на 7 соответственно. Если, например,

A = 12600, то W = 3, X = 2, Y = 2 и Z = 1.

Для наших целей нам нужно лишь показать, как можно получитьрезультат операций над счетчиками

W + и W−, X + и X−, Y + и Y−, Z + и Z − .

Например, чтобы смоделировать команду X+ машины 4cM , т. е.прибавление единицы к счетчику X , необходимо значение счетчика Aмашины 2cM умножить на 3. Действительно, это означает, что мыхотим заменить 2W 3X5Y 7Z на

2W 3X+15Y 7Z = 2W · 3 · 3X · 5Y · 7Z = (2W 3X5Y 7Z) · 3.Подобно этому увеличение на единицу содержимого W , Y или Z естьсоответственно удвоение, упятерение или усемирение содержимогосчетчика A.

Пример подпрограммы машины 2cM , моделирующей команду X+машины 4cM , представлен ниже. Команды W+, Y+ и Z+ моделиру-ются по аналогии.

−A −B... ...

+B+B+B

+A

Условное вычитание единицы, например для счетчика X , оказы-вается несколько более сложным, так как мы должны определить,не равняется ли значение счетчика X нулю; если значение X равнонулю, то нам нужно оставить его неизменным и осуществить условныйпереход. Если X не равен нулю, то нужно заменить 2W3X5Y 7Z на

2W 3X−15Y 7Z = (2W 3X5Y 7Z)/3,

т. е. разделить содержимое счетчика A на 3. Аналогично условноеуменьшение на единицу значений счетчиков W , Y и Z эквивалентноделению значения A на 2, на 5 и на 7 соответственно.

1.3. Счетчиковые машины Минского 29

Итак, при моделировании команды X− число, хранящееся в счет-чике A, делится на 3 с занесением частного в счетчик B. Если делениепроисходит нацело, содержимое счетчика B перемещается в счетчик A.Если после деления получается остаток, исходное значение счетчика Aвосстанавливается и осуществляется переход, соответствующий нуле-вой ветке команды X−.

...

−B

−A+B

−A−A +A

+A+A

нулевая ветка

(делится нацело)нормальная ветка−B

+A

С помощью левого цикла осуществляется деление путем после-довательного вычитания. Если деление происходит нацело, т. е. безостатка, то с помощью правого цикла производится занесение частногоот деления снова в счетчик A. Если деление происходит не нацело (т. е.значение X равняется нулю), средний цикл восстанавливает остаток(который в этот момент запоминается в виде состояния машины 2cM ,т. е. в виде места в программе), а затем прибавляет к нему частное,умноженное на делитель, и направляет результат обратно в A. Отме-тим, что после выполнения этой подпрограммы значение счетчика B(как и до начала выполнения подпрограммы) снова становится равнымнулю.

Это все, что нам требовалось доказать, так как ясно, что то жесамое можно сделать и для трех, и для пяти и более счетчиков.(В случае пяти счетчиков мы просто помещаем в A число

2W3X5Y 7Z11V

и используем описанные выше методы.)Чтобы построить счетчиковую машину 2cM , эквивалентную исход-

ной машине 4cM , надо заменить каждую из команд машины 4cMэквивалентной подпрограммой, подобной тем, которые мы сейчас по-строили. Все указанное выше вместе с приведенными конструкциямиподпрограмм является доказательством этой теоремы. �

Сл ед с т в и е 1.1. Проблема остановки двухсчетчиковых машиннеразрешима.

Page 16: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

30 Гл. 1. Счетчиковые машины

Сл ед с т в и е 1.2. Проблема зацикливания двухсчетчиковых машинне является частично разрешимой.

Как уже отмечалось, для моделирования машины Тьюринга счет-чиковой машиной Минского достаточно всего лишь трех счетчиков.Пусть машина Минского 3cM вычисляет функцию F (N). Смоделируеммашину 3cM двухсчетчиковой машиной 2cM . Тогда вход машины 2cMбудет состоять из

2N3050,

или просто 2N , в одном счетчике и 0 во втором счетчике, а выхо-дом будет число 2F (N), находящееся в первом счетчике, при нулевомзначении второго счетчика. Особенностью такого рода моделированияявляется то, что если машина 2cM начнет свою работу со входа

2NK

при (K, 30) = 1, где (K, 30) — наибольший общий делитель K и 30,она остановится с результатом

2F (N)K.

Сл ед с т в и е 1.3. Двухсчетчиковой машиной Минского можетбыть реализована любая вычислимая функция F от одногоаргумента N при представлении (кодировании) входа как 2N

и выхода (если машина останавливается) как 2F (N).

Отсюда естественным образом возникают следующие две пробле-мы, касающиеся вычислительной способности двухсчетчиковых машинМинского.

1. Проблема входа. Построить двухсчетчиковую машину 2cM , ко-торая, начав работу со значением N в одном из счетчиков, будетвычислять 2N , т. е. останавливается с результатом 2N .

2. Проблема выхода. Построить двухсчетчиковую машину 2cM ,преобразующую значение 2N одного из счетчиков в число N .

Цель решения этих проблем состоит в построении счетчиковоймашины 2cM без ограничений кодирования, указанных в следствии.Этого можно было бы достичь размещением двухсчетчиковой моделимашины Тьюринга между входным и выходным преобразователями(конверторами). Однако, как будет показано далее, решения проблемы

1.3. Счетчиковые машины Минского 31

«входа» не существует. Построить необходимый входной преобразова-тель не представляется возможным. Проблема «выхода» затрагиваетнекоторые сложные вопросы теории чисел. Исследованию проблем«входа» и «выхода» посвящена третья глава.

Т е о р ем а 1.7. Для любой трехсчетчиковой машины Минского 3cMможет быть построена эквивалентная (имитирующая ее работу)машина Минского с двумя счетчиками 2cM такая, что конфигу-рация со значениями счетчиков A = 2N · 3K · 5L и B = 0 машины2cM будет существовать тогда и только тогда, когда существуетконфигурация с X = N , Y = K и Z = L машины 3cM .

Дока з а т е л ь с т в о. Чтобы свести машину Минского 3cM со счетчи-ками X , Y и Z к машине Минского 2cM с двумя счетчиками A и B,воспользуемся приемом, который уже был применен ранее. Установимначальными значениями счетчиков A и B числа

2X · 3Y · 5Z и 0

соответственно. Как и прежде, важно то, что из одного числа

2X · 3Y · 5Z

можно найти числа X , Y и Z просто путем определения, сколько разисходное число может быть разделено на 2, на 3 и на 5 соответственно.Для достижения поставленной задачи нужно лишь показать, как мож-но получить результат операций увеличения на единицу и условноговычитания единицы до нуля для счетчиков X , Y и Z без нарушениятребований в формулировке теоремы.

Начнем с приращения. Например, пусть необходимо увеличитьзначение счетчика Y на единицу, т. е. реализовать операцию Y+. Этоозначает, что мы хотим заменить старое значение

2X · 3Y · 5Z

счетчика A на новое

2X · 3Y +1 · 5Z = 3 · (2X · 3Y · 5Z).Но это то же самое, что утроение значения счетчика A. Подобно этомуувеличение на 1 значения счетчика X или Z есть соответственноудвоение или упятерение содержимого счетчика A. Ниже представ-лена подпрограмма, с помощью которой реализуется умножение на 3.Подпрограммы умножения на 2 и на 5 строятся аналогичным образом.

Page 17: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

32 Гл. 1. Счетчиковые машины

...

...

+B+B

+B

+A+B

−A−A+A

+A

+A−B−B−B−B

Левый цикл в каждой из подпрограмм осуществляет подсчет новогосодержимого счетчика A путем прибавления трех (или двух, или пяти)единиц к значению счетчика B столько раз, сколько единиц в счет-чике A, правый цикл осуществляет передачу содержимого счетчи-ка B в A. Важным моментом в подпрограмме является то, что онаначинается с увеличения нулевого значения счетчика B на 1 и закан-чивается уменьшением единичного значения B до 0. Таким образом,все вспомогательные переходы (кроме последнего), переводящие кон-фигурацию

(2X · 3Y · 5Z , 0)

машины 2cM в конфигурацию

(2X · 3Y +1 · 5Z , 0),

проходят по промежуточным конфигурациям, которые имеют значениесчетчика B > 0.

Рассмотрим теперь условное вычитание единицы до нуля. Приуменьшении значения счетчика Y на единицу необходимо сначалаопределить, не является ли Y нулем. Если значение Y равно нулю,оставляем значение Y неизменным и осуществляем соответствующийусловный переход. Если Y не равен нулю, то нужно заменить староезначение

2X · 3Y · 5Z

счетчика A на новое

2X · 3Y−1 · 5Z = (2X · 3Y · 5Z)/3,т. е. разделить содержимое A на 3. Аналогично уменьшение X и Z(если они не равны нулю) эквивалентно делению на 2 и на 5. Подпро-грамма для уменьшения значения счетчика Y на 1 представлена ниже.Деление осуществляется путем последовательного вычитания.

1.3. Счетчиковые машины Минского 33

...

−A+B

−A+B

−A+B−A+A

−B+A

−B+A

−B+A

−B+B

−B+A

−B−B+B

−B

нулевая ветка

нормальная ветка

0=Y

0>Y

(делится нацело)

Левый цикл переносит исходное значение счетчика A в счетчик B,одновременно определяя, делится ли значение A нацело. Если делениепроисходит нацело, т. е. без остатка, то с помощью правого циклапроизводится занесение частного от деления B в счетчик A. Еслиделение происходит не нацело (т. е. Y равен нулю), средний циклвосстанавливает остаток (который в этот момент запоминается в видесостояния машины), направляя его в A, а затем прибавляет к немучастное (находящееся в B), умноженное на делитель. Как и в случаеприращения, все промежуточные переходы машины 2cM (кроме по-следнего) из

(2X · 3Y · 5Z , 0)

в конфигурацию

(2X · 3Y−1 · 5Z , 0)

или в конфигурацию

(2X · 30 · 5Z , 0)

осуществляются при значении счетчика B > 0.Чтобы построить счетчиковую машину 2cM , эквивалентную ма-

шине 3cM , такую что конфигурация со значениями счетчиков

A = 2N · 3K · 5L и B = 0

машины 2cM будет существовать тогда и только тогда, когда суще-ствует конфигурация с X = N , Y = K и Z = L машины 3cM , надозаменить все правила переходов машины 3cM на соответствующиенаборы правил переходов так, как это показано выше. �

2 Кузьмин Е. В., Соколов В.А.

Page 18: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

34 Гл. 1. Счетчиковые машины

З ам е ч ан и я п о т е о р ем е 1.7. В основе своей доказательство этойтеоремы повторяет доказательство теоремы 1.6 (оригинальной теоремыМ. Минского о моделировании трехсчетчиковой машины машинойс двумя счетчиками [24]). Однако применяемые в доказательстве тео-ремы 1.6 конструкции не обеспечивают для двух машин 2cM и 3cMвзаимную однозначность конфигураций со значениями счетчиков

A = 2N · 3K · 5L, B = 0 и X = N , Y = K, Z = L

соответственно. Потребовалось изменить конструкции моделированиятаким образом, чтобы все вспомогательные переходы порождали кон-фигурации со значением B > 0. Как только значение счетчика Bстановится нулевым, это означает, что A содержит новое значение

2N′ · 3K′ · 5L′

,

соответствующее

X = N ′, Y = K ′, Z = L′.

Вычисление же этого нового значения 2N′ · 3K′ · 5L′

начинается с уве-личения нулевого значения счетчика B на единицу. Таким образом,конструкции, приведенные в доказательстве теоремы 1.7, обеспечива-ют для машин 2cM и 3cM взаимную однозначность конфигурацийуказанного вида. �

Итак, в этой главе была показана равномощность трехсчетчиковыхмашин Минского и машин Тьюринга. Этот результат позволил дока-зать, что и двухсчетчиковые машины Минского, пусть с небольшойоговоркой, имеют такую же вычислительную мощность, что и машиныТьюринга. Причем доказательство этого факта проводилось без исполь-зования конструкций, непосредственно опирающихся на машины Тью-ринга, с использованием лишь формализма машин Минского, а точнее,формализма трехсчетчиковых машин. Таким образом, было показано,что для моделирования машин Тьюринга машинами Минского (с ко-мандами увеличения на единицу и условного вычитания единицы)достаточно использовать два счетчика при соответствующей кодировке.Но можно получить еще более сильный результат (с точки зренияколичества счетчиков), если допустить в качестве возможных командсчетчиковой машины операции умножения и деления на постоянныевеличины. В этом случае мы можем обойтись всего одним счетчиком,который, как мы условились ранее, теперь будем называть регистром.Действительно, из доказательства теоремы 1.6 видно, что нужен всего

1.3. Счетчиковые машины Минского 35

лишь один регистр, если можем осуществлять над его содержимымоперации «умножить на 2 (или 3, 5, 7, 11)» и «разделить на 2 (или 3, 5,7, 11) условно по условию целочисленного деления». Но такая модельмашины Тьюринга не исключает проблем «входа» и «выхода», кото-рые можно сформулировать относительно однорегистровой машины.Например, проблема «входа» по-прежнему ставит вопрос о возмож-ности реализации, но теперь уже однорегистровой машиной, функцииF (X) = 2X . Заметим, что по сути проблема входа для однорегистровоймашины и проблема входа для двухсчетчиковой машины представляютсобой одну и ту же задачу (аналогично для проблемы «выхода»).Такое представление двухсчетчиковой машины в виде однорегистровойникак не облегчает исследование проблем «входа» и «выхода». Поэтомудалее для этого мы будем использовать несколько иную конструкциюоднорегистровой машины.

Глава написана на основе работ [7, 16, 13, 24, 26, 40]. Материалпо машинам Тьюринга (определение и примеры) взят из монографииВ.Е. Котова и В.К. Сабельфельда [7]. Идея доказательства теоремыТьюринга о неразрешимости проблемы остановки — из монографииМ. Минского [24] и книги Д. Хопкрофта, Р. Мотвани и Д. Уль-мана [26]. Доказательство теоремы о проблеме зацикливания почтиполностью повторяет доказательство этой же теоремы из книги [7](доп. см. [22]). Материал по теореме 1.4 о моделировании машинТьюринга трехсчетчиковыми машинами и теореме 1.6 о моделированиипроизвольной счетчиковой машины двухсчетчиковой машиной взят измонографии М. Минского [24] и технического отчета Р. Шреппе-ля [40]. Формулировка и доказательство теоремы 1.7 с небольшимиизменениями взяты из статьи [16]. Проблемы «входа» и «выхода»для двухсчетчиковых машин Минского впервые были поставлены иисследовались в работе [40].

2*

Page 19: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

Гл ав а 2

ДВУХСЧЕТЧИКОВЫЕ МАШИНЫ

В предыдущей главе было показано, что для произвольной машиныМинского может быть построена моделирующая ее работу двухсчетчи-ковая машина при соответствующей кодировке входа и выхода. Этопозволяет сделать вывод о равномощности двухсчетчиковых машинМинского и машин Тьюринга. Отсюда получаем, что двухсчетчиковыемашины наследуют от машин Тьюринга неразрешимость всех общихклассических проблем, таких как проблемы остановки (зацикливания),достижимости заданной конфигурации, эквивалентности двух машини т. д. В то же время счетчиковые машины Минского имеют важноеструктурное отличие от машин Тьюринга. Наличие у машин Минскогосчетчиков порождает новые задачи, присущие только машинам этогокласса. Одна из таких представляющих интерес важных задач —изучаемая в этой главе проблема ограниченности, которая состоит в на-хождении алгоритма, определяющего для произвольной счетчиковоймашины Минского, ограничены ли (или неограниченно возрастают)значения счетчиков на протяжении бесконечного исполнения машины.В главе на основе «базовых» неразрешимых проблем остановки и за-цикливания, которые двухсчетчиковые машины наследуют от машинТьюринга, с помощью метода сведения доказывается неразрешимостьперечисленных проблем и ряда близких к ним проблем для двухсчет-чиковых машин Минского.

2.1. Неразрешимые проблемы и метод сведения

Т ео р ем а 2.1. Проблема остановки при нулевых входных значенияхсчетчиков неразрешима для двухсчетчиковых машин Минского.

Дока з а т е л ь с т в о. Предположим, что сформулированная проблемаявляется разрешимой, т. е. существует некоторый алгоритм, реализуе-мый машиной Тьюринга T , отвечающий на вопрос для произвольнойдвухсчетчиковой машины, остановится ли она или нет при нулевых

2.1. Неразрешимые проблемы и метод сведения 37

входных значениях счетчиков. Тогда будет разрешимой (неразрешимая)проблема остановки двухсчетчиковых машин Минского.

Действительно, пусть 2cM — это произвольная машина Минскогос двумя счетчиками A и B, и пусть начальной конфигурацией счет-чиков будет (N ,K), т. е. подадим на вход машине 2cM значение Nв счетчике A и значение K в счетчике B, где N и K — некоторые целыенеотрицательные числа. На основе 2cM построим двухсчетчиковуюмашину 2cM ′ с нулевыми входными значениями счетчиков так, какэто показано ниже.

2cM′

KB +NA +Старт 2cM

)0,0(Стоп

На рисунке действие A+N означает выполнение подряд N команд A+,аналогично B +K — последовательность из K команд B+. Построен-ная таким образом машина 2cM ′ останавливается, начав работу принулевых значениях счетчиков, тогда и только тогда, когда исходнаямашина 2cM останавливается, стартовав при A = N и B = K. Еслитеперь подать на вход гипотетическому алгоритму T машину 2cM ′,то получим ответ, останавливается ли машина 2cM ′ при начальнойконфигурации счетчиков (0, 0) или нет. А это означает, что мы узнаем,останавливается ли машина 2cM при начальной конфигурации (N ,K).Поскольку выбор машины 2cM и чисел N и K осуществлялся про-извольным образом, то мы имеем алгоритм решения неразрешимойпроблемы остановки двухсчетчиковых машин Минского.

Пришли к противоречию. Следовательно, заявленная проблема так-же не является разрешимой (однако существует очень простой частич-ный алгоритм ее решения). �

Аналогичные рассуждения на основе проблемы зацикливания двух-счетчиковых машин Минского убеждают нас в справедливости следу-ющей теоремы.

Т е о р ем а 2.2. Проблема зацикливания при нулевых входных значе-ниях счетчиков не является частично разрешимой для двухсчетчи-ковых машин Минского.

Page 20: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

38 Гл. 2. Двухсчетчиковые машины

Экземпляр

проблемы

P

T′

Экземпляр

проблемы

P′

T

для P′

Да

Нет

Рис. 2.1. Если бы можно было разрешить проблему P ′, то ее решение мы моглибы использовать для разрешения (неразрешимой) проблемы P

В только что приведенном доказательстве использована следующаясхема рассуждений: выполнив некоторые вспомогательные построения,мы предполагаем разрешимость исследуемой проблемы, что в силу про-веденных построений дает нам возможность решать другую проблему,о которой, однако, известно, что она неразрешима. Полученное про-тиворечие доказывает неразрешимость исследуемой проблемы. Такойметод доказательства называют методом сведения: известная пробле-ма сводится к исследуемой, поэтому последняя также неразрешима.Метод сведения используется и в случае, когда доказывается, чторассматриваемая проблема не является частично разрешимой. Методсведения имеет широкое применение. Как правило, осуществляетсяпоследовательный многоступенчатый процесс сведения одних проблемк другим, и часто «базовой» неразрешимой проблемой в этой цепоч-ке оказывается проблема остановки машин Тьюринга. (Однако методсведения не универсален, так как существуют взаимно несводимыенеразрешимые проблемы.)

Схематически метод сведения проблемы P к проблеме P ′ можнопредставить так, как это показано на рис. 2.1. Рассуждения проводятсяследующим образом. Предположим, что нам известно, что проблемаP неразрешима, а P ′ — новая проблема, неразрешимость которой нуж-но доказать. Допустим, что существует алгоритм, реализуемый маши-ной Тьюринга T , который останавливается с ответом «Да» или «Нет»в зависимости от того, принадлежит или нет его вход (экземплярпроблемы P ′) множеству, соответствующему проблеме P ′. Для до-казательства неразрешимости проблемы P ′ нужно создать алгоритмT ′, который преобразует любой экземпляр проблемы P в экземплярпроблемы P ′, причем так, чтобы их ответы всегда совпадали. Имеятакое преобразование, (неразрешимую) проблему P можно разрешитьследующим образом.

2.1. Неразрешимые проблемы и метод сведения 39

1) Применим алгоритм T ′ к данному экземпляру проблемы P , т. е.к элементу, который может принадлежать или не принадлежатьсоответствующему множеству проблемы P , и получим экземплярпроблемы P ′.

2) Проверим, принадлежит ли полученный экземпляр проблемы P ′

множеству, соответствующему проблеме P ′, и перенесем ответна исходный экземпляр проблемы P и саму проблему P .

Например, в доказательстве теоремы 2.1 в качестве алгоритма T ′ вы-ступало преобразование произвольной двухсчетчиковой машины 2cMсо входом (N ,K), являющейся экземпляром неразрешимой проблемы Pостановки двухсчетчиковых машин Минского, в машину 2cM ′ со вхо-дом (0, 0) — экземпляр исследуемой проблемы P ′ остановки двухсчет-чиковой машины при нулевых начальных значениях счетчиков.

Отметим, что направление сведения является важным. Обычнаяошибка — пытаться доказать неразрешимость проблемы P ′ путемсведения ее к известной неразрешимой проблеме P , т. е. доказыватьутверждение «если P разрешима, то P ′ разрешима». Это утверждение,безусловно истинное, бесполезно, поскольку предпосылка «P разре-шима» ложна. Единственный путь доказать, что новая проблема P ′

неразрешима, состоит в том, чтобы свести к ней уже известную нераз-решимую проблему, т. е. доказать утверждение «если P неразрешима,то P ′ неразрешима». Если это удастся, то поскольку неразрешимостьпроблемы P уже установлена, придем к выводу, что и проблема P ′

также неразрешима.

Итак, P сводится к P ′, если у нас есть алгоритм, преобразующийкаждый экземпляр проблемы P в экземпляр проблемы P ′ с тем жесамым ответом («Да»/«Нет»), т. е. сведение должно переводить всякийэкземпляр проблемы P с ответом «Да» (позитивный) в экземплярпроблемы P ′ с ответом «Да», и всякий экземпляр P с ответом«Нет» (негативный) — в экземпляр P ′ с ответом «Нет». Отметим,что неважно, является ли каждый экземпляр проблемы P ′ образомодного или нескольких экземпляров проблемы P . В действительности,обычно лишь небольшая часть экземпляров проблемы P ′ образуетсяв результате сведения.

Таким образом, с помощью сведения показывается, что проблемаP ′ не менее трудна, чем P . Если P неразрешима, то и P ′ не можетбыть разрешимой. Если P не является частично разрешимой, то и P ′

не может быть частично разрешимой.

Page 21: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

40 Гл. 2. Двухсчетчиковые машины

Опр е д е л е ни е. Проблема тотальности машин Минского состоитв нахождении алгоритма, который для любой счетчиковой машиныопределяет, будет ли она останавливаться при всех возможных на-чальных значениях счетчиков. Машина Минского пуста, если оназацикливается при любом входном наборе значений счетчиков.

Т е о р ем а 2.3. Проблема тотальности двухсчетчиковых машиннеразрешима.

Дока з а т е л ь с т в о проводится сведением рассмотренной ранее про-блемы остановки при нулевых начальных значениях счетчиков двух-счетчиковых машин к заявленной проблеме тотальности.

Возьмем произвольную двухсчетчиковую машину 2cM с нулевыминачальными значениями счетчиков A и B. На основе машины 2cMпостроим двухсчетчиковую машину 2cM ′ так, как это показано ниже.

2cM′

Старт 2cM Стоп−A −B)0,0(

Машина 2cM ′ будет тотальной тогда и только тогда, когда машина2cM останавливается при начальной конфигурации счетчиков (0, 0).Следовательно, если бы была разрешима проблема тотальности двух-счетчиковых машин, то была бы разрешима (неразрешимая) проблемаостановки при нулевых начальных значениях счетчиков. Это означает,что алгоритма решения проблемы тотальности быть не может. �

С использованием аналогичной конструкции на базе проблемы за-цикливания при нулевых входных значениях счетчиков двухсчетчико-вых машин доказывается следующая теорема.

Т е о р ем а 2.4 (О пустоте). Проблема пустоты двухсчетчиковых ма-шин не является частично разрешимой.

В действительности проблема тотальности двухсчетчиковых машинне является даже частично разрешимой. Покажем это.

2.1. Неразрешимые проблемы и метод сведения 41

Т ео р ем а 2.5 (О тотальности). Проблема тотальности двухсчетчи-ковых машин не является частично разрешимой.

Дока з а т е л ь с т в о проведем в два этапа. Сначала сведем проблемузацикливания с нулевыми значениями счетчиков двухсчетчиковых ма-шин к проблеме тотальности трехсчетчиковых машин. Затем проблемутотальности трехсчетчиковых машин сведем к заявленной проблеметотальности двухсчетчиковых машин.

Этап первый. Рассмотрим произвольную двухсчетчиковую машину2cM с нулевыми начальными значениями счетчиков A и B. Построимна основе 2cM трехсчетчиковую машину 3cM следующим образом.Добавим новый счетчик C с командами, которые сначала обнуляют егоисходное значение, а потом помещают в C сумму начальных значенийсчетчиков A и B, при этом обнуляя A и B. Затем происходит передачауправления машине 2cM , перед каждой командой которой выполняетсякоманда C−. Если при выполнении этой команды значение счетчика Cравно нулю, происходит завершение работы машины 3cM . Встраива-ние команд C− в программу машины 2cM происходит так, как этопоказано ниже.

Стоп

...

...

+A−C

...

...

...

−A−C Стоп Стоп

...

...

−C+B ...

...

...

−C Стоп

−B

Наконец, добавим еще пару команд, образующих бесконечный цикл(«петлю»), когда машина 2cM останавливается. Схематическое изобра-жение машины 3cM представлено ниже.

(Стоп)

3cM

Старт2cM

−A −B(N, K, L)

−C+C +C

−C Стоп

)0,0(

Машина 3cM будет тотальной тогда и только тогда, когда маши-на 2cM зацикливается при нулевых начальных значениях счетчиков.Действительно, работу машины 3cM можно описать так. При про-извольной входной конфигурации счетчиков (N ,K,L) машина 3cM

Page 22: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

42 Гл. 2. Двухсчетчиковые машины

моделирует работу машины 2cM , которая стартует при нулевых зна-чениях счетчиков A и B, первые ее N +K команд. Если за это время,т. е. на протяжении N +K шагов, машина 2cM завершает свою работу,то управление передается на бесконечный цикл, т. е. машина 3cM за-цикливается. Если на протяжении этих же N +K шагов машина 2cMне завершает свою работу, то после (N +K)-го шага машины 2cMтрехсчетчиковая машина 3cM останавливается (обратный отсчет числашагов осуществляется с помощью счетчика C). Таким образом, маши-на 3cM останавливается при каждом своем входе тогда и только тогда,когда машина 2cM зацикливается при нулевых начальных значенияхсвоих счетчиков. Получили, что проблема тотальности трехсчетчико-вых машин Минского не является частично разрешимой.

Этап второй. Сведем проблему тотальности трехсчетчиковых ма-шин к проблеме тотальности двухсчетчиковых машин. Рассмотримпроизвольную трехсчетчиковую машину 3cM . Промоделируем 3cMдвухсчетчиковой машиной 2cM так, как это показано в доказательстветеоремы 1.6. На основе машины 2cM построим новую двухсчетчиковуюмашину 2cM ′ следующим образом. Добавим команды, обнуляющиесчетчик B, а затем увеличивающие исходное значение счетчика Aна единицу. После этого управление передается машине 2cM . Такимобразом, машина 2cM никогда не получит на вход конфигурацию (0, 0).Конструкция машины 2cM ′ представлена ниже.

2cM′

Старт2cM модель

машины 3cMСтоп

(N, K)∀−B +A

Начав работу при некоторой конфигурации (N ,K), машина 2cM ′

через некоторое время передает управление машине 2cM с входнойконфигурацией (N + 1, 0). Таким образом, машина 2cM ′ останавлива-ется при начальной конфигурации счетчиков (N ,K) тогда и толькотогда, когда останавливается машина 2cM при начальной конфигура-ции счетчиков (N + 1, 0).

Но машина 2cM , моделирующая машину 3cM со счетчиками X ,Y и Z, требует, чтобы вход имел вид A = 2X3Y 5Z и B = 0. Однакозаметим, если в счетчике A будет находиться значение вида J ·2X3Y 5Z ,где J — целое положительное число, не делящееся ни на 2, ни на 3,ни на 5, то, как уже отмечалось во второй главе, из-за особенностей

2.1. Неразрешимые проблемы и метод сведения 43

моделирования, если машина 2cM остановится при таком входе, выход-ными значениями счетчиков будут B = 0 и A = J · 2F (X)3G(Y )5H(Z),где F , G, H — некоторые функции, реализуемые двухсчетчиковоймашиной. Другими словами, число J не будет оказывать никакоговлияния на то, остановится машина 2cM или зациклится. Если машина2cM останавливается при входной конфигурации (2X3Y 5Z , 0), то онаостановится и при входе (J ·2X3Y 5Z , 0).

Следовательно, машина 2cM ′ будет тотальной тогда и только тогда,когда тотальна машина 3cM . �

Упражне н и е. Докажите, что для двухсчетчиковых машин проблемасуществования зацикливающего (машину) входа не является частичноразрешимой. �

Проблемы тотальности и существования зацикливающего входа —двойственные проблемы. Они представляют собой пример того, чтосуществуют проблемы, не являющиеся частично разрешимыми, допол-нения которых также не являются частично разрешимыми проблемами.

А вот двойственная к проблеме пустоты проблема существованияостанавливающего (машину) входа является частично разрешимой.

Т е о р ем а 2.6. Проблема остановки хотя бы при одном входе длядвухсчетчиковых машин Минского частично разрешима.

Дока з а т е л ь с т в о. Для построения частичного алгоритма применя-ется известная техника «поиска в ширину». Упорядочим множествовсех возможных входов счетчиковой машины 2cM следующим обра-зом: (0, 0), (1, 0), (0, 1), (0, 2), (1, 1), (2, 0), (3, 0), (2, 1), (1, 2), (0, 3)и т. д. На каждом шаге будем запускать новый экземпляр машиныМинского 2cM с новым входом (взятым в соответствии с указаннымпорядком), одновременно совершая по одному переходу для каждогоиз уже запущенных экземпляров машины 2cM . Таким образом, послеn шагов алгоритма будет запущено n экземпляров машины 2cM ,причем к этому моменту первый запущенный экземпляр машины со-вершит n переходов, второй — (n − 1) и т. д. После каждого шагадля всех запущенных экземпляров машины 2cM проверяется условиеостановки. Если существует хотя бы один вход, на котором машинаМинского 2cM останавливается, то рано или поздно он будет найден.Однако, если такого входа не существует, алгоритм будет работатьбесконечно долго. �

Page 23: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

44 Гл. 2. Двухсчетчиковые машины

Опр е д е л е ни е. Две n-счетчиковые машины эквивалентны, еслиони на одном и том же входе либо обе зацикливаются, либо обеостанавливаются с одним и тем же выходом, т. е. их выходные наборызначений соответствующих счетчиков равны.

Т е о р ем а 2.7. Проблема эквивалентности двухсчетчиковых машинне является частично разрешимой.

Дока з а т е л ь с т в о проводится сведением проблемы пустоты двух-счетчиковых машин к данной проблеме эквивалентности. Здесь доста-точно указать, что если бы существовал алгоритм решения проблемыэквивалентности, это автоматически бы означало наличие алгоритма,решающего проблему пустоты. Действительно, нужно было бы всеголишь подать на один вход алгоритму проблемы эквивалентности спе-циально построенную заведомо пустую двухсчетчиковую машину, а надругой вход — двухсчетчиковую машину, пустоту которой необходимопроверить. Если алгоритм дает ответ «Да» (машины эквивалентны),значит, проверяемая двухсчетчиковая машина пуста. Но посколькупроблема пустоты не является частично разрешимой, то и проблемаэквивалентности не может быть частично разрешимой. �

Опр е д е л е ни е. Проблема достижимости состоит в обнаруженииалгоритма, с помощью которого для любой n-счетчиковой машиныМинского ncM и для произвольного вектора c = (c1, . . . , cn) значе-ний счетчиков можно выяснить выполнимость условия c ∈ R(ncM),где R(ncM) — множество достижимых векторов значений счетчиковиз начальной конфигурации.

Т е о р ем а 2.8. Проблема достижимости заданной конфигурациидля двухсчетчиковых машин Минского неразрешима.

Дока з а т е л ь с т в о. Любую двухсчетчиковую машину 2cM можнодостроить до машины 2cM ′ так, как это показано ниже.

KB +NA +Старт 2cM Стоп

2cM′

−A −B)0,0(

2.1. Неразрешимые проблемы и метод сведения 45

Если машина 2cM ′ останавливается, то только в финальной конфи-гурации со значениями счетчиков (N ,K). Таким образом, по построе-нию машина 2cM ′ достигает своей финальной конфигурации (q′n,N ,K)тогда и только тогда, когда исходная машина 2cM останавливается. �

Т ео р ем а 2.9. Проблема достижимости вектора нулевых значенийсчетчиков 0 = (0, 0) для двухсчетчиковых машин Минского 2cMнеразрешима.

Дока з а т е л ь с т в о. Любую двухсчетчиковую машину 2cM можнопромоделировать другой двухсчетчиковой машиной 2cM ′ так, как этопоказано в теореме 1.6, а затем из финального состояния обнулитьзначения счетчиков так, как это показано в предыдущей теореме,получив при этом двухсчетчиковую машину 2cM ′′. По построениюполученная машина 2cM ′′ будет достигать вектора нулевых значенийсчетчиков 0 = (0, 0) тогда и только тогда, когда исходная машина 2cMбудет останавливаться. �

Т ео р ем а 2.10. Проблема достижимости ненулевого вектора зна-чений счетчиков вида (N , 0) для двухсчетчиковых машин Минскогонеразрешима.

Дока з а т е л ь с т в о. Любую машину Минского 2cM со счетчиками Xи Y можно промоделировать машиной Минского 2cM ′ со счетчикамиA и B так, как это показано в теореме 1.7. Конфигурация (2K3L, 0)машины 2cM ′ будет существовать тогда и только тогда, когда суще-ствует конфигурация (K,L) машины 2cM . Пусть (2K03L0 , 0) — векторначальных значений счетчиков машины 2cM ′. Тогда запустим машину2cM ′ на векторе (2K03L0N , 0), где N — число, которое не делится нина 2, ни на 3. Тогда машина 2cM ′ будет достигать вектора значенийсчетчиков (N , 0) тогда и только тогда, когда исходная машина 2cMбудет достигать вектора нулевых значений счетчиков 0 = (0, 0).

Отметим, что основания 2 и 3 могут быть заменены на другиепростые числа с условием, что и число N будет выбрано таким, чтобыоно не имело общих делителей с новыми основаниями. �

Отметим, что проблема достижимости имеет очевидный частичныйалгоритм решения.

Отдельного внимания заслуживают проблемы, связанные с суще-ствованием верхней границы суммы значений счетчиков во время

Page 24: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

46 Гл. 2. Двухсчетчиковые машины

бесконечного исполнения из заданной начальной конфигурации маши-ны Минского. Если такая граница существует, то это означает, чтоповедение машины Минского при данном входе может быть представ-лено в виде конечного ориентированного графа, вершинами которогобудут конфигурации, достижимые машиной во время ее исполнения изначальной конфигурации.

Оп р е д е л е ни е. Счетчиковая машина Минского ограничена при за-данной начальной конфигурации тогда и только тогда, когда существу-ет число k ∈ N такое, что на протяжении всего исполнения машиныиз начальной конфигурации выполняется условие, что в любой моментвремени сумма значений счетчиков не превосходит k.

Очевидно, что проблема ограниченности счетчиковых машин Мин-ского является частично разрешимой. Если машина ncM ограничена,то она будет иметь конечное множество всех возможных конфигу-раций. Таким образом, бесконечное исполнение машины (если оносуществует) обязательно будет проходить одни и те же конфигура-ции. Следовательно, если после запуска машины ncM она попадетв конфигурацию, в которой уже находилась ранее (на исполнении),это и будет означать ограниченность машины, так как, начиная с этойконфигурации, будет порождаться бесконечный цикл, целиком состоя-щий из уже пройденных конфигураций, т. е. далее в исполнении новыеконфигурации порождаться не будут.

С одной стороны, свойство ограниченности является специфическими возникает вследствие особой конструкции машин Минского, вклю-чающей в себя счетчики. С другой стороны, можно провести аналогиюс машиной Тьюринга. Ограниченность машины Тьюринга будет озна-чать, что при заданном входном слове на ленте для работы (конечногоили бесконечного исполнения) машине Тьюринга потребуется лишьконечный кусок ленты. В этом случае поведение машины Тьюрингатакже имеет конечное представление.

Т е о р ем а 2.11. Для трехсчетчиковых машин Минского проблемаограниченности неразрешима.

Дока з а т е л ь с т в о осуществляется сведением проблемы остановкипри нулевых входных значениях счетчиков двухсчетчиковых машинк проблеме ограниченности машин Минского с тремя счетчиками.

2.1. Неразрешимые проблемы и метод сведения 47

Рассмотрим произвольную двухсчетчиковую машину 2cM с счет-чиками A и B. Преобразуем 2cM в машину Минского 3cM с тремясчетчиками. Добавим новый счетчик C. И перед выполнением каждойкомандой машины 2cM будем выполнять команду C+.

...

...

+A+C

...

...

...

−A+C

...

...

...

−B+C

...

...

+B+C

Запустим машину 3cM из нулевой начальной конфигурации (0, 0, 0).Машина 3cM будет себя вести так же, как и машина 2cM , начавшаяработу с конфигурации (0, 0), за исключением того, что с помощьюсчетчика C будет производиться подсчет количества выполненныхмашиной 2cM команд, т. е. подсчет числа шагов машины 2cM . Сле-довательно, машина 3cM со входом (0, 0, 0) будет ограниченной тогдаи только тогда, когда машина 2cM со входом (0, 0) останавливается.

Поскольку проблема остановки при нулевой начальной конфигура-ции двухсчетчиковых машин неразрешима, получаем неразрешимостьпроблемы ограниченности машин Минского с тремя счетчиками. �

Т ео р ем а 2.12. Для двухсчетчиковых машин Минского проблемаограниченности неразрешима.

Дока з а т е л ь с т в о проводится сведением проблемы ограниченноститрехсчетчиковых машин Минского к данной проблеме с помощьюпреобразований из доказательства теоремы 1.6.

Итак, возьмем произвольную трехсчетчиковую машину 3cM с счет-чиками X , Y и Z и преобразуем ее в машину 2cM с счетчикамиA и B так, как это показано в доказательстве теоремы 1.6. Исходяиз этих преобразований получаем, что счетчиковая машина 2cM бу-дет ограничена при начальной конфигурации счетчиков (2X3Y 5Z , 0)тогда и только тогда, когда ограничена машина 3cM при некоторойначальной конфигурации счетчиков (X ,Y ,Z). Если предположить, чтосуществует алгоритм решения проблемы ограниченности для двух-счетчиковых машин Минского, тогда мы будем иметь алгоритм ре-шения аналогичной проблемы для произвольной машины Минскогос тремя счетчиками. Но эта проблема неразрешима по предыдущейтеореме 2.11. Пришли к противоречию. �

Page 25: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

48 Гл. 2. Двухсчетчиковые машины

Заметим, что из доказательства теоремы 1.7 также следует неразре-шимость проблемы ограниченности одного счетчика двухсчетчиковоймашины Минского, так как счетчик A машины 2cM , содержащийзначение 2X · 3Y · 5Z , где X , Y и Z — счетчики машины 3cM , будетограничен тогда и только тогда, когда ограничена машина 3cM . Такимобразом, справедлива следующая теорема.

Т е о р ем а 2.13. Проблема ограниченности одного счетчика двух-счетчиковых машин Минского неразрешима.

Поскольку преобразования, приведенные в доказательстве теоре-мы 1.6, исключают запуск двухсчетчиковой машины 2cM из нулевойначальной конфигурации, вскользь коснемся неразрешимости пробле-мы ограниченности двухсчетчиковых машин Минского при нулевойначальной конфигурации, еще раз продемонстрировав тем самым, чторассмотрение класса счетчиковых машин с нулевыми начальнымиконфигурациями не дает никаких преимуществ с точки зрения раз-решимости свойств. Доказательство проводится сведением проблемыограниченности двухсчетчиковой машины при произвольной началь-ной конфигурации к данной проблеме с использованием конструкцийиз доказательства теоремы 2.1.

Т е о р ем а 2.14. Проблема ограниченности двухсчетчиковых машинМинского с нулевой начальной конфигурацией (т. е. при нулевыхначальных значениях всех счетчиков) неразрешима.

Рассмотрим теперь двойственную к проблеме ограниченности (соот-ветственно при нулевой конфигурации) задачу существования неогра-ниченного исполнения (соответственно из нулевой конфигурации)двухсчетчиковой машины Минского. Еще раз напомним, по теоремеПоста (теорема 1.1), можно утверждать, что, если проблема и ее допол-нение (двойственная проблема) являются частично разрешимыми, сле-довательно, они обе разрешимы. А поскольку проблема ограниченности(как и проблема ограниченности для нулевой начальной конфигурации)является частично разрешимой, то получаем, что проблема неограни-ченного пути не может быть частично разрешимой. Таким образом,справедлива следующая теорема, касающаяся проблемы существова-ния неограниченного пути двухсчетчиковых машин Минского.

2.1. Неразрешимые проблемы и метод сведения 49

Т ео р ем а 2.15. Для двухсчетчиковых машин Минского (с нулевойначальной конфигурацией) проблема неограниченного пути не явля-ется частично разрешимой.

Опр е д е л е ни е. Счетчиковая машина Минского тотально ограниче-на, если и только если она ограничена для всех возможных начальныхконфигураций.

Т е о р ем а 2.16. Для двухсчетчиковых машин проблема тотальнойограниченности не является частично разрешимой.

Дока з а т е л ь с т в о проводится по аналогии с доказательством теоре-мы 2.5. Сначала проблема зацикливания из нулевой начальной кон-фигурации двухсчетчиковых машин сводится к проблеме тотальнойограниченности трехсчетчиковых машин. Конструкция трехсчетчико-вой машины, реализованная на базе произвольной двухсчетчиковой,в точности повторяет конструкцию машины 3cM из доказательстватеоремы 2.5 за исключением того, что набор команд, образующихбесконечный цикл на выходе машины 2cM , включает в себя коман-ду C+, обеспечивающую неограниченный рост значений счетчика C,если машина 2cM завершит работу. Получится, что новая трехсчет-чиковая машина будет тотально ограниченной тогда и только тогда,когда исходная двухсчетчиковая машина зацикливается при начальнойконфигурации (0, 0). Затем проблема тотальной ограниченности трех-счетчиковых машин сводится к проблеме тотальной ограниченностидвухсчетчиковых машин. �

Упражне н и е. Доказательство теоремы 2.16 приведено в виде на-броска. Проведите полное доказательство этой теоремы. �

Упражне н и е. Постройте частичный алгоритм решения проблемыограниченности хотя бы при одном входе двухсчетчиковых машин. �

Упражне н и е. Докажите, что проблемы тотальной неограниченностии неограниченности хотя бы при одном входе для двухсчетчиковыхмашин Минского не являются частично разрешимыми. �

Частичная разрешимость проблемы ограниченности означает нали-чие частичного алгоритма ее решения, т. е. существование алгоритма,

Page 26: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

50 Гл. 2. Двухсчетчиковые машины

)(1 xf )(2 xf )(1 xf l −

)(1 xf n− )(1 xf l +

)()( xfxf nl =...

...

Рис. 2.2. Цикл и путь к циклу функции f при исходном x

который останавливается с положительным ответом в случае, еслисчетчиковая машина ограничена. Этот алгоритм весьма прост. Необхо-димо запустить счетчиковую машину и дождаться либо ее остановки,либо того момента, когда она попадет в конфигурацию, в которой ужебыла. Последняя ситуация будет означать, что машина зациклилась иновые конфигурации порождаться не будут, из чего следует ограни-ченность машины. Поскольку первая часть алгоритма сводится лишьк проверке попадания в заключительное состояние, более детальнорассмотрим ситуацию с зацикливанием. Эту задачу можно представитьв виде проблемы нахождения цикла в периодической последовательно-сти.

Пусть заданы функция f над конечным множеством D и произволь-ная стартовая точка x ∈ D. Последовательность

f 0(x), f 1(x), f 2(x), f 3(x), . . .

является в конечном счете периодической, т. е. для некоторых l и cмы будем иметь конечную последовательность из различных значенийf 0(x), f 1(x), . . . , f l+c−1(x) при f l+c(x) = f l(x) (см. рис. 2.2). В своюочередь, из этого следует, что f i+c(x) = f i(x) для всех i > l. Такимипоследовательностями обычно являются выходные последовательностигенератора случайных чисел. Относительно таких последовательностейставится задача, которая называется проблемой цикла, состоящаяв определении первого повторного элемента fn(x) последовательности,а точнее, в нахождении пары значений (l, c).

Действительно, если некоторая n-счетчиковая машина ncM яв-ляется ограниченной (зацикливается) при начальной конфигурации(q0, c

10, . . . , c

n0 ), тогда машину ncM можно представить как функцию

2.1. Неразрешимые проблемы и метод сведения 51

над конечным множеством конфигураций

D = {(q, c1, . . . , cn) | q ∈ Q ∧ ci ∈ Ci ⊂ N ∧ 1 6 i 6 n},где Ci — конечное множество значений, которые может приниматьсчетчик с номером i во время (ограниченного) исполнения машиныncM из конфигурации (q0, c

10, . . . , c

n0 ). На вход машине подается кон-

фигурация, результатом также будет конфигурация, в которую машинаперейдет из поданного на вход состояния в соответствии с входнымвектором значений счетчиков. Рассмотрим пример простого алгоритмарешения задачи нахождения цикла в периодических последовательно-стях, который может быть применен для (частичного) решения пробле-мы ограниченности счетчиковых машин Минского.

Одним из самых широко известных алгоритмов нахождения цикловявляется алгоритм «Заяц и черепаха», предложенный Р. Флойдом (см.,например, в [5]). Идея этого алгоритма заключается в использованиидвух переменных, пробегающих последовательность значений функ-ции f с разной скоростью, одна переменная меняет значения в двараза быстрее другой. Программа, реализующая эту идею, представленаниже.

y := x; z := x;repeat

y := f(y);z := f(f(z));

until y = z;

Алгоритм останавливается при y = f i(x) = f 2i(x) = z, где i —наименьшее из больших или равных l положительное число, кратное(длине цикла) c. Действительно,

{2i = l + kc+ r;i = l + r;

где r < c, а k — число полных проходов цикла. Отсюда мы имеем

i = kc, i > l и i < l + c.

Если l = 0, тогда потребуется 3n применений (вычислений результата)функции f , где n = i + c; если l = c+ 1 или c = 1 при l 6= 0, тогдапроизойдет 3(n− 1) применений функции f .

Этот алгоритм хорош тем, что не требует дополнительных (вспомо-гательных) структур памяти, что весьма важно, так как относительносчетчиковых машин Минского он является частичным, т. е. заранее

Page 27: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

52 Гл. 2. Двухсчетчиковые машины

не известно, будет ли в конечном итоге найден цикл на исполнениисчетчиковой машины. Однако заметим, что ограничение на размерпамяти, использующейся для хранения значений переменных, все жесуществует. В том случае, когда машина Минского не является огра-ниченной, необходимо постоянно увеличивать объем памяти, которыйотводится для счетчиков.

2.2. Двухголовочные автоматы

Счетчиковые машины используются для доказательства тьюрин-говой мощности языков программирования, а также для доказатель-ства алгоритмической неразрешимости свойств различных формализ-мов и абстрактных математических машин. Покажем это на примередвухголовочных автоматов.

Оп р е д е л е ни е. Двухголовочный автомат A = (V ,Q, qf , q0,#, I)имеет одну ленту и две считывающие головки, которые могут неза-висимо перемещаться вдоль ленты в одном направлении. Множествосостояний Q = Q1 ∪ Q2 разбито на два непересекающихся подмно-жества; в состояниях из Q1 активна первая головка, в состоянияхиз Q2 — вторая. Как и ранее, V здесь означает конечный алфавитсимволов на ленте, q0 ∈ Q — начальное состояние, qf ∈ Q — финальное(заключительное) состояние, # — символ конца ленты, а I — програм-му двухголовочного автомата A, т. е. последовательность команд видаqa → q′, где q, q′ ∈ Q, a ∈ V , причём для любой пары (q, a) существуетединственная команда, начинающаяся этими символами. В начальномсостоянии обе головки просматривают первый символ ленты.

Согласно программе на каждом шаге автомат считывает активнойголовкой символ с ленты, передвигает её по ленте вправо на одну клет-ку и переходит в новое состояние. Если автомат находится в состоянииq ∈ Qi (1 6 i 6 2), то i-я головка является активной и читает символс ленты. При переходе автомата в состояние q′ ∈ Qj (j 6= i) i-я головкаостанавливается, а j-я начинает читать символы со своего места ленты(т. е. с того места, на котором она остановилась до передачи управ-ления i-й головке). Если одна из головок считывает символ # концаленты, автомат останавливается. Автомат также останавливается, еслине может сработать ни одна из команд программы I.

Неформально двухголовочный автомат можно представить как аб-страктную машину, похожую на машину Тьюринга, но имеющую сле-дующие особенности:

1) выделено заключительное состояние;

2.2. Двухголовочные автоматы 53

2) машина считывает символы с ленты двумя головками, ничего нанеё не записывая;

3) на каждом шаге активная головка автомата, считав символ с лентыи перейдя согласно программе в новое состояние, обязательно пере-двигается вправо на одну клетку;

4) автомат останавливается, когда одна из головок достигнет концаслова, т. е. символа #.

Автомат допускает слово α в алфавите V , если, начав работус лентой, содержащей это слово, он, считав активной головкой символ# конца ленты, останавливается в заключительном состоянии. Авто-мат A задаёт характеристическую функцию множества MA допускае-мых им слов в алфавите V . Действительно, его работу можно рассмат-ривать как процедуру распознавания того, принадлежит ли заданноеслово множеству MA, если связать с остановкой в заключительномсостоянии символ 1, а с остановкой в незаключительном состоянии —символ 0.

q1

1q1

0q2

4q1

2q1

6

q2

5

q2

30 1

*

1 1

0 0

* * #

,

Рис. 2.3. Двухголовочный автомат A=

Приведем пример двухголовочного автомата, который проверяетравенство двух последовательно записанных на ленте слов в алфавитеV ′ = {0, 1}. Признаком окончания каждого из слов сделаем вспомога-тельный символ ∗, не входящий в V ′. Двухголовочный автомат должендопускать только те слова, которые имеют вид α ∗α ∗ , где α — словов алфавите V ′. Рассмотрим автомат A= = (V ,Q1 ∪ Q2, q

16 , q

10,#, I), где

Q1 = {q10, q

11 , q

12, q

16} — множество состояний, в которых активна первая

головка; Q2 = {q23, q

24 , q

25} — множество состояний, в которых активна

вторая головка; q16 — заключительное состояние. Граф автомата пока-

зан на рис. 2.3.

Page 28: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

54 Гл. 2. Двухсчетчиковые машины

Находясь в состоянии q10, автомат передвигает первую головку

к началу второго слова и, обнаружив его, переводит в состояние q11 .

Когда автомат приходит к состоянию q11, он считывает поочерёдно

символы второго слова первой головкой (состояние q11), а символы

первого слова — второй головкой (состояния q23 и q2

5), сравнивая эти

символы. Автомат возвращается каждый раз в состояние q11 , если

символы одинаковы. Если же обнаружится несовпадение символовили первая головка встречает конец слова раньше символа ∗, автоматостанавливается в незаключительном состоянии. Слово на ленте отвер-гается. Если первая головка достигнет конца второго слова, а втораяголовка обнаружит, что первое слово тоже просмотрено до конца,то автомат перейдет в заключительное состояние q1

6, т. е. слово прини-мается. В противном случае автомат остановится в незаключительномсостоянии, отвергая слово.

Двухголовочный автомат моделирует работу счетчиковой машиныМинского, если автомат допускает те и только те слова, которыеявляются конечными исполнениями этой машины (при всех возможныхначальных конфигурациях).

Т е о р ем а 2.17. Для любой счетчиковой машины Минского можетбыть построен двухголовочный автомат, моделирующий её работу.

Дока з а т е л ь с т в о. Поскольку двухсчетчиковые машины Минскогообладают тьюринговой мощностью и могут моделировать произволь-ные n-счетчиковые машины, ограничимся двухсчетчиковым случаем,т. е. будем моделировать двухголовочными автоматами работу толькодвухсчетчиковых машин Минского. К тому же, в случае n-счетчиковмоделирование проводится по аналогии.

Начнем с алфавита и представления конфигурации счетчиковоймашины на ленте автомата. Положим V = {q0, . . . , qn, 1, ∗}, где qi —символы, обозначающие состояния машины Минского, * — специаль-ный разделительный символ, а соответствующим количеством симво-лов «1» будем задавать значения счетчиков. Конфигурацию (q, c1, c2)счетчиковой машины будем представлять на ленте в виде

q 11 . . . 1︸ ︷︷ ︸

c1

∗ 11 . . . 1︸ ︷︷ ︸

c2

∗.

Тогда, например, переход счетчиковой машины из конфигурации(q, c1, c2) в конфигурацию (q′, c1+1, c2) при срабатывании команды

2.2. Двухголовочные автоматы 55

q′

*

*

*

q2

1 2* 1

1

1

1q ′′ 01 =x

21

1

1

*

2* 1

1

1

*1

*

2q ′′

2q′

01 >x12

2

q

qgotoelse

qgotoxxthenxifq

′′′−=> ;1:0: 111

q′

*1 2 1

1 1

1q ′′

02 =x21

*

1*

1

1

*

*

2q ′′

02 >x

*

* *

1 1

1

22q′

2 1

2

q2

q

qgotoelse

qgotoxxthenxifq

′′′−=> ;1:0: 222

1

q′*

*

q2

1

2q′

q

1

1 1

2

*

1 1

2

1

1 1

1

* 1

q′ *

q2

1

2q′

q

1

1 1

2

*

1 1

2

1

1 1

1

*

*

qgotoxxq ′+= ;1:: 11 qgotoxxq ′+= ;1:: 22

0q′1

0q20q

1

1 1

0q

* *1

1#nq

2nq 1

nq

Рис. 2.4. Подпрограммы двухголовочного автомата, моделирующие работу со-ответствующих команд счетчиковой машины Минского.

Page 29: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

56 Гл. 2. Двухсчетчиковые машины

первого типа q : x1 := x1 + 1; goto q′, где q, q′ ∈ {q0, . . . , qn}, q 6= qn,будет изображен на ленте двухголовочного автомата как

q 11 . . . 1︸ ︷︷ ︸

c1

∗ 11 . . . 1︸ ︷︷ ︸

c2

∗q′ 11 . . . 1︸ ︷︷ ︸

c1+1

∗ 11 . . . 1︸ ︷︷ ︸

c2

∗.

Каждому состоянию счетчиковой машины сопоставим такое жесостояние (с той же пометкой) двухголовочного автомата, в кото-ром будет активна вторая считывающая головка. Каждую командусчетчиковой машины промоделируем соответствующей подпрограммойдвухголовочного автомата, изображенной в виде графа переходов нарис. 2.4. На рисунке состояния автомата изображены в виде кружков,цифра внутри кружка означает номер активной в этом состояниисчитывающей головки. Символы ленты, по которым возможен переходиз текущего состояния двухголовочного автомата, указаны над дугами.

Для финального состояния qn счетчиковой машины также сопо-ставим подпрограмму, см. рис. 2.4, завершающуюся в финальном со-стоянии, обозначенном двойным кружком, двухголовочного автоматапри активной первой считывающей головке. Начальным состояниемдвухголовочного автомата устанавливается новое состояние q′0 приактивной первой считывающей головке, для которого также приводитсяподпрограмма (см. рис. 2.4). Смысл этой подпрограммы состоит в том,чтобы прочитав первой головкой начальную конфигурацию счетчико-вой машины, передать управление второй считывающей головке в со-стоянии q0, которое соответствует начальному состоянию счетчиковоймашины.

За исключением подпрограмм для начального и финального состо-яний работа подпрограмм сводится к проверке того, удовлетворяют лидве записанные на ленте соседние конфигурации счетчиковой машинысоответствующей команде (этой машины), которая переводит однуконфигурацию в другую.

По построению двухголовочный автомат, моделирующий счетчико-вую машину таким образом, будет допускать те и только те слова,которые являются возможными конечными исполнениями этой счетчи-ковой машины. �

Опр е д е л е ни е. Двухголовочный автомат называется пустым, еслион не допускает ни одного слова.

Т е о р ем а 2.18. Проблема пустоты двухголовочных автоматов неявляется частично разрешимой.

2.2. Двухголовочные автоматы 57

Дока з а т е л ь с т в о. Используем проблему зацикливания счетчиковыхмашин Минского и методом сведения. Предположим, что проблемапустоты двухголовочных автоматов частично разрешима. Тогда оказы-вается частично разрешимой проблема зацикливания двухсчетчиковыхмашин Минского. Действительно, частичный алгоритм распознаваниязацикливания сводится к следующим действиям.

1. Для заданной двухсчетчиковой машины Минского 2cM строитсядвухголовочный автомат A, моделирующий работу машины 2cM .

2. Если частичный алгоритм, выясняющий пустоту автомата A,обнаруживает, что автомат A не допускает ни одного слова, тоэто значит, что машина 2cM зацикливается.

Существование частичного алгоритма распознавания зацикливаниядвухсчетчиковых машин противоречит следствию 1.2, что и опровер-гает предположение о частичной разрешимости проблемы пустоты длядвухголовочных автоматов. �

Т ео р ем а 2.19. Проблема эквивалентности двухголовочных авто-матов не является частично разрешимой.

Дока з а т е л ь с т в о. Предположим противное. Тогда оказывается ча-стично разрешимой проблема пустоты двухголовочных автоматов. Дей-ствительно, пусть A0 — произвольный фиксированный пустой двухго-ловочный автомат (пример такого автомата легко построить). Частич-ный алгоритм распознавания пустоты произвольного двухголовочногоавтомата очевиден: надо установить, эквивалентен ли этот автоматпустому A0. Получили противоречие теореме 2.18. �

Ранее в книге [7] факт отсутствия частичной разрешимости пробле-мы пустоты двухголовочных автоматов доказывался с помощью (све-дением) проблемы зацикливания машин Тьюринга. Это доказательствоимеет громоздкий вид и при этом оформлено в виде наброска, в кото-ром выражаются основные идеи моделирования двухголовочным авто-матом работы машины Тьюринга над некоторым начальным словом.В настоящей монографии же каждой команде счетчиковой машиныМинского соответствующая подпрограмма двухголовочного автомата,моделирующая работу этой команды, сопоставлена в наглядном графи-ческом виде.

Отметим, что последние две теоремы о свойствах двухголовочныхавтоматов используются в теории схем программ для доказательства

Page 30: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

58 Гл. 2. Двухсчетчиковые машины

отсутствия частичной разрешимости проблем пустоты и эквивалентно-сти стандартных схем программ.

Глава написана на основе работ [7, 10, 16, 13, 24, 26]. Материалпо методу сведения базируется на источниках [24, 26]. Идеи доказа-тельства неразрешимости представленных проблем для двухсчетчико-вых машин Минского заимствованы из решений к упражнениям, при-веденным в книге [26], в которых, однако, аналогичные задачи былисформулированы для машин Тьюринга. Проблемы ограниченности длядвухсчетчиковых машин исследовались в статьях [16, 13]. Материало моделировании счетчиковых машин двухголовочными автоматамивзят из статьи [10].

Гл ав а 3

ОДНОРЕГИСТРОВЫЕ МАШИНЫ

Глава посвящена проблемам «входа» и «выхода» (см. первую главу)для двухсчетчиковых машин Минского, которые для удобства рассмат-риваются в виде однорегистровых машин.

3.1. Однорегистровые машины

При исследовании свойств двухсчетчиковых машин удобнее рабо-тать с ними в терминах однорегистровых машин. Поэтому сначаламы дадим определение однорегистровых машин, а затем покажем,каким образом двухсчетчиковые машины могут быть преобразованыв однорегистровые. После этого работа по исследованию проблемывхода и проблемы выхода двухсчетчиковых машин Минского будетпроводиться как в терминах двухсчетчиковых машин, так и на уровнемашин с одним регистром.

Оп р е д е л е ни е. Однорегистровая машина 1RM имеет только одинрегистр R, который может содержать неотрицательное целое число,и расширенный по сравнению со счетчиковыми машинами набор типовкоманд:

• Add K — увеличение значения регистра R на константу K;

• Mul K — умножение содержимого R на константу K;

• Sub1 — если R = 0, происходит переход (без изменения значе-ния регистра R) к следующей команде вне нормальной после-довательности; если R > 0, значение регистра R уменьшаетсяна единицу; эта команда полностью соответствует команде R−счетчиковой машины;

• Div K — деление R на константу K > 0, в регистре R остаетсячастное от деления; далее в зависимости от остатка осуществля-ется переход в одно из K различных позиций, соответствующихK возможным направлениям дальнейшего исполнения программы(каждое из которых обозначается стрелкой);

Page 31: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

60 Гл. 3. Однорегистровые машины

• Jump — переход к следующей команде без изменения значениярегистра; Jump∗ означает бесконечную петлю (переход к той жесамой команде);

• Halt — команда, означающая завершение исполнения программы;результат работы машины 1RM находится в регистре R.

Константа K представляет собой неотрицательное целое число, котороеможет быть разным в разных (в том числе однотипных) командах.Во время работы (исполнения программы) машины 1RM значение Kв соответствующих командах изменяться не может (т. е. K не являетсяпеременной).

Л емм а 3.1 (О замене машин). Для любой двухсчетчиковой машиныМинского 2cM с нулевым начальным значением одного из счетчиковможет быть построена моделирующая ее работу однорегистроваямашина 1RM .

Дока з а т е л ь с т в о. Перед тем как проводить доказательство, оста-новимся на основной идее. Дело в том, что, помимо увеличения иуменьшения значений счетчиков на константы, двухсчетчиковая ма-шина может осуществлять следующую важную последовательностьдействий (вычислительный шаг): проводить умножение содержимогоодного из счетчиков на некоторое рациональное число P/Q, записываярезультат в другой счетчик и очищая при этом первый, с последующимпереходом в одно из Q различных мест в зависимости от остатка(который получается после деления на Q).

Этот вычислительный шаг реализуется с помощью так называемых«строгих циклов». Поэтому первая часть доказательства будет по-священа преобразованию произвольной двухсчетчиковой машины 2cMк виду, позволяющему значительно упростить доказательство данногоутверждения.

Итак, рассмотрим машину 2cM с двумя счетчиками A и B, работукоторой предстоит смоделировать. Пусть в начальном состоянии счет-чик B имеет нулевое значение.

Сначала определим понятие «строгий цикл». Допустим, что мына диаграмме программы машины 2cM временно удалили все стрел-ки, соответствующие нулевым веткам. Оставшиеся циклы называютсястрогими. Строгим циклом является, например, замкнутая последо-вательность команд A+, A−, B+, B− и Jump (безусловный переход,в данном случае ведущий к первой команде). Отметим, что строгие

3.1. Однорегистровые машины 61

циклы не могут содержать подциклы, поскольку любой вложенныйцикл возвращается в основной цикл по стрелке нулевой ветки, котораяявляется частью основного цикла.

Следующий рисунок 3.1 (с восстановленными стрелками нулевыхветок) наглядно демонстрирует три строгих цикла.

Цикл 2

−B

+A

+A+A

... z

Цикл 3

... n−B+A

...

Цикл 1

−A+B

−A−A

Рис. 3.1. Пример строгих циклов

Команда в строгом цикле называется точкой входа, если она можетбыть достигнута (за один шаг) после выполнения команды «Старт»,некоторой команды вне цикла или после перехода по нулевой веткекакой-либо команды «−» другого цикла. На приведенном выше рисункестрогие циклы 1 и 3 имеют по одной точке входа, а строгий цикл 2содержит две входные точки.

Преобразуем машину 2cM таким образом, чтобы все ее строгиециклы имели только лишь по одной точке входа. Для каждого стро-гого цикла, имеющего более одной точки входа, создадим столькоего копий, сколько избыточных точек входа он содержит. Каждаякопия и оригинал будут иметь различные и единственные входныеточки. Избыточные входы в оригинальный строгий цикл удаляют-ся и перенаправляются в соответствующие (каждый в свою) копииэтого цикла. Выходы из копий цикла направляются в выход (иливыходы) оригинального строго цикла. Это преобразование порождаетдостаточно много выходных стрелок, но не создает каких-либо новыхстрогих циклов (не считая, конечно, копий оригинальных) или женовых входных точек строгих циклов. Таким образом, модифицирован-ная программа двухсчетчиковой машины 2cM будет иметь несколькобольшие размеры (см. рис. 3.2) по сравнению с исходной программой,но сохранит прежнее вычислительное поведение (последовательностьизменений значений счетчиков).

Page 32: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

62 Гл. 3. Однорегистровые машины

Цикл 2б

−B

+A

+A+A

... z

Цикл 2а

−B

+A

+A+A

Цикл 3

... n−B+A

...

Цикл 1

−A+B

−A−A

Рис. 3.2. Строгие циклы с одной точкой входа

+X

Правило 1: +X−X ... удаление

Правило 2: +X...−Y +X

...−Y +X

Правило 3: +X+Y +X

+Y

... v

Правило 4: −Y−X... v−Y

−X ... u

+Y−X

... u

Правило 5: −X ...без изменений

Правило 6:+Y−X ...

...−X+Y

−Y

=

=

=

=

=

=

Рис. 3.3. Набор правил преобразования строгих циклов с одной точкой входав регулярные циклы

3.1. Однорегистровые машины 63

Регулярным циклом будем называть строгий цикл с одной точкойвхода, в котором все команды вычитания едницы «−» идут непосред-ственно после входной точки и предшествуют всем командам «+».Точку после всех команд «−» и перед командами «+» в регулярномцикле назовем средней точкой цикла. Строгий цикл с одной точкойвхода может быть превращен в регулярный посредством конечной по-следовательности преобразований. При этом достаточно использоватьлишь первое и второе правила из списка правил преобразований,представленного на рис. 3.3.

Правила 3–6 включены в список для полноты. Заметим, что правила2, 4 и 6 недействительны, если X и Y представляют собой один и тотже счетчик. Преобразования также являются недопустимыми, если ониприменяются в ситуации, когда вторая команда из рассматриваемойпары команд является точкой входа. Поскольку мы уже сделали так,что все строгие циклы имеют лишь по одной точке входа, послепроведения необходимых преобразований все теперь уже регулярныециклы также будут иметь по одной точке входа (см. рис. 3.4).

Цикл 2б

+A+A

... z

Цикл 2а

−B+A

+A

Цикл 3

... n−B+A

...

Цикл 1

−A+B

−A−A

−B+A +A

+A+A+A

Рис. 3.4. Регулярные циклы

Предположим теперь, что все строгие циклы были регуляризирова-ны. Программа машины 2cM после преобразований, возможно, сталанемного длиннее, но при этом новых точек входа и новых строгихциклов создано не было.

Page 33: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

64 Гл. 3. Однорегистровые машины

Число команд в получившейся расширенной программе двухсчетчи-ковой машины 2cM обозначим I.

Следующий шаг — введение промежуточной полуторарегистровоймашины 1,5RM . Далее будет доказано, что любую двухсчетчиковуюмашину 2cM можно смоделировать с помощью полуторарегистровоймашины 1,5RM ; и наоборот, любая машина 1,5RM моделируетсямашиной 2cM .

Полуторарегистровая машина 1,5RM представляет собой однореги-стровую машину 1RM с определенным количеством дополнительнойпамяти. Машина 1,5RM имеет «флаг» F , который предназначаетсядля указания того, какой из счетчиков A или B в текущий моментвремени задается регистром R. Более того, машина 1,5RM имееттакже еще один (дополнительный) регистр, который обозначается OR(от англ. Other Register). Регистр OR способен хранить лишь целыечисла от 0 до I + 1 и задает оставшийся счетчик из A и B, не пред-ставленный основным регистром R. Программа полуторарегистровоймашины 1,5RM содержит дополнительные команды

• OR+,

• OR−,

• Add OR to R,

• Set OR to 0 (или просто Zero OR),

• Test F ,

• Complement F (или Comp F ).

Если вспомогательный регистр OR содержит значение I + 1, то ко-манда OR+ является недопустимой. В различных местах доказатель-ства нам потребуется проверять выполнимость неравенства

OR 6 I.

Для простоты выполнения этого мы будем осуществлять моделирова-ние перехода по нулевой ветке машины 2cM с помощью команд ма-шины 1,5RM таким образом, чтобы всегда после завершения (модели)указанного перехода по нулевой ветке выполнялось условие OR = 0.Поскольку срабатывание перехода по нулевой ветке означает, что одиниз счетчиков A или B имеет нулевое значение, следовательно, еслирегистр OR в данный момент времени представляет этот «нулевой»

3.1. Однорегистровые машины 65

счетчик, то цель достигнута, если же это не так, необходимо произве-сти обмен содержимого регистров R и OR и поменять значение флагаF на противоположное (выполнить команду Comp F ).

Итак, промоделируем двухсчетчиковую машину 2cM полутораре-гистровой машиной 1,5RM . В начальном состоянии машины 2cMрегистр R представляет счетчик A, флаг F отображает эту ситуациюкак R : A, а регистр OR соответствует счетчику B (который содержитнулевое значение). Все команды A+, A−, B+ и B− машины 2cM ,находящиеся вне строгих циклов, переводятся в эквивалентные под-программы машины 1,5RM , представленные на рис. 3.5.

−OR

1Sub

... n... z

=BR :

AR :... FTest

1Add

+OR

...+A

=BR :

AR :... FTest−A

... n

ROR toAddORZeroFComp

... z

Рис. 3.5. Правила замены команд двухсчетчиковой машины 2cM , находящихсявне строгих (регулярных) циклов, на эквивалентную подпрограмму полутора-

регистровой машины 1,5RM

Аналогичные подпрограммы машины 1,5RM строятся и для командB+ и B− вне строгих циклов. Такого рода трансляция предполагаетприменение Test F для каждой команды машины 1,5RM . Однакобольшинство команд Test F может быть удалено простым перераспре-делением потока передачи управления.

Мы несколько небрежно сопоставили для команды A+ подпро-грамму машины 1,5RM , содержащую команду OR+. Дело в том, чтодля корректного выполнения этого шага необходима уверенность всправедливости неравенства OR 6 I. Но, как будет доказано далее,

3 Кузьмин Е. В., Соколов В.А.

Page 34: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

66 Гл. 3. Однорегистровые машины

фактически это неравенство оказывается справедливым в любой мо-мент выполнения программы машины 1,5RM (моделирующей работумашины 2cM ).

Для начала заметим, что равенство OR = 0 возможно лишь в трехслучаях.

1. В начальном состоянии машины.

2. Всякий раз после реализации перехода по нулевой ветке (внестрогого цикла).

3. Непосредственно после выхода из строгого цикла (это условиепоявится далее после определения правил моделирования строго-го цикла).

В любом месте программы вне строгого цикла не более чем Iкоманд машины 2cM может быть выполнено с момента последнегопоявления одного из трех указанных выше событий. Если рассмотретьисполнение последовательности, состоящей из I + 1 команд, то онаобязательно будет содержать некоторую команду дважды. Но путьмежду двумя срабатываниями повторяемой команды не может про-ходить по какой-либо нулевой ветке; следовательно, этот путь будетстрогим циклом. Но мы, по условию, должны находится вне строгихциклов программы. Таким образом, поскольку самое большее I командмашины 2cM может быть выполнено с последнего нулевого значениярегистра OR, емкость регистра OR ограничена числом I.

Рассмотрим теперь, каким образом осуществляется моделированиерегулярных циклов. Определим шесть констант Aplus, Bplus, Aminus,Bminus, dA и dB. Константа Aplus представляет собой количествокоманд A+ в регулярном цикле; Aminus — количество команд A−;dA = Aplus − Aminus. Аналогичным образом определяются константыBplus, Bminus и dB.

Отметим, что в точке входа регулярного цикла справедливы следу-ющие два условия.

1. OR 6 I исходя из обоснований, приведенных выше.

2. Программа выйдет из цикла до полного прохода следующеговитка цикла тогда и только тогда, когда

A < Aminus или B < Bminus.

В первой части цикла, от точки входа до средней точки, исполь-зуется замена, приведенная выше для команды «−». Если программа

3.1. Однорегистровые машины 67

выйдет из цикла в этой части, будет выполняться условие OR = 0, по-скольку выполнится подпрограмма машины 1,5RM , соответствующаякоманде «−» машины 2cM . Значение флага F не будет меняться до техпор, пока не произойдет выход из цикла. Поэтому после замены прижелании могут быть удалены все, кроме одной, команды Test F .

Предположим, что программа достигла средней точки цикла. Тогдамы выполняем команду Test F ; каждая ветка этой команды направля-ется в копию соответствующей подпрограммы, представленной ниже.Опишем R :A и OR :B ветку.

Поскольку с тех пор, как мы вошли в цикл, значение флага Fне изменялось, в точке входа имеем OR :B. Следовательно, в моментвхода в цикл выполнялось неравенство B 6 I.

Возможны три случая.

1. dA > 0 и dB > 0. Тогда программа машины 2cM будет находитсяв цикле бесконечно долго (т. е. никогда не выйдет из цикла).В этом случае заменим программный код после средней точкикомандой Jump∗.

2. dB < 0. В оставшейся части цикла (после средней точки) за-меняем A+ на Add 1 и B+ на OR+. Когда программа опятьвернется в точку входа, то значение счетчика B будет меньшезначения этого же счетчика непосредственно в момент входав цикл (а точнее, значение счетчика B при возврате в точку входаравняется значению B в момент входа в цикл плюс константа dB).Получаем, что значение счетчика B 6 I в любом месте цикла.Таким образом, имеем OR 6 I в любом месте модели этогоцикла. Когда же, наконец, происходит выход из цикла (по ну-левой ветке), то при этом выполняется условие OR = 0. Заметим,что мы не можем точно сказать без дополнительной информации(предварительных вычислений), через какую именно команду A−или B− произойдет выход из цикла.

3. dA < 0 и dB > 0. Если программа после входа в цикл достигает(в первый раз) средней точки, это означает, что выход из циклане может произойти по команде B−, так как значение счетчика Bне уменьшается после полного успешного прохода цикла (от точ-ки входа до точки входа).

Пусть имеем A = Amid и B = Bmid в средней точке циклапри самом первом попадании в нее. Один полный проход циклаприбавляет dA к A и dB к B. После K проходов цикла от средней

3*

Page 35: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

68 Гл. 3. Однорегистровые машины

точки до средней точки имеем (−dA будет положительным, таккак dA < 0)

A = Amid +KdA = Amid −K(−dA),

B = Bmid +KdB.

Программа машины 2cM будет возвращаться в среднюю точкуцикла в точности

L = [Amid/(−dA)]

раз — до тех пор, пока A > 0 в средней точке. ([N ] — наибольшеецелое число меньшее или равное N .)

Подпрограмма полуторарегистровой машины 1,5RM , представ-ленная на рис. 3.6, моделирует L проходов цикла от среднейточки до средней точки (часть цикла от точки входа до среднейточки моделируется уже рассмотренным выше способом).

После выполнения этой подпрограммы выход из цикла произой-дет до возврата в среднюю точку. Необходимо удостовериться всправедливости неравенства OR 6 I в момент перехода в началоцикла (в точку входа):

OR = Aplus + Rem < Aplus + (−dA) =

= Aplus − (Aplus − Aminus) = Aminus 6 I.

Это также подтверждает, что выход из цикла произойдет до до-стижения машиной 2cM средней точки. Выход будет осуществленчерез команду A−, при этом будет выполняться условие OR = 0.

Таким образом, мы позаботились о выполнении условия OR 6 I каквнутри регулярных циклов, так и при выполнении команд вне какого-либо регулярного цикла. Построенная по приведенным выше правиламполуторарегистровая машина 1,5RM моделирует регуляризированнуюдвухсчетчиковую машину 2cM .

Теперь преобразуем полуторарегистровую машину 1,5RM в одно-регистровую машину 1RM . Для каждого состояния машины 1,5RMсоздадим 2(I + 2) состояний машины 1RM — по одному состояниюна каждую комбинацию значений флага F и регистра OR. КомандыOR+, OR−, Zero OR, Test F и Comp F становятся командами Jumpмежду различными состояниями машины 1RM . Команда Add OR to Rзаменяется на Add K. �

3.1. Однорегистровые машины 69

)dA(Div −

...Остаток = 1)dA( −−0 1

(теперь R содержит L)

(Копия этойподпрограммы

содержится наконце каждойстрелки деления)

dB Mul

ROR toAdd

FComp

0toSet ORRemtoSet OR

(R содержит Bmid + LdB)

(Rem раз выполнить OR+) Rem( ==OR

=−−= )dA( Amid L)dAAmid L+=

) (Bplus to Add R (Все эти командымоделируют последнийпроход машины 2cMчерез набор "+"-команд)

OR Aplus to Add (Aplus раз выполнить OR+)

циклавходаточкувJump

Рис. 3.6. Подпрограмма полуторарегистровой машины 1,5RM , моделирующаяL проходов регулярного цикла от средней точки до средней точки двухсчетчи-

ковой машины 2cM

З ам е ч ан и я п о л емм е 3.1. В формулировке леммы перед тем, какмоделировать поведение двухсчетчиковой машины с помощью одноре-гистровой машины, требуется, чтобы один из двух счетчиков маши-ны Минского имел нулевое значение. Такое требование не являетсякаким-либо ограничением. Действительно, любая машина 2cM с двумясчетчиками A и B, имеющая начальную конфигурацию (q0,N1,N2),может быть легко преобразована с помощью N2 команд B+ в двухсчет-чиковую машину 2cM ′ с начальной конфигурацией (q′0,N1, 0) такимобразом, что, начав работу с конфигурации (q′0,N1, 0), машина 2cM ′

через N2 шагов будет вести себя в точности так, как машина 2cM ,запущенная из конфигурации (q0,N1,N2). �

Page 36: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

70 Гл. 3. Однорегистровые машины

Лемм а 3.2 (Дополнение к лемме о замене машин). При моделирова-нии двухсчетчиковой машины 2cM все константы K в командаходнорегистровой машины 1RM достаточно взять такими, чтобыразмер каждой из них не превышал количество команд в программеоригинальной машины 2cM .

Дока з а т е л ь с т в о. Каждая команда Add K может быть разбита напоследовательность из K команд Add 1. Для команд Mul K и Div Kзаметим, что приведенные выше конструкции для регуляризации стро-гих циклов не делают строгий цикл длиннее, чем он был в оригиналь-ной машине 2cM . Величина констант K в командах Mul и Div никогдане превосходят длину регулярного цикла, в моделировании которогоони участвуют. В свою очередь длина любого цикла ограничена разме-ром моделируемой машины 2cM . �

Итак, мы показали, что двухсчетчиковые машины могут моде-лироваться однорегистровыми машинами. Очевидно, что справедливои обратное утверждение. Моделирование соответствующих командоднорегситровой машины с помощью подпрограмм (последовательно-стей команд) двухсчетчиковых машин оставляем в качестве простогоупражнения.

Т е о р ем а 3.1. Для любой однорегистровой машины 1RM можетбыть построена моделирующая ее двухсчетчиковая машина 2cM .

Сл ед с т в и е 3.1. Функция F (X) вычислима двухсчетчиковой маши-ной Минского 2cM тогда и только тогда, когда она вычислимаоднорегистровой машиной 1RM .

Отметим, что если программа машины 1RM когда-либо совершаетпереход по нулевой ветке некоторой команды Sub 1, то нам известнысостояние машины, в которое ведет этот переход, следующая команда,готовая к выполнению, а также имеем R = 0. Таким образом, принеобходимости мы можем заменить код программы, следующий запереходом по нулевой ветке команды Sub 1, подпрограммой, котораяустанавливала бы значение регистра R в окончательный ответ (тот,который получается в результате выполнения заменяемого куска кодас нулевого значения регистра R) и завершала бы работу машиныили же совершала переход в бесконечный цикл (если этого требуеторигинальный программный код машины). Программный код замены

3.2. Теоремы по проблеме «входа» 71

имеет вид

«Add K, Halt» или «Jump∗».

Такая же последовательность действий (замена кода) применима (потой же аргументации) и для команды Mul 0.

Нулевую ветку команды Sub 1 и команду Mul 0 будем называтьоцененными, или вычисленными, если они непосредственно предше-ствуют либо «Add K, Halt», либо «Jump∗». Последовательность команд«Mul 0, Jump∗» может быть заменена просто на «Jump∗». Оценканулевой ветки Sub 1 зачастую позволяет нам игнорировать ветвлениекоманды Sub 1 и рассматривать только основные строки кода програм-мы (идущие в нормальной последовательности).

3.2. Теоремы по проблеме «входа»

Возможность представления машин Минского с двумя счетчикамив виде однорегистровых машин позволяет нам сформулировать цен-тральную теорему о проблеме входа двухсчетчиковых машин.

Т е о р ем а 3.2 (О проблеме входа двухсчетчиковых машин). Не суще-ствует двухсчетчиковой машины, вычисляющей (реализующей)функцию F (X) = 2X .

Дока з а т е л ь с т в о. Предположим противное. Пусть мы имеем двух-счетчиковую машину 2cM , которая вычисляет F (X) = 2X .

Преобразуем 2cM в эквивалентную однорегистровую машину 1RM .Произведем оценку (вычисление) нулевых веток всех команд Sub 1(большинство значений этих веток, вероятно, будут иметь степеньдвойки, соответственно ответам функции).

Поскольку существует бесконечно много степеней двойки при ко-нечном числе команд Sub 1, мы можем найти такое N , начав работус которого машина 1RM остановится с результатом 2N , но выполнен-ная последней команда Halt не будет находиться в конце нулевой веткикоманды Sub 1.

Исследуем программное исполнение, а точнее последовательностьпройденных команд, для такого начального N . Это исполнение всегдабудет проходить по ненулевым веткам команд Sub 1 (если, конечно,оно будет включать в себя команды Sub 1).

Рассмотрим в отдельности каждую команду, через которую про-ходит исследуемое исполнение. Перемножим все делители (константы

Page 37: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

72 Гл. 3. Однорегистровые машины

команд вида Div K), встречающиеся в исполнении. Причем константа-делитель входит в произведение столько раз, сколько раз исполнениепроходит через команду, содержащую эту константу. Обозначим та-кое произведение D. Поскольку все константы-делители ненулевые,то и произведение D не может быть нулем. Теперь таким же образомрассмотрим все команды вида Mul K, которые встречаются в испол-нении. Перемножим все константы-множители с учетом повторенийи обозначим это произведение M .

Воспользуемся утверждением, справедливость которого будет до-казана в следующей теореме 3.3. Если запустить машину 1RM призначении регистра

R = N + jD,

где j > 0, тогда 1RM пройдет по командам тот же самый путь, которыйона прошла, будучи запущена при R = N , а результатом исполнениябудет значение

2N + jM.

Но это невозможно, поскольку функция F (X) = 2X растет намногобыстрее, чем любая арифметическая прогрессия. Следовательно, заяв-ленной двухсчетчиковой машины 2cM существовать не может. Пришлик противоречию. �

Т ео р ем а 3.3 (Об арифметической прогрессии). Пусть двухсчетчи-ковая машина Минского 2cM вычисляет некоторую функцию F (X)(F может быть частичной). Тогда область значений функции Fсодержит конечное подмножество S такое, что для любого N ,для которого значение функции F (N) определено и находится внемножества S, существуют целые D > 0 и M > 0 такие, что

F (N + jD) = F (N) + jM

для всех целых j > 0. Более того, числа D и M не имеют простыхделителей, больших, чем I, где I — количество команд двухсчетчи-ковой машины 2cM .

Дока з а т е л ь с т в о. Заменим машину 2cM эквивалентной одноре-гистровой машиной 1RM . Произведем оценку (вычисление) нулевыхветок всех команд Sub 1 и команд Mul 0. Возьмем в качестве мно-жества S множество значений регистра R, которые были полученыв результате оценки нулевых веток команд Sub 1 и команд Mul 0.

3.2. Теоремы по проблеме «входа» 73

Возьмем такое N , для которого значение функции F (N) определенои находится вне множества S. Запустим (из начального состояния)машину 1RM при значении регистра

R = N.

Машина остановится через некоторое время (число шагов) t с резуль-татом F (N) в регистре R. Теперь мы должны обеспечить такие целыечисла M и D, чтобы

F (N + jD) = F (N) + jM

для всех целых j > 0 (т. е. j ∈ N, где N — множество целыхнеотрицательных чисел).

Рассмотрим путь (исполнение), который проходит однорегистроваямашина 1RM от начального состояния при R = 0 до заключительногосостояния с итоговым значением R = F (N). Обозначим I(n), илипросто In, команду, которая имеет номер n по порядку в этом пути;1 6 n 6 t; I(t) — команда Halt.

Определим Mn, константу-множитель команды с номером n на рас-сматриваемом пути, следующим образом. Если команда In = Mul K,тогда Mn = K. Иначе, Mn = 1.

Подобным образом определим Dn, константу-делитель с номером n.Если In = Div K, тогда Dn = K. Иначе, Dn = 1.

Далее, обозначим Rn содержимое регистра R после выполнениякоманды In. R0 — начальное значение R.

Положим

M = M1 M2 M3 . . . Mt и D = D1 D2 D3 . . . Dt.

Поскольку все множители Mi должны быть больше 0, то и M будетбольше 0. Если хотя бы один из Mi имел бы нулевое значение,машина 1RM остановилась бы на i-м шаге со значением (записаннымв регистре R), являющимся элементом множества S. Но по условиюF (N) не принадлежит S. Аналогичным образом, произведение D > 0,так как все Di > 0. Более того, каждое из Mi и Di меньше или равно I.Получаем, что M и D не имеют простых делителей, больших, чем I.

Итак, утверждается, что если однорегистровая машина 1RM начнетработу при

R = N + jD,

Page 38: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

74 Гл. 3. Однорегистровые машины

где j ∈ N, то она пройдет путь по тем же самым командам, как еслибы стартовала при

R = N ,

и остановится с результатом

R = F (N) + jM.

Пусть Nn — это значение Rn, когда однорегистровая машина 1RMстартует при R = N . Тогда N0 = N и Nt = F (N). Доказательствозаявленного утверждения проводится индукцией формулы

Rn = Nn + j M1 M2 . . . MnDn+1 . . . Dt (3.1)

по длине общего пути (по командам) машины 1RM для входов R = Nи R = N + jD.

Базис индукции:

R0 = N0 + jD = N + jD.

Предположение индукции. Пусть оба исполнения прошли одинако-вый путь вплоть до n− 1 шага и уравнение 3.1 справедливо для n− 1.Необходимо рассмотреть все возможные случаи следующей машиннойкоманды In.

Если In = Add K, то Nn = Nn−1 +K и Mn = Dn = 1.

Rn = Rn−1 +K =

= Nn−1 + j M1 . . . Mn−1 Dn Dn+1 . . . Dt +K =

= Nn + j M1 . . . Mn−1 MnDn+1 . . . Dt.

Если In = Sub 1, то Nn−1 > 0, так как исполнение, соответ-ствующее F (N), всегда проходит по ненулевым веткам команд Sub 1;Nn = Nn−1 − 1. Все Mi и Di имеют значение большее 0; j > 0;следовательно, Rn−1 > Nn−1 > 0. Таким образом, R-исполнение такжебудет проходить через ненулевую ветку команды Sub 1; Rn = Rn−1−1,Mn = Dn = 1.

Rn = Rn−1 − 1 =

= Nn−1 + j M1 . . . Mn−1 DnDn+1 . . . Dt − 1 =

= Nn + j M1 . . . Mn−1 Mn Dn+1 . . . Dt.

3.2. Теоремы по проблеме «входа» 75

Если In = Mul K, то Nn = Nn−1 ∗K, Mn = K и Dn = 1.

Rn = Rn−1 ∗K =

= {Nn−1 + j M1 . . . Mn−1 Dn . . . Dt} ∗K =

= Nn + j M1 . . . Mn−1 K 1Dn+1 . . . Dt =

= Nn + j M1 . . . Mn−1 Mn Dn+1 . . . Dt.

Если In = Div K, то Dn = K и Mn = 1; Nn = [Nn−1/K] и остаткомявляется Nn−1−KNn; Rn = [Rn−1/K], а остатком будет Rn−1−KRn.

Rn = [{Nn−1 + j M1 . . . Mn−1 Dn . . . Dt}/K] =

= [Nn−1/K] + j M1 . . . Mn−1 Dn+1 . . . Dt =

= Nn + j M1 . . . Mn−1 MnDn+1 . . . Dt.

Rn−1 −KRn = Nn−1 + j M1 . . . Mn−1 Dn . . . Dt −−K (Nn + j M1 . . . Mn Dn+1 . . . Dt) =

= Nn−1 −KNn.

Остатки от деления значения регистра R на число K являются оди-наковыми в обоих исполнениях машины 1RM . Следовательно, обаисполнения пройдут по одной и той же ветке команды Div K.

Если In представляет собой Jump или Halt, то Mn = Dn = 1, чтооставляет уравнение 3.1 истинным.

Итак, мы доказали, что все виды команд сохраняют истинностьуравнения 3.1, а также то, что оба исполнения проходят по одними тем же веткам команд, допускающих альтернативные направленияисполнения программы. Таким образом, в момент времени t (послеt шагов) оба исполнения, стартовав соответственно при значенияхрегистра N и N + jD, завершатся с результатом

Nt = F (N),

Rt = Nt + j M1 . . .Mt = F (N) + j M ,

что и требовалось доказать. �

Опр е д е л е ни е. Для произвольной частичной функции F определиммножество Sp, где p является простым числом, как множество всехтаких N , которые удовлетворяют следующим двум условиям.

1. N ∈ N — это целое неотрицательное число, а значение F (N)определено.

Page 39: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

76 Гл. 3. Однорегистровые машины

2. Для каждого целого положительного числа D, не имеющегопростых делителей, больших p, если F (N + jD) определено длявсех j ∈ N, тогда функция F (N + jD) является нелинейнойфункцией от j > 0.

Обозначим S′p множество всех таких N , которые удовлетворяют

условиям (1) и (2′).

2′. Для каждого целого D > 0, не имеющего простых делителей,больших p, частичная функция F (N + jD) в своей областиопределения является нелинейной функцией от j ∈ N.

Следовательно, по определению имеем S′p ⊆ Sp. А также, если q

является простым числом, большим p, тогда множество Sp содержитмножество Sq, а S′

p содержит S′q.

Пусть F — функция, а S — множество, тогда обозначим F (S)множество {F (e) | e ∈ S}.

Следующая теорема по существу является контрапозицией теоремы«Об арифметической прогрессии», т. е. теоремы 3.3.

Т е о р ем а 3.4 (Контрапозиция теоремы 3.3). Предположим, что мно-жество F (Sp) является бесконечным для любого простого числа p.Тогда функция F не может быть вычислена никакой двухсчетчико-вой машиной. Более того, если для всех p множество F (S′

p) такжеявляется бесконечным, то не существует вычислимого продолже-ния (расширения) функции F .

Дока з а т е л ь с т в о. Пусть множество F (Sp) бесконечно для любогопростого числа p. Предположим, что некоторая двухсчетчиковая ма-шина 2cM вычисляет функцию F . Тогда по теореме 3.3 существуетконечное множество S такое, что если значение F (N) находится вне S,то существуют D > 0 и M > 0 такие, что

F (N + jD) = F (N) + jM

для любого j ∈ N. Выберем целое p, большее общего числа командпрограммы машины 2cM . Возьмем N ∈ Sp такое, что F (N) /∈ S.Найдем (вычислим) числа D и M для исполнения, соответствующегоэтому N . Тогда получаем, что D не имеет простых делителей, боль-ших p, а F (N + jD) = F (N) + jM для всех j > 0, т. е. F являетсялинейной функцией от j, что противоречит условию (2) определениямножества Sp.

3.2. Теоремы по проблеме «входа» 77

Теперь предположим, что множество F (S′p) бесконечно для всех

простых p и что двухсчетчиковая машина 2cM вычисляет функцию G,которая является продолжением функции F . Построим множество Sтаким, чтобы из определенности функции G на N и непринадлежностиG(N) к S следовало существование D и M (по теореме 3.3). Выберемтакое N ∈ S′

p, что F (N) /∈ S. Поскольку G является продолжением

функции F , то G(N) = F (N). Следовательно, G(N) /∈ S. Тогдасуществуют M > 0 и D > 0 такие, что D не имеет простых делителей,больших p, и

G(N + jD) = G(N) + jM

для всех j > 0. Отсюда, любое сужение функции G, в частностифункция F , будет удовлетворять этому уравнению во всех точках

N + jD при j ∈ N,

в которых оно определено. Но это противоречит условию (2′). �

Опр е д е л е ни е. Зададим арифметический ряд с начальным эле-ментом A > 0 и разностью арифметической прогрессии D > 0 какмножество

{A+ jD | j > 0}.Арифметический ряд с числами A < 0 и D 6 0 считается недопусти-мым. Ряды, начинающиеся с элементов A и A + D соответственно,являются различными, так как первый ряд имеет на один элементбольше.

Введенное определение позволяет нам сформулировать важноеследствие теоремы 3.4 (контрапозиции теоремы об арифметическойпрогрессии).

Сл е д с т в и е 3.2. Пусть двухсчетчиковая машина 2cM вычисляетфункцию F (X). Тогда существует такое пороговое число T , чтомножество

{N | F (N) > T }является объединением совокупности (возможно даже пустой илибесконечной) взаимно непересекающихся арифметических рядов.Разности прогрессий этих арифметических рядов имеют ограни-ченные простые делители. Функция F отображает каждый рядв другой арифметический ряд. Разности прогрессий рядов-образов

Page 40: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

78 Гл. 3. Однорегистровые машины

также имеют ограниченные простые делители. Область значенийфункции F представляет собой объединение конечного множестваи (возможно, пустой или бесконечной) совокупности арифметиче-ских рядов.

В частности, если функция F (X) является неограниченнойпри X , стремящемся к бесконечности, то и область определения,и область значений функции F должны содержать арифметическиеряды.

З ам е ч ан и е п о с л е д с т в ию 3.2. Следствие производит такое впе-чатление, что между областью определения и областью значений функ-ции F существует различие, которое состоит, скажем, в том, что об-ласть определения является взаимно непересекающимся объединениемсовокупности рядов, а область значений представляет собой толькообъединение. Однако это различие всего лишь кажущееся, посколькуесли множество является объединением совокупности арифметическихрядов, то оно может быть представлено в виде объединения совокуп-ности других арифметических рядов, которые будут взаимно непересе-кающимися.

3.3. Теоремы по проблеме «выхода»

На основе теоремы 3.4 и следствия 3.2 проводятся доказательстватеорем, имеющих непосредственное отношение к проблеме выхода длядвухсчетчиковых машин.

Т е о р ем а 3.5. Функции Exactsqrt и Exactlog2, определенные ниже,не могут быть реализованы двухсчетчиковой машиной.

Exactsqrt(X) =√X, если X — полный квадрат числа; иначе,

значение функции не определено.

Exactlog2(X) = log2(X), если X — степень двойки; иначе, значе-ние функции не определено.

Дока з а т е л ь с т в о. Обе рассматриваемые функции являются неогра-ниченными, но их области определения не содержат арифметическихрядов. �

Опр е д е л е ни е. Далее по тексту фраза «функция F (X) имеет нели-нейную скорость роста» означает, что F (X)/X при X → ∞ стремится

3.3. Теоремы по проблеме «выхода» 79

либо к нулю, либо к бесконечности (область определения функции Fявляется бесконечным множеством).

Если функция F (X) имеет нелинейную скорость роста и F (A+jD)определено для бесконечно многих j > 0, тогда функция F (A + jD)в той области, где она определена, представляет собой нелинейнуюфункцию от j. Опираясь на теорему 3.4, имеем справедливость следу-ющей теоремы.

Т е о р ем а 3.6. Если F (X) — это всюду определенная монотоннаянеограниченная функция с нелинейной скоростью роста, то онане может быть реализована никакой двухсчетчиковой машиной.

Сл ед с т в и е 3.3. Функция F (X) вида X2, 2X , [log2 X ], [√X], Fib(X)

или т. п. не может быть реализована двухсчетчиковой машиной([N ] — наибольшее целое число меньшее или равное N , Fib(N) —N -е число Фибоначчи).

Отметим, что это следствие не решает проблему выхода для двух-счетчиковых машин, так как функция F (X) = [log2 X ] является болеесильной, чем нам необходимо. Проблема выхода требует лишь, чтобыдвухсчетчиковая машина 2cM отображала 2N в N для всех целыхчисел N > 0, т. е. чтобы только точные степени двойки обрабатывалиськорректно. Ничего не говорится о том, как должна вести себя маши-на 2cM , когда получает на вход число, не являющееся точной степеньюдвойки. Фактически, мы знаем лишь то, что любая двухсчетчиковаямашина 2cM , решающая проблему выхода, будет вычислять функцию,область определения которой должна содержать арифметические ряды.

Т е о р ем а 3.7. Пусть F (X) — это (возможно, частичная) неограни-ченная монотонная функция с нелинейной скоростью роста. Пустьдля бесконечно многих N из области определения функции F и длявсех D > 0 существует j такое, что F (N + jD) также определено.Тогда функция F и все ее продолжения не могут быть реализованыникакой двухсчетчиковой машиной.

Дока з а т е л ь с т в о. Из условия «для всех D> 0 существует j такое,что F (N + jD) определено» следует, что для всех D> 0 существуетбесконечно много таких j, что F (N + jD) определено. Действительно,для конкретных N и D′ обозначим J последний из подходящих j.

Page 41: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

80 Гл. 3. Однорегистровые машины

Рассмотрим новое число D, имеющее вид 2JD′. Значение

F (N + j2JD′)

определено для некоторого j > 0; но тогда 2jJ будет новым j для D′.Отсюда, для всех D> 0 функция F (N + jD), где N такое, что

значение F (N) определено, является нелинейной функцией от j. Такимобразом, по теореме 3.4 функция F и все ее продолжения не могут бытьреализованы двухсчетчиковой машиной. �

Иначе эту теорему можно сформулировать следующим образом.Пусть F (X) — (возможно, частичная) неограниченная монотоннаяфункция с нелинейной скоростью роста. Число N не допускается,или исключается, числом D, если область определения функции Fсодержит только конечное множество чисел, равных N по модулю D.Если значение F (N) определено и N не исключается числом D,тогда N допускается (числом D). Предположим, что (обязательнобесконечное) подмножество области определения функции F являетсядопустимым. Тогда функция F не может быть реализована двухсчет-чиковой машиной.

Воспользуемся теоремой 3.7 для доказательства следующих двухтеорем о невозможности реализации двухсчетчиковой машиной неко-торых конкретных частичных монотонных неограниченных функцийс нелинейной скоростью роста при заранее оговоренном множествевходных значений специального вида.

Т е о р ем а 3.8. Функция F (X) =√X не может быть реализована

двухсчетчиковой машиной, даже если каждое входное значениепеременной X гарантированно будет полным квадратом числа.

Дока з а т е л ь с т в о. Выберем N = z2, где z ∈ N. Тогда для любогочисла D> 0 существует бесконечно много j таких, что N + jD будетполным квадратом. Действительно, достаточно взять

j = 2zh+Dh2,

где h — это произвольное неотрицательное целое число. �

Эта теорема утверждает больше, чем теорема о функции Exactsqrt.Она утверждает, что никакое расширение функции Exactsqrt не можетбыть вычислено двухсчетчиковой машиной. Если бы удалось доказатьподобную теорему для Exactlog2, это было бы решением проблемывыхода.

3.3. Теоремы по проблеме «выхода» 81

Т ео р ем а 3.9. Функция F (X), обратная к функции Fib(X), не мо-жет быть реализована никакой двухсчетчиковой машиной, дажеесли все входные значения переменной X гарантированно будутчислами Фибоначчи.

Дока з а т е л ь с т в о. Достаточно показать (исходя из утвержденийпредыдущих теорем), что для любого N и любого D> 0 существуеттакое j, что Fib(N) + jD является числом Фибоначчи, т. е. существуеттакое число Q ∈ N, что

Fib(N +Q) = Fib(N) + jD.

Итак, нам необходимо найти такое Q, для которого бы выполнялосьследующее равенство

Fib(N) ≡ Fib(N +Q) (mod D).

Докажем существование такого числа Q в пределах 0 < Q 6 D2.

Рассмотрим множество, состоящее из различных пар вида

(Fib(I), Fib(I+1)) (mod D).

Размер этого множества не превосходит D2. Значит, существуют такиечисла J и K, 0 6 J < K 6 D2, что

Fib(J) ≡ Fib(K) (mod D) и Fib(J + 1) ≡ Fib(K + 1) (mod D).

Отсюда следует справедливость уравнения

Fib(J +X) ≡ Fib(K +X) (mod D)

для всех целых чисел X . Приняв

X = N − J ,

получим Q = K − J . �

Техника доказательства последних двух теорем не может быть при-менена для решения проблемы выхода, так как неверно утверждениео том, что для всех N и D существует число E > N такое, что

2N ≡ 2E (mod D)

В качестве контрпримера достаточно рассмотреть ситуацию, при кото-рой 2N + 1 является делителем числа D, т. е. 2N+1|D. Действительно,если предположить существование такого числа E > N при 2N+1|D,

Page 42: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

82 Гл. 3. Однорегистровые машины

то получим равенство

2E = 2N + kD,

где k ∈ N, а поскольку 2N + 1 является делителем D, это равенствоможно переписать в виде

2E = 2N + ki2N+1 при i ∈ N.

В результате получаем, что 2E−N = 2ki+ 1, чего быть не может.

Теперь рассмотрим пример всюду определенной неограниченнойнемонотонной функции, которая не может быть реализована никакойдвухсчетчиковой машиной.

Т е о р ем а 3.10. Функция SPF(X), возвращающая наименьший про-стой делитель числа X , не может быть вычислена двухсчетчиковоймашиной.

Дока з а т е л ь с т в о. Один из способов доказательства — заметить,что область значений функции SPF(X) не содержит арифметическихрядов. Приведем альтернативное доказательство.

Обратимся к определению множества Sp. Покажем, что Sp содержитвсе простые числа, большие p. Предположим, что q — простое число,большее p. Тогда значение SPF(q) определено, а SPF(q+ jD) являетсянелинейной функцией от j для каждого целого числа D > 0, не име-ющего простых делителей, больших p. Действительно, поскольку у Dнет простых делителей, больших p, то

(q,D) = 1

((q,D) — наибольший общий делитель чисел q и D). По известнойтеореме Дирихле (см., например, мультипликативную теорию чисел),которая утверждает, что в арифметической прогрессии с целыми вза-имно простыми разностью прогрессии и первым членом прогрессиисодержится бесконечно много простых чисел, имеем, что наша после-довательность (арифметическая прогрессия)

{q+ jD | j ∈ N}

содержит бесконечно много простых чисел, и в этих точках

SPF(q + jD) = q+ jD.

3.4. О вычислимых функциях 83

В то же время всякий раз, когда q|j, выполняется

SPF(q + jD) 6 q.

Получается, что SPF(q + jD) не является монотонной функцией от jи, следовательно, не является линейной.

Поскольку для любого простого p множество Sp содержит бес-конечное число простых чисел, больших p, то множество SPF(Sp)также является бесконечным (для любого простого p). По теореме 3.4функция SPF(X) не может быть реализована никакой двухсчетчиковоймашиной, что и требовалось доказать. �

Рассмотрим множества S∞ =⋂∞

p=2 Sp и S′∞ =

⋂∞

p=2 S′p. Любопыт-

но, что во всех разобранных примерах, за исключением функции SPF,множества S∞ и S′

∞ являлись бесконечными. В случае SPF множествоS∞ пустое, но каждое Sp — бесконечное множество. Но этого условияоказалось достаточно, чтобы показать, что функция SPF не может бытьвычислена двухсчетчиковой машиной.

3.4. О вычислимых функциях

Обсудим кратко класс реализуемых двухсчетчиковой машинойфункций, имеющих конечную область значений.

Оп р е д е л е ни е. Разбиением назовем функцию с конечной областьюзначений. Разбиение P (X) делит множество неотрицательных целыхчисел на конечное число классов эквивалентности; два целых неотри-цательных числа A и B принадлежат к одному классу, если

P (A) = P (B)

или P (A) и P (B) не определены.

Тотальное разбиение определяется на всем множестве неотрица-тельных целых чисел. Значения, которые возвращаются разбиением,обычно не важны, имеет смысл лишь то, на какие классы эквивалент-ности происходит разделение области определения.

Предикат — это разбиение, областью значений которого являетсямножество {0, 1}.

В качестве примеров приведем несколько предикатов P (X), реали-зуемых двухсчетчиковой машиной.

• P (X) = «число X является степенью двойки».

Page 43: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

84 Гл. 3. Однорегистровые машины

• P (X) = «число X является степенью двойки или тройки».

• P (X) = «число X является суммой трех чисел, представляющихсобой различные степени двойки».

• P (X) = «десятичное представление числа X содержит тройкии семерки».

• P (X) = «значение [log2 X ] является четным».

• P (X) = «в двоичном представлении числа X количество единицявляется нечетным числом». Этот предикат известен как функцияконтроля четности, используемая при выявлении ошибок переда-чи данных.

• P (X) = «значение X является простым числом вида (2p − 1) или

вида (22K + 1)», где p — простое число.

• P (X) = «значение X является простым числом вида 2A3B + 1».Поскольку существует, вероятно, бесконечно много простых чи-сел такого вида, то кажется правдоподобным, что двухсчетчико-вая машина может распознавать некоторые бесконечные классыпростых чисел.

Предикат P (X) возвращает значение 1, если соответствующее утвер-ждение истинно, и 0 в противном случае.

Двухсчетчиковой машиной может быть также реализован двумест-ный предикат P (X ,Y ) = (X > Y ), определяющий, является ли значе-ние первого счетчика большим или равным значению второго счетчика.

Более того, очевидно, что любая вычислимая конечным детермини-рованным автоматом функция (разбиение), на вход которой подаетсябинарное представление числа X , может быть реализована двухсчет-чиковой машиной (см. теорему 1.4).

Однако остается ряд вопросов.

• Может ли двухсчетчиковая машина решить, является ли X про-стым числом?

• Может ли двухсчетчиковая машина решить, является ли X пол-ным квадратом числа?

• Может ли двухсчетчиковая машина вычислять N -й знак числа π?

3.4. О вычислимых функциях 85

• Может ли машина с двумя счетчиками реализовать логическое«ИЛИ» или логическое «И» двух предикатов?

• Что можно сказать по поводу «объединения» или «пересечения»двух разбиений?

В работе [40] высказывается предположение о том, что ответына первые три вопроса, вероятно, будут отрицательными. Поскольку,похоже, что многие из предикатов при их реализации предполагаютуничтожение входных данных, то, скорее всего, последние два вопросатакже имеют ответ «нет» [40].

Исходя из предположения, что двухсчетчиковые машины не могутвычислять все возможные разбиения, очевидным дальнейшим шагомявляется поиск теорем, определяющих реализуемые двухсчетчиковымимашинами разбиения.

Естественной кажется следующая гипотеза: один из классов разби-ения должен содержать бесконечный арифметический ряд. Однако этоне верно для вычислимого двухсчетчиковой машиной предиката

P (X) =

{0, если X = 0 или [log2 X ] — четное;1, если [log2 X ] — нечетное.

Ни один из классов этого разбиения не содержит бесконечного ариф-метического ряда.

Оп р е д е л е ни е. Пусть имеем целые числа A, B, C и D такие, что

A+B > 0, B > 0, C > 1, D > 0, D | (A+B) и D | (A+BC).

Назовем множество

{ (A+BCK)/D | K > 0 }геометрической прогрессией со смещением (OGP — Offset GeometricProgression). Все элементы любой OGP-прогрессии являются целы-ми числами. Действительно, поскольку D | (A+B) и D | (A+BC),то D |B(C − 1); отсюда следует, что D |B(CK − 1), а значит, иD | (A+BCK).

Т е о р ем а 3.11. Любая OGP-прогрессия содержит бесконечно многосоставных чисел.

Page 44: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

86 Гл. 3. Однорегистровые машины

Дока з а т е л ь с т в о. Предположим, что для простого p выполняется

p | (A+BCK)/D

при некотором K. Допустим, что имеет место следующее равенство:

(p,C) = (p,D) = 1.

Тогда верно, что

p | (A+BCK+h(p−1))/D

для любого целого h > 0. Действительно, по малой теореме Ферма(см. теорию чисел) имеем, что если целое C не делится на простое p,то Cp−1 ≡ 1 (mod p). Из (p,C) = 1 следует, что (p,Ch) = 1 для всехh ∈ N. Тогда, все по той же малой теореме Ферма, справедливо, что

Ch(p−1) ≡ 1 (mod p)

для всех h ∈ N. Домножим обе части сравнения на CK . Получаем

CK+h(p−1) ≡ CK (mod p)

для всех h ∈ N. Отсюда, если число

(A/D)+ (B/D)CK

делится на p, то, очевидно, и число

(A/D)+ (B/D)CK+h(p−1)

тоже делится на p при любом h ∈ N. �

Было бы большой удачей, если бы каждый бесконечный класс раз-биения должен был содержать OGP-прогрессию. Это доказывало бы,что двухсчетчиковая машина не может решить, является ли начальноезначение счетчика X простым числом. К сожалению, это предполо-жение не верно. В следующей теореме доказывается существованиевычислимого двухсчетчиковой машиной предиката, ни один из классовразбиения которого не содержит OGP-прогрессию.

Т е о р ем а 3.12. Предикат Q, определенный ниже, вычислим двух-счетчиковой машиной.

Q(X) =

{

1, если X = 22K ;0, иначе.

3.4. О вычислимых функциях 87

Дока з а т е л ь с т в о. Из-за громоздкости конструкции дадим лишьосновную идею построения двухсчетчиковой машины, реализующейпредикат Q(X).

Первой производится проверка выполнимости 3 |X , т. е. осуществ-ляется проверка, делится ли входное значение счетчика X на 3. Еслиответ положительный, тогда выполняется набор команд, устанавлива-ющий значение X в 0; на этом машина завершает свою работу. Еслиже начальное значение X не делится на три, то соответствующаяветка строится следующим образом. Запускается цикл, преобразующийчисло 22JV (при нечетном V ) в 3JV , а затем 3JV в 2JV , до техпор, пока J не станет нечетным. После выхода из цикла потребуетсяпроверка на равенство единице чисел J и V , поскольку Q(X) = 1,только если J = V = 1. �

Приведем еще ряд соображений по проблеме «выхода» и вычисли-мым функциям с бесконечной областью значений.

Оп р е д е л е ни е. Обозначим Zp множество чисел, не имеющих про-стых делителей, больших p; например, Z5 = {2A3B5C}.

Л е мм а 3.3. Существует двухсчетчиковая машина, которая отоб-ражает 2N в N для всех N ∈ Zp, где p — фиксированное число.

Дока з а т е л ь с т в о. Предположим, что p = 7. Существует машина6cM с шестью счетчиками U , V , W , X , Y и Z, которая, начав работупри N = 2A3B5C7D в счетчике U и при нулевых значениях остальныхсчетчиков, завершает работу с результатом A в счетчике U , B в V ,C в W , D в X и Y =Z = 0. Если смоделировать шестисчетчиковуюмашину 6cM двухсчетчиковой машиной 2cM , получим, что машина2cM будет преобразовывать число 2N в N .

Очевидно, что с ростом числа p промежуточный этап построениядвухсчетчиковой машины будет проводиться с помощью счетчиковоймашины, количество счетчиков которой зависит от количества простыхчисел, меньших или равных p. �

Т ео р ем а 3.13. Любая вычислимая функция вида F : Zp → Zp

может быть реализована двухсчетчиковой машиной.

Дока з а т е л ь с т в о этой теоремы проводится по аналогии с доказа-тельством леммы 3.3, исходя из приведенных там соображений. �

Page 45: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

88 Гл. 3. Однорегистровые машины

Т ео р ем а 3.14. Пусть для некоторого множества Zp существуетвычислимая двухсчетчиковой машиной функция F , взаимно одно-значно отображающая Zp на множество целых неотрицательныхчисел. Тогда проблема «выхода» может быть решена.

Дока з а т е л ь с т в о. Мы можем построить машину Тьюринга, котораядля входного числа N ищет такой элемент Q ∈ Zp, для котороговыполняется F (Q) = N . Эта машина Тьюринга затем моделируетсядвухсчетчиковой машиной, которая стартует со входа 2N , при этомзавершая работу с результатом 2Q. По лемме 3.3 из числа 2Q мы можемполучить Q. Поскольку по предположению функция F вычислимамашиной с двумя счетчиками, то для Q находим N . Таким образом,мы имеем двухсчетчиковую машину, преобразующую число 2N в N . �

К сожалению, подходящих кандидатур таких функций пока найденоне было. Более того, естественным и наиболее вероятным кажетсяпредположение о том, что все же ответ на проблему «выхода» скореевсего будет отрицательным. Подробнее о проблемах входа и выходадля двухсчетчиковых машин Минского смотрите в работе [40].

Итак, в главе было показано, что решения для проблемы «входа»для двухсчетчиковых машин Минского не существует, это же, вероят-но, будет справедливо и для проблемы «выхода».

Глава написана на основе научно-технического отчета Р. Шреппелялаборатории искусственного интеллекта Массачусетского технологи-ческого института [40]. Некоторые доказательства утверждений изэтого отчета потребовали небольшой переработки для лучшего ихвосприятия и были описаны более подробно, другие доказательстваприведены без изменений, представляя собой в определенном смыследополнительные упражнения, требующие самостоятельного участиячитателя при их доказательстве, граничащего с разгадыванием и вос-становлением пропущенных участков доказательств, которые авторуработы показались очевидными.

Гл ав а 4

СТРУКТУРИРОВАННЫЕ СИСТЕМЫ ПЕРЕХОДОВ

В главе приводятся предварительные сведения по теории правиль-ных квазипорядков и теории структурированных систем переходов.

4.1. Квазипорядок

Опр е д е л е ни е. Бинарное отношение R называется отношениемчастичного порядка, если оно рефлексивно (xRx), транзитивно(xRy ∧ yRz =⇒ xRz) и антисимметрично (xRy ∧ yRx =⇒ x = y).Если отношение только рефлексивно и транзитивно, то оно называетсяотношением квазипорядка, или предпорядка.

Вместо xRy обычно пишут x 6R y или просто x 6 y. Будем такжеговорить, что множество X , являющееся носителем отношения R,частично упорядочено (или квазиупорядочено), не указывая явно от-ношения R, если из контекста ясно, о каком упорядочении идет речь.Если x 6 y и y 66 x, то пишут x < y и говорят, что x строго меньше y.Очевидно, что строгий порядок есть транзитивное и иррефлексивноеотношение.

Частично упорядоченное множество, в котором любые два элементасравнимы, называется линейно упорядоченным, или цепью.

Подмножество Y квазиупорядоченного множества (X ,6) называет-ся антицепью, если элементы Y попарно несравнимы, т. е. для любойпары элементов x 6= y из Y не выполняется ни x 6 y, ни y 6 x.

Элемент a квазиупорядоченного множества X называется мини-мальным элементом этого множества, если в X нет ни одного эле-мента x, удовлетворяющего условию x < a.

Если всякое непустое подмножество множества X имеет минималь-ный (в этом подмножестве) элемент, то это эквивалентно тому, что в Xнет бесконечно строго убывающих цепей вида x0 > x1 > x2 > . . . .

Квазипорядок 6 на множестве X называется правильным (well-quasi-ordering), если для любой бесконечной последовательности x0,x1, x2, x3, . . . элементов из X существуют индексы i < j такие, чтоxi 6 xj .

Page 46: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

90 Гл. 4. Структурированные системы переходов

Утв е ржд е ни е 4.1. Квазипорядок 6 на множестве X являетсяправильным в том и только том случае, когда одновременно вы-полняются два следующих условия.

1. Множество X не содержит бесконечных строго убывающихцепей x0 > x1 > x2 > . . ..

2. Всякая содержащаяся в X антицепь конечна.

Дока з а т е л ь с т в о Легко заметить, что для правильного квазипо-рядка выполняется условие минимальности. Действительно, если на-рушается условие минимальности и существует бесконечная строгоубывающая последовательность x0 > x1 > x2 . . ., то для этой после-довательности для любой пары индексов i < j не выполняется xi 6 xj .

Аналогично, если существует бесконечная антицепь Y , то из эле-ментов Y можно построить бесконечную последовательность, не удо-влетворяющую условию правильности.

Докажем, что если условия 1 и 2 выполняются, то отноше-ние 6 — правильный квазипорядок. Предположим противное. Пустьx0,x1,x2, . . . — это некоторая бесконечная последовательность элемен-тов из X , для которой условие правильности не выполняется, но выпол-няются условия 1 и 2. Итак, для любых j > i не выполняется xi 6 xj .Тогда в силу конечности антицепей из этой последовательности можновыбрать подпоследовательность

xi1 > xj1, xi2 > xj2

, . . . , (4.1)

где i1 < j1 < i2 < j2 < i3 < . . . .Рассмотрим теперь последовательность xi1 , xi2 , xi3 , xi4 , . . . . Повто-

ряя предыдущие рассуждения, из нее можно выбрать подпоследова-тельность

xi′1> xj′1

, xi′2> xj′2

, . . . , (4.2)

где i′1 < j′1 < i′2 < j′2 < i′3 < . . . . Тогда, объединяя 4.1 и 4.2, имеем

xi′1> xj′

1> xk1

, xi′2> xj′

2> xk2

, . . . ,

где i′1 < j′1 < k1 < i′2 < j′2 < k2 < i′3 < . . . .Применяя аналогичные рассуждения, из данной последовательности

x0, x1, x2, . . . можно построить сколь угодно длинную строго убываю-щую подпоследовательность, что противоречит условию 2. �

Утв е ржд е ни е 4.2. Пусть отношение 6 — правильный квазипоря-док на множестве X . Тогда всякая бесконечная последовательность

4.1. Квазипорядок 91

x0, x1, x2, . . . элементов из множества X содержит бесконечнуюмонотонно возрастающую подпоследовательность вида xi0 6 xi1 6

6 xi2 6 . . ., где i0 < i1 < i2 < . . . .

Дока з а т е л ь с т в о Рассмотрим бесконечную последовательность x0,x1, x2, . . . и множество

M = {i ∈ N | ∀j > i : xi 66 xj}.

Множество M не может быть бесконечным, так как в этом случае изего элементов можно было бы выбрать бесконечную подпоследователь-ность, для которой не выполняется условие правильности. Тогда мно-жество M ограничено, и, следовательно, любая подпоследовательность,начинающаяся с индекса i /∈ M , является бесконечной возрастающейподпоследовательностью. �

Опр е д е л е ни е. Пусть отношение 6 — это правильный квазипорядокна множестве X . Идеалом, или замкнутым кверху множеством,называется подмножество I ⊆ X такое, что для x ∈ I и y ∈ X из x 6 yследует, что y ∈ I. Замкнутое книзу множество — это подмножествоI ⊆ X такое, что для x ∈ I и y ∈ X из x > y следует, что y ∈ I.

Оп р е д е л е ни е. Идеал может быть получен замыканием кверхунекоторого множества. Каждый элемент x ∈ X порождает идеал

↑x def= {y | y > x}. Базисом замкнутого кверху множества I называется

множество min(I) такое, что I =⋃

x∈min(I) ↑x.

У т в е ржд е ни е 4.3 ([35]). Если отношение 6 — это правильныйквазипорядок на множестве X , то всякий идеал I имеет конечныйбазис.

Дока з а т е л ь с т в о. Поскольку 6 — правильный квазипорядок поря-док, множество минимальных элементов идеала образует его базис.Этот базис может содержать только конечное число элементов, таккак в противном случае из этих минимальных элементов можно былобы построить бесконечную последовательность попарно несравнимыхэлементов, что противоречит условию правильности. �

Далее потребуется следующее свойство идеалов.

Page 47: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

92 Гл. 4. Структурированные системы переходов

Утв е ржд е ни е 4.4. Если отношение 6 является правильным ква-зипорядком на множестве X, то любая бесконечно возраста-ющая по отношению вложения множеств последовательностьI0 ⊆ I1 ⊆ I2 ⊆ . . . идеалов стабилизируется, т. е. найдется такоеk ∈ N, что Ik = Ik+1 = Ik+2 = . . . .

Дока з а т е л ь с т в о . Предположим противное, что для некоторой по-следовательности идеалов условия теоремы не выполняются. Выберемиз этой последовательности строго возрастающую подпоследователь-ность In0

⊂ In1⊂ In2

⊂ . . . . Тогда для каждого i > 0 найдется элементxi ∈ Ini

\Ini−1. В силу правильности среди элементов бесконечной

последовательности x1, x2, x3 . . . найдется пара xi 6 xj при i < j.Но элемент xi принадлежит идеалу Ini

, и, следовательно, xj ∈ Ini, что

противоречит условию xj /∈ Inj−1. �

Опр е д е л е ни е. Пусть отношение 6 — это некоторый квазипорядокна множестве X . Отношение 6n на множестве Xn векторов размер-ности n с элементами из X определим так, полагая для x, y ∈ Xn,x = (x1,x2, . . . ,xn), y = (y1, y2, . . . , yn), что x 6n y в том и только томслучае, когда ∀i, 1 6 i 6 n : xi 6 yi.

У т в е ржд е ни е 4.5 ([29]). Пусть отношение 6 — это правильныйквазипорядок на множестве X . Тогда отношение 6n на множествевекторов размерности n из Xn также является правильным квази-порядком.

Дока з а т е л ь с т в о. Пусть имеется некоторая бесконечная последова-тельность x0, x1, x2, . . . векторов из множества Xn. Выберем из этойпоследовательности бесконечную подпоследовательность так, чтобывсе первые координаты векторов следовали в возрастающем порядке(относительно порядка 6). Это возможно в силу утверждения 4.2.Далее из полученной подпоследовательности выберем в свою очередьбесконечную подпоследовательность, в которой вторые координатыследуют в возрастающем порядке. Повторив этот процесс для всех nкоординат, получим подпоследовательность, возрастающую в каждойкоординате, т. е. последовательность векторов xi0 , xi1 , xi2 , . . .. В этойподпоследовательности любая пара векторов удовлетворяет условию,что xi 6 xj для i < j. �

Необходимо отметить, что отношение 6n не является линейнымпорядком на Xn, даже если 6 — линейный порядок на X .

4.2. Структурированные системы переходов 93

4.2. Структурированные системы переходов

Опр е д е л е ни е. Система помеченных переходов представляет собойнабор из четырех элементов LTS = (S,T ,→, s0), где

• S — множество состояний с элементами s0, s1, s2, . . .,

• T — некоторый конечный алфавит пометок (множество имендействий),

• →⊆ (S × T × S) — отношение переходов между состояниямисистемы,

• s0 ∈ S — начальное состояние системы.

Переход (s, t, s′) обычно записывается как st→ s′ и означает, что

действие с именем t переводит состояние s в состояние s′. Состояние s′

в этом случае называется t-последующим, или просто последующимдля s, а состояние s — t-предыдущим, или просто предыдущимдля s′. Состояния, не имеющие последующих состояний, называютсяфинальными.

Через Succ(s) для состояния s обозначается множество последую-щих состояний, через Pred(s) — множество его предыдущих состояний.

Система LTS будет конечно ветвящейся, если для любого s множе-ство Succ(s) конечно. Далее будут рассматриваться системы переходов,имеющие только конечное ветвление.

Система помеченных переходов LTS имеет вычислимое отобра-жение Succ (соот. Pred), если существует эффективная процедуравычисления множества Succ(s) (соот. Pred(s)) для любого состояния s.

Последовательное исполнение для LTS есть конечная или беско-

нечная цепочка переходов s0t1→ s1

t2→ s2 → . . ., где s0 — начальное

состояние системы. Запись s∗→ s′ означает, что имеется (конечная) по-

следовательность переходов, переводящая состояние s в состояние s′.

Диаграмма переходов для LTS — это помеченный ориентирован-ный связный граф GLTS , в котором вершинами являются элементымножества состояний S, а дуги определяются отношением переходовтак, что дуга, помеченная t, соединяет вершину s с вершиной s′ в том

и только том случае, когда st→ s′.

Очевидно, что каждому последовательному исполнению систе-мы LTS соответствует ориентированный путь с началом в вершине s0

в графе GLTS .

Page 48: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

94 Гл. 4. Структурированные системы переходов

Деревом достижимости назовем ориентированное дерево с корнемв начальном состоянии s0 системы переходов LTS, в котором вершиныпомечаются элементами из S, а дуги определяются в соответствиис отношением переходов.

В отличие от диаграммы переходов в дереве достижимости разныевершины могут иметь одну и ту же метку из множества состояний S.Дерево достижимости представляет собой множество всех возможныхисполнений системы переходов LTS.

1s

t t

1s′≤

2s 2s′≤

Рис. 4.1. Свойство совместимости по возрастанию

Опр е д е л е ни е. Вполне структурированной системой переходов с сов-местимостью по возрастанию называется система переходов LTS == (S,T ,→, s0), дополненная отношением квазипорядка 6 ⊆ S × S,удовлетворяющим следующим двум условиям:

1) отношение 6 является правильным квазипорядком;

2) отношение 6 совместимо по возрастанию с отношением переходов→, т. е. для любых двух состояний s1 и s′1, s1 6 s′1, и любого

перехода s1t→ s2 существует переход s′1

t→ s′2 такой, что s2 6 s′2.

Свойство совместимости по возрастанию правильного квазипорядкас отношением переходов представлено в виде диаграммы на рис. 4.1.

Оп р е д е л е ни е. Система переходов (LTS,6) имеет разрешимое от-ношение порядка 6 на множестве состояний S, если существуетэффективная процедура проверки истинности s 6 s′ для любых двухсостояний s и s′ из S.

Одной из основных проблем систем переходов является проблема

достижимости, состоящая в проверке выполнимости s0∗→ s для двух

состояний s0 и s.

4.2. Структурированные системы переходов 95

Вместо того чтобы решать проблему достижимости, часто можноограничиться проверкой, может ли быть достигнуто некоторое состоя-ние s′, покрывающее данное состояние s, т. е. состояние s′ > s.

Оп р е д е л е ни е. Проблема покрытия для данного состояния s0 и за-данного своим конечным базисом идеала I состоит в проверке дости-жимости из s0 состояния, попадающего в идеал I. В частности, дляI = ↑s, где s — некоторое состояние системы, проблема покрытиясостоит в проверке достижимости из состояния s0 состояния s′, s′ > s.

Для решения проблемы покрытия в случае вполне структурирован-ных систем переходов с совместимостью по возрастанию используетсяметод насыщения (saturation method), основанный на свойстве ста-билизации возрастающей последовательности замкнутых кверху мно-жеств (идеалов) (см. утверждение 4.4).

Пусть (LTS,6) — вполне структурированная система переходовс совместимостью по возрастанию. Напомним, что

↑X = {y ∈ S | x ∈ X : y > x}, где X ⊆ S.

Через Pred(s) =⋃

t∈T Predt(s), где Predt(s) = {s′ ∈ S | s′t→ s},

будем обозначать множество непосредственных предшественников со-стояния s. Соответственно для множества состояний X ⊆ S полагаем

Pred(X) =⋃

s∈X

Pred(s).

Пусть I — идеал. Рассмотрим последовательность I0 ⊆ I1 ⊆ . . .,где I0 = I, Ii+1 = Ii ∪ Pred(Ii). Через Pred

∗(I) обозначим пределэтой последовательности, т. е. множество Pred∗(I) =

i Ii. Решениепроблемы покрытия для заданных состояний s0 и s состоит в проверкетого, что s0 ∈ Pred

∗(↑s).

У т в е ржд е ни е 4.6 ([31]). Пусть (LTS,6) — вполне структуриро-ванная система переходов с совместимостью по возрастанию,I ⊆ S — замкнутое кверху множество (идеал) (относительно ква-зипорядка 6). Тогда Pred

∗(I) также является замкнутым кверхумножеством (относительно 6).

Дока з а т е л ь с т в о. Покажем сначала, что если множество I замкну-то кверху, то Pred(I) также является замкнутым кверху множеством.Действительно, пусть состояние s ∈ Pred(I), т. е. существует состояниеs′ ∈ I такое, что s → s′, и пусть r > s. По свойству совместимости

Page 49: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

96 Гл. 4. Структурированные системы переходов

найдется состояние r′ такое, что r → r′ и r′ > s′, т. е. r ∈ Pred(r′)и r′ ∈ I. Это значит, что r ∈ Pred(I).

Поскольку объединение двух идеалов также является идеалом,применив индукцию, из доказанного получаем, что для любого индекса

i > 0 множество Ii, где I0 = I, Ii+1 = Ii ∪ Pred(Ii) = Predi(I), такжеявляется замкнутым кверху множеством (идеалом).

Пусть теперь s ∈ Pred∗(I). Тогда s ∈ Ii для некоторого i > 0.

Поскольку Ii является идеалом, из r > s следует r ∈ Predi(I), а значит,

и r ∈ Pred∗(I). �

Из доказательства приведенного выше утверждения и утвержде-ния 4.4 следует, что последовательность I0 ⊆ I1 ⊆ . . ., где I0 = I,Ii+1 = Ii∪Pred(Ii), стабилизируется, т. е. начиная с некоторого k будетвыполнено Ik = Ik+1 = . . . = Pred∗(I). Заметим, что стабилизациянаступает после того, как в последовательности два последовательныхмножества оказываются равными.

Множество Pred∗(I) может быть эффективно вычислено при усло-

вии еще одного дополнительного предположения.

Оп р е д е л е ни е. Вполне структурированная система переходов(LTS,6) с совместимостью по возрастанию имеет эффективныйпредбазис, если для любых состояния s ∈ S и пометки t ∈ T можетбыть эффективно вычислен конечный базис min(Predt(↑s)). Обозначимpb(s) конечный базис множества Pred(↑s) =

t∈T Predt(↑s), т. е.pb(s) = min(Pred(↑s)).

Пусть вполне структурированная система переходов (LTS,6) с сов-местимостью по возрастанию имеет эффективный предбазис. Для за-мкнутого кверху множества I с конечным базисом Ib построим бес-конечную последовательность B0,B1, . . . множеств таких, что B0 = Ib

и Bi+1 = Bi∪pb(Bi). Рассмотрим последовательность ↑B0 ⊆ ↑B1 ⊆ . . ..В силу утверждения 4.4 эта последовательность стабилизируется.Пусть m — первый индекс, для которого ↑Bm = ↑Bm+1. Тогда спра-ведливо следующее

У т в е ржд е ни е 4.7 ([31]). При определенных выше условиях

1. ↑Bm =↑ ⋃

i∈NBi.

2. ↑ ⋃

i∈NBi = Pred∗(I).

4.2. Структурированные системы переходов 97

Дока з а т е л ь с т в о. Первое утверждение следует из дистрибутивно-сти операций Pred и ↑ относительно объединения множеств, а такжеиз того, что если для множеств R и R′ выполняется ↑R = ↑R′, то↑pb(R) = ↑pb(R′).

Докажем второе утверждение. Индукцией по n проверяется, что

Bn ⊆ ↑Bn ⊆ Pred∗(I)(= ↑Pred∗(I)).

С другой стороны, из определения предбазиса следует, что

↑Predn(I) ⊆ ↑Bn

и, следовательно,

Pred∗(I) ⊆

i∈N

↑Bi ⊆↑⋃

i∈N

Bi ⊆ ↑Pred∗(I).

Эффективное решение проблемы покрытия основано на следующемутверждении.

У т в е ржд е ни е 4.8 ([31]). Пусть вполне структурированная сис-тема переходов с совместимостью по возрастанию (LTS,6) имеетэффективный предбазис и разрешимое отношение 6. Тогда суще-ствует эффективная процедура построения конечного базиса мно-жества Pred∗(I) по произвольному замкнутому кверху множеству I,заданному своим конечным базисом.

Дока з а т е л ь с т в о. В силу доказанного выше можно эффективнопорождать последовательность B0,B1, . . ., поскольку каждое множе-ство Bi конечно и базис pb эффективно вычисляется. Из разрешимости6 следует разрешимость проверки ↑B = ↑B′ для конечных множеств Bи B′, и, следовательно, индекс m, начиная с которого последователь-ность стабилизируется, может быть эффективно вычислен. В результа-те получаем Bm — вычислимый базис идеала Pred

∗(I). �

Утв е ржд е ни е 4.9 ([31]). Проблема покрытия разрешима длявполне структурированных систем переходов с совместимостьюпо возрастанию, имеющих эффективный предбазис и разрешимоеотношение порядка 6.

Дока з а т е л ь с т в о. Проблема покрытия для двух данных состоянийs0 и s состоит в проверке s0 ∈ Pred

∗(↑s). Согласно утверждению 4.8

4 Кузьмин Е. В., Соколов В.А.

Page 50: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

98 Гл. 4. Структурированные системы переходов

можно эффективно вычислить конечный базис B множества Pred∗(↑s).

Тогда проблема покрытия сводится к проверке s0 ∈ ↑B. В силу разре-шимости отношения 6 проверка s0 ∈ ↑B для конечного множества Bтакже может быть эффективно выполнена.

В случае, когда проверяется более общее свойство s ∈ Pred∗(↑I),где I — замкнутое кверху множество, заданное своим конечным ба-зисом b1, . . . , bk, мы имеем ↑I =

i=1,...,k ↑bi, и достаточно проверить,

выполняется ли условие s ∈ Pred∗(↑bi) для некоторого i = 1, . . . , k. �

Проблема покрытия часто рассматривается как проблема дости-жимости управляющего состояния в случае, если множество состо-яний S вполне структурированной системы переходов (LTS,6) имеетвид Q×D, где Q — конечное множество управляющих состояний, D —бесконечное множество (на котором задан правильный квазипорядок)значений некоторых характеристик. В этом случае правильный квази-порядок 6 на множестве S = Q×D определяется следующим образом:

(q, d) 6 (q′, d′) ⇐⇒ q = q′ ∧ d 6 d′.

Объединение и пересечение замкнутых кверху множеств — замкну-тое кверху множество. Но, в отличие от объединения, не для всехвполне структурированных систем переходов может быть построенопересечение множеств состояний, образующих замкнутые кверху мно-жества. Поэтому введем следующее понятие для систем переходов,которое потребуется нам в дальнейшем.

Оп р е д е л е ни е. Вполне структурированная система переходов с сов-местимостью по возрастанию является эффективной по пересечению,если для любых состояний s и s′ вычислимо множество min(↑s ∩ ↑s′).

Для анализа некоторых свойств структурированных систем перехо-дов используется конструкция покрывающего дерева [30].

Оп р е д е л е ни е. Покрывающим деревом вполне структурированнойсистемы переходов с совместимостью по возрастанию (LTS,6) длясостояния s0 ∈ S называется конечный ориентированный граф (дерево)такой, что

1) вершины дерева помечены состояниями системы LTS;

2) каждая вершина объявлена либо живой, либо мертвой;

3) корню дерева приписана пометка s0, и эта вершина объявленаживой;

4.2. Структурированные системы переходов 99

4) мертвые вершины не имеют потомков;

5) живая вершина с пометкой s имеет по одному потомку, поме-ченному s′, для каждого состояния s′ ∈ Succ(s);

6) если на пути от корня дерева до некоторой вершины с пометкойs′ встречается вершина с пометкой s такой, что s 6 s′, тоговорят, что s′ покрывает s (или s покрывается s′), и вершина s′

объявляется мертвой; в противном случае s′ — живая вершина.

Листья в покрывающем дереве помечены финальными или покры-вающими состояниями. Для вполне структурированных систем пере-ходов с совместимостью по возрастанию частичный порядок 6 явля-ется правильным. Благодаря этому все пути в покрывающем деревеконечны, так как всякий бесконечный путь должен был бы содержатьпокрывающую вершину. В силу леммы Кёнига [37] о конечных дере-вьях, если покрывающее дерево не имеет бесконечных ветвлений, тооно конечно.

Более того, очевидно, имеет место следующее утверждение.

У т в е ржд е ни е 4.10. Если отношение квазипорядка 6 разрешимои отображение Succ вычислимо, то покрывающее дерево для вполнеструктурированной системы переходов с совместимостью по воз-растанию может быть эффективно построено.

Для построения дерева покрытия не требуется совместимости меж-ду отношениями упорядоченности 6 и перехода →. Однако именнопри выполнении условия совместимости покрывающее дерево содержитполезную информацию о свойствах поведения системы.

Пусть, например, подмножество I ⊆ S является замкнутым кверхумножеством (идеалом). Покрывающее дерево позволяет ответить навопрос: существует ли такая последовательность переходов системы,что все промежуточные состояния будут принадлежать идеалу I.

У т в е ржд е ни е 4.11. Пусть (LTS,6) — вполне структурирован-ная система переходов с совместимостью по возрастанию, I —замкнутое кверху множество. Последовательность переходов си-стемы из состояния s такая, что все промежуточные состоянияпринадлежат идеалу I, существует тогда и только тогда, когдапокрывающее дерево системы содержит путь от корня s к листу,в котором все вершины имеют пометки из I.

4*

Page 51: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

100 Гл. 4. Структурированные системы переходов

Дока з а т е л ь с т в о следует непосредственно из определений. �

Для правильного квазипорядка 6 всякое замкнутое кверху множе-ство I имеет конечный базис (см. утверждение 4.3), т. е. представимов виде I = {s ∈ S | s > s1 ∨ . . . ∨ s > sk}. Таким образом, еслиотношение 6 разрешимо, то для любого состояния s ∈ S вполнеструктурированной системы переходов с совместимостью по возрас-танию эффективно проверяется его принадлежность к идеалу I. Еслик тому же функция Succ является вычислимой, то проверка того, чтовсе вершины некоторого пути в конечном покрывающем дереве имеютпометки из I, может быть эффективно выполнена.

Рассматриваемая задача для замкнутого кверху множества I, за-данного своим конечным базисом, называется проблемой поддержкиуправляющего состояния (control state maintainability problem).

Таким образом, из утверждения 4.11 следует

У т в е ржд е ни е 4.12 ([28]). Проблема поддержки управляющего со-стояния разрешима для вполне структурированных систем перехо-дов с совместимостью по возрастанию, разрешимым отношениемправильного квазипорядка 6 и вычислимой Succ.

Пусть теперь D ⊆ S — замкнутое книзу множество, т. е. длялюбых x ∈ D и y ∈ S, если y 6 x, то y ∈ D. Очевидно, что если D —замкнутое книзу множество, то его дополнение I = S\D являетсязамкнутым кверху множеством. Ко-базисом D будем называть базисI = S\D.

Двойственной к проблеме поддержки управляющего состояния яв-ляется проблема неизбежности (inevitability problem): по данномуконечному ко-базису замкнутого книзу множества D и начальномусостоянию s0 определить, верно ли, что всякое исполнение приводитк некоторому состоянию из D. В качестве двойственного к утвержде-нию 4.12 получаем:

У т в е ржд е ни е 4.13 ([28]). Проблема неизбежности разрешимадля вполне структурированных систем переходов с совместимо-стью по возрастанию, разрешимым отношением квазипорядка 6

и вычислимой Succ.

Частным, но очень важным случаем проблемы неизбежности яв-ляется проблема останова: по данному начальному состоянию s0

4.2. Структурированные системы переходов 101

определить, верно ли, что всякое исполнение завершается, т. е. при-водит к некоторому финальному состоянию. Множество финальныхсостояний является замкнутым книзу множеством в силу свойствасовместимости по возрастанию вполне структурированных систем пе-реходов. Действительно, всякое состояние s, которое меньше неко-торого финального состояния s′, само является финальным, так какв противном случае, если есть переход, который может сработать в s,то существует переход (возможно, с той же пометкой), который мог бысработать и в s′.

У т в е ржд е ни е 4.14 ([31]). Проблема останова разрешима длявполне структурированных систем помеченных переходов с совме-стимостью по возрастанию, разрешимым отношением порядка 6

и вычислимой Succ.

Дока з а т е л ь с т в о. Для проверки того, что всякое исполнение в си-стеме переходов завершается, достаточно перебрать все листья в конеч-ном покрывающем дереве системы и убедиться, что все они помеченыфинальными состояниями. �

1s

t t

1s′≤

2s 2s′≤

Рис. 4.2. Свойство совместимости по убыванию

Опр е д е л е ни е. Вполне структурированная система переходов с сов-местимостью по убыванию — это система помеченных переходовLTS = (S,T ,→, s0), дополненная отношением правильного квазипоряд-ка 6 ⊆ S × S, совместимым по убыванию с отношением переходов →,

т. е. для любых состояний s1 и s′1, s1 6 s′1, и любого перехода s′1t→ s′2

существует переход s1t→ s2 такой, что s2 6 s′2.

Свойство совместимости по убыванию правильного квазипорядка 6

с отношением переходов → представлено в виде диаграммы на рис. 4.2.

Page 52: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

102 Гл. 4. Структурированные системы переходов

Пусть K и K ′ — множества состояний вполне структурированнойсистемы переходов (LTS,6) с совместимостью по убыванию. Введемновое обозначение Succ=(K) = K ∪ Succ(K).

У т в е ржд е ни е 4.15 ([31]). Если для множеств K и K ′ выполнено↑K ⊆ ↑K ′, то ↑Succ=(K) ⊆ ↑Succ=(K ′).

Дока з а т е л ь с т в о. Предположим, что s ∈ ↑Succ=(K), причемs /∈ ↑K, так как иначе из s ∈ ↑K следовало бы s ∈ ↑Succ=(K ′).

Тогда существуют s1 ∈ K и переход s1t→ s′1 такой, что s′1 6 s.

Поскольку ↑K ⊆ ↑K ′, существует s2 ∈ K ′ такое, что s2 6 s1. Таккак LTS обладает свойством совместимости по убыванию, существует

последовательность переходов s2 → . . .t→ s′2 такая, что s′2 6 s′1.

Следовательно, s′2 6 s. Получили, что поскольку s′2 ∈ Succ=(K ′), тои s ∈ ↑Succ=(K ′). �

Пусть s — это состояние вполне структурированной системы пере-ходов (LTS,6) с совместимостью по убыванию. Определим последова-тельность K0,K1, . . ., где K0 = {s}, Kn+1 = Kn∪Succ(Kn). Пусть m —первый индекс в этой последовательности такой, что ↑Km = ↑Km+1.Такой индекс существует по утверждению 4.4. Тогда имеем следующее

У т в е ржд е ни е 4.16 ([31]). ↑Km = ↑ ∪ i∈NKi = ↑Succ∗(s).

Дока з а т е л ь с т в о. Первое равенство в выражении следует из утвер-ждения 4.15, второе — из определения Ki. �

Утв е ржд е ни е 4.17 ([31]). Пусть (LTS,6) — это вполне струк-турированная система переходов с совместимостью по убываниюс разрешимым отношением порядка 6. Тогда для любого состояниясистемы переходов LTS возможно построить конечный базис мно-жества ↑Succ∗(s).

Дока з а т е л ь с т в о проводится по аналогии с доказательством утвер-ждения 4.8. Последовательность из множеств K0,K1, . . .Km, где↑Km = ↑Km+1, может быть эффективно построена. Множество Km

является конечным (но, возможно, избыточным) базисом замкнутогокверху множества ↑Succ∗(s). �

4.3. Автоматные системы переходов 103

Проблема субпокрытия для некоторого состояния s системы пере-ходов LTS состоит в проверке достижимости из заданного состояния s0

покрываемого состояния, т. е. состояния s′ 6 s.

У т в е ржд е ни е 4.18 ([31]). Проблема субпокрытия является раз-решимой для вполне структурированных систем помеченных пере-ходов с совместимостью по убыванию, имеющих разрешимое отно-шение порядка 6.

Дока з а т е л ь с т в о. По утверждению 4.17 может быть построен ко-нечный базис K множества ↑Succ∗(s0). Из состояния s0 существуетисполнение в некоторое состояние s′ 6 s тогда и только тогда, когдаs ∈ ↑K. Поскольку отношение 6 разрешимо, то возможно осуществитьпроверку s ∈ ↑K. �

4.3. Автоматные системы переходов

Опр е д е л е ни е. Вполне структурированная система переходов авто-матного типа WSA — это система помеченных переходов LTS == (S,T ,→, s0), дополненная отношением правильного квазипорядка6 ⊆ S × S, где S = Q × D, Q — конечное множество управляющихсостояний, D — конечное или бесконечное множество (на которомзадан правильный квазипорядок) значений некоторых характеристик,s0 ∈ S — начальное состояние, отношение →⊆ S × T × S такое, что∃ →• ⊆ Q × T × Q : (q, t, q′) ∈ →•, если ∃((q, d), t , (q′, d′)) ∈ →,

а из существования перехода qt→• q′ следует, что ∀ d1, d

1 ∈ D, d1 6 d′1,существуют переходы

(q, d1)t→ (q′, d2) и (q, d′1)

t→ (q′, d′2) при d2 6 d′2;

отношение 6 определяется так, что (q, d) 6 (q′, d′) ⇐⇒ q = q′ и d 6 d′.

Далее вполне структурированные системы переходов автоматноготипа будем называть автоматными структурированными система-ми переходов.

Л е мм а 4.1. Автоматная структурированная система переходовWSA = (LTS,6) удовлетворяет условиям совместимости по возрас-танию и совместимости по убыванию отношения 6 с отношением

переходов →, т. е. ∀s1, s′

1 ∈ S, s1 6 s′1, из существования s1t→ s2

Page 53: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

104 Гл. 4. Структурированные системы переходов

следует существование s′1t→ s′2 при s2 6 s′2, а из существования

s′1t→ s′2 следует существование s1

t→ s2 при s2 6 s′2.

Дока з а т е л ь с т в о. Выполнимость свойств совместимости по возрас-танию и убыванию для WSA следует непосредственно из определенияавтоматной структурированной системы переходов. �

Лемм а 4.2. Любая вполне структурированная система переходовс совместимостью по возрастанию и убыванию является (можетбыть представлена в виде) автоматной структурированной систе-мой переходов.

Дока з а т е л ь с т в о. Пусть WTSud = (LTS,6) — это вполне струк-турированная система переходов с совместимостью по возрастанию иубыванию.

Покажем, что система WTSud является частным случаем вполнеструктурированной системы переходов автоматного типа WSA, длякоторой опущены управляющие состояния. Для этого необходимов множестве состояний S системы WTSud выявить конечное множествотаких непересекающихся групп (подмножеств) состояний, что междуэтими группами будет существовать отношение переходов, удовлетво-ряющее определению автоматной структурированной системы перехо-дов. Основная идея состоит в том, чтобы разбить множество S нанепересекающиеся замкнутые кверху множества и задать отношениепереходов на множестве этих идеалов таким образом, чтобы любойпереход из одного состояния системы WTSud в другое означал наличиеперехода (с той же пометкой) между идеалами, к которым принадлежатсоответствующие состояния.

Рассмотрим базис множества S, т. е. множество min(S) минималь-ных по отношению 6 состояний системы переходов WTSud. Сопоста-вим каждому состоянию sbi ∈ min(S) локальное управляющее состоя-ние qki

, где 1 6 ki 6 n, n = |min(S)|, таким образом, что если для пар(qki

, sbi) и (qkj, sbj) выполняется условие ↑sbi ∩ ↑sbj 6= ∅, то qki

= qkj, т. е.

ki = kj .Построим множество Sq ⊆ Q× S,

Sq = {(qki, s) | qki

∈ Q, sbi 6 s},

где Q = {qk1, . . . , qkn

}. Множество Sq является замкнутым кверху

множеством и имеет базис min(Sq) = {(qk1, sb1), . . . , (qkn

, sbn)}.

4.3. Автоматные системы переходов 105

Зададим на множестве Sq частичный порядок 6q:

(qki, s) 6q (qkj

, s′) ⇐⇒ qki= qkj

∧ s 6 s′.

Очевидно, отношение 6q является правильным квазипорядком.Также зададим на множестве Sq отношение переходов →q таким

образом, что

(qki, s)

t→q (qkj, s′) ⇐⇒ s

t→ s′ ∧ (sbi 6 s ∨ sbm 6 s) ∧ (sbj 6 s′ ∨ sbl 6 s′),

где индексы i, m, j и l такие, что ki = km и kj = kl.Построим на множестве Q отношение переходов →• так, чтобы

(qki, s)

t→q (qkj, s′) =⇒ qki

t→• qkj.

Покажем, что для любых двух состояний (qki, s1) 6 (qki

, s′1) из Sq

и перехода qki

t→• qkjсуществуют переходы (qki

, s1)t→q (qkj

, s2) и

(qki, s′1)

t→q (qkj, s′2) при (qkj

, s2) 6 (qkj, s′2).

Переход qki

t→• qkjвозможен, если ∃s, s′ ∈ S : (qki

, s)t→q (qkj

, s′).

Пусть s > sbi , если s > sbm, то обозначим sbm как sbi (при ki = km). Тогда

по свойству совместимости по убыванию существует переход sbit→ s′′,

где sbi 6 s и либо sbj 6 s′′ 6 s′, либо sbl 6 s′′ 6 s′, где индексы j и l

такие, что kj = kl. Следовательно, имеем (qki, sbi)

t→q (qkj, s′′).

Если sbi 6 s1 6 s′1, то по свойству совместимости по возрастанию

существуют переходы (qki, s1)

t→q (qkj, s2) и (qki

, s′1)t→q (qkj

, s′2) приs′′ 6 s2 6 s′2.

Если sbm 6 s1 6 s′1, то имея (qki, sbi )

t→q (qkj, s′′), необходимо

показать, что существует переход (qki, sbm)

t→q (qkj, s′′′) и повторить

рассуждения, приведенные выше (в предыдущем абзаце). Итак, рас-смотрим состояние s3 такое, что s3 > sbi и s3 > sbm. Совместимость по

возрастанию обеспечивает наличие перехода (qki, s3)

t→q (qkj, s4) при

s4 > s′′. Свойство совместимости по убыванию гарантирует существо-

вание перехода (qki, sbm)

t→q (qkj, s′′′) при s′′′ 6 s4.

Таким образом, получили автоматную структурированную системупереходов WSA = (Sq,T ,→q, s

0q) с отношением порядка 6q на множе-

стве состояний, где s0q = (qki

, s0).По построению система WSA имеет некоторое исполнение

(qki, s0)

t1→q (qkj, s1)

t2→q (qkl, s2)

t3→q . . . тогда и только тогда, когда

система WTSud имеет исполнение s0t1→ s1

t2→ s2t3→ . . . . �

Page 54: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

106 Гл. 4. Структурированные системы переходов

Т ео р ем а 4.1. Класс вполне структурированных систем переходовс совместимостью по возрастанию и убыванию совпадает с клас-сом автоматных структурированных систем переходов.

Дока з а т е л ь с т в о. Справедливость теоремы следует из леммы 4.1и леммы 4.2. �

Отсюда следует, что для класса автоматных структурированных си-стем переходов имеем разрешимость проблем покрытия, субпокрытия,достижимости управляющего состояния, поддержки управляющего со-стояния, неизбежности и останова при условии эффективного предба-зиса, вычислимости Succ и разрешимости правильного квазипорядка 6.

Теория структурированных систем переходов [30, 28, 31] оказы-вается полезной для решения задач анализа семантических свойствразличных формальных моделей. Обзор (однако далеко не полный)формализмов, модели в рамках которых представляют собой вполнеструктурированные системы переходов разных классов, может бытьнайден в работе [31]. Среди формализмов, не вошедших в этот обзор,отметим, например, формализм вложенных сетей Петри [21], предло-женный И.А. Ломазовой.

В главе введен новый класс структурированных систем помеченныхпереходов — автоматные структурированные системы переходов. Дока-зывается, что класс автоматных структурированных систем переходовсовпадает с классом структурированных систем переходов с совмести-мостью по возрастанию и убыванию отношения переходов с правиль-ным квазипорядком на множестве состояний системы (см. рис. 4.3).Это означает, что если для структурированной системы переходоводновременно выполняются свойство совместимости по возрастаниюи свойство совместимости по убыванию, то бесконечное множествосостояний такой системы разбивается на конечное число классов эк-вивалентности, каждый из которых является замкнутым кверху мно-жеством, а переход из одного состояния в другое определяется исклю-чительно принадлежностью этих состояний соответствующим классамэквивалентности, поскольку это диктуется отношением переходов, име-ющемся на конечном множестве классов эквивалентности. Другимисловами, в основе отношения переходов по состояниям системы лежитконечный автомат, состояниями которого являются классы эквивалент-ности. Наличие такого управляющего автомата в основе отношенияпереходов на множестве состояний системы дало название введенному

4.3. Автоматные системы переходов 107

1s

t t

1s′≤

2s 2s′≤

1s

t t

1s′≤

2s 2s′≤

Совместимость по возрастанию Совместимость по убыванию

Автоматные структурированные системы переходов

Рис. 4.3. Класс автоматных структурированных систем переходов

в этой главе новому классу автоматных структурированных системпереходов.

С практической точки зрения автоматную структурированную си-стему переходов можно интерпретировать как конечный автомат, совер-шающий манипуляции с данными, но переходы самого автомата никакне зависят от манипулируемых данных.

Преимущественно существующие формализмы позволяют строитьформальные модели, представляющие собой структурированные систе-мы переходов либо с совместимостью по возрастанию, либо с совме-стимостью по убыванию. Однако, исследователями совсем не уделяет-ся внимание формализмам, модели в рамках которых удовлетворялибы условию одновременной выполнимости свойств совместимости повозрастанию и совместимости по убыванию. Исходя из этого напраши-вается вывод, что, возможно, допущение одновременного выполнениядвух свойств совместимости по возрастанию и по убыванию отноше-ния переходов с правильным квазипорядком на множестве состоянийсистемы приводит к вырожденной (весьма слабой по выразительнойспособности) системе. В следующих главах будет показано, что это нетак и такого рода формализмы могут быть весьма интересны, имеядостаточную вычислительную мощность. В частности, далее будетпредложен и исследован нетривиальный формализм этого класса —автоматные счетчиковые машины.

Page 55: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

108 Гл. 4. Структурированные системы переходов

В качестве примера формализма, позволяющего строить формаль-ные модели, которые могут быть рассмотрены как автоматные структу-рированные системы переходов, отметим специальный фрагмент алгеб-ры процессов, определяемой в стиле CSP Хоара и CCS Милнера. Однаиз возможных конкретных реализаций этого фрагмента алгебры про-цессов — это формализм для моделирования распределенных систем,позволяющий отслеживать перемещение данных различного типа меж-ду компонентами системы, — взаимодействующие раскрашивающиепроцессы (Communicating Colouring Processes) [12].

Глава написана на основе источников [11, 21, 31].

Гл ав а 5

АВТОМАТНЫЕ СЧЕТЧИКОВЫЕ МАШИНЫ

Глава посвящена слабым счетчиковым машинам, способным лишьслабо реализовывать вычислимые функции, т. е. из-за недетерминизмапереходов такие счетчиковые машины вычисляют значение некоторойфункции f(x1, . . . ,xn), останавливаясь с результатом в счетчике y,только таким образом, что y 6 f(x1, . . . ,xn).

5.1. Слабые счетчиковые машины

На основе счетчиковой машины Минского Построим новую счет-чиковую машину (в несколько обобщенном виде), для которой припроверке на нуль значения счетчика может происходить неверное рас-познавание нуля (т. е. положительное значение счетчика может бытьпринято машиной за нулевое). Такую машину будем называть слабойсчетчиковой машиной. Определение слабой счетчиковой машины да-дим в следующем виде.

Оп р е д е л е ни е. Слабая счетчиковая машина представляет собойнабор из четырех элементов (Q, {x1, . . . ,xm},→,T ), где

• xi — счетчик (1 6 i 6 m);

• Q = {q0, . . . , qf} — конечное множество состояний;

• q0 — начальное состояние, qf — финальное состояние;

• T — конечное множество меток действий, соответствующих вы-ражениям над счетчиками;

• →⊆ Q\{qf} × T × Q — отношение переходов; запись qt→ q′

используется для обозначения правила перехода (q, t, q′).

Переход из одной конфигурации в другую может быть одного из

следующих видов (при qt→ q′):

(q, c1, . . . , ci, . . . , cm)t→ (q′, c1, . . . , ci+1, . . . , cm), если t соответству-

ет выражению xi := xi + 1;

Page 56: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

110 Гл. 5. Автоматные счетчиковые машины

(q, c1, . . . , ci, . . . , cm)t→ (q′, c1, . . . , ci−1, . . . , cm), если t соответству-

ет выражению xi := xi − 1; переход возможен лишь в случае ci > 0;

(q, c1, . . . , ci, . . . , cm)t→ (q′, c1, . . . , ci, . . . , cm), если t соответствует

выражению xi := xi.

Как видно из определения отношения переходов, одной конфигура-ции машины могут соответствовать несколько готовых к срабатываниюкоманд. В этом случае срабатывание таких команд происходит недетер-минировано, т. е. для срабатывания выбирается любая из них.

Счетчиковые машины этого класса являются вполне структуриро-ванными системами переходов со строгой совместимостью по возрас-танию. Отсюда имеем для них разрешимость проблем общей огра-ниченности и ограниченности заданного счетчика, а также проблемыпокрытия. Проблема ограниченности в данном случае состоит в про-верке того, являются ли все исполнения из начальной конфигурациисчетчиковой машины ограниченными. Разрешимость этих проблем до-казывается с помощью дерева покрытия.

Пусть задан класс слабых счетчиковых машин, которые имеют однои то же множество счетчиков.

Оп р е д е л е ни е. Проблема включения состоит в определении су-ществования алгоритма, устанавливающего для любых двух слабыхсчетчиковых машин wcM1 и wcM2 из этого класса, имеет ли местосоотношение

R(wcM1) ⊆ R(wcM2),

где R(wcMi) — множество достижимых векторов значений счетчиковиз начальной конфигурации для машины wcMi (i = 1, 2). В случаепроблемы эквивалентности соотношение имеет вид

R(wcM1) = R(wcM2).

Обе проблемы не являются разрешимыми для слабых счетчиковыхмашин. Доказательства проводятся сведением неразрешимой 10-й про-блемы Гильберта [23] к рассматриваемым проблемам.

Проблема Гильберта формулируется следующим образом: суще-ствует ли алгоритм, с помощью которого можно выяснить, имеет липолином

P (x1,x2, . . . ,xn)

5.1. Слабые счетчиковые машины 111

с целыми коэффициентами целое решение, т. е. существует ли векторцелых чисел (c1, c2, . . . , cn) такой, что P (c1, c2, . . . , cn) = 0? Уравнение

P (x1,x2, . . . ,xn) = 0

называется диофантовым. В общем виде оно представляет собой сум-му членов:

P (x1, . . . ,xn) =∑

i

Pi(x1, . . . ,xn),

где Pi(x1,x2, . . . ,xn) = ai · xs1· xs2

· . . . · xsh .

Доказательство неразрешимости задачи эквивалентности слабыхсчетчиковых машин состоит из трех частей. Сначала 10-я проблемаГильберта сводится к задаче включения графов полиномов. Затемзадача включения графов полиномов сводится к задаче включения дляслабых счетчиковых машин. Наконец, задача включения для слабыхсчетчиковых машин сводится к задаче эквивалентности для слабыхсчетчиковых машин. Это показывает, что 10-я проблема Гильберта,известная как неразрешимая, сводится к задаче эквивалентности, ко-торая поэтому также должна быть неразрешимой.

Граф G(P ) диофантова полинома P (x1, . . . ,xn) с неотрицательнымикоэффициентами — это множество

G(P ) = {(x1, . . . ,xn, y) | y 6 P (x1, . . . ,xn) ∧ 0 6 x1, . . . ,xn, y}.

Задача включения графов полиномов заключается в определе-нии для двух диофантовых полиномов A и B, выполняется лиG(A) ⊆ G(B).

Т е о р ем а 5.1. Задача включения графов полиномов неразрешима.

Дока з а т е л ь с т в о проводится сведением 10-й проблемы Гильберта кзадаче включения графов полиномов.

Ограничим доказательство задачами с целыми неотрицательны-ми решениями. Если вектор (x1, . . . ,xn) — это решение уравненияP (x1, . . . ,xn) = 0 с xi < 0, то (x1, . . . ,−xi, . . . ,xn) — решение дляP (x1, . . . ,−xi, . . . ,xn) = 0. Следовательно, для определения того, яв-ляется ли (x1, . . . ,xn) решением произвольного полинома, необходимотолько проверить каждый из 2n полиномов, получающихся в резуль-тате изменения знака у некоторого подмножества переменных длянеотрицательного решения.

Page 57: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

112 Гл. 5. Автоматные счетчиковые машины

Аналогично, поскольку P 2(x1, . . . ,xn) = 0 тогда и только тогда, ког-да P (x1, . . . ,xn) = 0, необходимо рассматривать только те полиномы,значения которых неотрицательны.

Сейчас мы можем разбить любой полином P (x1,x2, . . . ,xn) на дваполинома Q1(x1, . . . ,xn) и Q2(x1, . . . ,xn) такие, что

P (x1, . . . ,xn) = Q1(x1, . . . ,xn)−Q2(x1, . . . ,xn),

помещая все члены с положительными коэффициентами в Q1, а всечлены с отрицательными коэффициентами — в Q2. Поскольку

P (x1, . . . ,xn) > 0,

имеем, что Q1(x1, . . . ,xn) > Q2(x1, . . . ,xn) и P (x1, . . . ,xn) = 0 тогда итолько тогда, когда Q1(x1, . . . ,xn) = Q2(x1, . . . ,xn).

Рассмотрим два графа полиномов:

G(Q1) = {(x1, . . . ,xn, y) | y 6 Q1(x1, . . . ,xn)},

G(Q2 + 1) = {(x1, . . . ,xn, y) | y 6 1 +Q2(x1, . . . ,xn)}.Теперь G(Q2 + 1) ⊆ G(Q1) тогда и только тогда, когда для всехнеотрицательных x1, . . . ,xn и y из y 6 1 +Q2(x1, . . . ,xn) следует, чтоy 6 Q1(x1, . . . ,xn). Это справедливо тогда и только тогда, когда несуществует x1, . . . ,xn и y таких, что

Q1(x1, . . . ,xn) < y 6 1 +Q2(x1, . . . ,xn).

Но, как указывалось ранее, Q1 > Q2, поэтому

Q1(x1, . . . ,xn) < y 6 1 +Q2(x1, . . . ,xn) 6 1 +Q1(x1, . . . ,xn),

а поскольку все величины целые,

y = 1 +Q2(x1, . . . ,xn) = 1 +Q1(x1, . . . ,xn),

что справедливо тогда и только тогда, когда Q1 = Q2. Таким образом,мы убедились в том, что G(Q2+1) ⊆ G(Q1) тогда и только тогда, когдане существует таких x1, . . . ,xn, для которых P (x1, . . . ,xn) = 0.

Итак, для определения, имеет ли решение P (x1, . . . ,xn) = 0, необ-ходимо показать, что не выполняется G(Q2 + 1) ⊆ G(Q1). �

Для последовательного сведения проблемы включения графов поли-номов к проблемам включения и эквивалентности для слабых счетчико-вых машин будем использовать слабые счетчиковые машины в качествеабстрактных машин, «слабо» вычисляющих полиномы.

5.1. Слабые счетчиковые машины 113

Опр е д е л е ни е. Счетчиковая машина слабо вычисляет некоторый

полином P (x1, . . . ,xn), если для произвольного начального вектора

чисел c = (c1, . . . , cn) результатом на «выходе» машины может быть

любое число c′ такое, что 0 6 c′ 6 P (c1, . . . , cn). Это означает, что

вместо единственного результата, однозначно определяемого входным

вектором c, она может выдать любое из чисел, не превышающих

значения полинома P (c1, . . . , cn). Недетерминированность результата

работы отражает недетерминированность функционирования слабой

счетчиковой машины.

Необходимо показать, что слабые счетчиковые машины могут слабо

вычислять значение диофантова полинома P (x1,x2, . . . ,xn). Ограни-

чим полином P до неотрицательных значений полинома, неотрица-

тельных коэффициентов и неотрицательных значений переменных. Это

позволит нам представить значения переменных и значение поли-

нома значениями счетчиков машины. Входные значения переменных

x1,x2, . . . ,xn задаются начальной конфигурацией машины. Выходная

переменная y будет использоваться для хранения значения полинома,

где y 6 P (x1,x2, . . . ,xn).Вычисление полинома начинается в начальной конфигурации

(q0,x1, . . . ,xn, 0, . . . , 0) машины и заканчивается в финальной

конфигурации (qf ,x1, . . . ,xn, y, c1, . . . , ck), где y 6 P (x1,x2, . . . ,xn),т. е. машина попадает в состояние, из которого нет переходов.

Сейчас мы хотим показать, что можно построить слабую счетчико-

вую машину, слабо вычисляющую функцию умножения (двух чисел).

На ее основе мы можем построить составную машину, которая слабо

вычисляет значение каждого члена путем последовательной компози-

ции машин умножения и затем суммирует результаты.

Машина умножения реализуется с помощью слабой счетчиковой

машины следующим образом:

q0 : if x1 > 0 then x1 := x1 − 1; goto q1;

q0 : x1 := x1; goto qf ;

q1 : if x2 > 0 then x2 := x2 − 1; goto q2;

q1 : x2 := x2; goto q3;

q2 : z := z + 1; y := y + 1; goto q1;

q3 : if z > 0 then z := z − 1; x2 := x2 + 1; goto q3;

q3 : z := z; goto q0.

Page 58: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

114 Гл. 5. Автоматные счетчиковые машины

При начальной конфигурации (q0,x1,x2, 0, 0) в самом лучшем слу-чае эта счетчиковая машина вычисляет значение y = x1 · x2, в осталь-ных случаях y < x1 · x2.

Машина сложения реализуется следующим образом:

q0 : if x1 > 0 then x1 := x1 − 1; y := y + 1; goto q0;

q0 : x1 := x1; goto q1;

q1 : if x2 > 0 then x2 := x2 − 1; y := y + 1; goto q1;

q1 : x2 := x2; goto qf .

Из начальной конфигурации (q0,x1,x2, 0) в лучшем случае машинадостигает конфигурацию (qf , 0, 0, y), где y = x1 + x2, в остальныхслучаях (qf , c1, c2, y), где y < x1 + x2, c1 6 x1, c2 6 x2.

Слабая счетчиковая машина Mi, слабо вычисляющая некоторыйодночлен Pi = ai ·xs1

·xs2· . . . ·xsh диофантова уравнения, представляет

собой последовательную композицию машин умножения

M i1(ai,xs1

, yi1, z), Mi2(y

i1,xs2

, yi2, z), . . . , Mik(y

ik−1,xsk , y

i, z),

результат вычислений yi 6 Pi = ai · xs1· xs2

· . . . · xsh .Далее слабая счетчиковая машина M , слабо вычисляющая полином

P (x1, . . . ,xn) = P1(xs1, . . . ,xsh )+P2(xt1 , . . . ,xtg )+. . .+Pk(xw1

, . . . ,xwl),

строится как комбинация машин M1, M2, . . . , Mk, слабо вычисляющиходночлены P1, P2, . . . , Pk, и машины сложения M ′(y1, y2, . . . , yk, y).

Л е мм а 5.1. Для любого полинома P (x1, . . . ,xn) с неотрицательны-ми целыми коэффициентами может быть построена слабая счет-чиковая машина M такая, что G(P ) = Rn(M), где G(P) — графполинома P , Rn(M) — множество проекций векторов из множествадостижимости R(M) на их первые n+1 координаты, т. е.

Rn(M) = {(c1, . . . , cn, cn+1) | (c1, . . . , cn, cn+1, . . . , ck) ∈ R(M)}.

Дока з а т е л ь с т в о. Основой для построения слабой счетчиковой ма-шины M (см. рис. 5.1) служит слабая счетчиковая машина MP , слабовычисляющая полином P . К этой машине добавляются новые состоя-ния (в том числе и новое начальное), переходы и счетчики x1, . . . ,xn.Для каждого счетчика xi создаются следующие правила переходов:

qi0 : xi := xi + 1; x1i := x1

i + 1; . . . xki := xk

i + 1; goto qi0;

qi0 : xi := xi; goto qi+10 ,

5.1. Слабые счетчиковые машины 115

♥q0

♥ ...

x11 :=x1

1+1

x1 :=x1+1

x21 :=x2

1+1

xk1 :=xk

1 +1

✲❅❅■ �

�✠

❅❅❘�

�✒

✲ . . . ✲ ♥

♥ ...

x1n :=x1

n+1

xn :=xn+1

x2n :=x2

n+1

xkn :=xk

n+1

✲❅❅■ �

�✠

❅❅❘�

�✒

✲ a1 ·x1s1·. . .·x1

sh

P1

ak ·xkt1·. . .·xk

tg

Pk

✲y1 . . .yk−1✲

P =P1+. . .+Pk

y1 + . . . + yk

✻yk

✛y♥qf

Рис. 5.1. Слабая счетчиковая машина M , порождающая для P (x1, . . . , xn) графG(P ) = {(x1, . . . ,xn, y) | y 6 P (x1, . . . , xn)}

где xji — счетчик слабой машины MPj

, слабо вычисляющей одно-член Pj , который соответствует переменной xi. В качестве нового на-

чального состояния q0 возьмем q10, старое начальное состояние заменим

на qn+10 . Эти переходы позволяют задавать произвольные значения для

счетчиков x1, . . . ,xn (и для счетчиков xji каждой машины MPj

, причем

xji = xi) и передают управление машине MP . Зададим на множестве

счетчиков слабой машины M порядок так, чтобы первыми n + 1счетчиками были x1, . . . ,xn, y, где y — счетчик, в который помещаетсярезультат от слабого вычисления полинома P .

Для начальной конфигурации s0 слабой счетчиковой машины Mустановим значения счетчиков равными нулю, за исключением счет-чиков ai, которые положим равными соответствующим константам aiодночленов Pi. Тогда для слабой счетчиковой машины M с начальнойконфигурацией s0 может быть получено множество Rn(M) проекцийдостижимых векторов значений счетчиков на счетчики x1, . . . ,xn, y,которое будет равно графу G(P ) полинома P . �

Т ео р ем а 5.2. Проблема включения для слабых счетчиковых машиннеразрешима.

Дока з а т е л ь с т в о. Для двух произвольных полиномов P и S с оди-наковым числом переменных n можно построить слабые счетчиковыемашины MP и MS такие, что

G(P ) ⊆ G(S) ⇐⇒ R(MP ) ⊆ R(MS).

Пусть MP и M ′S — слабые счетчиковые машины, построенные на

основе машин, слабо вычисляющих полиномы P и S соответственно,

Page 59: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

116 Гл. 5. Автоматные счетчиковые машины

✲ M ′

S ✲ . . . ✲ ♥❍❍❍ ✟✟✟✙

❍❍❍❨vi :=vi−1

vi :=vi+1

✟✟✟

✲ . . . ✲ ♥qf

Рис. 5.2. Слабая счетчиковая машина MS ; переменные vi ∈ V \{x1, . . . ,xn, y}

причем G(P ) = Rn(MP ) и G(S) = Rn(M′S) (см. доказательство преды-

дущей леммы). Если первая машина имеет k счетчиков, а вторая — l,то число счетчиков в обеих машинах можно уравнять, добавив |k− l|счетчиков для машины с меньшим их количеством. Эти счетчикине входят в выражения каких-либо переходов, начальное значениекаждого из них полагается равным 0.

Слабая счетчиковая машина MS строится на основе машины M ′S

так, как показано на рис. 5.2. К машине M ′S добавляются новые состо-

яния и переходы. Для каждой машины будем различать счетчики x1,. . ., xn, y. Остальные счетчики, которые будем называть внутренними,переименуем как v1, v2, . . ., vr−n−1, где r — мощность множествасчетчиков V . Для каждого внутреннего счетчика vi ∈ V \{x1, . . . ,xn, y}счетчиковой машины с ошибками M ′

S построим новые переходы:

q′i : if vi > 0 then vi := vi − 1; goto q′i;

q′i : vi := vi + 1; goto q′i;

q′i : vi := vi; goto q′i+1,

где 1 6 i 6 r − n− 1.После слабого вычисления полинома S машиной M ′

S и помещениярезультата вычисления в счетчик y эти новые переходы позволяютустановить произвольное значение для каждого внутреннего счетчика.

Таким образом,

R(MP ) ⊆ R(MS) ⇐⇒ R(MP ) ⊆ Rn(M′

S)× Nr−n−1,

где Nr−n−1 — множество векторов размерности r−n− 1 из це-

лых неотрицательных чисел. Правая часть эквивалентна отношениюRn(MP ) ⊆ Rn(M

′S). Следовательно,

R(MP ) ⊆ R(MS) ⇐⇒ Rn(MP ) ⊆ Rn(M′

S).

Это означает, что для решения проблемы включения графов двухпроизвольных полиномов P и S достаточно построить слабые счетчи-ковые машины MP , M ′

S , MS, убедиться, имеет ли место включение

5.1. Слабые счетчиковые машины 117

A′ B′

C

❆❯ �✒

❅❘♥qC0

♥ ✲x1 :=x1+cB1 . . . ✲xn :=xn+cB

n

B

♥qB0

. ..

.

.

. ✲✲ ♥q

f

B′

♥qBf

♥ ✲x1 :=x1+cA1 . . . ✲xn :=xn+cA

n

A

♥qA0

✲✲xn+1 :=xn+1+1

xn+1 :=xn+1+1

xn+1 :=xn+1+1

xn+1 :=xn+1+1

. ..

.

.

. ♥qf

A′

♥qAf

Рис. 5.3. Слабые счетчиковые машины A, A′, B, B′ и C

R(MP ) ⊆ R(MS), на основании этого сделать заключение о том, имеетли место Rn(MP ) ⊆ Rn(M

′S), и на основании леммы 5.1 установить,

содержится ли G(P ) в G(S).Таким образом, если предположить разрешимость проблемы вклю-

чения для множеств достижимых векторов значений слабых счетчи-ковых машин, получаем разрешимость проблемы включения графовполиномов с неотрицательными коэффициентами, что неверно. �

Т ео р ем а 5.3. Проблема эквивалентности для слабых счетчиковыхмашин неразрешима.

Дока з а т е л ь с т в о. Для доказательства неразрешимости методомсведения достаточно показать, что проблема включения сводитсяк проблеме эквивалентности. Это означает, что нужно указатьспособ, с помощью которого для любых двух слабых счетчиковыхмашин A и B можно построить машины A′ и B′ такие, чтоR(B) ⊆ R(A) ⇐⇒ R(A′) = R(B′).

Обе машины A′ и B′ строятся добавлением нового счетчика и раз-ных переходов к одной и той же машине C, которая, в свою очередь,строится из машин A и B.

Способ конструирования машин C, A′, B′ показан на рис. 5.3(переход с выражением x := x + c соответствует последовательностииз c переходов x := x + 1). Предполагается, что машины A и Bимеют одно и то же множество счетчиков (в противном случае добав-ляются новые счетчики, как в доказательстве теоремы 5.2). Пусть Aи B имеют начальные конфигурации (qA0 , cA1 , . . . , cAn ) и (qB0 , cB1 , . . . , cBn )соответственно. Машина C строится таким образом, что из началь-

Page 60: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

118 Гл. 5. Автоматные счетчиковые машины

ного состояния qC0 существуют две последовательности переходов в

начальные состояния qA0 машины A и соответственно qB0 машины Bтакие, что из начальной конфигурации машины C, которая полагаетсяравной (qC0 , 0, . . . , 0), в состоянии qA0 мы достигаем (qA0 , cA1 , . . . , cAn ),а в состоянии qB0 — конфигурацию (qB0 , cB1 , . . . , cBn ). Таким образом,в зависимости от того, какое направление было выбрано, машина Cможет функционировать далее как машина A или машина B.

Машина A′ строится из машины C добавлением нового счетчикаxn+1, начальное значение которого полагается равным нулю, и добав-лением для каждого состояния qAi машины A перехода

qAi : xn+1 := xn+1 + 1; goto qfA′ ,

где qfA′ — финальное состояние машины A′.

Машина B′ строится из A′ добавлением нового перехода для каж-дого состояния qBi машины B

qBi : xn+1 := xn+1 + 1; goto qfB′ .

Легко видеть, что

R(C) = R(A) ∪R(B) ∪R′(C),

где R′(C) — множество достижимых векторов значений счетчиковмашины C до состояний qA0 и qB0 ,

R′(C) = {(c′1, 0, . . . , 0) | c′1 6 cA1 }∪

∪{(cA1 , c′2, . . . , 0) | c′2 6 cA2 } ∪ . . . ∪ {(cA1 , cA2 , . . . , c′n) | c′n 6 cAn }∪

∪{(c′1, 0, . . . , 0) | c′1 6 cB1 }∪

∪{(cB1 , c′2, . . . , 0) | c′2 6 cB2 } ∪ . . . ∪ {(cB1 , cB2 , . . . , c′n) | c′n 6 cBn }.

R(A′) = R(C)× {0} ∪R(A)× {1};

R(B′) = R(A′) ∪R(B)× {1} = R(C)× {0} ∪ (R(A) ∪R(B)) × {1}.Поскольку из слабой счетчиковой машины C не достижима никакая

конфигурация, где xn+1= 1, то из того факта, что

R(B) ⊆ R(A) ⇐⇒ R(A) = R(A) ∪R(B),

следует R(A′) = R(B′) ⇐⇒ R(B) ⊆ R(A). �

5.2. Автоматные счетчиковые машины 119

Из научно-технического отчета [36] об исследовании свойств дву-мерных систем векторного сложения с состояниями следует, что мно-жество достижимых конфигураций слабой двухсчетчиковой машиныпредставляет собой полулинейное множество (о полулинейных мно-жествах см. далее), но существуют слабые трехсчетчиковые машины,множество достижимости которых неполулинейно. Это означает, чтодля слабых двухсчетчиковых машин разрешимы проблемы достижимо-сти заданной конфигурации, включения и эквивалентности множествдостижимых векторов значений счетчиков. (Подробнее об этом см.,например, [8].)

5.2. Автоматные счетчиковые машины

В этом разделе вводятся автоматные счетчиковые машины в ка-честве общего средства для демонстрации неразрешимости ряда про-блем для формализмов, относящихся к классу автоматных структури-рованных систем переходов, которые могут моделировать эти машины.

Оп р е д е л е ни е. Автоматная счетчиковая машина АСM представ-ляет собой набор из восьми элементов (c0, q0, qf , Q, X , →, T , E), где

• X = {x1, . . ., xm} — конечное множество счетчиков,

• Q = {q0, . . . , qf} — конечное множество состояний,

• q0 — начальное состояние, qf — финальное состояние,

• c0 — вектор начальных значений счетчиков,

• T — конечное множество меток действий, соответствующих вы-ражению (преобразованию) над счетчиками,

• →⊆ Q \ {qf} × T × Q — отношение переходов, запись qt→ q′

используется для обозначения перехода (q, t, q′) ∈→.

Каждой метке перехода t сопоставлено некоторое выражение E(t)из множества E, представляющего собой конечное множество выраже-ний над счетчиками вида xi := xi (значение счетчика не меняется),xi := xi + 1, xi := xi ⊖ 1 или xi := xi + min(xj , 1), где ⊖ — операциявычитания до нуля, i, j = 1 . . .m.

Для удобства обозначим Xi+, Xi⊖ и Xi(Xj)+ соответственновыражения xi := xi + 1, xi := xi ⊖ 1 и xi := xi +min(xj , 1). Выражениявида xi := xi будем опускать.

Page 61: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

120 Гл. 5. Автоматные счетчиковые машины

Конфигурация автоматной счетчиковой машины — это набор

(qi, c1, . . . , cm), где qi — состояние машины, ci ∈ N — значение со-

ответствующего счетчика (N — множество натуральных чисел, вклю-

чая ноль). Переход из одной конфигурации в другую имеет вид

(q, c)t−−−→

E(t)(q′, c′), т. е. при переходе из конфигурации (q, c) в (q′, c′)

происходит изменение значения счетчика не более чем на едини-

цу в соответствии с приписанным к метке перехода t выражением-

командой E(t):

если t соответствует выражению xi := xi + 1, тогда

(q, c1, . . . , ci, . . . , cm)t−−−→

Xi+(q′, c1, . . . , ci + 1, . . . , cm);

если метка t соответствует выражению xi := xi ⊖ 1, тогда

(q, c1, . . . , ci, . . . , cm)t−−−→

Xi⊖

(q′, c1, . . . , c′i, . . . , cm),

где c′i = 0 при ci = 0 и c′i = ci − 1 при ci > 0;

если метка t соответствует выражению xi := xi +min(xj , 1), тогда

(q, c1, . . . , ci, . . . , cm)t−−−−−−→

Xi(Xj)+(q′, c1, . . . , c

′i, . . . , cm),

где c′i = ci + 1 при cj > 1 и c′i = ci при cj = 0;

если t соответствует выражению xi := xi, тогда

(q, c1, . . . , ci, . . . , cm)t→ (q′, c1, . . . , ci, . . . , cm).

Исполнение счетчиковой машины — это последовательность конфи-

гураций s0 → s1 → s2 → . . . с начальной конфигурацией s0 = (q0, c0),

индуктивно определяемая в соответствии с правилами переходов.

На множестве конфигураций счетчиковой машины естественным

образом задается отношение 6 частичного порядка. Для двух конфи-

гураций машины имеем:

(q, c1, . . . , cm) 6 (q′, c′1, . . . , c′m) ⇐⇒ q = q′ и ci 6 c′i, i = 1, . . . ,m.

Это отношение является правильным квазипорядком по лемме Диксо-

на [29] (см. утверждение 4.5).

5.2. Автоматные счетчиковые машины 121

Наряду с уже введенными обозначениями, для удобства правила

переходов по конфигурациям будем представлять в виде qt−−−→

E(t)(q′, v),

означающем, что существует переход t из состояния q в q′, прикотором к вектору старых значений счетчиков прибавляется вектор vв соответствии с выражением E(t). Например, правила переходов, дляxi := xi + min(xj , 1) и xi := xi ⊖ 1 можно переписать соответственнокак

qt−−−−−−→

Xi(Xj)+(q′, (0, . . . , 0,min(xj , 1), 0, . . . , 0))

(выражения min(xj , 1) и ⊖1 стоят в i-х позициях) и

qt−−−→

Xi⊖(q′, (0, . . . , 0,⊖1, 0, . . . , 0)),

где ⊖1 — вычитание единицы до нуля, а min(xj , 1) — функция,возвращающая минимум из единицы и значения счетчика xj .

Т е о р ем а 5.4. Система переходов (ACM ,6) является эффектив-ной по пересечению вполне структурированной системой переходовс совместимостью по возрастанию и убыванию, имеющей эффек-тивный предбазис.

Дока з а т е л ь с т в о. Из определения ACM видно, что срабатываниеперехода с пометкой t ∈ T из некоторой конфигурации не зависит отзначений счетчиков, а определяется только лишь текущим состояниемсистемы ACM . Поэтому для любых двух конфигураций s1 и s2 таких,

что s1 6 s2, переход s1t−−−→

E(t)s′1 существует тогда и только тогда, когда

существует переход s2t−−−→

E(t)s′2, причем s′1 6 s′2, так как при переходе

в конфигурациях s1 и s2 совершается одна и та же операция E(t)над счетчиками. Следовательно, для системы (ACM ,6) выполняетсяусловие совместимости квазипорядка 6 с отношением переходов → поубыванию и возрастанию.

Опишем алгоритм построения предбазиса. Построим множество ми-нимальных конфигураций ◦t, при которых переход с пометкой t можетсработать. Для некоторого перехода t ∈ T множество конфигураций

◦t = {(q, 0, . . . , 0) | ∃q′ : q t→ q′}.Обозначим через t◦ множество конфигураций, получаемых в ре-

зультате срабатывания перехода t из конфигураций ◦t. Рассмотрим

Page 62: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

122 Гл. 5. Автоматные счетчиковые машины

множество ↑s ∩ ↑t◦, состоящее из таких конфигураций s′, что s′

может быть получена в результате срабатывания перехода t и s6 s′.Это множество является замкнутым кверху множеством и в силуправильности отношения 6 имеет конечный базис, который обозначимlub(s, t◦). Конечный базис lub(s, t◦) состоит из одной конфигурациии может быть эффективно построен следующим образом. Рассмотримконфигурации

(q, c1, . . . , cm) ∈ t◦ и s = (q′, c′1, . . . , c′

m).

Для того чтобы пересечение идеалов ↑s ∩ ↑t◦ не было пустым, необхо-димо выполнение условия q = q′. Тогда

lub(s, t◦) = (q,max(c′1, c1), . . . ,max(c′m, cm)).

Пусть теперь некоторая конфигурация s′ ∈ Predt(↑s). Тогда воз-можно срабатывание перехода t, которое переводит s′ в конфигурациюs′′ ∈ ↑s. Отсюда следует, что s′′ ∈ ↑t◦. С другой стороны, для любойконфигурации s′′ такой, что s′′ ∈ ↑s и s′′ ∈ ↑t◦, можно построитьPredt(s

′′). Получаем

Predt(↑s) = Predt(↑lub(s, t◦)) = ↑Predt(lub(s, t◦)).

Эта формула задает эффективное построение конечного базиса мно-жества Predt(↑s) по конечному базису lub(s, t◦). �

Рассмотрим проблему ограниченности и покажем ее неразреши-мость для автоматных счетчиковых машин.

Оп р е д е л е ни е. Автоматная счетчиковая машина ограничена, еслиограничены все ее исполнения из начальной конфигурации, т. е. напротяжении всех исполнений машины сумма значений счетчиков небудет превосходить некоторой константы.

Т е о р ем а 5.5. Для машины Минского 2cM с двумя счетчикамии нулевой начальной конфигурацией, т. е. (q0, 0, 0), можно постро-ить автоматную трехсчетчиковую машину 3ACM с начальнойконфигурацией (q0, 0, 0, 0) такую, что 3ACM будет ограниченатогда и только тогда, когда ограничена машина 2cM .

Дока з а т е л ь с т в о. Преобразуем произвольную двухсчетчиковую ма-шину Минского 2cM в машину Минского 3cM с тремя счетчиками(и с несколько измененным набором правил переходов) следующимобразом. Добавим новый «емкостный» счетчик K. Заменим в каждом

5.2. Автоматные счетчиковые машины 123

правиле перехода машины 2cM команду xi := xi − 1 на последователь-ность из двух команд

xi := xi − 1; K := K + 1

и xi := xi + 1 на «управляемое приращение» (i = 1, 2;n = |Q|):if K > 0 then (K := K − 1; xi := xi + 1) else goto qn+1.

Наконец, добавим три новых состояния qn+1, qn+2, qn+3, и соответ-ствующие им правила переходов δn+1, δn+2, δn+3:

qn+1 : if x1 > 0 then (x1 := x1 − 1; K := K + 1; goto qn+1)

else goto qn+2,

qn+2 : if x2 > 0 then (x2 := x2 − 1; K := K + 1; goto qn+2)

else goto qn+3,

qn+3 : K := K + 1; goto q0.

В машине 3cM только правило перехода δn+3 изменяет (увеличива-ет на единицу) сумму счетчиков x1 + x2 +K.

Машина 3cM с начальной конфигурацией (q0, 0, 0, 0) ограниченатогда и только тогда, когда ограничена машина Минского 2cM с на-чальной конфигурацией (q0, 0, 0) (наличие у машины Минского 2cMбесконечного неограниченного исполнения означает наличие бесконеч-ного неограниченного исполнения и у машины 3cM , так как значениесчетчика K (изначально K = 0) бесконечно возрастает из-за прохожде-ния бесконечного числа раз через состояние qn+3, где правило переходаδn+3 увеличивает значение K на 1).

Разрешим еще один тип команд x := x ⊖ 1 для правил переходов.И добавим новый оператор недетерминированного выбора []. В 3cMзаменим каждое правило перехода

if x > 0 then comm1 else comm2,

где x ∈ {x1,x2,K}, на правило

comm1 [] (x := x⊖ 1; comm2).

В comm1 заменим каждую последовательность команд

xi := xi − 1; K := K + 1 на

K := K + min(xi, 1); K := K ⊖ 1; xj := xj + min(xi, 1); xj := xj ⊖ 1;

K := K + min(xi, 1); xi := xi ⊖ 1;

Page 63: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

124 Гл. 5. Автоматные счетчиковые машины

(i 6= j; i, j ∈ {1, 2}) и каждую последовательность команд

K := K − 1; xi := xi + 1 на

xi := xi + min(K, 1); xi := xi ⊖ 1; xj := xj + min(K, 1); xj := xj ⊖ 1;

xi := xi + min(K, 1); K := K ⊖ 1.

Таким образом, мы получили автоматную трехсчетчиковую ма-шину 3ACM . И в машине 3ACM только δn+3 увеличивает суммусчетчиков x1+x2+K, в то время как все остальные правила переходовуменьшают или оставляют без изменения эту сумму.

Машина 3ACM с начальной конфигурацией (q0, 0, 0, 0) ограниченатогда и только тогда, когда ограничена машина 3cM с начальнойконфигурацией (q0, 0, 0, 0).

Действительно, если существует некоторое неограниченное испол-нение машины 3ACM , то оно бесконечно часто проходит через состо-яние qn+3, так же как и через состояния qn+2, qn+1, q0.

По построению счетчиковой машины 3ACM имеем, что если су-ществует «составной» переход машины 3ACM , который не совпадает(по смыслу) с переходом машины Минского 3cM , то, до того какисполнение машины 3ACM вновь попадет в состояние qn+3, суммазначений счетчиков обязательно уменьшится по отношению к исходнойсумме, которая образовалась при последнем срабатывании правилапереходов δn+3.

Поскольку исполнение неограниченное и только в состоянии qn+3

сумма x1 + x2 +K может увеличиться (на единицу), то должно суще-ствовать такое неограниченное исполнение машины 3ACM из конфи-гурации (q0, 0, 0, 0), что в нем все команды вида (x := x ⊖ 1; comm2)выполняются тогда и только тогда, когда x = 0, и нет неверногоопределения нуля, т. е. оно проходит по тем же веткам, что и машинаМинского 3cM , а это означает существование неограниченного испол-нения машины 3cM . �

Сл ед с т в и е 5.1. Проблема ограниченности для автоматных трех-счетчиковых машин неразрешима.

Для доказательства неразрешимости проблем включения и эквива-лентности достаточно показать, что можно построить автоматную счет-чиковую машину, которая будет слабо вычислять значение произволь-ного диофантова полинома P (x1,x2, . . . ,xn). Как и ранее, ограничим

5.2. Автоматные счетчиковые машины 125

❆❯♥ q0♥ ✲y :=y+min((min(z, 1)+min(x1, 1))⊖1, 1)♥

♥❳❳❳❳❳❳❳②z :=z⊖1

✘✘✘✘✘✘✘✾x2 :=x2+min(z, 1)

♥qf

✲x2 :=x2⊖1

✛z :=z+min(x2, 1) x1 :=x1⊖1

✲z♥✛

❅❘y

Рис. 5.4. Автоматная счетчиковая машина, вычисляющая слабо y = x1 · x2

❆❯ ♥q0 ✲y :=y+min(x1, 1)

✛x1 :=x1⊖1

♥ ✲y :=y+min(x2, 1)

✛x2 :=x2⊖1

♥ ♥qf✲y

Рис. 5.5. Автоматная счетчиковая машина, вычисляющая слабо y = x1 + x2

задачу до неотрицательных значений полинома P , неотрицательныхкоэффициентов и неотрицательных значений переменных.

Автоматная счетчиковая машина умножения приведена на рис. 5.4.В лучшем случае эта счетчиковая машина умножения вычисляет зна-чение y = x1 · x2, в остальных случаях y < x1 · x2.

На рис. 5.4 переход с выражением

y := y + min((min(z, 1) + min(x′

1, 1))⊖ 1, 1)

соответствует набору переходов

k := k + min(x1, 1); k := k + min(z, 1); k := k ⊖ 1;

y := y + min(k, 1); k := k ⊖ 1.

Автоматная счетчиковая машина (слабого) сложения представленана рис. 5.5.

Автоматная счетчиковая машина, слабо вычисляющая некоторыйзаданный одночлен

Pi = ai · xs1· xs2

· . . . · xsk

диофантова уравнения, показана на рис. 5.6 и представляет собойкомбинацию машин умножения.

Т е о р ем а 5.6. Проблема включения для автоматных счетчиковыхмашин неразрешима.

Page 64: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

126 Гл. 5. Автоматные счетчиковые машины

✲ ai · xs1 ✲yi1 yi

1 · xs2 ✲yi2 . . . ✲yi

k−1 yik−1 · xsk

✲yik ♥qf

Рис. 5.6. Автоматная счетчиковая машина, вычисляющая слабо одночлен Pi == ai ·xs1 ·xs2 · . . . ·xsk диофантова уравнения. Каждый блок представляет собой

машину умножения

Дока з а т е л ь с т в о проводится по аналогии с доказательством рас-смотренной ранее теоремы 5.2. �

Т ео р ем а 5.7. Проблема эквивалентности для автоматных счет-чиковых машин неразрешима.

Дока з а т е л ь с т в о проводится по аналогии с доказательством рас-смотренной ране теоремы 5.3. �

Несмотря на то, что задача эквивалентности в общей формули-ровке является неразрешимой для автоматных счетчиковых машин,машины этого класса все же можно подвергнуть процедуре мини-мизации числа управляющих (локальных) состояний без какого-либовлияния на множество достижимых конфигураций. Действительно, дляэтого достаточно рассмотреть автоматную счетчиковую машину какконечный автомат A = (Q,Σ,→, q0,F ), где Q — конечное множествоуправляющих состояний, Σ = E(T ) — множество входных символов,q0 — начальное состояние, → — функция переходов, а F = Q —множество заключительных или допускающих состояний, и провестипроцедуру минимизации конечного автомата (см., например, [26]).

Напомним, что проблема достижимости состоит в обнаруженииалгоритма, с помощью которого для любой счетчиковой машины ACMи для любого вектора значений счетчиков c = (c1, . . . , cm) можно выяс-нить выполнимость условия c ∈ R(ACM), где R(ACM) — множестводостижимых векторов значений счетчиков из начальной конфигурациимашины ACM .

Т е о р ем а 5.8. Для автоматных счетчиковых машин задача дости-жимости некоторой нулевой конфигурации (q, 0, . . . , 0) разрешима.

5.2. Автоматные счетчиковые машины 127

Дока з а т е л ь с т в о. Поскольку автоматные счетчиковые машины яв-ляются вполне структурированными системами переходов с совмести-мостью по возрастанию и убыванию, разрешимость данной задачиследует из рассмотренного ранее утверждения 4.18. �

Т ео р ем а 5.9. Для автоматных четырехсчетчиковых машин про-блема достижимости вектора значений счетчиков (c1, c2, c3, c4) >> (0, 0, 0, 0) является неразрешимой.

Дока з а т е л ь с т в о. Из теоремы 2.9 имеем для для двухсчетчиковыхмашин Минского неразрешимость задачи достижимости вектора нуле-вых значений счетчиков (0, 0).

Рассмотрим произвольную машину Минского с двумя счетчиками2cM . Построим для 2cM ее «слабую» модель следующим образом.Добавим оператор недетерминированного выбора []. И в машине 2cMзаменим каждое правило перехода

if xj > 0 then comm1 else comm2

на правило

comm1 [] comm2.

В выражении xj := xj−1 оператор «−» заменим оператором вычитаниядо нуля «⊖». Таким образом, мы получили автоматную двухсчетчико-вую машину 2ACM .

Преобразуем машину 2ACM в автоматную четырехсчетчиковуюмашину 4ACM следующим образом. Добавим счетчики x3 и x4. В ка-ждом правиле переходов comm1 [] comm2 заменим каждый переход(q,xj := xj ⊖ 1, q′) на последовательность переходов

(q,x3 := x3 + min(xj , 1), q′

1), (q′1,xj := xj ⊖ 1, q′2),

(q′2,x3 := x3 ⊖ 1, q′),

а переход (q,xj := xj , q′′), который не изменяет значения счетчика,

на последовательность

(q,xj := xj , q′′

1 ), (q′′1 ,x4 := x4 + min(xj , 1), q′′).

Рассмотрим автоматную счетчиковую машину 4ACM с начальнойконфигурацией s0 = (q0, c1, c2,N1,N2), где N1 > 0. Если 4ACMиз начальной конфигурации s0 достигает вектора значений счетчиков(0, 0,N1,N2), то исходная машина Минского 2cM достигает нулевоговектора (0, 0), так как в автоматной счетчиковой машине 2ACM

Page 65: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

128 Гл. 5. Автоматные счетчиковые машины

из (q0, c1, c2) в некоторую конфигурацию (q, 0, 0) существует испол-нение, равное исполнению машины 2cM . Действительно, если бытакого исполнения не было, то «неправильный» переход изменил бызначение одного из счетчиков x3 или x4, т. е. либо уменьшил значениесчетчика x3, либо увеличил счетчик x4. Значения этих счетчиков могутостаться равными соответственно N1 и N2, если 2ACM имеет конечноеисполнение, равное конечному исполнению в нулевую конфигурациюмашины Минского 2cM .

Обратно, очевидно, что если машина Минского 2cM из началь-ной конфигурации (q0, c1, c2) переходит в некоторую нулевую кон-фигурацию (q, 0, 0), то автоматная счетчиковая машина 4ACM из(q0, c1, c2,N1,N2) достигает значений счетчиков (0, 0,N1,N2). �

5.3. Автоматные трехсчетчиковые машины

В теории формальных моделей особое пограничное место занимаютабстрактные машины с двумя счетчиками, поскольку уменьшение ко-личества счетчиков до одного обычно приводит к резкому росту числаразрешимых свойств, в то время как уже для трехсчетчиковых ма-шин того же класса имеем неразрешимыми подавляющее большинствополезных свойств. В связи с этим представляется интересным исследо-вание выразительной способности (мощности) абстрактных двухсчет-чиковых машин разных классов.

Известно, что для слабых двухсчетчиковых машин классическиепроблемы эквивалентности, включения и достижимости являются ал-горитмически разрешимыми. Например, алгоритмы, подобные пред-ставленному в работе [36], производят построение множеств дости-жимых конфигураций, которые в случае двух счетчиков представляютсобой полулинейные множества, имеющие конечное представление. Та-ким образом, каждая из указанных проблем может быть легко заданаформулой арифметики Пресбургера на основе полученного конечногопредставления множества достижимости. Известно, что арифметикаПресбургера разрешима, т. е. существует алгоритм определения истин-ности любой ее формулы.

Применение таких алгоритмов ограничивается случаем абстракт-ных машин с двумя счетчиками, поскольку уже для «слабых» машин стремя счетчиками множество достижимых конфигураций не являетсяполулинейным [36].

В этом разделе объектом исследования является класс автоматныхтрехсчетчиковых машин. Основной вопрос — будет ли полулинейныммножество достижимости каждой машины из этого класса. Однако,

5.3. Автоматные трехсчетчиковые машины 129

будет показано, что автоматные трехсчетчиковые машины, множествадостижимости которых не являются полулинейными, могут иметь весь-ма простой вид. Отметим, что вопрос полулинейности множеств дости-жимости автоматных двухсчетчиковых машин пока остается открытым.

Пусть L ⊆ Nn — произвольное множество векторов. Вектор p ∈ N

n

называется периодом множества L, если для любого r ∈ L вектор r+pтакже принадлежит множеству L.

Пусть C и P — подмножества множества Nn и L(C;P ) — множе-

ство всех векторов из Nn, представимых в виде c+p1+ . . .+pm, где c ∈

∈ C и p1, . . . , pm — некоторая (возможно, пустая) последовательностьвекторов из множества P , т. е.

L(C;P ) = {x | ∃ c ∈ C, k1, . . . , km ∈ N, p1, . . . , pm ∈ P : x = c+

m∑

i=1

kipi}.

Тогда множества C и P называются соответственно системой предпе-риодов и системой периодов множества L(C;P ).

Итак, L(C;P ) — множество всех x из множества Nn, таких что

x = c+

m∑

i=1

kipi,

где c ∈ C, p1, . . . , pm ∈ P и k1, . . . , km ∈ N.Если множество C состоит в точности из одного элемента, т. е. C =

= {c}, то для удобства вместо L(C;P ) будем писать L(c;P ).

Множество L ⊆ Nn называется линейным, если L = L(c;P ), где

система периодов P конечна, P = {p1, . . . , pr}, а система предпериодовсостоит в точности из одного элемента c, т. е. C = {c}. В этом случаевместо L(C;P ) будем писать L(c; p1, . . . , pr).

Всякий раз, когда говорится, что множество L(C;P ) линейно, име-ется в виду, что P конечно.

Подмножество множества Nn называется полулинейным, если оно

является объединением конечного числа линейных множеств.

Например, пусть имеем c1, c2, p1, . . . , pm, q1, . . . , qr ∈ Nn, тогда

множество

L(c1; p1, . . . , pm) ∪ L(c2; q1, . . . , qr)

является полулинейным подмножеством множества Nn.

5 Кузьмин Е. В., Соколов В.А.

Page 66: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

130 Гл. 5. Автоматные счетчиковые машины

Объединение конечного числа полулинейных подмножеств множе-ства N

n также является полулинейным множеством. Более того, классполулинейных множеств замкнут относительно операций пересеченияи дополнения [1, 36].

Рассматрим пример автоматной трехсчетчиковой машины 3ACM ,которая генерирует экспоненту, убеждающий в том, что в общем ав-томатные трехсчетчиковые машины имеют неполулинейные множествадостижимости.

Л емм а 5.2. Существует автоматная трехсчетчиковая машина,которая имеет неполулинейное множество достижимости.

Дока з а т е л ь с т в о. Рассмотрим автоматную счетчиковую машину

3ACM = (v0, q0,Q,X ,→,T ,E),

где v0 = (0, 0, 1), Q = {q0, q′

0, q1, q′

1, q′′

1 }, X = {x1,x2,x3} , множествометок переходов T = {t′1, t′′1 , t2, t

3, t′′

3 , t′′′3 , t4} соответствует следующимправилам переходов (см. рис. 5.7):

t′1 : q0 → (q′0, (0,min(x3, 1), 0)),

t′′1 : q′0 → (q0, (0, 0,⊖1)),

t2 : q0 → (q1, (0, 0, 0)),

t′3 : q1 → (q′1, (0, 0,min(x2, 1))),

t′′3 : q′1 → (q′′1 , (0, 0,min(x2, 1))),

t′′′3 : q′′1 → (q1, (0,⊖1, 0)),

t4 : q1 → (q0, (1, 0, 0)).

Рассмотрим следующие неравенства (условия):

(1) 0 < β + γ 6 2α;

(2) 0 < 2β + γ 6 2α+1.

Покажем, что некоторый вектор v = (α,β, γ) достижим машиной3ACM в состоянии q0 тогда и только тогда, когда выполняется усло-вие 1; и вектор v′ = (α′,β′, γ′) достижим в состоянии q1 тогда и толькотогда, когда выполняется условие 2.

Для удобства обозначим последовательность переходов t′1t′′

1 однимпереходом t1, а последовательность переходов t′3t

′′

3 t′′′

3 — переходом t3.Сначала докажем необходимость выполнения приведенных условий

для достижимых векторов (⇒). Заметим, что изначально выполняетсяусловие 1, и кроме того справедливо следующее.

5.3. Автоматные трехсчетчиковые машины 131

q0 q1

t1

t2

t3

t4

(0, 1,−1)

(0, 0, 0)

(0,−1, 2)

(1, 0, 0)

Рис. 5.7. Граф переходов трехсчетчиковой машины 3ACM с неполулинейныммножеством достижимости

1. Если выполняется условие 1 (для состояния q0), то после сраба-тывания перехода t1 по-прежнему будет выполняться условие 1,а после перехода t2 будет выполняться условие 2.

2. Если выполнено условие 2 (для состояния q1), то после сраба-тывания перехода t3 по-прежнему будет выполнено условие 2,а после перехода t4 будет выполнено условие 1.

Отсюда следует, что любой достижимый вектор в зависимости от тогосостояния, в котором он был получен, удовлетворяет либо условию 1,либо условию 2.

Теперь докажем достаточность (⇐), т. е. покажем, что если длянекоторого вектора v = (α,β, γ) выполняется одно из двух рассмат-риваемых условий, то этот вектор v является достижимым маши-ной 3ACM (из начального состояния q0 и вектора v0 = (0, 0, 1))в соответствующем состоянии (q0 или q1). Доказательство проводитсяиндукцией по значениям первой координаты.

Базис индукции. Пусть v = (α,β, γ). Если α = 0 и для вектора vвыполняется условие 1, тогда имеет место одно из двух возможностей.

1. v = (0, 0, 1), и v достижим в состоянии q0 по пустому пути;

2. v = (0, 1, 0), и v достижим в состоянии q0 по переходу t1.

Если же α = 0, но для вектора v справедливо условие 2, то в этомслучае возможен одни из следующих вариантов.

1. v = (0, 1, 0), и v достижим в состоянии q1 по пути t1t2;

2. v = (0, 0, 1), и v достижим в состоянии q1 по переходу t2;

3. v = (0, 0, 2), и v достижим в состоянии q1 по пути t1t2t3.

5*

Page 67: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

132 Гл. 5. Автоматные счетчиковые машины

Во всех случаях вектор v достижим в правильном состоянии.

Предположение индукции. Предположим, что все векторы, удовле-творяющие условию 1 или условию 2, для первой координаты которыхвыполняется неравенство α 6 a1 − 1, a1 ∈ N, достигаются машиной3ACM в соответствующем правильном состоянии. Пусть вектор a == (a1, a2, a3) удовлетворяет условию 1, т. е. 0 < a2 + a3 6 2a1 .Покажем, что вектор a достижим в q0.

Шаг индукции. Рассмотрим случай, когда для вектора a выпол-няется неравенство 0 < a2 + a3 6 2a1−1. Тогда по предположениюиндукции вектор a′ = (a1 − 1, a2, a3) достижим в q0. Применяя к a′

последовательность переходов t2t4, получим вектор a и окажемся приэтом в состоянии q0.

Остается рассмотреть ситуацию, при которой 2a1−1 < a2 + a3 6 2a1 .Пусть a2 + a3 = 2a1−1 + b, где 0 < b 6 2a1−1. По пред-положению индукции существует путь, приводящий к векторуa′ = (a1 − 1, b, 2a1−1 − b), так как вектор a′ удовлетворяет усло-вию 1. Но теперь к вектору a′ может быть применена последо-вательность переходов t2(t3)

bt4(t1)a2 , результатом которой будет

вектор (a1, a2, 2a1−1 + b− a2) в состоянии q0. Однако, поскольку

2a1−1 + b− a2 = a3, получается, что в действительности в состоянии q0

был достигнут рассматриваемый вектор a.

Аналогичным образом доказывается, что если вектор a удовлетво-ряет условию 2, то он достижим машиной 3ACM в состоянии q1.

Итак, мы показали, что произвольный вектор достигается автомат-ной трехсчетчиковой машиной 3ACM в состоянии q0 или q1 тогда итолько тогда, когда он удовлетворяет соответственно либо условию 1,либо условию 2.

Таким образом для состояний q0 и q1 мы имеем следующие множе-ства достижимости:

R(q0) = {(α,β, γ) | 0 < β + γ 6 2α},

R(q1) = {(α,β, γ) | 0 < 2β + γ 6 2α+1}.

Построим множества достижимости для состояний q′0, q′

1 и q′′1 . Этимножества легко получаются из уже построенных R(q0) и R(q1).

R(q′0) = {(α,β, γ) | 0 < β 6 2α ∧ γ = 0} ∪∪ {(α,β + 1, γ) | 0 < β + γ 6 2α ∧ γ > 0},

5.3. Автоматные трехсчетчиковые машины 133

R(q′1) = {(α,β, γ) | 0 < γ 6 2α+1 ∧ β = 0} ∪∪ {(α,β, γ + 1) | 0 < 2β + γ 6 2α+1 ∧ β > 0},

R(q′′1 ) = {(α,β, γ) | 0 < γ 6 2α+1 ∧ β = 0} ∪∪ {(α,β, γ + 2) | 0 < 2β + γ 6 2α+1 ∧ β > 0}.

Очевидно, что полученное множество достижимости счетчиковоймашины 3ACM

R(3ACM) = R(q0) ∪R(q1) ∪R(q′0) ∪R(q′1) ∪R(q′′1 )

не является полулинейным. В частности, элементы множества

{(k+ 1, 2k, 2k) | k ∈ N} ⊆ R(3ACM)

имеют экспоненциальную зависимость последний двух координат отпервой. �

Отметим, что рассмотренная 3-счетчиковая машина 3ACM в неко-тором смысле является примером простейшей машины, множество до-стижимости которой неполулинейно. Если мы уменьшим размерностьсистемы на единицу, уберем одно состояние или же сократим графпереходов на одну дугу, то получим автоматную счетчиковую машинус полулинейным множеством достижимости. В качестве примера чутьболее «простой» системы, но по-прежнему имеющей неполулинейноемножество достижимости, можно построить автоматную трехсчетчико-вую машину, очень похожую на уже рассмотренную машину, котораябудет реализовывать возведение в квадрат, т. е. квадратичную зависи-мость между координатами достижимых векторов.

Вопрос о том, каждая ли автоматная двухсчетчиковая машина по-рождает полулинейное множество достижимости, остается открытым.

В главе определяются и исследуются два класса слабых счетчико-вых машин — класс счетчиковых машин, получающихся ослаблениеммашин Минского, и новый класс автоматных счетчиковых машин — ко-торые рассматриваются в качестве общего средства для демонстрацииалгоритмической неразрешимости ряда проблем для вполне струк-турированных систем переходов, способных моделировать поведениеэтих машин. Основное внимание уделяется проблеме ограниченности.Эта проблема является одной из самых важных для теории формаль-ных моделей, поскольку в случае разрешимости позволяет определять,является ли множество состояний модели системы конечным, что

Page 68: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

134 Гл. 5. Автоматные счетчиковые машины

критично, например, для автоматического метода верификации modelchecking [4, 9].

Для автоматных счетчиковых машин доказана неразрешимость про-блем включения и эквивалентности, проблемы ограниченности (в слу-чае трех счетчиков) и проблемы достижимости (в случае четырехсчетчиков; однако, проблема достижимости конфигурации с нулевымизначениями всех счетчиков разрешима для произвольной автоматнойсчетчиковой машины).

Доказательство утверждения о неразрешимости задачи включенииграфов полиномов взято из [39]. Раздел про автоматные счетчиковыемашины написана на основе результатов, опубликованных в рабо-тах [11, 20, 38, 19, 18].

Гл ав а 6

ЯЗЫКИ АВТОМАТНЫХ СЧЕТЧИКОВЫХ МАШИН

В этой главе изучается класс языков, которые допускаются ав-томатными счетчиковыми машинами. Показывается, что этот классзамкнут относительно операций объединения, регулярного пересече-ния, конкатенации, бесконечной итерации, гомоморфизма и обратногогомоморфизма. Отсюда следует, что он является полным абстрактнымсемейством языков [34, 2] со всеми вытекающими из этого свойствами.Более того, класс языков автоматных счетчиковых машин (ЯАСМ)замкнут относительно пересечения и полной подстановки, но неза-мкнут относительно дополнения и операции обращения. Для классаЯАСМ разрешимы проблемы пустоты и распознавания слова языка,заданного автоматной счетчиковой машиной, но неразрешимы пробле-мы включения и равенства языков. Проводится сравнение с другимиклассами языков — регулярными, контекстно-свободными, контекстно-зависимыми языками и языками сетей Петри.

Глава написана на основе результатов, опубликованных в работахавторов [17, 14].

6.1. Автоматная счетчиковая машина-распознаватель

Опр е д е л е ни е. Рассмотрим автоматную счетчиковую машину какустройство, распознающее или отвергающее слова в некотором ал-фавите Σ, которые считываются машиной с помощью специальнойголовки с входной ленты. Для этого каждой метке перехода t машинысопоставим символ из множества Σ ∪ {ε}, где ε — «пустая» строка.Будем считать, что Σ(t) = ε, если переходу t сопоставлена пустаястрока, и Σ(t) = a, если переходу t соответствует буква a ∈ Σ.

Определим работу машины-распознавателя следующим образом.Начав с крайнего слева символа на ленте, она на каждом шаге будетсчитывать символ с ленты и 1) или совершать переход t из однойконфигурации в другую, который соответствует символу на ленте,и передвигать считывающую головку вправо на одну ячейку ленты,2) или совершать переход t, соответствующий символу ε без переме-щения считывающей головки по ленте.

Page 69: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

136 Гл. 6. Языки автоматных счетчиковых машин

Таким образом, понятие конфигурации машины расширяется.Пусть aα — непрочитанная часть входной строки (слова), q —

текущее состояние машины, а c — вектор текущих значений счетчиков.Тогда конфигурацией машины теперь будем называть упорядоченнуютройку (q, aα, c). Переход из одной конфигурации в другую может бытьдвух видов:

1) (q, aα, c)t−−−→

E(t)(q′,α, c+ v) при Σ(t) = a;

2) (q, aα, c)t−−−→

E(t)(q′, aα, c+ v) при Σ(t) = ε.

Обозначим∗→ произвольное (включая нулевое) число переходов

(шагов) автоматной счетчиковой машины.Будем запускать машину в начальном состоянии q0 при нулевых

значениях счетчиков. Если существует такая последовательность пе-реходов машины, которая после полного прочтения слова (с ленты)приводит машину в заключительное состояние qf также при нулевыхзначениях счетчиков, то такое слово допускается, или принимается,машиной. Во всех других случаях входное слово отвергается.

Более формально, язык, допускаемый автоматной счетчиковой ма-шиной ACM , — это множество слов в алфавите Σ

L(ACM) = {α | α ∈ Σ∗; (q0,α, 0, . . . , 0)∗→ (qf , ε, 0, . . . , 0)},

где Σ∗ — множество всех слов в алфавите Σ, q0 — начальное состояние,а qf — финальное состояние.

Далее мы будем называть счетчиковую машину, работающуюкак распознаватель некоторого формального языка, машиной-распознавателем.

На рис. 6.1 представлены примеры языков автоматных счетчико-вых машин-распознавателей. При построении автоматной счетчиковоймашины-распознавателя для языка

L>n2 = {anbn2

b∗ | n > 0}(на рис. слева) был использован тот факт, что

n2 = (2n− 1) + (2n− 3) + . . .+ 3 + 1.

Счетчик V играет роль «предохранителя» от неверного перехода иразрешает переход только по нулевому значению опорного счетчика.В случае когда счетчик X не является нулевым команда V (X)+

6.2. Проблемы пустоты и распознавания слов 137

увеличивает значение счетчика V на единицу. Далее никаких операцийуменьшения значения счетчика V не производится. Таким образом, всепути, проходящие через команду V (X)+ с увеличением значения V ,не приводят к принятию слова, соответствующего этому пути.

6.2. Проблемы пустоты и распознавания слов

Лемм а 6.1. Пусть (q, c) — конфигурация автоматной счетчиковоймашины ACM , а w = t1t2 . . . tk — последовательность переходов ма-шины ACM , переводящая (q, c) в нулевую финальную конфигурацию(qf , 0). Тогда последовательность переходов w также переводитлюбую конфигурацию (q, c′), такую что (q, c′) 6 (q, c), в конфигу-рацию (qf , 0).

Дока з а т е л ь с т в о. Непосредственно следует из свойства совмести-мости по убыванию правильного квазипорядка 6 с отношением пере-ходов → автоматной счетчиковой машины. �

Т ео р ем а 6.1. Проблема определения пустоты языка, заданного ав-томатной счетчиковой машиной-распознавателем ACM , являетсяразрешимой.

Дока з а т е л ь с т в о. Проблема пустоты языка автоматной счетчиковоймашины-распознавателя сводится к проблеме достижимости из на-чальной конфигурации (q0, 0, . . . , 0) финальной нулевой конфигура-ции (qf , 0, . . . , 0) для исходной автоматной счетчиковой машины. Аэта проблема в свою очередь является частным случаем проблемысубпокрытия. Действительно, нам достаточно построить множество↑Succ∗(q0, 0, . . . , 0) и проверить, входит ли в него финальная нулеваяконфигурация (qf , 0, . . . , 0). Поскольку любая автоматная счетчиковаямашина является вполне структурированной системой переходов ссовместимостью по убыванию, рассматриваемая проблема разрешима(см. утверждению 4.18).

Позволим себе лишь немного уточнить с целью оптимизации об-щую схему построения множества ↑Succ∗(s) из утверждения 4.18.Дело в том, что для автоматных счетчиковых машин при порождениипоследовательности K0, K1, . . . , Km, где K0 = {s}, ↑Km = ↑Km+1

и Ki+1 = Ki ∪ Succ(Ki), каждое из Ki может быть избыточнымбазисом для замкнутого кверху множества ↑Ki. Если есть две кон-фигурации s и s′, принадлежащие Ki, такие что s 6 s′, то большая

Page 70: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

138 Гл. 6. Языки автоматных счетчиковых машин

ε

+Xa

ε

εb +Y c⊖Y

X⊖

( )+XV

ε

ε

( )+YV

b+X

a

ε

ε

εε

ε

ε

ε

ε+Z

( )+ZY

( )+ZY

Z⊖

X⊖

Z⊖

( )+ZV

( )+YZ⊖Y

( )+XY

( )+XV

ε

ε

( )+XZε

( )+XZ

( )+XZ

( )+XV

( )+YX

( )+YV

b+X

a

ε

ε

εε

ε

ε

ε

ε

εX⊖

X⊖

Z⊖

⊖Y

Рис. 6.1. Автоматные счетчиковые машины, распознающие формальные языки

L>n2 = {anbn2

b∗ | n > 0} (слева), L>2n = {anb2nb∗ | n > 0} (справа)

и Lk6l6m = {akblcm | k 6 l 6 m} (снизу); X+, X(Y )+ и X⊖ обозначаюткоманды X := X + 1, X := X +min(Y , 1) и X := X ⊖ 1 соответственно, где

X и Y — счетчики.

6.2. Проблемы пустоты и распознавания слов 139

конфигурация s′ не оказывает никакого влияния на последователь-ность замкнутых кверху множеств ↑K0, ↑K1, . . . , ↑Km, так как дляконфигурации s′2 ∈ Ki+1, s

′ → s′2, обязательно найдется конфигурацияs2 ∈ Ki+1, s2 6 s′2, s → s2.

Поэтому целесообразно производить минимизацию множества Ki

на каждом шаге i, а точнее сразу строить множество Ki минимальным.В таком случае множество Km будет минимальным конечным базисомдля ↑Succ∗(s).

Заметим также, из предыдущей леммы следует, что дерево покры-тия автоматной счетчиковой машины, распознающей непустой язык,с корнем в нулевой начальной конфигурации должно содержать фи-нальную нулевую конфигурацию. Дерево покрытия для автоматнойсчетчиковой машины может быть эффективно построено. �

Некоторый класс языков можно формально рассматривать как пару(Σ′,L) [27], где Σ′ — счетное бесконечное множество символов, L —множество подмножеств в Σ′∗, для каждого языка L ∈ L существуеттакое конечное подмножество Σ множества Σ′, что L ⊆ Σ∗.

У т в е ржд е ни е 6.1 ([27]). Пусть L — класс языков, для которогопроблема пустоты разрешима. Если класс L эффективно замкнутотносительно пересечения с регулярными множествами, то для Lпроблема принадлежности слова языку также разрешима.

Дока з а т е л ь с т в о. Пусть L ⊆ Σ∗ — любой язык из класса L и w —произвольное слово из Σ∗. Слово w принадлежит L тогда и толькотогда, когда L ∩ {w} 6= ∅. �

Т ео р ем а 6.2. Класс языков автоматных счетчиковых машин-распознавателей эффективно замкнут относительно пересеченияс регулярными языками.

Дока з а т е л ь с т в о. Пусть L(DA) = {α | α ∈ Σ ∧ δ∗(q10 ,α) ∈ F1} —

регулярный язык, допускаемый детерминированным конечным автома-том DA = (Q1,Σ, δ, q1

0 ,F1), где Σ — конечный алфавит, Q1 — конеч-

ное множество состояний автомата, q10 ∈ Q1 — начальное состояние,

F1 ⊆ Q1 — множество финальных состояний, а δ : Q × Σ → Q —всюду определенная функция переходов. Напомним, что δ∗(q, ε) = q,δ∗(q,αa) = δ(δ∗(q,α), a) для всех q ∈ Q1, α ∈ Σ∗, a ∈ Σ.

Пусть L(ACM) = {α | α ∈ Σ∗∧ (q20 ,α, 0, . . . , 0)

∗→ (q2f , ε, 0, . . . , 0)} —

язык автоматной счетчиковой машины-распознавателя ACM =

Page 71: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

140 Гл. 6. Языки автоматных счетчиковых машин

= (0, q20 , q

2f ,Q2,X ,→,T ,E,Σ), где (q2

0 , 0) — начальная конфигурация

машины, (q2f , 0) — допускающая конфигурация.

Построим автоматную счетчиковую машину

ACM ′ = (0, q′0, q′

f ,Q′,X ,→ ′,T ′,E′,Σ),

допускающую язык L(ACM) ∩ L(DA), следующим образом. Мы по-лагаем Q′ = (Q1 × Q2) ∪ q′f , q′0 = (q1

0 , q20). Переход t′ из одной

конфигурации (новой машины) в другую определим так:

1) ((q1, q2), aα, c)t′−−−−→

E′(t′)((p1, p2),α, c + v) при Σ(t′) = a ⇐⇒

δ(q1, a) = p1 и (q2, aα, c)t−−−→

E(t)(p2,α, c+ v),

где q1, p1 ∈ Q1, t ∈ T , Σ(t) = a, E′(t′) = E(t), q2, p2 ∈ Q2;

2) ((q1, q2), aα, c)t′−−−−→

E′(t′)((q1, p2), aα, c+ v) при Σ(t′) = ε ⇐⇒

(q2, aα, c)t−−−→

E(t)(p2, aα, c+ v),

где q1 ∈ Q1 и t ∈ T , Σ(t) = ε, E′(t′) = E(t), q2, p2 ∈ Q2;

3) ((q1, q2), aα, c)t′−→ (q′f , aα, c), Σ(t′) = ε ⇐⇒ q1 ∈ F1 и q2 = q2

f .

Простым рассуждением по индукции можно показать, что

((q10 , q

20),α, 0, . . . , 0)

∗→ (q′f , ε, 0, . . . , 0)

выполняется тогда и только тогда, когда

δ∗(q10 ,α) ∈ F1 и (q2

0,α, 0, . . . , 0)∗→ (q2

f , ε, 0, . . . , 0).

Это означает, что строка допускается машиной ACM ′ тогда и толькотогда, когда она допускается автоматом DA и машиной ACM одновре-менно, т. е. что она принадлежит пересечению L(ACM) ∩ L(DA). �

Итак, из замкнутости относительно регулярного пересечения (пе-ресечения с регулярным языком) следует справедливость следующейтеоремы.

Т е о р ем а 6.3. Проблема принадлежности слова языку, заданномуавтоматной счетчиковой машиной-распознавателем, разрешима.

6.3. Свойства замкнутости 141

Дока з а т е л ь с т в о. Алгоритм распознавания произвольного слова αс помощью автоматной счетчиковой машины аналогичен алгоритмурешения проблемы пустоты. Отличие состоит в том, что порождениестабилизирующейся последовательности замкнутых кверху множествпроисходит в соответствии с расположением букв в распознаваемомслове α.

Обозначим α(i) i-ю букву в слове α. Определим множествоSuccα(i)(s) как множество достижимых машиной конфигураций заодин шаг из конфигурации s с помощью тех переходов, которымсоответствует буква α(i). Соответственно Succε(s) — множество до-стижимых из s конфигураций за один шаг с помощью ε-переходов.Напомним, что Succ∗(s) — множество достижимых из s конфигурацийза ноль или более шагов.

Тогда алгоритм распознавания произвольного слова α в алфавите Σможно описать следующим образом.

На первом шаге алгоритма по рассмотренной в предыдущей теоремесхеме происходит построение множества ↑A0 = ↑Succ∗ε(q0, 0, . . . , 0),которое будет представлено своим минимальным конечным базисом A0.На следующем шаге строим множество ↑A1 = ↑ Succα(1)(A0). Далее

опять строим ε-замыкание ↑A′

1 = ↑Succ∗ε(A1). Затем порождаем мно-жество достижимых по следующей букве α(2) конфигураций ↑A2 == ↑ Succα(2)(A

1) и т. д. На предпоследнем шаге мы получим множество↑Ak = ↑Succα(k)(A

k−1), где k = |α|. Последний шаг — это построение

множества ↑A′

k = ↑ Succ∗ε(Ak), представленного своим минимальнымконечным базисом A′

k.

Слово α принадлежит языку автоматной счетчиковой машины-распознавателя тогда и только тогда, когда финальная нулевая кон-фигурация (qf , 0, . . . , 0) ∈ A′

k. �

6.3. Свойства замкнутости

Пусть L, L1 и L2 — языки в алфавите Σ. Тогда языки

L1 ∪ L2 = {w | w ∈ L1 ∨w ∈ L2}, L1 ∩ L2 = {w | w ∈ L1 ∧ w ∈ L2},

L1L2 = {w1w2 | w1 ∈ L1 ∧w2 ∈ L2}— это соответственно объединение, пересечение и конкатенация язы-ков L1 и L2. Язык L = {w | w /∈ L∧w ∈ Σ∗} есть дополнение языка L,L∗ = {ε}∪L∪LL∪LLL∪ . . . — бесконечная итерация (или замыканиеКлини) языка L (ε — пустое слово).

Page 72: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

142 Гл. 6. Языки автоматных счетчиковых машин

Т ео р ем а 6.4. Класс языков автоматных счетчиковых машин-распознавателей замкнут относительно операций объединения,конкатенации и бесконечной итерации.

Дока з а т е л ь с т в о. Замкнутость относительно операции объедине-ния очевидна. Идея построения автоматной счетчиковой машины, до-пускающей объединение языков двух других автоматных счетчиковыхмашин, представлена на рис. 6.2 (слева).

Операции конкатенации и итерации для автоматных счетчиковыхмашин-распознавателей (см. рис. 6.2 снизу и справа соответствен-но) проводятся с помощью вспомогательного счетчика V , который«разрешает» следующей компоненте включиться в процесс распозна-вания строки только в случае нулевых значений счетчиков в фи-нальном состоянии предыдущей компоненты-распознавателя. Машины-распознаватели, находящиеся под действием операций конкатенациии итерации, не содержат счетчик V и, следовательно, не оказываютвлияние на его значение. Если некоторая последовательность перехо-дов приводит к ненулевому значению «разрешающего» счетчика V , то,поскольку в предложенной конструкции не существует команд умень-шения значений счетчика V , никакая дальнейшая последовательностьпереходов не может привести к нулевой финальной конфигурацииавтоматных счетчиковых машин ACM2 и ACM . �

Т ео р ем а 6.5. Класс языков автоматных счетчиковых машин-распознавателей замкнут относительно операции пересечения.

Дока з а т е л ь с т в о. Пусть L(ACM1) и L(ACM1) — соответственноязыки автоматных счетчиковых машины

ACM1 = (0, q10 , q

1f ,Q1,X1,→ 1,T1,E1,Σ) и

ACM2 = (0, q20, q

2f ,Q2,X2,→ 2,T2,E2,Σ).

Построим автоматную счетчиковую машину

ACM = (0, q0, qf ,Q,X ,→,T ,E,Σ),

допускающую язык L(ACM1) ∩ L(ACM2), следующим образом. Мыполагаем Q = Q1 × Q2, q0 = (q1

0 , q20) и qf = (q1

f , q2f ). Переименуем

счетчики машин ACM1 и ACM2 таким образом, чтобы X1 ∩ X2 = ∅.Тогда X = X1 ∪ X2. Переход t ∈ T из одной конфигурации (новоймашины) в другую определим так:

6.3. Свойства замкнутости 143

εε

2ACM1ACM ( )+1XV ( )+2XV

εK

( )+−1kXV

ε( )+kXV

εε

1ACM

2ACMε

ε

ε

ε ACM

ε

ε

ε

( )+kXV ( )+1XVK

ε ε

Рис. 6.2. Схемы объединения (слева), конкатенации (снизу) автоматных счет-чиковых машин-распознавателей ACM1 и ACM2 и итерации (справа) авто-матной счетчиковой машины-распознавателя ACM ; команда V (X)+ означает

V := V +min(1,X); X1, . . . , Xk — все счетчики машины ACM1 (ACM)

1) ((q1, q2), aα, (c1, c2))t−−−→

E(t)((p1, p2),α, (c1+ v1, c2+ v2)) при Σ(t) = a

⇐⇒(q1, aα, c1)

t1−−−−→E1(t1)

(p1,α, c1+v1) и (q2, aα, c2)t2−−−−→

E2(t2)(p2,α, c2+v2),

где q1, p1 ∈ Q1, q2, p2 ∈ Q2, t1 ∈ T1, t2 ∈ T2, E(t) == {E1(t1),E2(t2)}, Σ(t1) = Σ(t2) = a;

2) ((q1, q2), aα, (c1, c2))t−−−→

E(t)((q1, p2), aα, (c1, c2 + v2)) при Σ(t) = ε

⇐⇒(q2, aα, c2)

t2−−−−→E2(t2)

(p2, aα, c2 + v2),

где q2, p2 ∈ Q2, t2 ∈ T2, E(t) = E2(t2), Σ(t2) = ε;

3 ) ((q1, q2), aα, (c1, c2))t−−−→

E(t)((p1, q2), aα, (c1 + v1, c2)) при Σ(t) = ε

⇐⇒(q1, aα, c1)

t1−−−−→E1(t1)

(p1, aα, c1 + v1),

где q1, p1 ∈ Q1, t1 ∈ T1, E(t) = E1(t1), Σ(t1) = ε;

Page 73: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

144 Гл. 6. Языки автоматных счетчиковых машин

Заметим, что построенный переход t под номером 1 не удовлетво-ряет определению автоматной счетчиковой машины, так как метке tсоответствуют две команды (но над разными счетчиками) одновремен-но. Чтобы привести этот переход к привычному виду, разобьем егона два последовательных перехода (порядок следования переходов неимеет значения), т. е. заменим

((q1, q2), aα, (c1, c2))t−−−−−−−−→

E1(t1),E2(t2)((p1, p2),α, (c1 + v1, c2 + v2))

на (где Σ(t′) = a и Σ(t′′) = ε)

((q1, q2), aα, (c1, c2))t′−−−−→

E1(t1)(q′,α, (c1 + v1, c2)),

(q′,α, (c1 + v1, c2))t′′−−−−→

E2(t2)((p1, p2),α, (c1 + v1, c2 + v2)).

Рассуждением по индукции нетрудно показать, что

((q10 , q

20),α, (0, 0))

∗→ ((q1f , q2

f ), ε, (0, 0))

выполняется тогда и только тогда, когда

(q10,α, 0)

∗→ (q1f , ε, 0) и (q2

0 ,α, 0)∗→ (q2

f , ε, 0).

Это означает, что строка допускается машиной ACM тогда и толькотогда, когда она допускается машинами ACM1 и ACM2 одновременно,т. е. что она принадлежит пересечению языков этих автоматных счет-чиковых машин L(ACM1) ∩ L(ACM2). �

На рис. 6.3 приведен пример построения автоматной счетчиковоймашины, допускающей пересечение языков двух автоматных счетчи-ковых машин. Состояния, из которых недостижимо финальное состо-яние, не были включены в множество состояний машины-пересечения(например, состояния (1, 2) и (2, 1)).

Гомоморфизм слов — это функция на множестве слов, котораяподставляет определенную последовательность букв вместо каждойбуквы данного слова. Формально, если h есть некоторый гомоморфизмна алфавите Σ, а w = a1a2 . . . an — последовательность символов в Σ,то h(w) = h(a1)h(a2) . . . h(an). Таким образом, сначала h применяетсяк каждой букве слова w, а потом полученные последовательности буквсоединяются в соответствующем порядке.

6.3. Свойства замкнутости 145

+X

a+X

aX⊖

b

1 2a

a b

1 2

⊖Y

⊖Y

+Y

a

1

⊖Y

ε b+Y X⊖

1 22

⊖Y+Xa

+X

εε

Рис. 6.3. Автоматная счетчиковая машина-распознаватель (снизу), допускаю-

щая {anb>n | n > 0} пересечение языков {anb>n | n > 0} и {anb>n−2 | n > 0}двух автоматных счетчиковых машин (вверху слева и справа)

Гомоморфизм языка определяется с помощью его применения ккаждому слову языка, т. е. если L — язык в алфавите Σ, а h —гомоморфизм на Σ, то h(L) = {h(w) | w ∈ L}.

Пусть h : Σ∗ → ∆∗ — гомоморфизм, а L — язык в алфавите ∆.Тогда h−1(L) — обратный гомоморфизм языка L, определяемый какмножество слов w ∈ Σ∗, для которых h(w) ∈ L.

Т е о р ем а 6.6. Класс языков автоматных счетчиковых машин-распознавателей замкнут относительно гомоморфизма.

Дока з а т е л ь с т в о. Пусть L(ACM) — это язык автоматной счетчи-ковой машины-распознавателя ACM = (0, q0, qf ,Q,X ,→,T ,E,Σ), аh : Σ∗ → ∆∗ — гомоморфизм. На основе машины ACM построимавтоматную счетчиковую машину

ACM ′ = (0, q0, qf ,Q ∪Q′,X ,→ ′,T ′,E′,∆),

допускающую язык h(L(ACM)). Для каждой буквы a ∈ Σ и отобра-жения h(a) = w = a′1a

2 . . . a′n, где a′i ∈ ∆, преобразуем всякий переход

машины ACM вида

(q, aα, c)t−−−→

E(t)(p,α, c+ v)

Page 74: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

146 Гл. 6. Языки автоматных счетчиковых машин

в последовательность переходов

(q, a′1a′

2 . . . a′

nα, c)t′1→ (q′1, a

2 . . . a′

nα, c)t′2→ . . .

. . .t′n−1→ (q′n−1, a

nα, c)t′n−−−−→

E′(t′n)(p,α, c+ v),

q, p ∈ Q, q′1, . . . , q′

n−1 ∈ Q′, Σ(t′1) = a′1, . . . , Σ(t′n) = a′n, E′(t′n) = E(t),t′1, . . . , t

′n ∈ T ′.

Таким образом, каждому переходу машины ACM по букве a будетсопоставлена последовательность переходов машины ACM ′ по буквамслова a′1a

2 . . . a′n при одинаковом изменении значений соответствующих

счетчиков. �

Т ео р ем а 6.7. Класс языков автоматных счетчиковых машин-распознавателей замкнут относительно обратного гомоморфизма.

Дока з а т е л ь с т в о. Пусть L(ACM) — язык автоматной счетчиковоймашины ACM= (0, q0, qf ,Q,X ,→,T ,E,∆), а h : Σ∗ → ∆∗ — гомо-морфизм. На основе машины ACM построим автоматную счетчико-вую машину ACM ′ = (0, q0, qf ,Q ∪ Q′,X ,→′,T ′,E′,Σ), допускающую

язык h−1(L(ACM)). Для этого от ACM оставим только «каркас» измножества состояний Q. Одновременно формируя дополнительное мно-жество состояний Q′, определим правила переходов новой автоматноймашины-распознавателя ACM ′ следующим образом.

Для каждой буквы a ∈ Σ и отображения h(a) = w = a′1a′

2 . . . a′n,

где a′i ∈ ∆ построим детерминированный конечный автомат DAw,допускающий только одно слово w = a′1a

2 . . . a′n, с начальным состо-

янием p0 и финальным состоянием pf . Для каждого такого автоматаDAw и каждого состояния q ∈ Q машины ACM построим автоматнуюсчетчиковую машину-произведение ACM × DAw так, как это былопроделано в доказательстве теоремы о замкнутости относительногорегулярного пересечения (теорема 6.2) с той лишь разницей, что вкачестве начального состояния для ACM каждый раз будем брать те-кущее состояние q, а также не будем обращать внимание на финальноесостояние qf , рассматривая его как обычное состояние. Полученнаямашина-произведение ACM ×DAw будет иметь одно начальное состо-яние (q, p0) и несколько финальных состояний (q1, pf), . . . , (qk, pf),где qi ∈ Q, с помощью которых будет допускать (если пересечениене пусто) по-прежнему лишь одно слово w. Объединение множеств

6.3. Свойства замкнутости 147

ε

aACM( )+1YV

K

( )+kYV

ε1 2

ε( )iXf

1

( )iXf

a2

Рис. 6.4. Подстановка автоматной машины-распознавателя ACMa вместо бук-

вы a для перехода q1a

−−−−→f(Xi)

q2; Y1, . . . ,Yk — все счетчики машины ACMa

состояний полученных машин-произведений будет формировать множе-ство Q′ машины ACM ′. Теперь всем переходам машины-произведенияACM×DAw сопоставим пустое слово ε, т. е. «обезличим» все переходыэтой машины. Далее построим переход машины ACM ′ из текущегосостояния q ∈ Q в начальное состояние (q, p0) машины ACM × DAw

с пометкой a ∈ Σ, т. е.

(q, aα, c)t→ ((q, p0),α, c), Σ(t) = a,

а из всех финальных состояний машины ACM × DAw вида (qi, pf )построим ε-переходы в соответствующие состояния qi ∈ Q машиныACM ′. Таким образом, мы надстроили машину-распознаватель ACM ′

с помощью машины-распознавателя ACM ×DAw присоединив послед-нюю к первой. Как видно из построения, эта надстройка ACM ×DAw

для q и h(a) = w = a′1a′

2 . . . a′n играет роль всех возможных переходов

из q в другие состояния qi по слову w = a′1a′

2 . . . a′n (если, конечно,

это возможно), реализуя при этом переход по букве a ∈ Σ. Проведяэту операцию для всех пар q и h(a), получим автоматную счетчиковуюмашину ACM ′, распознающую требуемый язык h−1(L(ACM)). �

Обобщим результаты замкнутости относительно операций объеди-нения, конкатенации, итерации и гомоморфизма с помощью теоремыо замкнутости относительно операции подстановки, поскольку всеперечисленные операции могут быть реализованы соответствующейподстановкой [26].

Оп р е д е л е ни е. Пусть для каждого символа a из алфавита Σ выбранязык La в произвольном конечном алфавите. Выбор языков определяетфункцию s на Σ, и La обозначается как s(a) для каждого символа a.Если w = a1a2 . . . an — слово из Σ∗, то s(w) представляет собойязык всех слов α1α2 . . . αn, у которых αi ∈ s(ai), т. е. s(w) являетсяконкатенацией языков s(a1)s(a2) . . . s(an). Распространим определениеподстановки на языки: s(L) = ∪w∈Ls(w).

Page 75: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

148 Гл. 6. Языки автоматных счетчиковых машин

Т ео р ем а 6.8. Если L — язык в алфавите Σ, допускаемый авто-матной счетчиковой машиной-распознавателем, а s — подстановкана Σ, при которой s(a) является языком автоматной счетчико-вой машины-распознавателя для каждого a ∈ Σ, то s(L) такжеявляется языком некоторой автоматной счетчиковой машины-распознавателя.

Дока з а т е л ь с т в о. Пусть ACM — это автоматная машина-распозна-ватель со счетчиками X1, . . . , Xn , допускающая язык L, а ACMa —автоматная машина со счетчиками Y1, . . . , Yk, допускающая язык s(a).Автоматная счетчиковая машина-распознаватель ACM ′ для языка s(L)строится на основе машины ACM заменой каждого перехода вида

q1a−−−−→

f(Xi)q2, где f(X) — некоторая операция над счетчиком Xi,

машиной ACMa с помощью специального «разрешающего» счетчика Vтак, как это показано на рис. 6.4. �

Очевидно, что класс языков автоматных счетчиковых машин-распознавателей (АСМ) полностью включает в себя класс регулярныхязыков. Однако класс АСМ-языков несравним по включению с классомконтекстно-свободных языков. Действительно, автоматные счетчико-вые машины-распознаватели допускают язык

{anbkcl | 0 6 n 6 k 6 l},который не является контекстно-свободным. С другой стороны, АСМ-машины не способны распознавать нулевые значения счетчиков, воз-можна лишь проверка на непустоту счетчиков. Поэтому, контекстно-свободный язык

{anbn | n > 0}не является АСМ-языком. К тому же, класс АСМ-языков являетсяполным абстрактным семейством языков (full-AFL), замкнутым попересечению. Из теории формальных языков известен результат (см.,например, [33]), что наименьшее замкнутое по пересечению семействоязыков full-AFL, содержащее язык {anbn | n > 0}, представляет собойсемейство рекурсивно-перечислимых языков, т. е. класс языков, до-пускаемых машиной Тьюринга (или машиной Минского). Автоматныесчетчиковые машины слабее счетчиковых машин Минского и поэто-му класс АСМ-языков не может содержать язык {anbn | n > 0}.В противном случае, мы бы имели равномощность счетчиковых машинМинского и автоматных счетчиковых машин, что, конечно же, не так.

6.4. Проблемы включения и равенства языков 149

Языки автоматных счетчиковых машин являются контекстно-зависимыми языками. Для любой машины АСМ нетрудно построитьконтекстно-зависимую грамматику, порождающую язык этой машины,или промоделировать машину АСМ линейно-ограниченным автоматом.

В качестве примера класса языков, который тоже является несрав-нимым с классом контекстно-свободных языков, но полностью входитв класс контекстно-зависимых, можно привести класс языков сетейПетри. Однако, класс языков сетей Петри несравним по включениюс классом языков автоматных счетчиковых машин, поскольку из-занезамкнутости относительно бесконечной итерации (замыкания Кли-ни) сети Петри не распознают язык {(anbk)∗ | 0 6 n 6 k}, которыйдопускается машиной АСМ.

В дополнение к теме замкнутости относительно различных опе-раций отметим, что класс АСМ-языков не замкнут относительно об-ращения, т. е. для произвольного языка L автоматной машины АСМязык LR = {wR | w ∈ R}, где wR — слово w, буквы которогорасположены в обратном порядке, может не быть языком автоматныхсчетчиковых машин. Например, язык {b>nan | 0 6 n}, обратный кязыку {anb>n | 0 6 n}, не является АСМ-языком. В противном случае,язык-пересечение

{bnan | 0 6 n} = {b>nan | 0 6 n} ∩ {bna>n | 0 6 n}был бы АСМ-языком, что, как было показано выше, не верно. Такжекласс АСМ-языков не замкнут относительно дополнения, так как

{anb>n | 0 6 n} ∩ {a∗b∗} = {a>nbn | 0 6 n}.

Таким образом справедлива следующая теорема.

Т е о р ем а 6.9. Класс языков автоматных машин-распознавателейне замкнут относительно операций обращения и дополнения.

6.4. Проблемы включения и равенства языков

Опр е д е л е ни е. Проблема включения языков состоит в определениисуществования алгоритма, устанавливающего для любых двух счетчи-ковых машин-распознавателей ACM1 и ACM2, имеет ли место

L(ACM1) ⊆ L(ACM2),

где L(ACMi) — язык, распознаваемый машиной ACMi, i = 1, 2.

Page 76: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

150 Гл. 6. Языки автоматных счетчиковых машин

В случае проблемы равенства языков соотношение имеет вид

L(ACM1) = L(ACM2).

Доказательство неразрешимости задачи равенства языков для авто-матных счетчиковых машин состоит из трех частей.

Сначала 10-я проблема Гильберта сводится к задаче включения«надграфов» полиномов. Затем задача включения «надграфов» поли-номов сводится к задаче включения языков для автоматных счет-чиковых машин-распознавателей. Наконец, задача включения языковсводится к задаче равенства языков для автоматных счетчиковыхмашин-распознавателей. Это показывает, что 10-я проблема Гильберта,известная как неразрешимая, сводится к задаче равенства, котораяпоэтому также должна быть неразрешимой.

Граф G(P ) диофантова полинома P (x1, . . . ,xn) с неотрицательнымикоэффициентами — это множество

G(P ) = {(x1, . . . ,xn, y) | y 6 P (x1, . . . ,xn) ∧ 0 6 x1, . . . ,xn, y}.

Надграфом OG(P ) диофантова полинома P (x1, . . . ,xn) с неотрица-тельными коэффициентами назовем множество

OG(P ) = {(x1, . . . ,xn, y) | y > P (x1, . . . ,xn) ∧ 0 6 x1, . . . ,xn, y}.

Задача включения надграфов полиномов заключается в опреде-лении для двух диофантовых полиномов A и B, выполняется лиOG(A) ⊆ OG(B).

Л е мм а 6.2. Задача включения надграфов полиномов неразрешима.

Дока з а т е л ь с т в о этого утверждения почти полностью повторяетрассуждения, приведенные в доказательстве аналогичного утвержде-ния о графах полиномов, взятого из [39] и проводится сведением 10-йпроблемы Гильберта к данной задаче включения надграфов полиномов.

Ограничим доказательство задачами с целыми неотрицательны-ми решениями. Если вектор (x1, . . . ,xn) — это решение уравненияP (x1, . . . ,xn) = 0 с xi < 0, то вектор (x1, . . . ,−xi, . . . ,xn) — решениедля P (x1, . . . ,−xi, . . . ,xn) = 0. Следовательно, для определения того,является ли (x1, . . . ,xn) решением произвольного полинома, необходи-мо только проверить каждый из 2n полиномов, получающихся в ре-зультате изменения знака у некоторого подмножества переменных длянеотрицательного решения.

6.4. Проблемы включения и равенства языков 151

Аналогично, поскольку P 2(x1, . . . ,xn) = 0 тогда и только тогда,когда выполнено P (x1, . . . ,xn) = 0, необходимо рассматривать толькоте полиномы, значения которых неотрицательны.

Сейчас мы можем разбить любой полином P (x1,x2, . . . ,xn) на дваполинома Q1(x1, . . . ,xn) и Q2(x1, . . . ,xn) такие, что

P (x1, . . . ,xn) = Q1(x1, . . . ,xn)−Q2(x1, . . . ,xn),

помещая все члены с положительными коэффициентами в Q1, а всечлены с отрицательными коэффициентами — в Q2. Так как поли-ном P (x1, . . . ,xn) > 0, имеем, что Q1(x1, . . . ,xn) > Q2(x1, . . . ,xn)и P (x1, . . . ,xn) = 0 тогда и только тогда, когда выполняется равенствоQ1(x1, . . . ,xn) = Q2(x1, . . . ,xn).

Рассмотрим два надграфа полиномов:

OG(Q1) = {(x1, . . . ,xn, y) | y > Q1(x1, . . . ,xn)},

OG(Q2 + 1) = {(x1, . . . ,xn, y) | y > 1 +Q2(x1, . . . ,xn)}.Теперь OG(Q1) ⊆ OG(Q2 + 1) тогда и только тогда, когда для всехнеотрицательных значений x1, . . . ,xn и y из y > Q1(x1, . . . ,xn) следует,что y > 1+Q2(x1, . . . ,xn). Это справедливо тогда и только тогда, когдане существует x1, . . . ,xn и y таких, что

1 +Q2(x1, . . . ,xn) > y > Q1(x1, . . . ,xn).

Но, как указывалось ранее, Q1 > Q2, поэтому

1 +Q1(x1, . . . ,xn) > 1 +Q2(x1, . . . ,xn) > y > Q1(x1, . . . ,xn),

а поскольку все величины целые, то

y = Q1(x1, . . . ,xn) = Q2(x1, . . . ,xn).

Таким образом, мы убедились в том, что OG(Q1) ⊆ OG(Q2 + 1)тогда и только тогда, когда не существует такого набора значенийx1, . . . ,xn, для которого P (x1, . . . ,xn) = 0.

Итак, для определения того, что уравнение P (x1, . . . ,xn) = 0имеет решение, необходимо показать, что не выполняется включениеOG(Q1) ⊆ OG(Q2 + 1). �

Возьмем двухбуквенный алфавит Σ = {a, b}. Рассмотрим следую-щий язык LOG(P (x1,...,xn)) в этом алфавите:

{ax1bax2b . . . axnbay | y > P (x1, . . . ,xn) ∧ 0 6 x1, . . . ,xn, y}.

Page 77: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

152 Гл. 6. Языки автоматных счетчиковых машин

( )+1XK

ε

εε

( )+2XV

( )+ZX 2

( )+ZV ε

εε

ε

ε

ε

ε1X ⊖

ε ( )+2XK

K⊖ε

ε ( )+KY

( )+KZ

K⊖

ε

Z⊖

2X ⊖

( )+1XV

)0,0,0,0,,( 21 xxVKZYXX ,,,,, 21

ε

2X ⊖

( )+1XV

+)( 1XYεε

εε

ε ( )+2XV

+)( 2XY

1X ⊖

)0,0,,( 21 xxVYXX ,,, 21

Рис. 6.5. Автоматные счетчиковые машины-распознаватели, вычисляющие зна-чения функций y = x1 · x2 (слева) и y = x1 + x2 (справа)

6.4. Проблемы включения и равенства языков 153

11 sii XaY ⋅= ...

212 sii XYY ⋅=

hsi

hi XYY ⋅= −1

Рис. 6.6. Автоматная счетчиковая машина-распознаватель, вычисляющая одно-член Pi = ai · xs1 · . . . · xsk диофантова полинома. Каждый блок представляет

собой автомат умножения

Очевидно, что для двух полиномов P (x1, . . . ,xn) и P ′(x1, . . . ,xn) вы-полняется

OG(P ) ⊆ OG(P ′) ⇐⇒ LOG(P ) ⊆ LOG(P ′).

Таким образом, для определения, имеет ли место OG(P ) ⊆ OG(P ′),можно проверить выполнимость LOG(P ) ⊆ LOG(P ′). Но, как былотолько что показано, проблема включения надграфов полиномов нераз-решима, и, следовательно неразрешима проблема включения языковвида LOG(P ).

Теперь, если мы докажем (приведем процедуру построения), чтодля каждого полинома P (x1, . . . ,xn)> 0 с целыми неотрицательнымикоэффициентами может быть построена автоматная счетчиковая маши-на, распознающая язык LOG(P ), это и будет означать неразрешимостьпроблемы включения языков для автоматных счетчиковых машин-распознавателей.

Будем говорить, что автоматная счетчиковая машина вычисляетзначение полинома P (x1, . . . ,xn), если и только если она, начав ра-ботать в начальной конфигурации (q0,x1, . . . ,xn, 0, . . . , 0), завершаетсвою работу в финальной конфигурации вида

(qf , 0, . . . , 0,P (x1, . . . ,xn), 0, . . . , 0).

Покажем, каким образом это может быть реализовано. Сначала мыпостроим автоматную счетчиковую машину, вычисляющую функциюумножения (двух чисел). На ее основе мы можем построить составнуюмашину, которая вычисляет значение каждого члена путем последова-тельной композиции машин умножения и затем суммирует результаты.

Автоматная счетчиковая машина, реализующая (в нашем смысле)функцию умножения двух чисел, и автоматная счетчиковая машинасложения представлены на рис. 6.5 (соответственно слева и справа).

Автоматная счетчиковая машина, вычисляющая некоторый одно-член Pi = ai ·xs1

·xs2·. . .·xsh диофантова полинома, показана на рис. 6.6

и представляет собой комбинацию машин умножения.

Page 78: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

154 Гл. 6. Языки автоматных счетчиковых машин

a

a⊖Y

M

ε ε

ε+kX1

K

b

aM

ε ε

ε+k

nX11

11 1 hss XXaY ⋅⋅⋅= K

kt

ktkk g

XXaY ⋅⋅⋅= K

1

1P kP

kPPP ++= K1

kYYY ++= K1

K

ε ε

εε

b b

+31X +3

nX+21X

+11X

+2nX

+1nX

Рис. 6.7. Автоматная счетчиковая машина, которая допускает языкLOG(P (x1,...,xn)) = {ax1bax2b . . . axnbay | y > P (x1, . . . , xn) ∧ 0 6 x1, . . . ,xn, y}

надграфа полинома P (x1, . . . , xn)

Автоматная счетчиковая машина ACM , вычисляющая полином

P (x1, . . . ,xn) = P1(xs1, . . . ,xsh )+P2(xw1

, . . . ,xwl)+. . .+Pk(xt1 , . . . ,xtg ),

строится как комбинация машин M1, M2, . . . , Mk, вычисляющиходночлены y1 = P1, y2 = P2, . . . , yk = Pk, и машины сложенияM ′(y1, y2, . . . , yk, y), которая записывает результат в y.

Автоматная счетчиковая машина-распознаватель, допускающаяязык LOG(P (x1,...,xn)) надграфа полинома P (x1, . . . ,xn)

{ax1bax2b . . . axnbay | y > P (x1, . . . ,xn) ∧ 0 6 x1, . . . ,xn, y},представлена на рис. 6.7. Необходимо отметить, что на этом рисункеблоки Y1 = a1 · X1

s1· . . . · X1

sh, . . . , Yk = ak · Xk

t1· . . . · Xk

tgпостроены

таким образом, чтобы счетчики, содержащие значения лишних длясоответствующего одночлена переменных, обнулялись (в этих блоках).

Таким образом, получили справедливость следующей теоремы.

Т е о р ем а 6.10. Проблема включения языков неразрешима для ав-томатных счетчиковых машин-распознавателей.

Для двух произвольных множеств A и B мы имеем

B ⊆ A ⇐⇒ A = A ∪B.

Отсюда для демонстрации неразрешимости проблемы равенства язы-ков двух автоматных счетчиковых машин-распознавателей необходи-мо показать возможность построения новой автоматной счетчиковоймашины-распознавателя, допускающей объединение языков исходныхмашин. Такая автоматная счетчиковая машина-распознаватель строит-ся очевидным образом так, как это показано на рис. 6.2 (слева).

6.4. Проблемы включения и равенства языков 155

Т ео р ем а 6.11. Проблема равенства языков неразрешима для авто-матных счетчиковых машин-распознавателей.

Опр е д е л е ни е. Рассмотрим в качестве алфавита ∆ для автоматнойсчетчиковой машины конечное множество пар вида

(буква в алфавите Σ или ε, команда машины).

Определим на множестве автоматных счетчиковых машин отноше-

ние регулярной эквивалентностиr∼ следующим образом.

Две автоматные счетчиковые машины регулярно эквиваленты тогдаи только тогда, когда эквивалентны (т. е. допускают один и тот жеязык) недетерминированные конечные автоматы над алфавитом ∆, ле-жащие в основе этих автоматных счетчиковых машин. Тогда, очевидно,справедливо выражение

ACM1r∼ ACM2 =⇒ L(ACM1) = L(ACM2).

Отношениеr∼ разрешимо, поскольку разрешима проблема экви-

валентности недетерминированных конечных автоматов. Импликацияв обратную сторону не выполняется. В противном случае мы имели быразрешимость проблемы равенства языков для автоматных счетчико-вых машин, так как не сложно привести две автоматные счетчиковыемашины к одному алфавиту ∆, не оказывая влияния на допускаемыеими языки.

Page 79: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

Литература

1. Гинзбург С. Математическая теория контекстно-свободных язы-ков. М.: Мир, 1970. 328 с.

2. Гинзбург С., Грейбах Ш. Абстрактные семейства языков // Сбор-ник «Языки и автоматы». М.: Мир, 1975. С. 233–281.

3. Карп Р.М., Миллер Р. Е. Параллельные схемы программ // Ки-бернетический сборник. Вып. 13 (новая серия). М.: Мир, 1976.С. 5–61.

4. Кларк, Э. М., Грамберг О., Пелед Д. Верификация моделей про-грамм: Model Checking. М.: МЦНМО, 2002. 416 с.

5. Кнут Д.Э. Искусство программирования. Т. 2.: Получисленныеалгоритмы. М: Вильямс, 2000. 832 с.

6. Котов В.Е. Сети Петри. М.: Наука, Физматлит, 1984. 160 с.

7. Котов В. Е., Сабельфельд В.К. Теория схем программ. М.: Наука,Физматлит, 1991. 248 с.

8. Кузьмин Е. В. Счетчиковые машины. Уч. пособие. Ярославль,ЯрГУ, 2010. 128 с.

9. Кузьмин Е. В. Верификация моделей программ. Уч. пособие. Яро-славль, ЯрГУ, 2008. 176 с.

10. Кузьмин Е. В., Соколов В.А. Моделирование счетчиковых машиндвухголовочными автоматами // Моделирование и анализ инфор-мационных систем. Ярославль, 2012. Т. 19, №5.

11. Кузьмин Е. В., Соколов В.А. Структурированные системы перехо-дов. Уч. пособие. М.: Наука, Физматлит, 2006. 176 с.

12. Кузьмин Е. В., Соколов В.А. Взаимодействующие раскрашива-ющие процессы // Моделирование и анализ информационныхсистем. Ярославль, 2004. Т. 11, №2. С. 8–17.

13. Кузьмин Е. В., Соколов В.А., Чалый Д.Ю. Проблемы ограничен-ности счетчиковых машин Минского // Доклады Академии наук.Москва, 2008. Т. 421, №6. С. 741–743.

Литература 157

14. Кузьмин Е. В., Соколов В.А., Чалый Д.Ю. О языках автоматныхсчетчиковых машин // Материалы Международного рабочего со-вещания «Program Semantics, Specification and Verification: Theoryand Applications (PSSV 2010)». Казань, 2010. С. 70–75.

15. Кузьмин Е. В., Чалый Д.Ю. Алгоритмы для проблемы ограничен-ности счетчиковых машин // Моделирование и анализ информа-ционных систем. Ярославль, 2008. Т. 15, №4. С. 42–55.

16. Кузьмин Е. В., Чалый Д.Ю. О разрешимости проблем ограни-ченности для счетчиковых машин Минского // Моделированиеи анализ информационных систем. Ярославль, 2008. Т. 15, №1.С. 16–26.

17. Кузьмин Е. В., Чалый Д.Ю. О языках автоматных счетчиковыхмашин // Моделирование и анализ информационных систем. Яро-славль, 2010. Т. 17, №2. С. 48–71.

18. Кузьмин Е. В., Чалый Д.Ю. О множестве достижимости автомат-ных счетчиковых машин // Моделирование и анализ информаци-онных систем. Ярославль, 2010. Т. 17, №1. С. 52–64.

19. Кузьмин Е. В., Чалый Д.Ю. О множестве достижимости автомат-ных трехсчетчиковых машин // Моделирование и анализ инфор-мационных систем. Ярославль, 2009. Т. 16, №3. С. 77–84.

20. Кузьмин Е. В., Чалый Д.Ю. Об одном классе счетчиковых машин// Моделирование и анализ информационных систем. Ярославль,2009. Т. 16, №2. С. 75–82.

21. Ломазова И.А. Вложенные сети Петри: моделирование и анализраспределенных систем с объектной структурой. М.: Научныймир, 2004. 208 с.

22. Мальцев А.И. Алгоритмы и рекурсивные функции. 2-е изд. М.:Наука, Физматлит, 1986. 386 с.

23. Матиясевич Ю.В. Диофантовость перечислимых множеств //Доклады Академии наук СССР. Москва, 1970. Т. 191, №2.С. 279–282.

24. Минский М. Вычисления и автоматы. М.: Мир, 1971. 268 c.

25. Питерсон Дж. Теория сетей Петри и моделирование систем. М.:Мир, 1984. 264 с.

26. Хопкрофт Д., Мотвани Р., Ульман Д. Введение в теорию авто-матов, языков и вычислений. 2-е изд.; пер. с англ. М.: Вильямс,2002. 528 с.

27. Aho A.V. Indexed grammars — an extension of context-freegrammars // Journal of the ACM. 1968. V. 15, №4. P. 647–671.

Page 80: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

158 Литература

28. Abdulla P.A., Cerans K., Jonsson B., Tsay Y.-K. General decidabilitytheorems for infinite-state systems // Proceedings of the EleventhAnnual IEEE Symposium on Logic in Computer Science (LICS1996). IEEE Computer Society Press, 1996. P. 313–321.

29. Dickson L. E. Finiteness of the odd perfect and primitive abundantnumbers with r distinct prime factors // Amer. Journal Math. 1913.V. 35. P. 413–422.

30. Finkel A. Reduction and covering of infinite reachability trees //Information and Computation. 1990. V. 89, №2. P. 144–179.

31. Finkel A., Schnoebelen Ph. Well-Structured Transition SystemsEverywhere! // Theoretical Computer Science. 2001. V. 256, №1–2.P. 63–92.

32. Ginsburg S. The mathematical theory of context-free languages.McGraw-Hill, 1966. 244 с.

33. Ginsburg S. Algebraic and Automata-Theoretic Properties of FormalLanguages. Elsevier Science Inc., 1975.

34. Ginsburg S., Greibach S. Abstract families of languages // «Studiesin Abstract Families of Languages», Amer. Math. Soc. 1969. V. 87.P. 1–32.

35. Higman G. Ordering by Divisibility in Abstract Algebras // Proc.London Math. Soc. 1952. V. s3–2, №1. P. 326–336.

36. Hopcroft J. E., Pansiot J.-J. On the Reachability Problem for 5-Dimensional Vector Addition Systems. Computer science technicalreport. Cornell University, 1976. http://hdl.handle.net/1813/6102

37. Konig D. Theorie der Endlichen und Unendlichen Graphen //Akademische Verlagsgesellschaft. Leipzig, 1936.

38. Kuzmin E.V., Sokolov V.A., Chalyy D. Ju. Automaton CounterMachines // Proc. Int. Workshop on Program Understanding (sat.of PSI’09). 2009. P. 1–4.

39. Peterson J. L. Petri Net Theory and the Modeling of Systems.Prentice-Hall Int., 1981.

40. Schroeppel R. A Two Counter Machine Cannot Calculate 2N . Memo257. Massachusetts Institute of Technology, Artificial IntelligenceLaboratory, 1972. 32 p.

Page 81: Е.В. Кузьмин, В.А. Соколов · 2012-10-15 · Формализация интуитивного понятия алгоритма с помощью машин Тьюринга

Научное издание

КУЗЬМИН Егор ВладимировичСОКОЛОВ Валерий Анатольевич

АВТОМАТНЫЕ СЧЕТЧИКОВЫЕ МАШИНЫ

Монография

Печатается в авторской редакцииКомпьютерный набор и верстка Е. В. Кузьмин

Подписано в печать 15.10.2012. Формат 60×84/16.Усл. печ. л. 9, 5. Уч.-изд. л. 9, 0.Тираж 500 экз. Заказ 094/012.

Оригинал-макет подготовленв Управлении научных исследований и инноваций

ЯрГУ им. П. Г. Демидова.

Отпечатано на ризографе.

Ярославский государственный университет им. П. Г. Демидова150000, Ярославль, ул. Советская, 14