问题标签 [sicstus-prolog]

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 回答
141 浏览

java - 如何使用 Jasper 将标准输出从 Sicstus4 重定向到 Java 组件?

我正在使用一个名为 Jasper 的库将我的 Java 应用程序链接到 Sicstus4 软件。这工作顺利,但是当我对其进行查询时,我需要获取输出以便在 JTextArea 中显示它。现在 Sicstus 软件将输出打印到控制台,我该如何获取它?

先感谢您!约书亚。

0 投票
1 回答
158 浏览

java - 部署Java应用程序的问题

我刚刚完成了一个链接到 Sicstus prolog 的 Java 应用程序。现在我需要部署它,但我遇到了以下问题,与 Java 链接的 Sicstus 库要求使用以下 sintax 调用应用程序:

我正在部署一个 .sh 或 .bat 文件,但用户必须手动编辑它并说明 sicstus 安装目录的位置。我怎样才能避免这种情况?

我真的被困在这里了。我已经尝试了几个安装程序构建器,例如 JSmooth 和 GlassWorks,但这些并不能解决我的问题。任何的想法?

约书亚。

0 投票
1 回答
895 浏览

prolog - 在 prolog 中解决具有限制的拼图游戏

我现在开始使用 SICStus Prolog 学习 prolog 中的限制。虽然我知道如何使用它来解决简单的问题,但我有一个练习,我必须解决一个拼图游戏。但是我不知道如何解决这个问题,因为我将有几个具有不同属性(片段)的不同元素,谁能给我一个例子,说明如何在序言中表示片段列表以及我应该使用什么样的限制?

0 投票
2 回答
578 浏览

arrays - SICStus 多维数组

我想在 SICStus 中创建一个多维数组,它的作用与 ECLiPSe Dim 函数几乎相同。为此,我编写了这段代码,但不幸的是它总是进入无限循环。任何人都可以解决这个问题吗?

0 投票
3 回答
1854 浏览

prolog - 使用 Prolog 优化约束逻辑编程中的寻路

我正在开发一个小型 prolog 应用程序来解决摩天大楼和栅栏难题。

一个未解之谜:

篱笆拼图中的摩天大楼(未解决)

已解决的谜题:

篱笆拼图中的摩天大楼(已解决)

当我通过程序已经解决的难题时,它会很快,几乎是瞬间的,为我验证它。当我通过程序非常小的谜题(例如 2x2,当然要修改规则)时,找到解决方案也很快。

问题在于计算“原生”大小为 6x6 的谜题。在中止它之前,我已经让它运行了 5 个小时左右。时间太多了。

我发现耗时最长的部分是“栅栏”,而不是“摩天大楼”。单独运行“摩天大楼”会产生一个快速的解决方案。

这是我的栅栏算法:

  • 顶点由数字表示,0 表示路径不经过该特定顶点,> 1 表示该顶点在路径中的顺序。
  • 约束每个单元格使其周围有适当数量的线条。
    • 这意味着如果两个顶点具有连续编号,则它们是连接的,例如 1 -> 2, 2 -> 1, 1 -> Max, Max-> 1 (Max是路径中最后一个顶点的编号。通过计算maximum/2
  • 确保每个非零顶点至少有两个具有序号的相邻顶点
  • 约束Max等于(BoardWidth + 1)^2 - NumberOfZerosBoardWidth+1是沿边的顶点数,NumberOfZeros通过 计算count/4)。
  • 用于nvalue(Vertices, Max + 1)确保不同值的数量VerticesMax(即路径中的顶点数)加上1(零值)
  • 找到第一个包含 a 的单元格3并强制路径从那里开始和结束,以提高效率

我可以做些什么来提高效率?代码包含在下面以供参考。

摩天大楼犯罪.pro

实用程序.pro

s1.pro

0 投票
4 回答
1301 浏览

prolog - Prolog:随机标记

我有一个使用约束用 Sicstus Prolog 编写的程序。我的目标是使用 labeling/2 和其他一些方法来获得我的变量的随机实例化。

例子:

如果我使用

获得的第一个结果将是 X = Y = Z = 0。您认为返回 X、Y 和 Z 的随机值集的最佳方法是什么?

0 投票
2 回答
206 浏览

windows - 在 Windows 命令行上的 Prolog 中切换模式

Sicstus Prolog 手册对用户说“|?- 咨询(用户)”。输入子句并“返回顶层,键入 ^D.”。但是,我使用的是 Windows,并且手册没有 Windows 说明。如何在 Windows 中返回查询模式?

0 投票
1 回答
2202 浏览

prolog - Prolog-从文件加载库

Sicstus 手册说使用它来加载库:use_module(library(Package))。这适用于命令行的 Prolog,但我不知道如何从 Prolog 源文件加载库。当我包含“use_module(库(包))”时。在我的 .pl 文件中,出现权限错误:无法重新定义内置 use_module/1。

0 投票
2 回答
416 浏览

windows - 从 sictus prolog pl 文件窗口创建一个独立的 exe 文件

我有一个 sictus prolog 文件(.pl 文件),我想将其导出为 exe 文件以在另一台计算机上运行。

搜索 SICS 文档并使用 spld 给了我一个 exe 文件,该文件在另一台计算机上不起作用(运行 windows xp x86)。

我在 Windows 7 专业版(x64)上使用 Sicstus,并希望有一个简单的分步说明,说明如何从 sicstus prolog 文件创建将在 x86 和 x64 窗口上运行的独立 exe。

就像是:

1:使用...编译pl文件

2:...

这可能吗?

PS假设我对依赖项和dll一无所知:s PPS代码使用一个模块

0 投票
2 回答
334 浏览

prolog - 使用 in_set/2 约束

我正在尝试使用约束X不成为列表中的值。

来自SICStus Prolog 手册

不过,我不知道如何将列表转换为 FDSet。我有一个整数列表,[2,3,8,9]我想将变量域限制X为不在该列表中。我怎么做?谢谢。