- •Функции и графы
- •Вычислимость и разрешимость
- •Программы и схемы программ
- •Базис класса стандартных схем программ
- •Графовая форма стандартной схемы
- •Линейная форма стандартной схемы
- •Интерпретация стандартных схем программ
- •Эквивалентность, тотальность, пустота, свобода
- •Свободные интерпретации
- •Согласованные свободные интерпретации
- •Логико-термальная эквивалентность
- •Одноленточные автоматы
- •Многоленточные автоматы
- •Двухголовочные автоматы
- •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: счет; р.
- •Обмен сообщениями
- •Параллелизм данных
- •Модель общей памяти
- •Теоретико-множественное определение сетей Петри
- •Графы сетей Петри
- •Маркировка сетей Петри
- •Правила выполнения сетей Петри
- •События и условия
- •Одновременность и конфликт
- •Моделирование параллельных систем взаимодействующих процессов
- •Свойства сетей Петри
- •Методы анализа
Одноленточные автоматы
Конечный одноленточный(детерминированный, односторонний) автомат обнаруживают ряд полезных качеств, используемых в теории схем программ для установления разрешимости свойств ССП.
Одноленточный конечный автомат (ОКА) над алфавитом Vзадается набором:A= {V, Q, R, q0, #, I} и правилом функционирования, общим для всех таких автоматов. В набореА:
V- алфавит;
Q- конечное непустоемножествосостояний(QV=);
R- множество выделенныхзаключительных состояний(RQ);
q0 - выделенноеначальноесостояние;
I -программа автомата;
# - «пустой» символ.
Программа автоматаIпредставляет собой множествокомандвидаqаq', в которойq,q'Q,aVи для любой пары (q, a) существует единственная команда, начинающаяся этими символами.
Неформально ОКА можно представить как абстрактную машину, похожую на машину Тьюринга, но имеющую следующие особенности:
1) выделены заключительные состояния;
2) машина считывает символы с ленты, ничего не записывая на нее;
3) на каждом шаге головка автомата, считав символ с ленты и перейдя согласно программе в новое состояние, обязательно передвигается вправо на одну клетку;
4) автомат останавливается в том и только в том случае, когда головка достигнет конца слова, т.е. символа .
Говорят, что автомат допускает слово в алфавитеV, если, начав работать с лентой, содержащей это слово, он останавливается в заключительном состоянии. АвтоматAзадает характеристическую функцию множестваMAдопускаемых им словв алфавитеV, т. е. он распознает, принадлежит ли заданное слово множествуMAесли связать с остановкой в заключительном состоянии символ 1, а с остановкой в незаключительном состоянии – 0.
Наглядным способом задания ОКА служат графы автоматов. Автомат Апредставляется графом, множество вершин которого – множество состоянийQ, и из вершиныqв вершинуq’ведет дуга, помеченная символом а, тогда и только тогда, когда программа автомата содержит командуqаq'. Работе автомата над заданным словом соответствует путь из начальной вершиныq.Последовательность проходимых вершин этого пути – это последовательность принимаемых автоматом состояний, образ пути по дугам – читаемое слово. Любой путь в графе автомата, начинающийся в вершинеq0и заканчивающийся в вершинеqR, порождает слово, допустимое автоматом.
Пример 1.2.ОКАA= ({a, b}, {q0, q1, q2, q3}, {q2},q0,,I), допускающего слова {an bm | n= 1,2, ...;m = 1,2, ...}, задается графом (рисунок 1.6.). Программа I содержит команды:
q0aq1; q0bq3; q1aq1; q1bq2; q2aq3; q2bq2; q3aq3; q3bq3.
Автомат называется пустым, еслиМА=, АвтоматыА1 иА2эквивалентны, еслиМА1 = МА2. Для машины Тьюринга проблемы пустоты и эквивалентности неразрешимы, более того, они не являются частично разрешимыми. Ситуация меняется для конечных автоматов.
Для ОКА доказано:
1) Проблема пустоты ОКА разрешима.
Доказательство основано на проверке допустимости конечного множества всех слов, длина которых не превышает числа состояний ОКА - n. Если ни одно слово из этого множества не допускается, то ОКА «пуст».
2) Предположение о том, что минимальная длина допускаемого слова больше nотвергается на том основании, что оно может быть сведено к слову меньшей длины, путем выбрасывания участков между двумя повторяющимися в пути узлами.
3) Проблема эквивалентности ОКА разрешима.
Доказательство основано на использовании отношения эквивалентности двух состояний qиq': если состоянияqиq'эквивалентны, то для всехaA состояния(q, a) и'(q', a) также эквивалентны. Формируемые пары не должны входить одновременно заключительное и незаключительное состояния.