Если у агента можно выделить несколько состояний, выполняющих различные действия при происхождении каких-то событий, или если у агента есть несколько качественно различных поведений, последовательно сменяющих друг друга при происхождении определенных событий, то поведение такого объекта может быть описано в терминах диаграммы состояний. Диаграмма состояний позволяет графически задать пространство состояний алгоритма поведения объекта, а также события, которые являются причинами срабатывания переходов из одних состояний в другие, и действия, происходящие при смене состояний.
С помощью диаграмм состояний можно графически задать дискретные поведения объектов любой сложности, куда более разнообразные, чем элементарные состояния свободен/занят (idle/busy), открыт/закрыт (open/closed), исправен/неисправен (up/down) и т.п., предлагаемые большинством блочных инструментов моделирования.
Диаграммы состояний AnyLogic соответствуют стандарту UML. Они сохраняют графический вид, атрибуты и семантику выполнения, определенную в UML.
Диаграмма состояний представляет собой состояния, соединенные переходами. Переходы могут сработать в результате заданного в качестве условия перехода события — это может быть истечение заданного таймаута, получение диаграммой состояний сообщения, выполнение заданного логического условия и т.д. Срабатывание перехода приводит к переходу управления диаграммы состояний в то состояние, в которое ведет этот переход. Состояния могут быть иерархическими, т.e. содержать другие состояния и переходы.
Диаграмма состояний рисуется с помощью следующих элементов:
Начало диаграммы состояний
Состояние
Переход
Указатель начального состояния
Конечное состояние
Ветвление
Историческое состояние
Элементы диаграммы состояний добавляются на диаграмму путем перетаскивания соответствующих элементов из палитры Диаграмма состояний.
-
Как мы можем улучшить эту статью?
-