- •Введение
- •Предмет теории процессов
- •Верификация процессов
- •Спецификация процессов
- •Понятие процесса
- •Представление поведения динамических систем в виде процессов
- •Неформальное понятие процесса и примеры процессов
- •Неформальное понятие процесса
- •Пример процесса
- •Другой пример процесса
- •Действия
- •Определение понятия процесса
- •Понятие трассы
- •Достижимые и недостижимые состояния
- •Замена состояний
- •Операции на процессах
- •Префиксное действие
- •Пустой процесс
- •Альтернативная композиция
- •Параллельная композиция
- •Ограничение
- •Переименование
- •Свойства операций на процессах
- •Эквивалентность процессов
- •Понятие эквивалентности процессов и связанные с ним задачи
- •Трассовая эквивалентность процессов
- •Сильная эквивалентность
- •Критерии сильной эквивалентности
- •Логический критерий сильной эквивалентности
- •Критерий сильной эквивалентности, основанный на понятии бимоделирования
- •Алгебраические свойства сильной эквивалентности
- •Распознавание сильной эквивалентности
- •Полиномиальный алгоритм распознавания сильной эквивалентности
- •Минимизация процессов
- •Минимальные процессы относительно
- •Алгоритм минимизации процессов
- •Наблюдаемая эквивалентность
- •Определение наблюдаемой эквивалентности
- •Логический критерий наблюдаемой эквивалентности
- •Критерий наблюдаемой эквивалентности, основанный на понятии наблюдаемого БМ
- •Алгебраические свойства наблюдаемой эквивалентности
- •Другие критерии эквивалентности процессов
- •Наблюдаемая конгруэнция
- •Мотивировка понятия наблюдаемой конгруэнции
- •Определение понятия наблюдаемой конгруэнции
- •Логический критерий наблюдаемой конгруэнтности
- •Критерий наблюдаемой конгруэнтности, основанный на понятии НБМ
- •Алгебраические свойства наблюдаемой конгруэнции
- •Распознавание наблюдаемой конгруэнтности
- •Минимизация процессов относительно наблюдаемой конгруэнции
- •Рекурсивные определения процессов
- •Процессные выражения
- •Понятие рекурсивного определения процессов
- •Вложение процессов
- •Предел последовательности вложенных процессов
- •Процессы, определяемые процессными выражениями
- •Эквивалентность РО
- •Доказательство эквивалентности процессов при помощи РО
- •Проблемы, связанные с понятием РО
- •Примеры доказательства свойств процессов
- •Потоковые графы
- •Мастерская
- •Неконфликтное использование ресурса
- •Планировщик
- •Семафор
- •Процессы с передачей сообщений
- •Действия с передачей сообщений
- •Вспомогательные понятия
- •Типы, переменные, значения и константы
- •Функциональные символы
- •Выражения
- •Понятие процесса с передачей сообщений
- •Множество переменных процесса
- •Начальное условие
- •Операторы
- •Определение процесса
- •Функционирование процесса
- •Пример процесса с передачей сообщений
- •Понятие буфера
- •Представление поведения буфера в виде процесса
- •Операции на процессах с передачей сообщений
- •Префиксное действие
- •Альтернативная композиция
- •Параллельная композиция
- •Ограничение
- •Переименование
- •Эквивалентность процессов
- •Понятие конкретизации процесса
- •Понятие эквивалентности процессов
- •Процессы с составными операторами
- •Мотивировка понятия процесса с составными операторами
- •Понятие составного оператора
- •Понятие процесса с СО
- •Функционирование процесса с СО
- •Операции на процессах с СО
- •Преобразование процессов с передачей сообщений в процессы с СО
- •Конкатенация СО
- •Редукция процессов с СО
- •Пример редукции
- •Понятие конкретизации процесса с СО
- •Отношения эквивалентности на процессах с СО
- •Метод доказательства наблюдаемой эквивалентности процессов с СО
- •Пример доказательства наблюдаемой эквивалентности процессов с СО
- •Дополнительные замечания
- •Другой пример доказательства наблюдаемой эквивалентности процессов с СО
- •Рекурсивные определения процессов
- •Примеры процессов с передачей сообщений
- •Разделение множеств
- •Задача разделения множеств
- •Распределённый алгоритм решения задачи разделения множеств
- •Процессы Small и Large
- •Анализ алгоритма разделения множеств
- •Вычисление квадрата
- •Сети Петри
- •Протоколы передачи данных в компьютерных сетях
- •Понятие протокола
- •Методы исправления искажений в кадрах
- •Методы обнаружения искажений в кадрах
- •Пример протокола
- •Протокол с чередующимися битами
- •Двунаправленная передача
- •Дуплексный протокол с чередующимися битами
- •Двунаправленная конвейерная передача
- •Протокол скользящего окна с возвратом
- •Протокол скользящего окна с выборочным повтором
- •Криптографические протоколы
- •Понятие криптографического протокола
- •Шифрование сообщений
- •Формальное описание КП
- •Примеры КП
- •Представление структур данных в виде процессов
- •Понятие структуры данных
- •Семантика языка параллельного программирования
- •Описание языка параллельного программирования
- •Конструкции языка L
- •Программы на языке L
- •Семантика языка L
- •Семантика выражений
- •Семантика деклараций
- •Семантика операторов
- •Исторический обзор и современное состояние дел
- •Робин Милнер
- •Исчисление взаимодействующих систем (CCS)
- •Теория взаимодействующих последовательных процессов (CSP)
- •Алгебра взаимодействующих процессов (ACP)
- •Процессные алгебры
- •Мобильные процессы
- •Гибридные системы
- •Другие математические теории и программные средства, связанные с моделированием процессов
- •Бизнес-процессы
Правило 3 (удаление несущественных присваиваний).
Пусть P – некоторый процесс с СО.
Обозначим знакосочетанием op(P ) совокупность всех операторов, входящих в какой-либо из СО процесса P .
Будем называть переменную x XP несущественной, если
•x не входит ни в один из
–операторов проверки условия, и
–операторов вывода
из op(P )
•если x входит в правую часть какого-либо оператора присваивания из op(P ) вида (y := e), то переменная y
– несущественная.
Правило 3 заключается в удалении из всех СО редуцируемого процесса операторов присваивания вида (x := e), где переменная x – несущественная.
7.8.9Пример редукции
Рассмотрим в качестве примера редукцию процесса Bu er n (графовое представление которого приведено в параграфе 7.5.3).
Ниже мы будем использовать следующее соглашение:
• если в СО Op
cond (Op) = >
то первый оператор в таком СО мы писать не будем
•операторы, входящие в СО, можно располагать не только по горизонтали, но и по вертикали
•скобки, в которые заключена последовательность операторов, из которых состоит СО, можно опускать.
Исходный процесс Bu er n имеет следующий вид:
207
k := k + 1 k := k − 1 - O - B P
@
|
|
|
|
|
|
@ (k |
≥ |
n) ? |
|||
|
|
|
|
|
|
@ |
|
|
|
||
q := q |
[f] |
(k < n) ? |
|
@ |
@ |
|
|
q := q0 |
|||
· |
|
|
|
|
|
|
|
@ |
|
|
|
|
D (k ≤ 0) ? |
C |
|
|
|
R@ E |
|||||
|
|
|
|
||||||||
|
|
|
|
? |
|
|
|
@@ |
|
||
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|||||
|
In ? f |
(k > 0) ? |
|
|
|
Out ! qˆ |
|||||
|
|
|
|
|
F |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
In ? f |
|
Out ! qˆ |
|
||||||
|
? |
|
? |
? |
|||||||
|
L |
|
|
|
|
|
|
|
- M |
Первый шаг редукции заключается в удалении состояния C (применяется правило 1 для s = C):
|
|
|
|
|
|
|
1 |
|
||||||||
|
|
- O |
k := k + 1 - B |
k := k − |
|
|
P |
|||||||||
|
|
|
|
|
|
|||||||||||
|
|
k < n |
|
@ |
|
|
||||||||||
|
|
|
||||||||||||||
|
|
( k ≤ 0 |
) ? |
@ |
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
@ (k |
≥ |
n) ? |
||||||||
q := q |
[f] |
|
|
|
|
@ |
@ |
|
|
|
|
q := q0 |
||||
· |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
( k > 0 |
|
@ |
@ |
|
|
E |
|||
|
|
D |
|
|
|
|
) ? |
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
k < n |
|
|
|
@ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@R |
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
In ? f |
|
|
|
|
Out ! qˆ |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
? |
|
In ? f |
|
? Out ! qˆ |
|
|
|
? |
|
|||||
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
L |
|
|
|
|
F |
|
|
|
- M |
|||||
|
|
|
|
|
|
|
|
208
Поскольку n > 0, то формулу (k < n) (k ≤ 0) в метке перехода из B в D можно заменить на равносильную формулу k ≤ 0.
Второй и третий шаги редукции – удаление состояний O и P :
q := q · [f] k := k + 1
|
|
|
|
|
|
- B |
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
@ |
|
|
|
|
|
||
|
|
|
|
|
|
|
@ |
|
|
|
|
|
||
|
|
|
(k |
≤ |
0) ? |
|
|
@ (k |
≥ |
n) ? |
q := q0 |
|||
|
|
|
|
|
|
@ |
|
|
|
|||||
|
|
|
|
|
|
|
@ |
@ |
|
|
|
k := k − 1 |
||
|
|
D |
|
|
|
R@ E |
|
|||||||
|
|
|
|
(0 < k < n) ? |
|
|||||||||
|
|
|
|
|
|
|
|
|
|
@@ |
|
|
||
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
In ? f |
|
|
|
Out ! qˆ |
|
||||||
|
|
|
|
|
|
F |
|
|
|
|||||
|
|
|
|
|||||||||||
|
|
|
|
|
||||||||||
|
In ? f |
|
|
|
|
|||||||||
? |
|
|
|
? Out ! qˆ |
|
? |
|
|||||||
|
|
L |
|
|
|
|
|
|
|
- M |
|
Четвёртый и пятый шаги редукции – удаление состояний D и E:
209
q := q · [f] k := k + 1
|
|
|
|
|
- B |
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
≤ |
|
|
|
@ |
|
|
||
(k |
|
0) ? |
|
@ |
|
|||||
|
|
In ? f |
|
|
|
@ (k ≥ n) ? |
q := q0 |
|||
|
|
|
|
|
|
|
|
@ Out ! qˆ |
||
|
|
|
|
|
@ |
|
k := k − 1 |
|||
|
|
|
|
|
|
@ |
|
|
||
|
|
|
|
|
|
@ |
@ |
|
||
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
(0 < k < n) ? |
@ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
F |
|
|
|
|
|
|||
|
In ? f |
|
Out ! qˆ |
|
|
? |
? |
? |
|||
L |
|
|
|
- M |
Шестой шаг редукции – удаление состояния F :
q := q · [f] k := k + 1
|
|
|
|
|
- B |
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(k |
|
|
|
@ |
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|||||||
|
≤ |
0) ? |
A@ |
|
|
|
|
|
||||||
|
|
|
|
|
A |
(k ≥ n) ? |
|
|||||||
|
|
In ? f |
|
|
A @ |
q := q0 |
||||||||
|
|
|
|
|
|
A @ Out ! qˆ |
|
|
||||||
|
|
|
|
|
|
|
AA |
@ |
|
|
|
|
k := k − 1 |
|
|
|
|
|
|
|
|
|
|
@ |
|
|
|
|
|
|
|
|
|
|
|
|
|
A |
|
@ |
|
|
|
|
|
|
|
|
|
|
|
|
A |
@ |
|
|
|
||
|
|
(0 < k < n) ? |
A |
|
@ |
|
|
|
||||||
|
|
|
|
|
In ? f |
|
|
A |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A |
|
|
|
|
|
|
|
|
|
|
|
|
(0 < k < n) ?A |
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
A |
|
|
|
|
|
|
|
|
|
|
|
Out ! qˆ |
|
A |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A |
|
|||
|
L |
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
A |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
? |
|
|
|
|
|
|
|
|
AU |
? |
|
M
210
Седьмой и восьмой шаги редукции – применение правила 2 к переходам вида B → L и B → M. В получившемся процессе мы заменяем
•формулу (0 < k < n) (k ≤ 0) – на равносильную ей формулу (k < n)
•формулу (0 < k < n) (k ≥ n) – на равносильную ей формулу (k > 0)
q := q · [f] k := k + 1
|
- B |
|
|
|
|
|||
|
|
|
|
|
|
|||
|
|
|
|
|
|
|||
|
|
|
|
|
|
|||
|
|
A |
|
|
|
|
||
|
|
A |
|
|
|
q := q0 |
||
|
|
|
|
A |
|
|
|
|
|
|
|
|
A |
|
|
|
|
|
|
|
|
AA |
|
|
|
k := k − 1 |
|
|
|
|
A |
|
|
|
|
|
|
|
|
A |
|
|
|
|
|
(k < n) ? |
|
A |
|
|
|
|
|
|
In ? f |
|
A |
|
|
|
|
|
|
|
|
|
A |
|
|
|
|
|
|
|
|
A |
|
|
|
|
|
|
|
|
(k > 0) ?A |
A |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Out ! qˆ |
A |
|
|
|
L |
|
|
|
|
A |
|
||
|
|
|
|
|
||||
|
|
|
|
|
A |
|||
|
|
|
|
|
|
|||
|
|
|
|
|
|
AU |
M
Девятый и десятый шаги редукции – удаление состояний L и M. В результате мы получаем не редуцируемый далее процесс с СО с одним состоянием:
|
(k < n) ? |
|
|
|
(k > 0) ? |
|
|
|
|
|
In ? f |
|
|
|
Out ! qˆ |
|
|
(7.23) |
|
|
q := q · [f] |
|
|
q := q0 |
|
|
|
||
k := k + 1 |
|
|
− |
1 |
|
||||
|
- |
B |
k := k |
|
|
||||
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
211