Anylogic - местоположение агента, вызванное условием - PullRequest
0 голосов
/ 28 мая 2018

У меня проблема с расположением агента в одном из моих симуляторов Anylogic.Я хочу установить условие, которое определяет путь, по которому будет следовать агент при визуализации моего моделирования.

В блоке задержки в главном агенте я записал

if(agent.previousStation==1){
    path01;
    }
else {
    path21;
    }

в расположение агентаfield.

При построении модели anylogic представляет мне следующие ошибки:

Описание: Синтаксическая ошибка, вставьте «VariableDeclarators» для завершения LocalVariableDeclaration.Расположение: FVMMerkmale / shopfloor / wegzeit1 - Задержка

и

Описание: синтаксическая ошибка на токене (ах), неуместные конструкции (ы).Расположение: FVMMerkmale / shopfloor - Тип агента

запись «возврата» перед путем также не помогает и выдает разные ошибки:

Описание: синтаксическая ошибка на токене(s), неуместная конструкция (ы).Расположение: FVMMerkmale / shopfloor - Тип агента

Описание: путь 21 не может быть преобразован в переменную.Расположение: FVMMerkmale / shopfloor / wegzeit1 - Задержка

Описание: методы Void не могут возвращать значение.Расположение: FVMMerkmale / shopfloor / wegzeit1 - Задержка

Описание: агент не может быть преобразован в переменную.Расположение: FVMMerkmale / shopfloor / wegzeit1 - Задержка

Элементы пути находятся в главном агенте.Использование редактора значений для выбора правильного пути будет работать.

Согласно справке anylogic, можно связать местоположение агента с условием:

В противном случае, если вы хотитечтобы установить здесь разные узлы для агентов, вы можете написать выражение Java, которое будет возвращать разные узлы в зависимости от некоторых условий.https://help.anylogic.com/index.jsp?topic=%2Fcom.anylogic.help%2Fhtml%2Fagentbased%2FContinuous_Layouts.html

Как написать условие, определяющее путь или узел в качестве местоположения агента?

1 Ответ

0 голосов
/ 28 мая 2018

Это правильный код, который используется сжатой версией оператора if?и: операторы (без использования точки с запятой)

agent.previousStation==1 ? path01 : path21

Подробнее об этих операторах здесь: http://www.cafeaulait.org/course/week2/43.html

...