Задание 3. Настройка логических процессов транспорта



На этом этапе мы зададим начальную конфигурацию типа агента Transport.

Если у агента можно выделить несколько состояний, выполняющих различные действия при происхождении каких-то событий, или если у агента есть несколько качественно различных поведений, последовательно сменяющих друг друга при происхождении определенных событий, то поведение такого объекта может быть описано в терминах диаграммы состояний. Диаграмма состояний позволяет графически задать пространство состояний алгоритма поведения объекта, а также события, которые являются причинами срабатывания переходов из одних состояний в другие, и действия, происходящие при смене состояний.

С помощью диаграмм состояний можно графически задать дискретные поведения объектов любой сложности, куда более разнообразные, чем элементарные состояния свободен/занят (idle/busy), открыт/закрыт (open/closed), исправен/неисправен (up/down) и т.п., предлагаемые большинством блочных инструментов моделирования.

Диаграмма состояний представляет собой состояния, соединенные переходами. Переходы могут сработать в результате заданного в качестве условия перехода события - это может быть истечение заданного таймаута, получение диаграммой состояний сообщения, выполнение заданного логического условия и т.д. Срабатывание перехода приводит к переходу управления диаграммы состояний в то состояние, в которое ведет этот переход. Состояния могут быть иерархическими, т.e. содержать другие состояния и переходы.

Добавьте необходимые переменные

1. Перейдите в панель Проекты и откройте двойным щелчком тип агента Transport. Добавьте два элемента Переменная из палитры Агент.

2. Как Вы помните, мы хотим использовать два вида транспорта: грузовики и вертолеты, для обслуживания турбин. Мы используем переменную type, чтобы различать эти два вида транспорта. Переменная type должна быть типа TransportType, чтобы мы могли использовать варианты AUTO и AVIA.

3. Переменная request является переменной типа ServiceRequest:

Нарисуйте диаграмму состояний транспорта

1. Мы используем элементы палитры Диаграмма состояний, чтобы задать поведение этого типа агента. Перетащите элемент Начало диаграммысостояний  в графический редактор типа агента Transport. Этот элемент задает начало всей диаграммы. Добавьте Состояние , перетащив этот элемент из палитры, Диаграмма состояний, и поместите его в конец стрелки начала диаграммы состояний. Чтобы добавить переход, сделайте двойной щелчок по элементу Переход в палитре. Его иконка поменяется на , это значит, что элемент теперь в режиме рисования. Вы можете рисовать переходы, делая щелчки по состояниям. Удостоверьтесь, что элементы соединяются друг с другом. Когда они соединены, AnyLogic отображает зеленую точку в месте соединения.

2. На этом шаге мы создадим «пустую» диаграмму состояний, которая состоит из четырех состояний и трех переходов разных типов.

3. Состояния называются AtCenter (в сервисном центре), MovingToMC (движение к сервисному центру), Servicing (обслуживание турбины), MovingToTurbine (движение к турбине). Это, собственно, все действия и передвижения грузовиков и вертолетов в нашей модели. Пожалуйста, следуйте структуре диаграммы, представленной на рисунке ниже.

4. Внутренние настройки и условия некоторых состояний и переходов ссылаются на элементы модели, которые мы еще не создали. С другой стороны, нам необходима эта диаграмма, поскольку на нее ссылаются некоторые из тех элементов, которые мы зададим позднее. Поэтому сейчас мы продолжим разрабатывать другие типы агентов и закончим логику типа Transport в самом конце разработки модели.


Дата добавления: 2020-04-25; просмотров: 184; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!