Anylogic присваивает значение всем сущностям, а не только одному
Мой источник имеет следующий код в поле "Вкл при выходе": TRUCK.ID_number = параметр; параметр = параметр + 1;
Затем каждый грузовик получит ID: 1, 2, 3, ...
Проблема заключается в том, что все грузовики вращаются одновременно, и, похоже, каждый раз, когда генерируется новый грузовик и запускается код, он сбрасывает идентификатор для всех грузовиков.
Например: когда грузовик 4 (ID = 4) создается в источнике, все другие грузовики получают идентификатор 4, поэтому я не могу знать правильный идентификатор каждого грузовика.
Что я делаю неправильно?
2 ответа
Несколько вещей. Во-первых, вам нужно использовать ключевое слово agent
в поле кода onExit. Так что в вашем случае, agent.ID_number=parameter
, Пожалуйста, ознакомьтесь с этими конкретными ключевыми словами, которые появляются повсюду в полях кода AnyLogic. Я называю это "волшебной лампочкой", также смотрите мой блог на эту тему:
Во-вторых, вновь созданные агенты автоматически получают уникальный индекс (если они принадлежат к одной и той же совокупности). Вы можете получить доступ к этому с помощью getIndex()
метод внутри вашего агента грузовика.