<分区>
我正在尝试解决一个问题,我已将其简化为计算多个线性不等式的整数 解的数量。我需要能够计算任意数量的变量 c_1、...、c_n 的解的数量,但是对于 n=3,方程可以写成:
The equations. http://silicon.appspot.com/readdoc?id=155604
现在,我预先知道 n 和 r 的值,并希望找到存在的 (c_1, ..., c_n) 解的数量。
这能否有效地完成(比枚举解决方案更快)? (如果是:如何?;如果不是:为什么?)
<分区>
我正在尝试解决一个问题,我已将其简化为计算多个线性不等式的整数 解的数量。我需要能够计算任意数量的变量 c_1、...、c_n 的解的数量,但是对于 n=3,方程可以写成:
The equations. http://silicon.appspot.com/readdoc?id=155604
现在,我预先知道 n 和 r 的值,并希望找到存在的 (c_1, ..., c_n) 解的数量。
这能否有效地完成(比枚举解决方案更快)? (如果是:如何?;如果不是:为什么?)
最佳答案
为了解决这个问题,我可能会进入约束规划领域。看起来你有一个经典的 all different
约束(有点像 N-Queens 问题)。试一试下面列出的免费约束求解器之一。这将为您提供非常有效的解决方案。它基本上会生成整个搜索树,但是有了很好的 All-Different 约束实现,这棵树最终将被修剪得几乎没有。
http://www.gecode.org/ http://minion.sourceforge.net/ http://jacop.osolpro.com/ http://research.microsoft.com/apps/pubs/default.aspx?id=64335
关于algorithm - 计算线性不等式的解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1970507/