Какое условие следует указать в блоке select output в программе AnyLogic?

Какое условие необходимо задать в блоке select output, чтобы агент, достигнув 30 часов движения, отправился в блок delay2 на стоянку в течение 4 часов, после чего продолжил движение через блок delay1 до тех пор, пока снова не наберет 30 часов?
  • 17 октября 2024 г. 11:02
Ответы на вопрос 1
В программе AnyLogic для реализации описанного сценария в блоке Select Output необходимо задать условие, которое будет проверять, достиг ли агент 30 часов движения. Ви можете использовать переменную, которая отслеживает общее время движения агента.

Вот пример условий, которые можно задать:

1. **Первый вывод (в блок Delay2):**
   Это условие указывает, что агент должен передаться в блок Delay2, если общее время движения агента больше или равно 30 часам. Это можно описать следующим образом:
   ```java
   agent.totalTravelTime >= 30
   ```

2. **Второй вывод (для продолжения движения через Delay1):**
   После того как агент завершит ожидание в блоке Delay2, вам нужно добавить дополнительное условие, чтобы продолжить его движение через Delay1, когда он не наберет 30 часов. Для этого вы можете использовать аналогичное условие, которое следует после нахождения в блоке Delay2:
   ```java
   agent.totalTravelTime < 30
   ```

Таким образом, в блоке Select Output будет два условия:
- Первое для маршрута в Delay2 (указанное выше).
- Второе для продолжения движения через Delay1.

Кроме того, вам нужно будет правильно настроить переходы между блоками, чтобы все работало логично и последовательно. Убедитесь также, что переменная `totalTravelTime` обновляется корректно во время движения агента.
Похожие вопросы