prolog - 尝试运行 SWI Prolog Simplex 示例时出错

标签 prolog swi-prolog simplex

我正在尝试运行 SWI-Prolog 的单纯形库文档中给出的硬币示例,但我收到此错误消息:

$ rlwrap swipl coins.pl
Warning: /home/vitorferraz/junk/coins.pl:1:
Unknown message: simlpex(bounded)
Welcome to SWI-Prolog (threaded, 64 bits, version 7.6.4)
SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software.
Please run ?- license. for legal details.

For online help and background, visit http://www.swi-prolog.org
For built-in help, use ?- help(Topic). or ?- apropos(Word).

1 ?- coins(S), variable_value(S, c(1), C1), variable_value(S, c(5), C5), variable_value(S, c(20), C20).
ERROR: Arithmetic: `rationalize/1' is not a function
ERROR: In:
ERROR:   [13] _5574 is rationalize(111)
ERROR:   [12] simplex:constraint_(0,[...|...]=111,state(0,[],[],[]),_5616) at /usr/local/lib/swipl-7.6.4/library/clp/simplex.pl:636
ERROR:   [10] coins(state(0,[],[],[]),_5664) at /home/vitor/coins.pl:8
ERROR:    [8] '<meta-call>'(user:(...,...)) <foreign>
ERROR:    [7] <user>
ERROR: 
ERROR: Note: some frames are missing due to last-call optimization.
ERROR: Re-run your program in debug mode (:- debug.) to get more detail.

最佳答案

这表明您编译的 SWI-Prolog 不支持 GMP,GNU 多精度算术库。

必须使用 GMP 编译 SWI-Prolog 以使用library(simplex),因为它需要支持有理数

关于prolog - 尝试运行 SWI Prolog Simplex 示例时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50452849/

相关文章:

list - 到达序言中的列表末尾

list - Prolog中列表的条件解析

PROLOG CLPFD 如何通过约束来表达?

z3 - Z3 中的单纯形求解器

algorithm - 二进制整数规划的单纯形算法的复杂性是多少?

database - Prolog - 坚持作业 - 使用数据库并输入 2 个值以从数据库中获取第三个值

bash - 如何在 SWI-Prolog 控制台中使用上/下历史记录键?

Prolog初学者求助获取当前时间

使用条件剪切的 Prolog 查询