Matrix 生成具有非静态约束的随机矩阵

Matrix 生成具有非静态约束的随机矩阵,matrix,random,non-static,Matrix,Random,Non Static,我想在MATLAB中生成一个对行和列都有约束的随机矩阵。但问题是我有两个参数用于约束,每个元素都不固定。为了解释,考虑MXN矩阵P=[P1;P2;…;PM ],以及2个具有m和n个元素的其他向量λ和μ。 考虑λ为λ(1),λ(2),…,λ(m)]和μ[亩(1),Mu2,…,穆(n)] < /P> lamda和Mu应具有以下限制: λ之和

我想在MATLAB中生成一个对行和列都有约束的随机矩阵。但问题是我有两个参数用于约束,每个元素都不固定。为了解释,考虑MXN矩阵P=[P1;P2;…;PM ],以及2个具有m和n个元素的其他向量λ和μ。 考虑λ为λ(1),λ(2),…,λ(m)]和μ[亩(1),Mu2,…,穆(n)] < /P> lamda和Mu应具有以下限制:

  • λ之和<μ之和
  • ,现在对于随机矩阵p:

  • 矩阵(p[j,i])的每个元素应等于或大于零

  • 每行元素之和等于一(即对于j行:σi(p[j,i]=1)

  • 对于每个列j,具有相应λ(j)的每个元素的乘积之和小于Mu向量中的对应元素(即Mu(i))。即对于i列:sigma_j(p[j,i]*lambda(j))
  • 我尝试过对所有这些约束进行编码,但由于lambda和Mu向量的存在,3或4的约束中只有一个是可行的。请您帮助我对这个矩阵进行编码


    提前感谢

    可能存在不允许任何
    p[i,j]
    值的
    Mu
    Lambda

    对于每行向量
    v

    • 约束3表示值被约束到超平面
      v.1=1
      (A)
    • 约束4表示值被约束到半空间
      v.Lambda
      (H),其中
      m
      是与当前行相对应的
      Mu
      元素
    约束1不能保证这两个约束生成非空的解决方案空间

    要验证解空间是否为非空,最简单的方法是检查超平面A(
    ,…)的每个角点。如果至少有一个角点符合约束4,则解空间为非空

    话虽如此,假设解决方案空间非空,您可以通过以下方式生成与这些约束匹配的值:

  • 生成元素为0的随机向量≤ <代码>vi≤ 一,
  • 用元素之和除以比例
  • 如果该向量不符合约束4,请从步骤1开始重复
  • 一旦有了
    n
    这样的向量,就将它们作为行组合成一个矩阵

  • 此算法的速度取决于半空间H中包含的超平面A的大小。如果仅包含1%,则该行预计需要100次迭代。

    @Mary如果这解决了您的问题,请单击左侧上方的复选标记。