为了账号安全,请及时绑定邮箱和手机立即绑定

为所有节点创建具有相同进出度的矩阵

为所有节点创建具有相同进出度的矩阵

互换的青春 2021-04-29 06:05:08
我已经用图论的术语提出了这个问题,但是概念化不是必需的。我要使用Python尝试做的是产生一个零和一的矩阵,其中每一行都具有相同的个数,而每一列都具有相同的个数。当行数(发送节点)不等于列数(接收节点)时,行数将与列数不同-这是我允许的。在中执行此操作对我来说很有意义numpy,但可能还有其他软件包(如networkx?)会有所帮助。这是我要用所需的输入和输出编写的函数:n_pre = 4  # number of nodes available to send a connectionn_post = 4  # number of nodes available to receive a connectionp = 0.5  # proportion of all possible connections that existmat = generate_mat(n_pre, n_post, p)print mat输出将是,例如:[[0, 1, 0, 1], [1, 0, 1, 0], [1, 1, 0, 0], [0, 0, 1, 1]]注意,每一列和每一行都有两个。除此约束外,这些函数的位置应该是随机的(并且此函数的调用之间存在差异)。用图论的术语来说,这意味着每个节点的入度为2,出度为2(如所指定,占所有可能连接的50%p = 0.5)。
查看完整描述

2 回答

?
湖上湖

TA贡献2003条经验 获得超2个赞

对于方阵,您要描述的是随机k正则有向图的邻接矩阵,并且有生成此类图的已知算法。igraph实现一个:


# I think this is how you call it - it's an instance method for some reason.

igraph.Graph().K_Regular(n, k, directed=True)

networkx具有用于随机k正则无向图的功能:


networkx.random_regular_graph(k, n)

对于非正方形矩阵,您所描述的内容与随机双正则图是同构的。我发现对于随机双正则图没有方便的现有实现,但是该术语应该是搜索已知算法的一个很好的起点。


查看完整回答
反对 回复 2021-05-25
  • 2 回答
  • 0 关注
  • 139 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号