微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何生成具有特定对称项概率的随机稀疏矩阵?

如何解决如何生成具有特定对称项概率的随机稀疏矩阵?

我正在开发一个程序,该程序根据带有二进制条目的稀疏矩阵将个人分类为团队,每个条目对应于 i 是否愿意与 j合作em> 等等。我的程序正在运行,但我需要能够在随机矩阵上对其进行测试,以观察结果与参数之间的某些关系。

我想找到的是一种生成矩阵的方法,该矩阵每行具有一定数量的非零条目,并且具有一定概率的对称条目。也就是说,我希望能够为 P(w_ji = 1 | w_ij = 1) 分配一个特定的数字并使用它来生成一个矩阵。我不想要对称矩阵,但用完全随机的矩阵对此进行建模是不准确的,因为现实世界的意愿矩阵往往至少在某种程度上是对称的。

有谁知道我可以用什么来生成这样的矩阵?我通常使用 python(使用 gurobi),并且愿意安装任意数量的其他库来帮助我(如果需要)。如果这里的其他人使用 gurobi,我将不胜感激关于我是否可以将这样的矩阵生成建模为优化问题的输入,使用这样的东西作为目标函数

min <= sum(w[i,j] * w[j,i] for i in... for j in...) <= max

谢谢!

解决方法

如果你想要的只是一个随机分布的 0 和 1 值的系数矩阵,最简单的选择是选择一个概率并进行伯努利试验以确定该值是否为 1。(如果为零,则省略元素稀疏)。

或者,如果您需要固定数量的 0 和 1 的随机排列,请尝试以下操作:

mysql --help

列表 import random n = 50 k = 10 positions = sorted(random.sample(range(n),k)) 表示您需要的非零元素。

对于矩阵表示,这将是 Gurobi matrix variable object,MVar 的一个很好的候选。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。