
- •Функции и графы
- •Вычислимость и разрешимость
- •Программы и схемы программ
- •Базис класса стандартных схем программ
- •Графовая форма стандартной схемы
- •Линейная форма стандартной схемы
- •Интерпретация стандартных схем программ
- •Эквивалентность, тотальность, пустота, свобода
- •Свободные интерпретации
- •Согласованные свободные интерпретации
- •Логико-термальная эквивалентность
- •Одноленточные автоматы
- •Многоленточные автоматы
- •Двухголовочные автоматы
- •1.4.3.1. Проблемы пустоты и эквивалентности.
- •1.4.3.2. Двоичный двухголовочный автомат
- •1.4.3.3. Построение схемы, моделирующей автомат
- •Рекурсивное программирование
- •Определение рекурсивной схемы
- •Трансляция обогащенных схем
- •О сравнении классов схем
- •Схемы с процедурами
- •Классы обогащенных схем
- •Трансляция обогащенных схем
- •Структурированные схемы
- •Описание смысла программ
- •Операционная семантика
- •Аксиоматическая семантика
- •2.1.2.1. Краткое введение в исчисление высказываний
- •2.1.2.2. Преобразователь предикатов
- •2.1.2.3. Аксиоматическое определение операторов языка программирования в терминах wp.
- •Денотационная семантика
- •Декларативная семантика
- •Методы доказательства правильности программ
- •Использование высказываний в программах
- •Правила верификации к. Хоара
- •Определения
- •Реализация процессов
- •Протоколы
- •Операции над протоколами
- •Протоколы процесса
- •Спецификации
- •Взаимодействие
- •Параллелизм
- •Задача об обедающих философах
- •I.Встаёт праваЯi).
- •Помеченные процессы
- •Множественная пометка
- •Ввод и вывод
- •Взаимодействия
- •Подчинение
- •Поочередное использование
- •Общая память
- •Кратные ресурсы
- •Планирование ресурсов
- •Основные понятия
- •Многопоточная обработка
- •Условные критические участки
- •Мониторы
- •Instanсе ракетa: счет; р.
- •Обмен сообщениями
- •Параллелизм данных
- •Модель общей памяти
- •Теоретико-множественное определение сетей Петри
- •Графы сетей Петри
- •Маркировка сетей Петри
- •Правила выполнения сетей Петри
- •События и условия
- •Одновременность и конфликт
- •Моделирование параллельных систем взаимодействующих процессов
- •Свойства сетей Петри
- •Методы анализа
Многоленточные автоматы
Многоленточный (детерминированный,
односторонний) конечный автомат (МКА)
задается так же, как ОКА. Отличие состоит
в том, что множество состояний Q разбивается
на n2 подмножеств
(непересекающихся)Q1,
..., Qn. «Физическая»
интерпретацияn- ленточного автомата
отличается тем, что он имеетnлент
иnголовок, по головке на ленту. Если
автомат находится в состоянииqQi,тоi-я головка читаетi-ю ленту
так же, как это делает ОКА. При переходе
МКА в состояниеq'
Qj
(i
j)i-я головка останавливается, аj-я
начинает читать свою ленту. МКА
останавливается, когда головка на одной
из лент прочитает символ.
Рассмотрим функционирование МКА с n= 2 (рисунок 1.7.) на примере сравнения пар слов в алфавите {1, 0} и допуске только совпадающих слов.
Здесь Q = Q1Q2,
гдеQ1={q01};Q2={q12,
q22, q32};R={q01};V={0,
1}, начальное состояние -q01.
МКА обрабатывает наборы слов (U1,
U2), где словоU1
записано на первой ленте, аU2- на второй. Допустимое множество наборовMA-это все возможные пары
одинаковых слов, т.е. наборы, гдеU1
= U2. Например,
набор может быть (1101, 1101) и т.п.
В том случае, когда слова совпадают, МКА остановится в заключительном состоянии q01(именно в этом состоянии поступит символ) и набор будет допущен. Если слова не совпадут хотя бы в одном символе, МКА перейдет в состояниеq32, из которого не выйдет до появления символа, который и зафиксирует отсутствие совпадения слов, т.е. не допустит искаженный набор.
Доказана разрешимость проблемы эквивалентности двухленточных автоматов.
Двухголовочные автоматы
Несмотря
на то, что двухленточные и двухголовочные
автоматы похожи друг на друга, их свойства
сильно отличаются. Так, проблема пустоты
разрешима для многоленточных автоматов
и неразрешима для многоголовочных.
Более того, в последнем случае она не является даже частично разрешимой. Проблема эквивалентности также не является частично разрешимой для многоголовочных автоматов. Однако проблема эквивалентности разрешима для двухленточных автоматов, и остается пока открытой для многоленточных автоматов с тремя и более лентами.
Двухголовочный конечный автомат(ДКА) имеет одну ленту идве головки, которые могут независимо перемещаться вдоль ленты в одном направлении. Множество состоянийQразбито на два непересекающихся множества. В состоянияхQ1активна первая головка, а в состоянияхQ2 - вторая.
Двухголовочный автомат можно рассматривать как такой двухленточный автомат, который работает с идентичными словами на обеих лентах.
Приведем пример ДКА, который проверяет
равенство двух последовательно записанных
слов в алфавите V= {0, 1}. Признаком
окончания каждого из слов сделаем
вспомогательный символ *, не входящий
вV. Автомат должен допускать только
слова видаа*,аV*.
ПустьA= (V
{*},Q1
Q2,
R, q01, #, I), гдеQ1= {q01,
q11, q21,
q71} - множество
состояний, в которых активна первая
головка;Q2 = {q32,
q42, q52,
q62} - множество
состояний, в которых активна вторая
головка;R= {q71}
- множество, содержащее единственное
заключительное состояние. Граф автомата
показан на рис. 1.8, на котором вместо
многих «параллельных» дуг с разными
пометками нарисована одна дуга со всеми
пометками.
Находясь в состоянии g01,автомат передвигает первую головку к началу второго слова и, обнаружив его, переходит в состояниеq11. Если конец ленты # встречается раньше символа *, автомат переходит в незаключительное состояниеq62.Если же автомат приходит к состояниюq11, он считывает поочередно символы второго слова первой головкой (состояниеq11), а символы первого слова — второй головкой (состоянияq32иq52), сравнивая эти символы. Автомат возвращается каждый раз в состояниеq11, если символы одинаковы. Если же обнаружится несовпадение символов или первая головка встречает конец слова раньше символа *, автомат уходит в состояниеq62. Попав в это состояние, автомат не может выйти из него; перемещая вторую головку к концу слова на ленте, он достигает #, находясь в незаключительном состоянии, так что слово на ленте отвергается. Если первая головка достигнет конца второго слова, а вторая головка обнаружит, что первое слово тоже просмотрено до конца, то автомат перейдет в заключительное состояниеq71. В противном случае автомат перейдет в состояниеq62, отвергая слово.
Этот пример легко обобщить на случай произвольного алфавита V, увеличивая количество состояний множестваQ.