基于代理的建模:病毒传播与国际象棋模拟
1. 基于代理的病毒传播建模
1.1 初始模拟代码
以下是一个简单的病毒传播模拟代码示例:
people = virus.CreateWorld (300)
for i in range( 10 ):
people[i]. infected = True
alives = []
infects = []
for i in range( 200 ):
virus.Iterate(people , 100, 100 )
ct = 0; cu=0
for me in people:
if me.alive:
ct += 1
if me.infected:
cu += 1
alives.append( ct )
infects.append( cu )
plt.plot( alives )
plt.plot( infects )
plt.show ()
这个代码模拟了 300 个代理在 200 个迭代中的病毒传播情况。初始时,有 10 个代理被感染。在每个迭代中,统计存活和感染的代理数量,并将其记录下来,最后绘制图表展示。
1.2 模拟调整
该模拟程序有多个变量可以调整,以产生不同的模拟结果:
|变量|含义|调整影响|
| ---- | ---- | ---- |
|NPeople|模拟开始时的代理数量|增加代理数量会提高环境中代理的密度,从而对感