0

如何在约束编程语言 ECLiPSe ( http://www.eclipseclp.org/examples/ ) 中进行变量求和?

我正在尝试获得此功能:

:- lib(ic).         % include the standard interval constraint library
:- lib(branch_and_bound).   % include the branch and bound library for minimization
:- lib(ic_edge_finder).     % include the cumulative constraint library needed for resource constraints

    triangle(sums) :-
        places = [a,b,c,d,e,f,g,h,i],
        places :: 1..9,
        sums = [sum1],
        sums :: 10..30,
        alldifferent(places),
        sum1 #= a + b + c + d,
        sum1 #= b + e + f + g,
        sum1 #= d + g + h + i,
        flatten([places,sums],allVars),
        labeling(allVars).

我得到的错误是:

[eclipse 13]: compile('2a.ecl').        
undefined arithmetic expression in _1187 is sum1 in module eclipse
syntax error : in source transformation in triangle(sums) :- places = [a, b, c, d, e, f, g, h, i], places :: 1 .. 9, sums = [sum1], sums :: 10 .. 30, alldifferent(places), sum1 #= a + b + c + d, flatten([places, sums], allVars), labeling(allVars)
4

1 回答 1

1

在 ECLiPSe 中,就像在 Prolog 中一样,变量名必须以大写字母或下划线开头:

Places = [A,B,C,D,E,F,G,H,I],

等等

于 2012-03-10T22:07:40.040 回答