- •Введение
- •Предмет теории процессов
- •Верификация процессов
- •Спецификация процессов
- •Понятие процесса
- •Представление поведения динамических систем в виде процессов
- •Неформальное понятие процесса и примеры процессов
- •Неформальное понятие процесса
- •Пример процесса
- •Другой пример процесса
- •Действия
- •Определение понятия процесса
- •Понятие трассы
- •Достижимые и недостижимые состояния
- •Замена состояний
- •Операции на процессах
- •Префиксное действие
- •Пустой процесс
- •Альтернативная композиция
- •Параллельная композиция
- •Ограничение
- •Переименование
- •Свойства операций на процессах
- •Эквивалентность процессов
- •Понятие эквивалентности процессов и связанные с ним задачи
- •Трассовая эквивалентность процессов
- •Сильная эквивалентность
- •Критерии сильной эквивалентности
- •Логический критерий сильной эквивалентности
- •Критерий сильной эквивалентности, основанный на понятии бимоделирования
- •Алгебраические свойства сильной эквивалентности
- •Распознавание сильной эквивалентности
- •Полиномиальный алгоритм распознавания сильной эквивалентности
- •Минимизация процессов
- •Минимальные процессы относительно
- •Алгоритм минимизации процессов
- •Наблюдаемая эквивалентность
- •Определение наблюдаемой эквивалентности
- •Логический критерий наблюдаемой эквивалентности
- •Критерий наблюдаемой эквивалентности, основанный на понятии наблюдаемого БМ
- •Алгебраические свойства наблюдаемой эквивалентности
- •Другие критерии эквивалентности процессов
- •Наблюдаемая конгруэнция
- •Мотивировка понятия наблюдаемой конгруэнции
- •Определение понятия наблюдаемой конгруэнции
- •Логический критерий наблюдаемой конгруэнтности
- •Критерий наблюдаемой конгруэнтности, основанный на понятии НБМ
- •Алгебраические свойства наблюдаемой конгруэнции
- •Распознавание наблюдаемой конгруэнтности
- •Минимизация процессов относительно наблюдаемой конгруэнции
- •Рекурсивные определения процессов
- •Процессные выражения
- •Понятие рекурсивного определения процессов
- •Вложение процессов
- •Предел последовательности вложенных процессов
- •Процессы, определяемые процессными выражениями
- •Эквивалентность РО
- •Доказательство эквивалентности процессов при помощи РО
- •Проблемы, связанные с понятием РО
- •Примеры доказательства свойств процессов
- •Потоковые графы
- •Мастерская
- •Неконфликтное использование ресурса
- •Планировщик
- •Семафор
- •Процессы с передачей сообщений
- •Действия с передачей сообщений
- •Вспомогательные понятия
- •Типы, переменные, значения и константы
- •Функциональные символы
- •Выражения
- •Понятие процесса с передачей сообщений
- •Множество переменных процесса
- •Начальное условие
- •Операторы
- •Определение процесса
- •Функционирование процесса
- •Пример процесса с передачей сообщений
- •Понятие буфера
- •Представление поведения буфера в виде процесса
- •Операции на процессах с передачей сообщений
- •Префиксное действие
- •Альтернативная композиция
- •Параллельная композиция
- •Ограничение
- •Переименование
- •Эквивалентность процессов
- •Понятие конкретизации процесса
- •Понятие эквивалентности процессов
- •Процессы с составными операторами
- •Мотивировка понятия процесса с составными операторами
- •Понятие составного оператора
- •Понятие процесса с СО
- •Функционирование процесса с СО
- •Операции на процессах с СО
- •Преобразование процессов с передачей сообщений в процессы с СО
- •Конкатенация СО
- •Редукция процессов с СО
- •Пример редукции
- •Понятие конкретизации процесса с СО
- •Отношения эквивалентности на процессах с СО
- •Метод доказательства наблюдаемой эквивалентности процессов с СО
- •Пример доказательства наблюдаемой эквивалентности процессов с СО
- •Дополнительные замечания
- •Другой пример доказательства наблюдаемой эквивалентности процессов с СО
- •Рекурсивные определения процессов
- •Примеры процессов с передачей сообщений
- •Разделение множеств
- •Задача разделения множеств
- •Распределённый алгоритм решения задачи разделения множеств
- •Процессы Small и Large
- •Анализ алгоритма разделения множеств
- •Вычисление квадрата
- •Сети Петри
- •Протоколы передачи данных в компьютерных сетях
- •Понятие протокола
- •Методы исправления искажений в кадрах
- •Методы обнаружения искажений в кадрах
- •Пример протокола
- •Протокол с чередующимися битами
- •Двунаправленная передача
- •Дуплексный протокол с чередующимися битами
- •Двунаправленная конвейерная передача
- •Протокол скользящего окна с возвратом
- •Протокол скользящего окна с выборочным повтором
- •Криптографические протоколы
- •Понятие криптографического протокола
- •Шифрование сообщений
- •Формальное описание КП
- •Примеры КП
- •Представление структур данных в виде процессов
- •Понятие структуры данных
- •Семантика языка параллельного программирования
- •Описание языка параллельного программирования
- •Конструкции языка L
- •Программы на языке L
- •Семантика языка L
- •Семантика выражений
- •Семантика деклараций
- •Семантика операторов
- •Исторический обзор и современное состояние дел
- •Робин Милнер
- •Исчисление взаимодействующих систем (CCS)
- •Теория взаимодействующих последовательных процессов (CSP)
- •Алгебра взаимодействующих процессов (ACP)
- •Процессные алгебры
- •Мобильные процессы
- •Гибридные системы
- •Другие математические теории и программные средства, связанные с моделированием процессов
- •Бизнес-процессы
Глава 4
Эквивалентность процессов
4.1Понятие эквивалентности процессов и связанные с ним задачи
Одно и то же поведение может быть представлено различными процессами. Например, рассмотрим два процесса:
a
a - a - a - . . .
Хотя у первого процесса всего одно состояние, а у второго множество состояний бесконечно, но эти процессы представляют одно и то же поведение, которое заключается в постоянном выполнении одного и того же действия a.
Представляет интерес поиск подходящего определения эквивалентности процессов, согласно которому процессы эквивалентны тогда и только тогда, когда они имеют одно и то же поведение.
В этой главе мы излагаем несколько определений понятия эквивалентности процессов. Выбор того или иного варианта данного понятия в конкретной ситуации должен определяться тем, как именно в данной ситуации понимается одинаковость поведения процессов.
63
Впараграфах 4.2 и 4.3 вводятся понятия трассовой эквивалентности и сильной эквивалентности процессов. Данные понятия используются в той ситуации, когда все действия, выполняющиеся в процессах, имеют одинаковый статус.
Впараграфах 4.8 и 4.9 предлагаются другие варианты понятия эквивалентности процессов: наблюдаемая эквивалентность и наблюдаемая конгруэнция. Данные понятия используются в тех ситуациях, когда мы рассматриваем невидимое действие τ как несущественное, и считаем две трассы одинаковыми, если одна может быть получена из другой путём вставок и/или удалений невидимых действий τ.
С каждым из возможных вариантов понятия эквивалентности процессов связаны две естественные задачи.
1.Распознавание для двух заданных процессов, являются ли они эквивалентными.
2.Построение по заданному процессу P такого процесса P 0, который является наименее сложным (например, имеет минимальное число состояний) среди всех процессов, которые эквивалентны P .
4.2Трассовая эквивалентность процессов
Как уже было сказано выше, мы хотели бы рассматривать два процесса как эквивалентные, если они описывают одно и то же поведение. Поэтому, если мы рассматриваем поведение процесса как порождение некоторой трассы, то необходимым условием эквивалентности процессов P1 и P2 является совпадение множеств их трасс:
T r(P1) = T r(P2) |
(4.1) |
В некоторых ситуациях условие (4.1) можно использовать в качестве определения эквивалентности между P1 и P2. Однако нижеследующий пример показывает, что это условие не отражает один важный аспект поведения процессов.
64
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
a |
A a |
|
|
a |
|
A |
|
|
|
? |
|
AU |
|
|
b |
AA c |
|
c |
(4.2) |
|
|
UA |
? ? |
|
||
|
A |
|
b |
|
|
|
|
Множества трасс этих процессов совпадают:
T r(P1) = T r(P2) = {ε, a, ab, ac}
(где ε – пустая последовательность).
Однако эти процессы отличаются тем, что
•в левом процессе после выполнения первого действия (a) сохраняется возможность выбора следующего действия (b или c), в то время как
•в правом процессе после выполнения первого действия такого выбора нет:
–если первый переход был совершён по левому ребру, то вторым действием может быть только действие b,
–а если по правому - то только действие c,
т.е. второе действие было предопределено ещё до выполнения первого действия.
Если мы не хотели бы рассматривать эти процессы как эквивалентные, то условие (4.1) надо некоторым образом усилить. Один из вариантов такого усиления излагается ниже. Для того, чтобы его сформулировать, определим сначала понятие трассы из некоторого состояния процесса.
Каждый вариант поведения процесса P = (S, s0, R) мы интерпретируем как порождение некоторой последовательности переходов
s0 |
a1 - |
s1 |
a2 - |
s2 |
a3 - |
. . . |
(4.3) |
|
|
|
65
начинающейся с начального состояния, т.е. s0 = s0.
Мы можем рассматривать порождение последовательности (4.3) не только с начального, а с произвольного состояния s S, т.е. рассматривать последовательность вида (4.3), в которой s0 = s. Последовательность (a1, a2, . . .) меток этих переходов мы будем называть трассой с началом в s. Множество всех таких трасс мы будем обозначать знакосочетанием T rs(P ).
Пусть P1 и P2 – процессы вида
|
Pi = (Si, si0, Ri) |
(i = 1, 2) |
|
||||
Рассмотрим произвольную конечную последовательность пе- |
|||||||
реходов в P1 вида |
|
|
|
|
|
||
s10 = s0 |
a1 - |
s1 |
a2 - |
. . . |
an - |
sn (n ≥ 0) |
(4.4) |
|
|
|
(случай n = 0 соответствует пустой последовательности переходов (4.4), к которой sn = s01)
Последовательность (4.4) можно рассматривать как начальный этап функционирования процесса P1, а каждую трассу из T rsn (P1) – как некоторое продолжение этого этапа.
Процессы P1 и P2 называются трассово эквивалентными, если
•для каждого начального этапа (4.4) функционирования процесса P1 существует начальный этап функционирования процесса P2
s0 |
= s0 |
a1 - |
s0 |
a2 - |
. . . |
an - |
s0 |
(4.5) |
|
|
|
||||||
2 |
0 |
1 |
|
|
|
n |
|
который имеет точно такую же трассу a1 . . . an, что и (4.4), и в конце которого имеется точно такой же выбор дальнейшего продолжения, что и в конце этапа (4.4), т.е.
T rsn (P1) = T rsn0 (P2) |
(4.6) |
•и, кроме того, имеет место симметричное условие: для каждой последовательности переходов в P2 вида (4.5) должна существовать последовательность переходов в P1 вида (4.4), такая, что имеет место равенство (4.6).
66