NetLogo(社交网络):如何基于概率连接节点?
我试图建立一个“在线论坛”的模型,模型从两个相互连接的代理开始,它们是两个品种(A代理和B代理)NetLogo(社交网络):如何基于概率连接节点?,netlogo,probability,Netlogo,Probability,我试图建立一个“在线论坛”的模型,模型从两个相互连接的代理开始,它们是两个品种(A代理和B代理) 在每次迭代中,创建两个品种之一的代理。创建哪种类型的节点;A-agent与B-agent的对比由概率决定(参见代码) 然后,新创建的代理(1个A代理或B代理)根据概率连接到A代理或B代理之一 如何使新创建的代理基于选择概率连接到两种代理之一 如果新创建的节点是A-agents,则连接到其中一个A-agents的几率为58%,连接到其中一个B-agents的几率为42% 如果新创建的节点是B-age
- 如果新创建的节点是A-agents,则连接到其中一个A-agents的几率为58%,连接到其中一个B-agents的几率为42%
- 如果新创建的节点是B-agent,则连接到A-agent的概率为56%,连接到B-agent的概率为44%
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
breed[A-agents A-agents]
品种[B-代理人B-代理人]
设置
清除所有
重置滴答声
创建代理1
[设置形状“三角形”
1号套餐
设置颜色为蓝色
setxy随机xcor随机ycor
]
创建代理1
[设置形状“圆”
1号套餐
设置颜色为红色
setxy随机xcor随机ycor
]
询问B代理[创建与A代理的链接[设置绿色]]
打上钩
结束
外带;;根据a-agents/B-agents的实际用户分布创建新节点
设p随机浮动100;;创建一个介于1-100之间的随机数
如果(p>=97)[创建代理1
[设置形状“三角形”
1号套餐
设置颜色为蓝色
setxy random xcor random ycor]]
如果(p<97)[创建B-代理1
[设置形状“圆”
1号套餐
设置颜色为红色
setxy随机xcor随机ycor
]]
打上钩
结束
您需要这样的东西(对于A-agents,您可以为B-agents编写类似的代码)-未经测试,可能存在语法错误
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 ]
让测试num随机浮动1
ifelse测试数值<0.58
[创建与其他A-代理之一的链接]
[创建与其中一个B代理的链接]
我还没有包括任何关于是否有任何代理要连接的测试,但这应该会让您朝着正确的方向前进。您需要类似的东西(对于A-agents,您可以为B-agents编写类似的测试)-未经测试,可能存在语法错误
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 ]
让测试num随机浮动1
ifelse测试数值<0.58
[创建与其他A-代理之一的链接]
[创建与其中一个B代理的链接]
我还没有包括任何测试,以确定是否有任何代理可以连接,但这应该会让您朝着正确的方向前进。谢谢,这很有帮助。我从第1点(在代理属性下)将您的建议集成到if语句中,并且成功了。谢谢,这很有帮助。我从第1点(在代理属性下)将您的建议集成到if语句中,并且成功了。