获得一个向量数组的组合来满足直系约束。

3视图(30天)
我试图找出如果有一种方法可以获得所有的向量数组元素的整数组合遵循嫡系的约束,如:a * x =。0 < = x < = 9,是一个矩阵[n x]和x是一个列向量n的长度和b是一个列vetor的长度。A、b和都是常数迭代。例如,它创建了以下方程。
谢谢你!

答案(2)

约翰D 'Errico
约翰D 'Errico 2022年5月27日
编辑:约翰D 'Errico 2022年5月27日
是可能的吗?当然可以。详尽的列举。只是尝试所有组合,拯救那些工作。是容易的吗?当然不是!在某些情况下甚至是可行的吗?当然不是,如果问题的规模足够大。你给任何信息的实际大小问题,它总是暗示你的真正的问题将是不合理的。
有可能找到问题的一个解决方案吗?琐碎,只要你懂得如何制定这一个整数inear编程问题,所以只是一个叫intlinprog。如果存在一个解决方案,它会找到一个。但并不是所有。你不能告诉intlinprog返回所有的解决方案,甚至不止一个解决方案。万博 尤文图斯
例如,考虑下面的简单问题。
一个= 1:10 0;
b = 1000;
现在你的问题降低了寻找所有的解作为数字1000的整数分区,这样大笔的1:10 0的整数,没有元素进入之万博 尤文图斯和超过9次(因为你说0 < = x < = 9。)我猜有一大堆这样的解决方案。万博 尤文图斯如果事实证明,问题是可行的在有限的时间在你的电脑上,让它大一些,它不会。这只有一个线性等式约束。事情会更复杂,如果有多个这样的约束。
如果你真的有很好的帮助,你需要保证你的问题要小得多,甚至接受,唯一可行的解决方案可能会以某种形式详尽的列举。例如,我自己的代码,分区(在FEX找到免费下载)理论上可以解决简单的问题。它使用递归调用搜索所有的解决方案,但仍然有效的详尽的枚举。万博 尤文图斯这代码不能处理更一般的问题,你有一个以上的等式约束。
我可以写一个代码使用intlinprog找到一个解决方案,然后寻找下一个解决方案,基于零空间的?是的,我可能会这样做。一些努力和关心数值分析,可以编写一个代码,可以有效地搜索所有解决方案的集合。万博 尤文图斯需要一些努力写,并把它做好。做所有的浮点双精度运算将自己讨厌的问题。啊。根据你指定模糊问题,它可能更容易写出一份详尽的搜索代码使用一个工具像ndgrid或等价的。
3评论

登录置评。


类别

找到更多的在和迭代解算器输出显示帮助中心文件交换

标签

s manbetx 845


释放

R2021b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的