【问题标题】:Constraint logic challenge约束逻辑挑战
【发布时间】:2015-04-10 09:36:53
【问题描述】:

想象以下等式:

2x + 3y + 4z + 5q = 32
x + y + z + q = 8

所有变量都是整数,并且有一些约束,比如

0 <= x <= xMax
0 <= y <= yMax
0 <= z <= zMax
0 <= q <= qMax

我知道这有多种解决方案。在不使用蛮力的情况下,您将如何随机选择其中一种解决方案?

【问题讨论】:

  • 能详细说明一下随机挑选吗?您的意思是为 x、y、z、q 选择一个随机数并进行测试?
  • 这将更像是蛮力方法,这实际上是我想要避免的……我的意思是每次都得到不同的解决方案……@Henrik 是的,对此感到抱歉。 .. 固定
  • 嗯...您必须找到所有解决方案,然后随机选择一个...
  • 您将如何生成所有解决方案?
  • 通常会使用带有虚拟变量的整数线性规划求解器作为优化目标(以获得所有解决方案)。参见例如aiexp.info/calculating-all-feasible-solutions-of-ilp.html

标签: math logic probability brute-force


【解决方案1】:

我找到了另一种解决此问题的方法。最初的问题是找到一种通用的非暴力方法来从一组问题中创建考试。

有 4 种类型的问题

x, y, z, q

我必须随机选择 8 个问题

x + y + z + q = 8

每种类型的问题都有不同的分数并且所选问题的总分必须是 32

2x + 3y + 4z + 5q = 32    

如果有人感兴趣,你可以找到解决方案here

谢谢你的帮助:)

【讨论】: