问题标签 [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.
python - 从 Python 子进程运行可执行文件时出错
我正在尝试从 Python 3.5 运行可执行文件(线性规划求解器 CLP.exe)。
当我在 Eclipse PyDev 中运行 python 文件时,我可以在 Eclipse 控制台中看到结果。
但是,“solutionFile.txt”文件中没有保存解算结果。
在 Eclipse 控制台中,我得到:
当我从命令行在 MS windows shell 中运行命令时:
我可以在解决方案文件中得到结果。而且,如果我在命令行中运行该命令,粗线不会出现在输出中。
如果我从 Python subprocess 运行命令,为什么没有创建 solition.txt 文件并且没有保存解决方案结果?
prolog - 计算 CSP 中的解决方案
我正在使用序言,我有这个代码:
如果我想计算所有解决方案,我该怎么做?我已经阅读了关于 clpb 中使用的 sat_count(+Expr, -Count) 但我无法在没有错误的情况下实现它
prolog - 如何使用 Prolog CLP FD 进行路径限制?
我正在尝试通过 Prolog CLP FD 使用限制编程来解决提出的难题。这个谜题包含以下简单规则:
现在,在我的代码中,我已经涵盖了 2x2 网格的限制,并且必须将其中一个连接到至少一个相同颜色的网格。
问题是我找不到一种方法来建立限制,即一件必须有一个路径(连接)到所有其他相同颜色的部分,而不通过相反颜色的部分,所以我得到了这种输出:
其中 1 并非全部相互连接。
如何在 CLP FD 中编写这种图形限制?
编辑:我正在使用 SICStus Prolog。
recursion - 使用 Prolog 在 CLP(R) 中编写递归函数的正确方法
我对 CLP 在 Prolog 中的工作方式感到非常困惑。不仅我发现很难看到好处(我确实在特定情况下看到了它,但发现很难概括这些好处),而且更重要的是,我几乎无法弥补如何正确编写递归谓词。以下哪项是 CLP(R) 方式中的正确形式?
或者
换句话说,我不确定何时应该在约束之外编写代码。对我来说,第一种情况似乎更合乎逻辑,因为PrevN
和NewF
属于约束。但如果这是真的,我很想知道在哪些情况下在递归函数的约束之外使用谓词是有用的。
python-2.7 - 通过 Modbus TCP-IP 发送多个 Python-clp 数据
我正在开发一个项目,使用 Python 语言开发计算机视觉代码,需要通过 Modbus TCP/IP 通信向 PLC 发送数据。我已经建立了通信,我只能发送有关二进制记录的信息,但我也想通过 Modbus 从识别的对象发送其他资源,但我不知道如何使用对我有利的记录。谢谢,有人可以帮我吗?
prolog - 在约束处理规则中表示逻辑析取
我正在 Prolog 中编写一个约束求解器,它实现了一个简单的逻辑公式:
"(alive(A) and animal(A)) iff (awake(A) or asleep(A))"
.
我在约束处理规则中找到了一种实现它的方法,但它比原始公式要冗长得多:
是否可以使用单个语句而不是多个冗余语句来实现此公式?
random - 将 Prolog 和 CLP(R) 用于约束系统
我正在寻找使用 Prolog 生成满足约束系统的随机向量。
例如,我们的用户可能会在运行时向我们的软件提供以下信息:
给定一个向量<x1, x2, x3, ... x30>
,我们可能有两个约束:
我想做的是生成一个大致遵循以下形式的 Prolog 程序:
这将在 30 维空间中输出一个均匀随机的向量。
这对 Prolog 可行吗?
还有消耗该输出的问题。我想做的是有任何调用来next()
重新生成一个新的向量。具体来说,我需要避免重新编译,因为我希望能够每秒生成大约 10,000 个这些向量。我能达到这种性能水平吗?
我希望在我们软件的其余部分运行的 JVM 上使用嵌入式(进程内)SWI-Prolog 实例。那就足够了吗?
python - 反复使用 CyLP - 占用内存?
我有一个重复实例化 CyClpSimplex 对象的程序(理想情况下解决数万个 LP),但我的内核在大约 6000 次迭代后终止了该程序。我认为这是因为内存使用过多(我在一个 docker 容器中,并且确实 hyperkit 目前正在使用 2GB 的 RAM)。
我不擅长 C++,也没有使用 Cython 的经验(CyLP 的大部分内容是用什么编写的),但我怀疑这些 CyClpSimplex 对象没有被解构。查了源码发现cython CyClpSimplex类的__dealloc__
函数居然被注释掉了!有谁知道从 python 中释放此内存的方法?我对这个问题的理解完全偏离了标准吗?
prolog - Prolog 中的 CLP(B) 加权 sat_count/3
对于 SWI-Prolog 的 CLP(B) 库,我想实现sat_count/2的加权版本
我没有找到用于修改代码的库的详细文档。如何实现 sat_count/2 的加权版本?
编辑 1(2017 年 1 月 11 日):
感谢@mat 的回复,我无法添加评论,因为我没有足够的声誉。
weighted_sat_count/3
应该采用一对权重列表,每个变量一个权重(True 的权重和 False 状态的权重),然后其他两个参数与sat_count/2
.
计数是每个可接受分配的权重之和。每个可接受分配的权重是每个变量权重的乘积。
计算结果的算法是:
使用与计算的权重相关联的访问节点的地图,该算法可以更有效。
weight[,]
是权重对的列表,1 表示 True,0 表示 False。
编辑 2(2017 年 3 月 11 日):
例如:
A+B+C,一个简单的SAT公式
权重对列表:[(0.7, 0.3), (0.9, 0.1), (0.5, 0.5)],每个变量一个
?- weighted_sat_count([(0.7, 0.3), (0.9, 0.1), (0.5, 0.5)], +([A, B, C]), Count).
cmake - 配置光学规划器时 CLP 库问题
我在配置光学规划器时面临 CLP 问题。请建议如何克服这个问题。
这是问题: