mirror of
https://github.com/bpmbpm/doc.git
synced 2026-05-01 04:50:44 +00:00
Create ai_EPC-FSM.md
This commit is contained in:
parent
d29be09169
commit
d141b43f6f
1 changed files with 93 additions and 0 deletions
93
BPM/workflow/WF2M/ai_EPC-FSM.md
Normal file
93
BPM/workflow/WF2M/ai_EPC-FSM.md
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
### 1 Представь схему в EPC (Event-Driven Process Chain) в формализме конечных автоматов
|
||||
с учетом:
|
||||
- Исключаем Логические операторы (AND, OR, XOR) управляют ветвлениями.
|
||||
- Событие EPC → Переход FSM
|
||||
- Функция EPC → Состояние FSM.
|
||||
|
||||
### Ответ
|
||||
Перестроим соответствие между EPC и конечными автоматами согласно правилам:
|
||||
|
||||
1. **Событие EPC → Переход FSM** (а не состояние, как раньше).
|
||||
2. **Функция EPC → Состояние FSM** (а не переход).
|
||||
3. **Логические операторы исключаем** — рассматриваем линейные цепочки без ветвлений.
|
||||
|
||||
## Базовые принципы преобразования
|
||||
|
||||
В схеме:
|
||||
- **Состояние FSM** отражает *выполнение функции* из EPC.
|
||||
- **Переход FSM** инициируется *наступлением события* из EPC.
|
||||
- Последовательность «событие → функция → событие» в EPC превращается в «переход → состояние → переход» в FSM.
|
||||
|
||||
## Правила отображения
|
||||
|
||||
1. **Начальное событие EPC**
|
||||
→ Переход из начального псевдосостояния FSM в первое состояние (функция).
|
||||
|
||||
2. **Промежуточное событие EPC**
|
||||
→ Переход между состояниями (от предыдущей функции к следующей).
|
||||
|
||||
3. **Конечное событие EPC**
|
||||
→ Переход из последнего состояния FSM в конечное псевдосостояние.
|
||||
|
||||
4. **Функция EPC**
|
||||
→ Состояние FSM, в котором выполняется соответствующая операция.
|
||||
|
||||
## Формальная схема преобразования
|
||||
|
||||
Для цепочки EPC:
|
||||
$$
|
||||
[\text{Событие}_1] \to (\text{Функция}_1) \to [\text{Событие}_2] \to (\text{Функция}_2) \to \ldots \to [\text{Событие}_n]
|
||||
$$
|
||||
|
||||
Получаем FSM:
|
||||
- Состояния: $S_1, S_2, \ldots, S_{n-1}$, где $S_i$ соответствует $(\text{Функция}_i)$.
|
||||
- Переходы:
|
||||
- $S_{\text{нач}} \xrightarrow{\text{Событие}_1} S_1$
|
||||
- $S_1 \xrightarrow{\text{Событие}_2} S_2$
|
||||
- $\ldots$
|
||||
- $S_{n-1} \xrightarrow{\text{Событие}_n} S_{\text{кон}}$
|
||||
|
||||
## Пример
|
||||
|
||||
**Исходная EPC‑цепочка**:
|
||||
$$
|
||||
[\text{Заказ получен}] \to (\text{Проверить оплату}) \to [\text{Оплата подтверждена}] \to (\text{Отправить товар}) \to [\text{Товар отправлен}]
|
||||
$$
|
||||
|
||||
**Полученный FSM**:
|
||||
- Состояния:
|
||||
- $S_1$: «Проверить оплату»
|
||||
- $S_2$: «Отправить товар»
|
||||
- Переходы:
|
||||
1. $S_{\text{нач}} \xrightarrow{\text{Заказ получен}} S_1$
|
||||
2. $S_1 \xrightarrow{\text{Оплата подтверждена}} S_2$
|
||||
3. $S_2 \xrightarrow{\text{Товар отправлен}} S_{\text{кон}}$
|
||||
|
||||
## Особенности и ограничения
|
||||
|
||||
1. **Линейность**
|
||||
Схема работает только для *последовательных* EPC без ветвлений, параллелизма и циклов. Для сложных случаев требуется расширение модели (например, добавление условий на переходах).
|
||||
|
||||
2. **Семантика состояний**
|
||||
Состояние FSM означает *активное выполнение функции*, а не ожидание события (как в классическом FSM). Это меняет интерпретацию:
|
||||
- В EPC событие «Оплата подтверждена» *завершает* функцию «Проверить оплату».
|
||||
- В FSM переход по событию «Оплата подтверждена» *выводит* из состояния «Проверить оплату».
|
||||
|
||||
3. **Инициализация**
|
||||
Начальное псевдосостояние FSM не имеет аналога в EPC — оно введено для формальной корректности автомата.
|
||||
|
||||
4. **Завершение**
|
||||
Конечное псевдосостояние FSM аналогично конечному событию EPC, но оформлено как целевой узел перехода.
|
||||
|
||||
## Рекомендации по применению
|
||||
|
||||
1. Используйте этот подход для:
|
||||
- Простых линейных процессов.
|
||||
- Моделирования этапов обработки, где важно выделить *время выполнения функций*.
|
||||
|
||||
2. Для ветвлений/циклов:
|
||||
- Добавьте условия на переходах (например, $\text{Оплата подтверждена} \land \text{Склад готов}$).
|
||||
- Рассмотрите расширение до *Harel Statecharts* или *UML State Machines*.
|
||||
|
||||
3. Для автоматизации:
|
||||
- Применяйте инструменты вроде **YAKINDU Statechart Tools** или **PlantUML**, поддерживающие кастомные правила преобразования.
|
||||
Loading…
Add table
Add a link
Reference in a new issue