Использование циклов для установки типа агента в режиме ожидания, который будет принимать агента в этом состоянии и отклонять, если занят - PullRequest
0 голосов
/ 15 октября 2019

У меня есть 3 идентичных набора, представленных одним типом агента для productionSuite, и я хочу использовать циклы, чтобы установить наборы как свободные и занятые. Агент productionOrder должен быть отправлен только в свободные комнаты.

У меня есть параметр assignSuite в агенте ProductionOrder, который равен случайному набору, выбранному в источнике на main. Я начал пробовать циклы в этом источнике, которые относятся к диаграмме состояний для агента ProductionSuite. Я думаю, что мне нужен кусок кода, чтобы определить ProductionSuite как 0,1,2, а затем проверить с помощью цикла, есть ли у них ProductionOrder или нет.

[Источник]

(Оригинальный код)

agent=ProductionOrder
agent.assignedSuite = productionSuite(uniform_discr(0,2));
deliver("Suite is Scheduled", agent.assignedSuite);

(новый код)

Действие:

`if ( productionSuite(0).inState(idle))
agent.assignedSuite = productionSuite(0);
agent.receive("Suite is Scheduled");

if ( productionSuite(1).inState(idle))
agent.assignedSuite = productionSuite(1);
agent.receive("Suite is Scheduled");

if ( productionSuite(2).inState(idle))
agent.assignedSuite = productionSuite(2);
agent.receive("Suite is Scheduled");`

ошибка, которую я получаю, заключается в том, что простоя не может быть решена как переменная. Хотя я не уверен, что это лучший метод для использования. Можно также использовать некоторые указания относительно того, когда группировать комплекты или мне следует определять их отдельно.

1 Ответ

0 голосов
/ 15 октября 2019

эта ошибка вызвана тем, что ваш исходный объект не знает "простоя". Вам нужно переписать его следующим образом:

if (productionSuite(0).inState(ProductionSuite.idle))

Предполагая, что ваши агенты productionSuite имеют тип ProductionSuite (обратите внимание на заглавную букву). Короче говоря, вам нужно сообщить коду проверки состояния, к которому относится тип агента, чтобы он знал, где искать.

Надеюсь, это поможет

...