- •Введение
- •Предмет теории процессов
- •Верификация процессов
- •Спецификация процессов
- •Понятие процесса
- •Представление поведения динамических систем в виде процессов
- •Неформальное понятие процесса и примеры процессов
- •Неформальное понятие процесса
- •Пример процесса
- •Другой пример процесса
- •Действия
- •Определение понятия процесса
- •Понятие трассы
- •Достижимые и недостижимые состояния
- •Замена состояний
- •Операции на процессах
- •Префиксное действие
- •Пустой процесс
- •Альтернативная композиция
- •Параллельная композиция
- •Ограничение
- •Переименование
- •Свойства операций на процессах
- •Эквивалентность процессов
- •Понятие эквивалентности процессов и связанные с ним задачи
- •Трассовая эквивалентность процессов
- •Сильная эквивалентность
- •Критерии сильной эквивалентности
- •Логический критерий сильной эквивалентности
- •Критерий сильной эквивалентности, основанный на понятии бимоделирования
- •Алгебраические свойства сильной эквивалентности
- •Распознавание сильной эквивалентности
- •Полиномиальный алгоритм распознавания сильной эквивалентности
- •Минимизация процессов
- •Минимальные процессы относительно
- •Алгоритм минимизации процессов
- •Наблюдаемая эквивалентность
- •Определение наблюдаемой эквивалентности
- •Логический критерий наблюдаемой эквивалентности
- •Критерий наблюдаемой эквивалентности, основанный на понятии наблюдаемого БМ
- •Алгебраические свойства наблюдаемой эквивалентности
- •Другие критерии эквивалентности процессов
- •Наблюдаемая конгруэнция
- •Мотивировка понятия наблюдаемой конгруэнции
- •Определение понятия наблюдаемой конгруэнции
- •Логический критерий наблюдаемой конгруэнтности
- •Критерий наблюдаемой конгруэнтности, основанный на понятии НБМ
- •Алгебраические свойства наблюдаемой конгруэнции
- •Распознавание наблюдаемой конгруэнтности
- •Минимизация процессов относительно наблюдаемой конгруэнции
- •Рекурсивные определения процессов
- •Процессные выражения
- •Понятие рекурсивного определения процессов
- •Вложение процессов
- •Предел последовательности вложенных процессов
- •Процессы, определяемые процессными выражениями
- •Эквивалентность РО
- •Доказательство эквивалентности процессов при помощи РО
- •Проблемы, связанные с понятием РО
- •Примеры доказательства свойств процессов
- •Потоковые графы
- •Мастерская
- •Неконфликтное использование ресурса
- •Планировщик
- •Семафор
- •Процессы с передачей сообщений
- •Действия с передачей сообщений
- •Вспомогательные понятия
- •Типы, переменные, значения и константы
- •Функциональные символы
- •Выражения
- •Понятие процесса с передачей сообщений
- •Множество переменных процесса
- •Начальное условие
- •Операторы
- •Определение процесса
- •Функционирование процесса
- •Пример процесса с передачей сообщений
- •Понятие буфера
- •Представление поведения буфера в виде процесса
- •Операции на процессах с передачей сообщений
- •Префиксное действие
- •Альтернативная композиция
- •Параллельная композиция
- •Ограничение
- •Переименование
- •Эквивалентность процессов
- •Понятие конкретизации процесса
- •Понятие эквивалентности процессов
- •Процессы с составными операторами
- •Мотивировка понятия процесса с составными операторами
- •Понятие составного оператора
- •Понятие процесса с СО
- •Функционирование процесса с СО
- •Операции на процессах с СО
- •Преобразование процессов с передачей сообщений в процессы с СО
- •Конкатенация СО
- •Редукция процессов с СО
- •Пример редукции
- •Понятие конкретизации процесса с СО
- •Отношения эквивалентности на процессах с СО
- •Метод доказательства наблюдаемой эквивалентности процессов с СО
- •Пример доказательства наблюдаемой эквивалентности процессов с СО
- •Дополнительные замечания
- •Другой пример доказательства наблюдаемой эквивалентности процессов с СО
- •Рекурсивные определения процессов
- •Примеры процессов с передачей сообщений
- •Разделение множеств
- •Задача разделения множеств
- •Распределённый алгоритм решения задачи разделения множеств
- •Процессы Small и Large
- •Анализ алгоритма разделения множеств
- •Вычисление квадрата
- •Сети Петри
- •Протоколы передачи данных в компьютерных сетях
- •Понятие протокола
- •Методы исправления искажений в кадрах
- •Методы обнаружения искажений в кадрах
- •Пример протокола
- •Протокол с чередующимися битами
- •Двунаправленная передача
- •Дуплексный протокол с чередующимися битами
- •Двунаправленная конвейерная передача
- •Протокол скользящего окна с возвратом
- •Протокол скользящего окна с выборочным повтором
- •Криптографические протоколы
- •Понятие криптографического протокола
- •Шифрование сообщений
- •Формальное описание КП
- •Примеры КП
- •Представление структур данных в виде процессов
- •Понятие структуры данных
- •Семантика языка параллельного программирования
- •Описание языка параллельного программирования
- •Конструкции языка L
- •Программы на языке L
- •Семантика языка L
- •Семантика выражений
- •Семантика деклараций
- •Семантика операторов
- •Исторический обзор и современное состояние дел
- •Робин Милнер
- •Исчисление взаимодействующих систем (CCS)
- •Теория взаимодействующих последовательных процессов (CSP)
- •Алгебра взаимодействующих процессов (ACP)
- •Процессные алгебры
- •Мобильные процессы
- •Гибридные системы
- •Другие математические теории и программные средства, связанные с моделированием процессов
- •Бизнес-процессы
•неравенства (8.6), и
•свойства фундированности множества натуральных чисел (т.е. из того, что в данном множестве нет бесконечных убывающих цепей).
Читателю предлагается самостоятельно
•найти необходимые и достаточные условия, которым должны удовлетворять разделяемые множества U и V , чтобы приведённый выше алгоритм завершал свою работу с этими U и V нормально, и
•разработать такой алгоритм разделения множеств, который бы работал корректно на любых разделяемых множествах U и V .
8.2Вычисление квадрата
Предположим, что мы имеем систему “умножитель”, у которой есть
•два входных порта с именами In1 и In2, и
•один выходной порт с именем Out.
Работа умножителя заключается в том, что он периодически
•получает на свои входные порты два значения, и
•выдаёт на выходном порте их произведение.
Поведение умножителя описывается процессом Mul:
? |
|
Out ! (x · y) |
|
|
|
|
|
|
|
|
|
||
|
|
|
||||
|
|
|
- |
|
|
|
A |
- B |
|
|
C |
||
In1 ? x In2 ? y |
|
243
Используя этот умножитель, мы хотим построить систему “вычислитель квадрата”, поведение которой описывается процес-
сом Square_Spec: In ? zOut ! (z2) -
Искомую систему мы построим как композицию
•вспомогательной системы “дубликатор”, имеющей
–входной порт In, и
–выходные порты Out1 и Out2
поведение которой описывается процессом Dup:
? |
Out2 ! z |
|
||||
|
|
|
|
|
||
|
|
|
- |
|
|
|
a |
- b |
|
|
|
c |
|
In ? z |
Out1 ! z |
|
т.е. дубликатор копирует свой вход на два выхода, и
•умножителя, который будет получать на свои входные порты те значения, которые будет выдавать дубликатор.
Процесс Square, соответствующий такой композиции, определяется следующим образом:
|
|
def |
|
|
|
|
|
|
|
|
|
|
|||
Square = |
, pass2 |
/In2] |
| ! \ {pass1, pass2} |
||||||||||||
= |
|
Mul[pass1/In1 |
|||||||||||||
def |
Dup[pass1/Out1 |
, pass2 |
/Out2] |
|
|
|
|||||||||
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Потоковый граф процесса Square имеет вид |
|||||||||||||||
|
|
' |
$1 |
' |
$ |
||||||||||
|
|
|
|
|
|
u |
pass |
- e |
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
In |
e Dup |
u |
pass2 |
- |
|
e |
Mul |
uOut |
|||||
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
& |
% |
|
& |
|
% |
244
Однако процесс Square не соответствует своей спецификации Square_Spec. Данный факт нетрудно установить при помощи построения графового представления процесса Square, который, согласно определению операций параллельной композиции, ограничения и переименования, имеет следующий вид:
? |
|
|
Out ! (x · y) |
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
||||
aA |
|
|
|
aB |
|
|
|
|
|
|
aC |
||||
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
In ? z |
|
|
|
|
In ? z |
|
|
|
In ? z |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
? |
|
|
|
|
|
? |
|
|
|
|
? |
||||
|
|
|
|
|
|
|
|
|
|||||||
bA |
|
|
|
bB |
|
|
|
|
|
|
bC |
||||
|
|
|
|
|
|
|
|
|
|||||||
6@@ |
|
|
|
|
|
|
|
|
|
||||||
@ |
Out ! (x |
y) |
|
|
|
|
|
|
|||||||
|
|
@ |
@ |
|
· |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
y := z |
|
|
|
|
|
|
|
|
|
|
x := z @ |
|
|
|
|
|
|
|
|
|
|
|||
|
|
@ |
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cA |
|
|
@R |
|
|
|
|
|
|
cC |
|||||
|
|
|
cB |
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|||||||
6 |
|
|
|
|
|
|
|
|
|||||||
|
|
Out ! (x · y) |
|
|
|
|
|
|
|
После редукции данного процесса мы получим диаграмму
|
|
In ? z |
|
|
|
|
|
|
|
x := z |
|
|
(8.8) |
||||
|
||||||||
A1 |
y := z |
- |
A2 |
In ? z |
- |
A3 |
|
|
Out ! (x · y) |
Out ! (x · y) |
|
|
|||||
|
|
|
x := z |
|
|
|
y := z
245
из которой видно, что
•процесс Square может последовательно совершить два действия ввода, не выполняя между ними действия вывода,
•а процесс Square_Spec этого сделать не может.
Процесс Square соответствует другой спецификации:
Square_Spec0 |
def |
Buf [pass/Out] |
] ! \ {pass} |
|
= |
| |
Square_Spec[pass/In| |
||
|
|
|
|
где Buf – буфер длины 1, поведение которого изображается диа-
граммой
In ? xOut ! x -
Потоковый граф процесса Square_Spec0 имеет вид
' $' $
|
pass |
|||
In e Buf |
u - |
eSquare_Spec uOut |
||
& |
%& |
|
% |
Графовое представление процесса Square_Spec0 получается путём
•применения операций параллельной композиции, ограничения и переименования к процессам Buf и Square_Spec,
и
•выполнения редукции получившегося процесса. Редуцированный процесс Square_Spec0 имеет вид
|
|
z := x |
|
|
|||||
In ? x |
|
||||||||
a1 |
In ? x |
- |
a2 |
|
- |
a3 |
(8.9) |
||
|
|||||||||
|
z := x 2 |
|
|
Out ! (z2) |
|
|
|
||
Out ! (z |
) |
|
|
|
|
|
|
246
Соответствие процесса Square спецификации Square_Spec0 можно понимать как истинность соотношения
(8.8) ≈ (8.9)
Доказать наблюдаемую эквивалентность процессов (8.8) и (8.9) можно, например, при помощи теоремы 34. Для того, чтобы её можно было применить, переименуем переменные в процессе (8.9) (чтобы множества переменных анализируемых процессов не пересекались). Мы получим процесс, эквивалентный процессу (8.9):
|
|
v := u |
|
(8.10) |
||||
a1 |
In ? u |
- |
a2 |
|
In ? u |
- |
a3 |
|
|
|
|||||||
|
v := u 2 |
|
|
Out ! (v2) |
|
|
|
|
Out ! (v |
) |
|
|
|
|
|
|
Для доказательства соотношения (8.8) ≈ (8.10) при помощи теоремы 34 мы определим функцию
µ : {A1, A2, A3} × {a1, a2, a3} → F m
следующим образом:
def
• µ(Ai, aj) = , если i =6 j
def
• µ(A1, a1) = >
def
• µ(A2, a2) = (x = y = z = u)
()
def |
x = y = v |
• µ(A3, a3) = |
z = u |
Детальная проверка истинности соответствующих диаграмм остаётся читателю в качестве несложного упражнения.
247