问题标签 [clpq]
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.
prolog - SWI-Prolog 和约束,库 CLP(FD)
我正在使用 clpfd 库处理(swi)序言中的约束。
我试图确定一组约束何时封装或包含另一组,例如 X<4 封装 X<7,因为只要前者为真,后者为真。这可以很容易地用逻辑暗示来表示。但是,我无法让 #==> 运算符给我想要的结果,所以我求助于使用 not(Co1 #/\ #\Co2) ,其中 Co1 和 Co2 是约束。这对于单个约束很好,但是我想将约束的结合传递给 Co1 和 Co2。
现在问题来了。当我尝试
我回来
(奇怪的是,在 Sicstus 中这样做会导致分段错误)
当我通过
我得到了想要的
显然,我不能将后者传递给 not(Co1 #/\ #\Co2),但前者并没有给我想要的结果。谁能解释为什么这两种方法会产生不同的结果,以及如何让前者像后者一样行事?
optimization - 用于解决单纯形的 swi prologs clpq 库的替代方案
对不起,如果这是错误的地方问。
我一直在使用 SWI Prolog 的 clpq 库来解决单纯形问题。我发现语法非常简单且富有表现力。它看起来像这样:
无需转换为任何特殊格式,您只需键入您的约束和对象函数。很好,但是我注意到 clpq 有错误并且没有维护,所以我对它缺乏信心。
所以我想知道是否有人知道一些开源的东西,同样简单,没有错误?到目前为止,我发现的最好的是 GNU 线性编程工具包。其他人用什么来试验单纯形?
prolog - 如何处理在 prolog 的目标/查询中传递的方程?
我有这种情况,其中我在 Prolog 查询中得到一个线性方程,如下所示:
所以我的查询有一个方程 3X + 5Y = 10,它通常采用 AX + BY = C 的形式,其中 A=3、B=5 和 C=10。
现在,在我的 prolog 程序中,我试图定义一个谓词,它可以接受上面查询中提到的表达式。也就是说,我想以某种方式获取 A、B 和 C 值以及所涉及的运算符(在上述情况下为加号运算符),然后将其用于我在程序中定义的逻辑。我想知道如何做到这一点。
更通用地说,问题是我如何识别通过目标/查询传递的方程中涉及的常量和运算符?
prolog - 我很好奇逻辑程序是否可以做代数
我读了一篇关于 Prolog 和逻辑编程的简短文章。我很好奇逻辑程序是否可以做代数。就像你能问方程 5+X = 7 中 X 的变量是什么并得到 -2 的答案吗?
prolog - SWI-Prolog 中的方程求解器
我想写一个程序SWI-Prolog
来解决方程。我知道GNU Prolog
,这让我很紧张......这里有什么问题?
X1
并且X2
总是等于0
or 1
。
swi-prolog - 使用 swi-prolog 在约束逻辑编程中最小化导致不必要的变量
我正在关注 Ivan Bratkos 的“人工智能第四版 Prolog 编程”,我目前正在阅读有关约束逻辑编程的内容。
书中有一个用于任务调度的小型优化示例,如下所示:
在 swi-prolog 中导致
结果很好(尽管如果它像书中那样写 {Tc =< 4} {Tc >= 2} 会更漂亮),但我不明白为什么它添加了 '_G377=2- _G371'部分,-似乎很没必要……
为什么将这个额外的变量 (_G377) 添加到结果中?
如果其他人正在阅读这本书:我已将“Ta =< 0”更改为“Ta >= 0”,因为我认为“Ta =< 0”是书中的错误。
prolog - 在 Prolog 中定义一个立方体和三个区间
我需要分别定义一个立方体和三个区间 Cx、Cy 和 Cz 作为长方体在 x、y 和 z 轴上的投影。我应该使用区间谓词interval_dur
。链接上的图像可能更清楚我确实需要什么。
原来的问题是这样的:
我们可以通过考虑它们在每个轴上的投影之间的定性关系来定义长方体之间的三维定性空间关系,例如内部和顶部。
C
图 1 显示了在 x、y 和 z 轴上具有间隔投影的长方体。(a) 定义一个长方体C
。将三个区间Cx
、Cy
和分别定义Cz
为长方体在 x 轴、y 轴和 z 轴上的投影。使用区间谓词interval_dur
。
prolog - 使用 prolog 的不等式求解器
我是 Prolog 和不等式的新手。我想使用 Prolog 解决以下类型的不等式问题。我正在使用 SWI-Prolog。
例如:2x+3>5 是问题。我怎样才能编写一个程序来得到这个程序 x>1 的答案。
prolog - 使用 Prolog 解决不等式
我正在使用 prolog 解决不等式问题。我找到了一个代码,它解决了 ax+b>=0 类型的方程。
我使用的代码如下。
例如
当我们给出 {2*X+2>=5}。它给出了正确的答案。{X>=1.5}。
2.但是如果我输入像 {(X+3)/(3*X+1)>=1} 这样的分数。它给出 {1- (3+X)/ (1+3.0*X)=<0.0}。
我怎样才能解决这类不等式问题以找到最终答案。(包括分数的问题)。
请帮我。
如果有任何学习资料可以参考,请告诉我。