问题标签 [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.

0 投票
1 回答
167 浏览

prolog - 局部变量的约束值

我目前正在使用 :- use_module(library(clpq)) 库解决调度问题。我的问题在于检索我的问题陈述的完整解决方案。

这个解决方案似乎是正确的,但我没有 task(t2, _G66 , 10, c1) 的任何特定值(任务编号、开始时间、持续时间、处理器核心)。

据我所知,这是一个局部变量,其值应介于 25<_G66<35 或 60<_G66<75 之间,但我似乎找不到在 Prolog 本身中打印这些值的方法。我认为最小化(TotTime)会强制所有变量最小化,这似乎与其余变量一起发生。

编辑:

添加了更多代码以显示问题所在。在其他地方不会产生其他故障。bestsofar/2用于存储当前的最佳调度解决方案和执行时间。当我们找到更好、更快的时间表时,我们会使用update_time/2. 这种搜索总是会失败,这样所有可能的解决方案都会被测试。完成后,我们会达到bestsofar(BestSchedule,BestTotTime)并返回这些值。

如果我在返回结果之前查看调试器。这确实支持我对orB=35-A的手动测试。自己无法真正进行演绎,因为我不知道如何解释这些约束中的值。35<B<5060<B<75_

没有no_data/2我的代码确实适用于不使用通道延迟的示例。因此,我想任何问题都应该出在那段代码上。

感兴趣的可运行代码:http: //pastebin.com/3PmRu7Aq

0 投票
0 回答
345 浏览

prolog - 不等式的序言

我从一些互联网资源中找到了这个不等式解决程序。它运行良好。这就是程序。

我对这个程序的问题是当我使用大写字母变量运行程序时它可以工作。但它不适用于简单的字母变量。

这是我用来解决这个问题的语法。

例如:-

这有效并给出了正确的答案。

当我运行它时,Prolog 说

我正在使用 SWI-Prolog 版本 6.6.0。这里有什么问题,我该如何解决。

0 投票
1 回答
562 浏览

prolog - 为什么 Prolog/clpq 不解决这个二次方程?

我正在使用 SWI-Prolog,我很新,还在学习。实际上,这个问题是对为什么我的规则不能在一个简单的代数方程中求解 X的后续问题?

我已经导入了 clpq。

我的方程是6x 2 + 7x - 3 = 0,其中 x 实际上是-1.5或者如果使用二次方程,也是1/3 。

好吧,它通过将 3 的减法更改为 -3加法来稍微简化了方程,但它没有解决. 我的第一步是尝试给出答案并查看它是否接受。X

嗯……那里的一切看起来都很好。为了完整起见,我还运行了二次方程。(“方程式”复数,因为我猜 Prolog 中没有±运算符。至少,我找不到。)

好吧,一切似乎都结束了。那么,为什么 cplq 不能解出我的方程呢?

0 投票
1 回答
185 浏览

prolog - 如何在 swi-prolog 中安装 clpq 库

SWI-Prolog (Multi-threaded, 64 bits, Version 7.2.3)在 Debian 稳定版 Linux 上运行。我想clpq为约束逻辑编程安装包。

pack_list但是,使用命令查询时似乎不存在:

问题出在哪里,如何解决?谢谢你的帮助。

0 投票
1 回答
260 浏览

prolog - 在 CLPQ/R (Prolog) 中解决一个简单的几何难题

考虑以下正方形:

在此处输入图像描述

给你三个约束:

  1. 所有矩形(A、B、C、D 和 E)的面积相同;
  2. 它们的几何布局构成一个正方形;和
  3. A的高度为2。

现在,我知道手动解决这个问题非常简单,但我认为这将是一个很好的例子,可以用 Prolog 展示 CLP(Q/R) 的功能:


剧透警告:如果您想先自己解决难题,请不要继续阅读此内容,因为存在限制会放弃解决方案。


无论如何,这是我用 CLP(Q/R) 定义这个难题的尝试(我认为包括冗余约束):

查询时:

...让我伤心。约束求解器的一个如此美丽的例子......有人愿意消除我的悲伤吗?


附录:我使用 Mathematica 和FindMinimum函数来检查我的约束。它似乎正在工作:

答案:

0 投票
1 回答
83 浏览

prolog - 简单约束逻辑编程示例 CLP(Q) 在 Prolog 中给出错误

我已经开始学习 Prolog 并遵循 RIPTutorial PDF。在约束逻辑编程 CLP(Q)部分,它说:

约束逻辑编程 CLP(Q) 实现对有理数的推理

例子:

当我在 Windows 上的 SWI-Prolog 上尝试这一行时,它给出了:

ERROR: Unknown procedure: {}/1 (DWIM could not correct goal)

macOS 上命令行 SWI-Prolog-7.2.0 的同一行给出:

ERROR: toplevel: Undefined procedure: {}/1 (DWIM could not correct goal)

如何获得预期的输出X = 1.