生成满足约束的随机变量

机器算法验证 随机生成 随机矩阵
2022-03-06 00:23:24

我需要生成一个随机变量列表受约束,这些约束可以用的形式表示,其中是一个矩阵,如果个条目。在我处理的所有情况下,,例如大约为 14,000,为 50。我不确定我将使用什么方法进行随机抽样,无论是正常的还是统一的,它不是清楚哪个最适合我要解决的问题,但我需要从具有相同均值和范围/方差的分布中采样所有变量。xEx=bEm×nxnn>>mnm

我一直在做的解决这个问题是将减少为行梯形形式,将与最后一个枢轴右侧的列对应的所有变量设置为随机值,然后解决剩余的方阵相等。E

但是有一个问题,为了解决方阵相等,我从右侧减去已经设置的值。不幸的是,方差也增加了,所以我最后的 50 个值往往变化很大,不幸的是,这在这个问题中是不可接受的。

有一个更好的方法吗?我想不出一种方法来修复我正在使用的当前方法。我用R。

2个回答

这篇论文和 R 包完全解决了我的问题。它使用马尔可夫链蒙特卡洛方法,该方法依赖于这样一个事实,即如果您可以通过线性规划找到约束的初始解,则可以通过使用矩阵来找到任意数量的约束,当该矩阵乘以时,约束, 给出零。在这里阅读:E

http://www.vliz.be/imisdocs/publications/149403.pdf

这是包裹:

http://cran.r-project.org/web/packages/limSolve/index.html

可能看起来微不足道(并且机器效率不是很高),但考虑重复该过程直到得到合适的答案?最好每次只修改一个较小的子集。

您能否创建一个“距离”度量来衡量您与理想答案的距离?它可能会帮助您“优化”吗?