问题标签 [eclipse-clp]

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 投票
2 回答
83 浏览

prolog - 如何在 Eclipse-clp 程序中使用数据文件

如何使用 Eclipse-clp 或 Prolog 程序使用数据文件。用于变量和数组值。例如,如果您想将数据作为大数组提供给程序。如何从数据文件中读取这些数据?

0 投票
1 回答
199 浏览

prolog - 对列表中的变量应用 OR 约束

假设我们有一个变量列表。我们想对变量应用约束,但这些约束的关系是or。我们如何在 Eclipse CLP(序言)中做到这一点?

我们应该注意到,如果列表很短,就像A is [X, Y, Z]平凡的解决方案一样A[0] #= 0 or A[1] #= 0 or A[2] #= 0(如果约束等于零)。因此,这不适用于长列表。

0 投票
1 回答
51 浏览

prolog - CLP:“不是三个相同值”的有效模型

我需要在 Eclipse CLP 中对这个(简单)约束建模:

给定三个域变量,假设D1,D2D3我想确保这三个变量不会以相同的值结束。其中两个可以具有相等的价值。

版本 1

我的第一个想法是这样的:

D1 #\= D2 or D1 #\= D3

但我不喜欢模型中的析取。

版本 2

然后我把模型改成蕴涵的形式:

D1 #= D2 => D1 #\= D3

有没有更有效的方法来模拟这个约束?

我正在考虑alldifferent([D1,D2,D3],2)orneg nvalue([D1,D2,D3],1) 但我不确定对于这样一个简单的用法是否过于复杂。

0 投票
1 回答
161 浏览

prolog - Eclipse CLP 标记:排除排列

我正在解决一个调度问题(在这里简要描述:SWI Prolog CLP(FD) 调度切换到 ECLP)。

我能够快速获得一些解决方案,但现在我想合并一些优化任务。

问题/时间表行的一部分看起来像D1,D2,N1,N2,A0,A1,A2,..,A9这个变量的一些成本在哪里C1,C1,C1,C1,C2,C2,C2,...,C2。因此,从这个角度来看,任何分配的排列都A0..A9具有相同的成本。但是,显然,在标记过程中,求解器会回溯所有可能性。

简短说明:我只是在脑海中计算这个,但我认为仅针对该描述部分的搜索空间就像来自大小为 15 * 10的域的大小为 10 的子集的数量. 这是相当多的空间来回溯。从成本/优化以及约束满足的角度来看,每个排列都具有相同的成本/可满足性——变量的顺序无关紧要。

我可以以某种方式影响标签/搜索过程,以免打扰某些列表中的变量顺序吗?或者你能提供一些方法来改造问题以便能够以这种方式工作吗?

0 投票
1 回答
91 浏览

arrays - 循环遍历作为子数组的列表

我正在使用 ECLiPSe 6.1。我有一个维度变量数组N x N,我们称之为Vars。现在我调用一个过程,比如说,my_procedure(Vars[1..N,1..2])

在过程 ( my_procedure(List) :- ...) 中,(foreach(X, List) do ...)使用了类似的东西。这行不通。L is List在循环L(而不是)之前,我必须在过程中编写类似的东西List才能使其工作。

为什么是这样?我该如何解决?因为后来我尝试调用该过程,flatten(Vars[1..N,1..2])然后它变得更糟。

我开始使用collection_to_list/2(with flatten) 来解决这个问题,但我想知道是否有一种优雅的方式来解决它。

0 投票
1 回答
36 浏览

list - 强制列表不等式?

对于给定的 CSP,我使用了多种观点,其中之一是一个更奇特的布尔模型,它使用一个可变的 size 数组NxNxN。然后我用这个片段强制各种子数组的不等式:

该模型的性能很差,所以我很想知道更多关于幕后发生的事情。这是确保两个给定列表不同的正确方法吗?我是否正确理解列表X #\= Y中的每个约束()都Constraints需要在计算总和之前实例化,这意味着所有相应的变量也需要实例化?

0 投票
0 回答
45 浏览

prolog - 将 Eclipse CLP 中的代码转换为 CHR 的通用方法

我的问题有点笼统,但我的具体问题的答案可能会很有帮助。一般问题是“是否有任何通用方法可以将 Eclipse CLP prolog 中的代码传输到约束处理规则 (CHR) 代码?”。我知道 CHR 代码无论如何都会被编译为序言代码。

具体问题是“是否有任何算法或任何正式规则可以将Eclipse CLP 中的 N-Queens示例代码转换为 CHR 代码?”。

0 投票
1 回答
71 浏览

prolog - Internal workings of ic_global/occurrences/3

For the QuasiGroup completion problem I implemented two models. One of them is a model based on nothing but channeling constraints (based on a study by Dotu). The other one is a model based on the fact that every value needs to occur in ever row/column. Here's a little script :

I tried it out on a bunch of benchmarks (more than 10 puzzles). The total number of backtracks is larger than 500 but what struck me was that the number is the same in both models. The number of backtracks for each problem in the set is the same, too.

The little script above also reports the same number of backtracks. I'm curious why this happens. What does ic_global:occurrences/ do that makes it behave so similarly (though it is a little slower)?

0 投票
1 回答
87 浏览

prolog - Eclipse CLP:最大约束/变量数

在 Eclipse CLP 中,我可以定义多少个约束或变量?

我目前正在重塑我的调度问题 - 我需要alldifferent用许多约束替换单个atmost约束。但由于我引入了这个更改,我的 ecl 脚本无法正常工作。“不工作”是指 Eclipse CLP - eclipse.exe 或 TkEclipse GUI 刚刚关闭。没有任何错误信息,评论或说再见。根本不值一提。

如果我尝试注释掉一些约束,脚本至少会被编译。

有人已经为这个问题烦恼了吗?

0 投票
2 回答
88 浏览

prolog - 在条件头中使用整数挂起时如何处理

A我对两个变量和有以下条件B

问题在第 2 行,求解器不知道 和 的值AB如何在不指定第 2 行变量值的情况下决定继续哪个条件分支?

合理的行为是当求解器遍历变量的可能值时,根据变量的值来决定这个分支。但是,正如我发现的那样,在知道变量的值之前,它会通过这些表达式之一。防止这种情况的解决方案是什么?