Dear people, I have the following CLP program which fails although I do not really understand why. It fails in SWI-prolog at exactly the same point so I assume it is me who made a mistake. Maybe somebody can explain, and possibly suggest a way to solve it. The problem is that I have a N intervals (in the example below there are two, A and B) which are contained in an interval C which has the property that it is a small as possible. For completeness I state additional requirements for my application although they are not all encoded in the sample program: The C interval is contained in D. Finally at label time I'd like to specify whether C should be labeled min, max or centered (default: center) The last constraint, CX2 #= MinX2 fails. My guess is it has something to do with the minlist constraint. I am using eclipse 5.7 with the ic library. Any help would be greatly appreciated, Joost /* AX1-----AX2 BX1-----BX2 CX1--------------------CX2 DX1--------------------------------------DX2 */ run(Out) :- CVars = [AX1,AX2,BX1,BX2,CX1,CX2,DX1,DX2], Out = [ax1:AX1,ax2:AX2,bx1:BX1,bx2:BX2,cx1:CX1,cx2:CX2,dx1:DX1,dx2:DX2], L = 0, H = 1000, AX1 #>= L, AX1 #=< H, AX2 #>= L, AX2 #=< H, AX1 #=< AX2, BX1 #>= L, BX1 #=< H, BX2 #>= L, BX2 #=< H, BX1 #=< BX2, CX1 #>= L, CX1 #=< H, CX2 #>= L, CX2 #=< H, CX1 #=< CX2, DX1 #>= L, DX1 #=< H, DX2 #>= L, DX2 #=< H, DX1 #=< DX2, % set size for A , B WA = 180, WB = 120, % width A,B WA #= AX2 - AX1, WB #= BX2 - BX1, % A before B AX2 #=< BX1, % C contains A&B AX1 #>= CX1, AX2 #=< CX2, BX1 #>= CX1, BX2 #=< CX2, % find minimum of A & B minlist([AX1,BX1],MinX1), minlist([AX2,BX2],MinX2), % D contains C DX1 #=< CX1, DX2 #>= CX2, % C fits tightly CX1 #= MinX1, CX2 #= MinX2, % This constraint fails! labeling(CVars), true. -- Joost Geurts <Joost.Geurts@cwi.nl>Received on Fri Nov 19 17:05:33 2004
This archive was generated by hypermail 2.1.8 : Wed 16 Nov 2005 06:07:31 PM GMT GMT