问题标签 [constraint-programming]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
constraint-programming - 使用 Solver Foundation 进行约束规划的缺点
使用 Microsoft Solver Foundation for CLP 有哪些缺点?Solver 在 Express/Standard 版本中确实有一些支持,但可以想象,除了最基本的约束编程之外,还需要购买昂贵的 Gurobi / Knitro 附加组件来完成任何事情。
纯粹考虑它的 CLP 功能,Solver 与 ECLiPSe 相比如何?
constraints - 等式集和不等式约束可满足性问题
我对 CSP 比较陌生,我试图根据变量之间施加的 ==、>、< 和 != 约束从它们各自的域中找到所有变量的值。我查看了 Choco 和 Jacop,但我找不到更多关于解决这类问题的信息。你能指出我可以找到这个例子的实现的地方吗?我已经使用 Prolog 解决了这个问题,但我想使用 OOP 来完成它。
谢谢你。
constraints - 如何在 Mozart/Oz 中创建非数字约束?
我想实现一个变量域为非数字的 CSP(类似于 [lisa ann mary joanna] )。有没有办法在 Mozart/Oz 中实现这一点?
erlang - Erlang 是一种约束逻辑编程语言吗?
由于 Erlang 是基于 Prolog 的,这是否意味着 Erlang 是一种约束逻辑语言?
Erlang 是否有 Prolog 的构建块:事实、规则和查询
constraint-programming - 调度问题的约束编程框架
我将开发一个用于项目规划的软件应用程序,并且我正在寻找一个支持区间算术和实数约束的约束编程库。
我必须实现的功能是项目的调度。
你能给我一个针对此类问题的约束编程框架吗?
提前致谢!
algorithm - 在解决约束问题时需要帮助
我想使用约束来解决以下问题,但实际上我不知道从哪里开始,所以我决定在这里发布以寻求帮助。
请这不是作业,因为我自己已经解决了添加正方形和圆形的问题。但这一个我不知道如何以及从哪里开始。作为初学者,我正在学习这个约束的东西,根本不知道如何解决这个问题,需要帮助。我假设使用以下语法来定义变量和约束:
*变量*
1)
名称必须以大写 [AZ] 开头,并且只能使用 [A-Za-z0-9_]。示例:X 或 MyVar_1。
2)
域是 [from,...,to] 范围内所有整数的集合。确保从 ≤ 到。
3)
索引是指索引变量的(单个!)索引。例如,如果您为变量“X”输入从 1 到 8 的索引范围,则“X(1)”、“X(2)”、...、“X(8)”中的每一个都是普通变量具有相同的域。指定索引范围,使得从 ≤ 到。如果您将“索引”字段留空,则假定您的变量是非索引的。(注意:使用 from = to 是可能的,尽管它没有多大意义:您可以使用非索引变量。)不要使用相同的名称两次,也不要使用一个普通名称和一次索引变量!也不要重用变量名的一部分,例如如果你已经有 MyVar_1,也不要使用 Var。
约束
如果需要,您可以输入算术约束,并为已使用的索引指定范围。算术约束的形式为 Expr ∼ Expr,其中 Expr 是使用整数、声明的变量和一些算术的表达式,其中 ∼ 是关系运算符。
1)
使用索引变量时,必须给出索引
- 在 MyVar(index) 格式中,即在变量名后面使用“(”和“)”,中间没有空格。
- 请注意,索引必须是变量,因此不允许使用类似 MyVar(37) 的内容。改为写 MyVar(i),并输入 i=37 的范围。
- 此外,索引必须出现在“范围”字段中。提示:如果您的约束必须在整个索引范围内保持不变,例如 i=1..10,那么只需输入一个简单满足的范围,例如 i>0。
- 索引名称可以按原样出现在约束中,即不作为索引。
- MyVar(index+x) 或 MyVar(index-x) 格式也是允许的,其中 x 是一个整数。不要在“+”或“-”之前或之后使用空格! 2)
算术使用运算符“+”、“-”、“*”、“/”、“mod”,其中“X / Y”是 X 和 Y 的商(向下舍入)。还允许使用“min(X,Y)”、“max(X,Y)”、“abs(X)”。
3) 可用的关系运算符有'='、'\='、'<'、'>'、'=<'、'>=',含义明显。
4) 使用圆括号消除歧义!示例:X(i) + Y(j) < 12 或 min(X(i),X(j)) \= Z 或 X(i) * i = 20。
也可以使用布尔表达式。允许的布尔连接词是 '<=>'、'=>'、'/\' 和 '\/',分别表示等价、蕴涵、合取和析取。
范围是一个表达式,其中包含约束中使用的每个索引。示例:i < j 或 i = j 或 (i = j /\ k \= l)。范围表达式不应包含“<=>”、“=>”或“\/”。注意:范围是一个逻辑表达式(隐式普遍量化),而不是像 i=1..10 之类的集合表达式!
以下示例使用上述语法:
谢谢你的帮助。
algorithm - 在解决约束问题时需要帮助(第 2 次)
我已经解决了以下约束处理任务。你能验证它是否正确吗?
这是我的解决方案,希望你们帮我检查哪里做错了:
我的约束
我以这样一种方式声明了约束,即每次当时间为偶数时,摄像机的视图交替改变,但当时间为偶数时,只有囚犯可以移动。
伙计们,我知道我做错了什么,所以请帮助我纠正它。
谢谢你的帮助。我昨天发布了一个类似的问题,所以如果你想知道变量和约束的语法,那么这是链接: 这篇文章中的变量和约束语法
谢谢你的帮助
java - 如何编写自定义约束来检查类中至少一个布尔字段是否为真
我有一个名为“Scheduler”的类,它有 7 个布尔字段。我想在休眠中编写一个约束来检查至少一个布尔字段是否为真。
这是“调度程序”类。
谁能帮我写下提到的约束。
谢谢!!!!!!!!!
list - 具有约束逻辑编程的排序列表
我想知道是否有人可以帮助我解决这个问题:我必须使用带有约束逻辑编程的 Prolog 来订购一个列表,并且我必须以更有效的方式来完成它。
所以我定义的主要谓词是下一个:
前面每个辅助谓词的实现如下:
我已经证明了我制作的程序并且它有效!但是我不知道是否可以提高效率,如果可以,我该怎么做(我正在阅读这个旧线程here)。我应该添加或修改任何约束吗?
谢谢!