【发布时间】:2014-07-16 15:15:25
【问题描述】:
我是 prolog 新手,我在 ubuntu 上使用 swi-prolog 来学习。我正在使用clpfd 模块来解决工人/产品分配问题。
该问题在第 7 页的this 论文中有所说明。
以下是我从那篇论文中得到的信息。
solver(Sol) :-
Sol = [A,B,C,D],
[A,B,C,D] ins 1..4,
all_distinct(Sol),
element(A,[7,1,3,4],A1),
element(B,[8,2,5,1],B1),
element(C,[4,3,7,2],C1),
element(D,[3,1,6,3],D1),
A1 + B1 + C1 + D1 #= E,
maximize(E,Sol),
label(Sol).
我无法让maximize 工作。它会引发错误
ERROR: solver/1: Undefined procedure: maximize/2
ERROR: However, there are definitions for:
ERROR: maximize/3
有人能指出为什么maximize 函数没有按预期工作,或者我应该如何构建它?提前致谢。
【问题讨论】:
标签: prolog swi-prolog clpfd