我正在尝试建立一个“在线论坛”的模型,其中该模型以2个关联的2个品种(A代理和B代理)的联系代理开始。
如何根据选择概率使新创建的代理附加到两种代理之一?
到目前为止,这是我的代码,直到第1点。
breed [A-agents A-agent]
breed [B-agents B-agent]
to setup
clear-all
reset-ticks
create-A-agents 1
[ set shape "triangle"
set size 1
set color blue
setxy random-xcor random-ycor
]
create-B-agents 1
[ set shape "circle"
set size 1
set color red
setxy random-xcor random-ycor
]
ask B-agents [create-links-with A-agents [set color green]]
tick
end
to go ;; create a new node based on the emprical user distribution of A-agents/B-agents
let p random-float 100 ;; create a random number between 1-100
if (p >= 97) [create-A-agents 1
[ set shape "triangle"
set size 1
set color blue
setxy random-xcor random-ycor]]
if (p < 97) [create-B-agents 1
[ set shape "circle"
set size 1
set color red
setxy random-xcor random-ycor
]]
tick
end
答案 0 :(得分:1)
您需要这样的内容(对于A代理,您可以为B代理编写类似的代码)-未经测试,可能存在语法错误。
let test-num random-float 1
ifelse test-num < 0.58
[ create-link-with one-of other A-agents ]
[ create-link-with one-of B-agents ]
我还没有进行任何测试,以确定是否确实有任何代理要连接,但这应该可以使您朝正确的方向前进。