2016-08-26 6 views
0

Я новичок в AnyLogic, и я пытаюсь создать пользовательскую сеть ... но я не получаю, чтобы преуспеть в этой задаче :(AnyLogic - соединение с указанным агентом

агенты имеют параметр " AgeClass», то есть ИНТ от 0 до 14, в зависимости от их возраста.

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

То, что я хочу каждый агент для создания связи с другим агентом в соответствии с матрицей.

Я не получаю как я могу сказать агенту «подключиться к другому оператору с AgeClass = 3»

Я думал, что-то вроде этого (положить в «при запуске блока» или в случае внутри типа агента):

int i = AgeClass \\ this is the AgeClass of the agent who is executing the code for(int j=0; j<network[i].length; j++) { \\ in this way I go through all the age classes for (int k=0; k<poisson(network[i] [j]); k++) { \\ for every j I get the mean # of link connectTo(????); } }

Вместо этого? я хочу сказать «подключиться к другому агенту с AgeClass = j» ... есть ли способ?

Спасибо за поддержку !!!

ответ

1

Пожалуйста, используйте функцию «фильтр()», чтобы выбрать всех агентов из населения с помощью AgeClass = j. Затем вы можете получить случайное из них, чтобы подключиться к агенту, выполняющему код. Выражение ???? может выглядеть следующим образом:

randomFrom(filter(main.people, p -> p.AgeClass == j)) 

Вот описание функции "фильтра()": http://help.anylogic.com/topic/com.xj.anylogic.help/html/agentbased/Subset.html