有人告诉我python中的networkx库是图论应用程序的标准库,但到目前为止,我发现使用它相当令人沮丧。在
我想做的是: 建立SIS流行病学网络,指定初始接触率和恢复率,然后跟踪疾病进展。在
更准确地说,想象一个由n个体和邻接矩阵a组成的网络。A的值在[0,1]范围内,且接触率。这意味着(i,j)条目显示了疾病从nodei转移到nodej的概率。最初,每个节点被分配一个随机标签,可以是1(对于感染的个体)或0(对于易感的,是尚未感染疾病的节点)。在
在每个时间步,如果节点有一个0标签,那么在概率等于节点的传入边权重的最大值的情况下,它可以变成1。如果节点有一个1标签,那么以其恢复率指定的概率,它可以变成0。恢复率是在模拟开始时分配给每个节点的值,其范围在[0,1]范围内。在
当网络在每一个时间步进化时,我想用不同颜色的每个节点标签来显示网络。在
如果有人知道python中的其他库可以比netrokx更高效地完成这项工作,请告诉我。在
您使用networkx进行计算还是可视化?在
不需要使用它进行计算,因为您的模型很简单,并且使用矩阵(向量)运算更容易计算它。那是适合纽比的。在
步骤的主要部分是计算从0切换到1的概率。设N为向量,每个节点根据状态存储0或1。节点n从0切换到1的概率是
numpy.amax(A[n,:] * N)
。在如果您需要可视化,那么可能有比networkx更好的库。在
相关问题 更多 >
编程相关推荐