doc/BPM/workflow/WF2M/ai_EPC-FSM.md
2025-11-28 21:24:16 +03:00

106 lines
5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

### 1 Представь схему в EPC (Event-Driven Process Chain) в формализме конечных автоматов
с учетом:
- Исключаем Логические операторы (AND, OR, XOR) управляют ветвлениями.
- Событие EPC → Переход FSM
- Функция EPC → Состояние FSM.
### Ответ
# Преобразование EPC в конечный автомат (FSM) по новым правилам
## Основные принципы соответствия
В новой схеме используются следующие правила отображения элементов:
- **Событие EPC** → **Переход FSM**
- **Функция EPC** → **Состояние FSM**
- **Логические операторы** (AND, OR, XOR) — исключаются (рассматриваются только линейные цепочки)
## Правила преобразования
1. **Начальное событие EPC**
→ Переход из начального псевдосостояния FSM в первое состояние (функция).
2. **Промежуточное событие EPC**
→ Переход между состояниями (от предыдущей функции к следующей).
3. **Конечное событие EPC**
→ Переход из последнего состояния FSM в конечное псевдосостояние.
4. **Функция EPC**
→ Состояние FSM, в котором выполняется соответствующая операция.
## Формальная схема преобразования
Для цепочки EPC вида:
```
[Событие₁] → (Функция₁) → [Событие₂] → (Функция₂) → ... → [Событиеₙ]
```
Получаем FSM со следующими элементами:
**Состояния** (соответствуют функциям):
- $S_1$ — (Функция₁)
- $S_2$ — (Функция₂)
- ...
- $S_{n-1}$ — (Функция$_{n-1}$)
**Переходы** (инициируются событиями):
1. $S_{\text{нач}} \xrightarrow{\text{Событие}_1} S_1$
2. $S_1 \xrightarrow{\text{Событие}_2} S_2$
3. ...
4. $S_{n-1} \xrightarrow{\text{Событие}_n} S_{\text{кон}}$
где:
- $S_{\text{нач}}$ — начальное псевдосостояние FSM
- $S_{\text{кон}}$ — конечное псевдосостояние FSM
## Пример преобразования
**Исходная EPCцепочка:**
```
[Заказ получен] → (Проверить оплату) → [Оплата подтверждена] → (Отправить товар) → [Товар отправлен]
```
**Полученный 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, состояние здесь означает *активное выполнение функции*, а не ожидание события.
3. **Инициализация**
Начальное псевдосостояние FSM ($S_{\text{нач}}$) введено формально — в EPC прямого аналога нет.
4. **Завершение**
Конечное псевдосостояние ($S_{\text{кон}}$) соответствует конечному событию EPC.
## Рекомендации по применению
**Использовать метод рекомендуется для:**
- простых линейных процессов;
- моделирования этапов обработки с акцентом на время выполнения функций.
**Для сложных случаев (ветвления, циклы):**
- добавляйте условия на переходах (например, $\text{Оплата подтверждена} \land \text{Склад готов}$);
- рассмотрите переход к расширенным моделям:
- Harel Statecharts;
- UML State Machines.
**Инструменты для автоматизации:**
- YAKINDU Statechart Tools;
- PlantUML (поддержка кастомных правил преобразования).