- •Введение
- •Предмет теории процессов
- •Верификация процессов
- •Спецификация процессов
- •Понятие процесса
- •Представление поведения динамических систем в виде процессов
- •Неформальное понятие процесса и примеры процессов
- •Неформальное понятие процесса
- •Пример процесса
- •Другой пример процесса
- •Действия
- •Определение понятия процесса
- •Понятие трассы
- •Достижимые и недостижимые состояния
- •Замена состояний
- •Операции на процессах
- •Префиксное действие
- •Пустой процесс
- •Альтернативная композиция
- •Параллельная композиция
- •Ограничение
- •Переименование
- •Свойства операций на процессах
- •Эквивалентность процессов
- •Понятие эквивалентности процессов и связанные с ним задачи
- •Трассовая эквивалентность процессов
- •Сильная эквивалентность
- •Критерии сильной эквивалентности
- •Логический критерий сильной эквивалентности
- •Критерий сильной эквивалентности, основанный на понятии бимоделирования
- •Алгебраические свойства сильной эквивалентности
- •Распознавание сильной эквивалентности
- •Полиномиальный алгоритм распознавания сильной эквивалентности
- •Минимизация процессов
- •Минимальные процессы относительно
- •Алгоритм минимизации процессов
- •Наблюдаемая эквивалентность
- •Определение наблюдаемой эквивалентности
- •Логический критерий наблюдаемой эквивалентности
- •Критерий наблюдаемой эквивалентности, основанный на понятии наблюдаемого БМ
- •Алгебраические свойства наблюдаемой эквивалентности
- •Другие критерии эквивалентности процессов
- •Наблюдаемая конгруэнция
- •Мотивировка понятия наблюдаемой конгруэнции
- •Определение понятия наблюдаемой конгруэнции
- •Логический критерий наблюдаемой конгруэнтности
- •Критерий наблюдаемой конгруэнтности, основанный на понятии НБМ
- •Алгебраические свойства наблюдаемой конгруэнции
- •Распознавание наблюдаемой конгруэнтности
- •Минимизация процессов относительно наблюдаемой конгруэнции
- •Рекурсивные определения процессов
- •Процессные выражения
- •Понятие рекурсивного определения процессов
- •Вложение процессов
- •Предел последовательности вложенных процессов
- •Процессы, определяемые процессными выражениями
- •Эквивалентность РО
- •Доказательство эквивалентности процессов при помощи РО
- •Проблемы, связанные с понятием РО
- •Примеры доказательства свойств процессов
- •Потоковые графы
- •Мастерская
- •Неконфликтное использование ресурса
- •Планировщик
- •Семафор
- •Процессы с передачей сообщений
- •Действия с передачей сообщений
- •Вспомогательные понятия
- •Типы, переменные, значения и константы
- •Функциональные символы
- •Выражения
- •Понятие процесса с передачей сообщений
- •Множество переменных процесса
- •Начальное условие
- •Операторы
- •Определение процесса
- •Функционирование процесса
- •Пример процесса с передачей сообщений
- •Понятие буфера
- •Представление поведения буфера в виде процесса
- •Операции на процессах с передачей сообщений
- •Префиксное действие
- •Альтернативная композиция
- •Параллельная композиция
- •Ограничение
- •Переименование
- •Эквивалентность процессов
- •Понятие конкретизации процесса
- •Понятие эквивалентности процессов
- •Процессы с составными операторами
- •Мотивировка понятия процесса с составными операторами
- •Понятие составного оператора
- •Понятие процесса с СО
- •Функционирование процесса с СО
- •Операции на процессах с СО
- •Преобразование процессов с передачей сообщений в процессы с СО
- •Конкатенация СО
- •Редукция процессов с СО
- •Пример редукции
- •Понятие конкретизации процесса с СО
- •Отношения эквивалентности на процессах с СО
- •Метод доказательства наблюдаемой эквивалентности процессов с СО
- •Пример доказательства наблюдаемой эквивалентности процессов с СО
- •Дополнительные замечания
- •Другой пример доказательства наблюдаемой эквивалентности процессов с СО
- •Рекурсивные определения процессов
- •Примеры процессов с передачей сообщений
- •Разделение множеств
- •Задача разделения множеств
- •Распределённый алгоритм решения задачи разделения множеств
- •Процессы Small и Large
- •Анализ алгоритма разделения множеств
- •Вычисление квадрата
- •Сети Петри
- •Протоколы передачи данных в компьютерных сетях
- •Понятие протокола
- •Методы исправления искажений в кадрах
- •Методы обнаружения искажений в кадрах
- •Пример протокола
- •Протокол с чередующимися битами
- •Двунаправленная передача
- •Дуплексный протокол с чередующимися битами
- •Двунаправленная конвейерная передача
- •Протокол скользящего окна с возвратом
- •Протокол скользящего окна с выборочным повтором
- •Криптографические протоколы
- •Понятие криптографического протокола
- •Шифрование сообщений
- •Формальное описание КП
- •Примеры КП
- •Представление структур данных в виде процессов
- •Понятие структуры данных
- •Семантика языка параллельного программирования
- •Описание языка параллельного программирования
- •Конструкции языка L
- •Программы на языке L
- •Семантика языка L
- •Семантика выражений
- •Семантика деклараций
- •Семантика операторов
- •Исторический обзор и современное состояние дел
- •Робин Милнер
- •Исчисление взаимодействующих систем (CCS)
- •Теория взаимодействующих последовательных процессов (CSP)
- •Алгебра взаимодействующих процессов (ACP)
- •Процессные алгебры
- •Мобильные процессы
- •Гибридные системы
- •Другие математические теории и программные средства, связанные с моделированием процессов
- •Бизнес-процессы
4.6Распознавание сильной эквивалентности
4.6.1Отношение µ(P1, P2)
Пусть заданы два процесса
Pi = (Si, s0i , Ri) (i = 1, 2)
Определим функцию 0 на множестве всех отношений из S1 в S2, которая сопоставляет каждому отношению µ S1 × S2 отношение µ0 S1 × S2, определяемое следующим образом:
|
|
|
|
s10 |
|
S1 |
: (s1 |
a s10 ) |
|
R1 |
|
|
||||||||
|
|
|
|
|
|
a |
|
|
Act |
→ |
|
a |
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
(s2 |
|
s20 ) |
|
R2 |
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def |
|
(s1, s2) |
|
|
|
|
s0 |
|
|
S2 : |
|
|
→ |
|
|
|
|
|
||
µ0 = |
|
|
|
|
|
|
2 |
|
|
|
( |
(s0 |
|
|
|
|
||||
|
|
|
|
|
|
|
|
, s0 |
) µ |
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
2 |
|
|
|
|
|
|
|
|
S1 |
S2 |
|
|
|
|
|
|
|
|
|
a |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
× |
|
|
|
s20 |
|
S2 : (s2 |
→ |
s20 ) |
|
R2 |
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
a |
|
|
R1 |
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
(s1 |
|
s10 ) |
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
s0 |
|
|
S1 : |
|
|
→ |
|
|
|
|
|
||
|
|
|
|
|
|
|
|
1 |
|
|
|
( |
(s0 |
) |
|
|
|
|||
|
|
|
|
|
|
|
|
|
, s0 |
|
µ |
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Нетрудно доказать, что для каждого µ S1 × S2
µ удовлетворяет условиям 1 и 2 |
µ µ0 |
из определения БМ |
|
Следовательно, |
|
(
(s0, s0) µ
µ – БМ между P1 и P2 1 20
µ µ
Нетрудно доказать, что функция 0 монотонна, т.е.
если µ1 µ2, то µ01 µ02.
Обозначим символом µmax объединение всех отношений из совокупности
{µ S1 × S2 | µ µ0} |
(4.30) |
Заметим, что отношение µmax принадлежит совокупности (4.30), так как для каждого µ (4.30) из
83
|
µ S |
||
• включения µ ( |
(4.30) µ) = µmax, и |
||
• монотонности функции 0 |
|||
следует, что для каждого µ (4.30) |
|||
|
µ S |
µ µ0 µmax0 |
|
Поэтому µmax = |
µ µmax0 , т.е. µmax (4.30). |
||
(4.30) |
Заметим, что имеет место равенство
µmax = µ0max
так как из включения µmax µ0max и из монотонности функции
0 следует включение
µ0max µ00max
т.е. µ0max (4.30), откуда, в силу максимальности µmax, следует
включение
µ0max µmax
Таким образом, отношение µmax является
•наибольшим элементом совокупности (4.30), и
•наибольшей неподвижной точкой функции 0. Мы будем обозначать это отношение знакосочетанием
µ(P1, P2) |
(4.31) |
Из теоремы 2 следует, что
P1 P2 (s01, s02) µ(P1, P2)
Из определения отношения µ(P1, P2) вытекает, что данное отношение состоит из всех пар (s1, s2) S1 × S2, таких, что
P1(s1) P2(s2)
Отношение µ(P1, P2) можно рассматривать как меру близости между P1 и P2.
84
4.6.2Полиномиальный алгоритм распознавания сильной эквивалентности
Пусть P1 и P2 – процессы вида
Pi = (Si, s0i , Ri) (i = 1, 2)
Если множества S1 и S2 конечны, то задача проверки истинности соотношения
P1 P2 |
(4.32) |
очевидно является алгоритмически разрешимой: например, можно перебрать все отношения µ S1 × S2 и для каждого из них проверить условия 0, 1 и 2 из определения БМ. Алгоритм заканчивает свою работу, когда
•нашлось хотя бы одно отношение µ S1 × S2 которое удовлетворяет условиям 0, 1 и 2 из определения БМ, в этом случае он выдаёт ответ
P1 P2
или
•все отношения µ S1 × S2 перебраны, и ни одно из них не удовлетворяет условиям 0, 1 и 2 из определения БМ, в этом случае он выдаёт ответ
P1 6 P2
Если P1 6 P2, то вышеприведённый алгоритм выдаст ответ после перебора всех отношений между S1 и S2, число которых
– 2|S1|·|S2|, т.е. данный алгоритм имеет экспоненциальную сложность.
Данную задачу можно решить гораздо более эффективным алгоритмом, который имеет полиномиальную сложность. Для построения такого алгоритма мы рассмотрим следующую последовательность отношений между S1 и S2
{µi | i ≥ 1} |
(4.33) |
85
def |
× S2, и i ≥ 1 |
def |
где µ1 = S1 |
µi+1 = µi0. |
Из соотношения µ1 µ2 и монотонности функции 0 следует,
что
µ2 = µ01 µ02 = µ3 µ3 = µ02 µ03 = µ4
и т.д.
Таким образом, последовательность (4.33) монотонна:
µ1 µ2 . . .
Поскольку все члены последовательности (4.33) являются подмножествами конечного множества S1 × S2, то данная последовательность не может бесконечно убывать, она стабилизируется на некотором члене, т.е. для некоторого i ≥ 1 имеет место соотношение
µi = µi+1 = µi+2 = . . .
Докажем, что член µi, на котором наступает стабилизация, совпадает с отношением µ(P1, P2).
•Т.к. µi = µi+1 = µ0i, т.е. µi – неподвижная точка функции 0, то
µi µ(P1, P2) |
(4.34) |
поскольку µ(P1, P2) – наибольшая неподвижная точка функ- |
|
ции 0. |
|
• Т.к. для каждого j ≥ 1 имеет место включение |
|
µ(P1, P2) µj |
(4.35) |
поскольку |
|
–включение (4.35) верно для j = 1, и
–если включение (4.35) верно для некоторого j, то, в силу монотонности функции 0, имеем соотношения
µ(P1, P2) = µ(P1, P2)0 µ0j = µj+1
т.е. включение (4.35) будет верно для j + 1
86
то, в частности, (4.35) верно для j = i.
Из (4.34) и (4.35) для j = i следует равенство
µi = µ(P1, P2) |
(4.36) |
Таким образом, задача проверки истинности соотношения P1 P2 может быть решена путём
•нахождения первого члена µi последовательности (4.33), который удовлетворяет условию µi = µi+1, и
•проверки для этого µi соотношения
(s10, s20) µi |
(4.37) |
Алгоритм выдаёт ответ
P1 P2
тогда и только тогда, когда выполняется (4.37).
Для вычисления членов последовательности (4.33) можно использовать нижеследующий алгоритм, который по отношению
µ S1 × S2 вычисляет отношение µ0: |
|
|
|
|
|
|
|
|
|
|
|||||||
µ0 |
:= |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
цикл для каждого (s1, s2) µ |
|
|
|
|
|
|
|||||||||||
|
включить := > |
s10 , a : |
s1 |
|
|
|
a |
- s10 |
|||||||||
цикл для каждого |
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
a |
- |
|
|
|
|
|
|
найдено := |
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
цикл для каждого |
|
s20 |
: |
s2 |
|
|
|
|
|
|
|
|
s20 |
||
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
1 2 |
|
|
|
|
|
|
|
||
|
|
найдено := найдено |
(s0 , s0 ) |
µ |
|
|
|
||||||||||
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
конец цикла |
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
a |
|
|
|
|
|||
|
|
включить := включить |
|
|
|
|
|
|
|
|
|
||||||
|
|
|
найдено |
|
|
||||||||||||
|
конец цикла |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
2 |
|
|
|
|
|
|
|
|
|
2 |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
цикл для каждого |
s0 , a : |
s2 |
|
|
|
|
|
- |
s0 |
|||||||
|
|
|
|
|
|
||||||||||||
|
|
найдено := |
|
|
|
|
|
|
|
|
a - |
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
цикл для каждого |
|
s10 |
: |
s1 |
|
|
|
|
|
|
|
|
s10 |
||
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
найдено := найдено |
|
(s10 , s20 ) |
|
µ |
|
|
|
||||||||
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
конец цикла |
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
включить := включить |
|
найдено |
|
|
|||||||||||
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
конец цикла |
|
|
|
{ |
|
|
|
|
|
|
|
} |
||||
|
если включить то µ0 |
:= µ0 |
(s1, s2) |
||||||||||||||
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
конец цикла |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
87