【问题标题】:How can I generate a random sparse matrix with a specific probability of symmetric entries?如何生成具有特定对称条目概率的随机稀疏矩阵?
【发布时间】:2021-06-02 15:21:58
【问题描述】:

我正在开发一个程序,该程序基于具有二进制条目的稀疏矩阵将个人分类为团队,每个条目对应于 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

谢谢!

【问题讨论】:

    标签: matrix probability gurobi


    【解决方案1】:

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

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

    import random
    
    n = 50
    k = 10
    
    positions = sorted(random.sample(range(n), k))
    

    列表positions 表示您需要的非零元素。

    使用矩阵表示,这将是Gurobi matrix variable object, MVar 的良好候选者。

    【讨论】:

      猜你喜欢
      • 2019-10-14
      • 2015-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-16
      相关资源
      最近更新 更多