Мониторинг использования прямоугольного узла - PullRequest
0 голосов
/ 26 февраля 2019

Я перемещаю партию агентов в узел, где они не группируются.Как только агенты, находящиеся в пакетном режиме, занимают этот узел, этот узел становится недоступным для перемещения других групп агентов, поэтому я удаляю этот узел из набора доступных узлов, AvailableNodes (всего их около 50).У каждого незагруженного агента есть параметр, который является узлом, в который он был перемещен.Вопрос заключается в том, как добавить узел обратно в AvailableNodes, как только все агенты, находящиеся в пакетном режиме, были перемещены с этого узла.У меня есть переменная, связанная с каждым узлом, который я увеличиваю или уменьшаю, когда агенты входят / выходят из узла?Если да, то как мне связать уникальную переменную с узлом?Или есть лучший способ?

1 Ответ

0 голосов
/ 26 февраля 2019

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

Другой вариант - создать небольшой класс, который будет иметь узел и доступность ... и, возможно, количество агентов, присутствующих в данный момент в этом узле.Просто создайте новый класс и добавьте эти 3 переменные.Затем в начале модели вы добавляете экземпляры этого класса в коллекцию availableNodes, и затем вы можете просто сделать Class.numberOfAgents + = 1 или - = 1 в зависимости от того, какие агенты добавляются к узлу.Чтобы найти доступного агента, вы можете затем сделать TheClass x=findFirst(availableNodes, a->a.numberOfAgents==0);, а затем вы можете отправить своих агентов на x.node;

Также есть возможность продолжать делать то, что вы делаете ... но я даже не будуиди туда, потому что это будет беспорядок.

...