Joachim, Thanks for the prompt response. I am prototyping a model where the variables are design parameters. I am trying where possible to deal entirely in the integer domain to reduce computational load. However, I may have to use real variables if that cannot be avoided. In such a case, how do I go about labeling my variables without the search space exploding? Thanks Vivek On 8/8/07, Joachim Schimpf (Independent Contractor) <jschimpf_at_cisco.com> wrote: > > Vivek Balaraman wrote: > > Given an IC constraint > > > > A #= B * C > > where > > A #::[0..50], > > B #::[0..5], > > C#::[0..10] > > > > (var(A)->indomain(A);true), > > (var(B)->indomain(B);true), > > (var(C)->indomain(C);true). > > You don't need the var tests, and you can use labeling/1 instead of > a sequence of indomains. > > > > > When any two of A,B,C are grounded, then there is no problem. However, > > there may be times when only one of these is grounded (say C has the > > value 5. What we want is to be able to generate all possible solutions > > by labeling the other two variables. However I get a type error when I > > try to do so. > > What you describe just works: > > ?- A #:: [0..50], B #:: [0..5], C #:: [0..10], A #= B*C, > labeling([A,B,C]). > A = 0 > B = 0 > C = 0 > Yes (0.00s cpu, solution 1, maybe more) > > ... > > A = 50 > B = 5 > C = 10 > Yes (0.20s cpu, solution 66) > > > If you still have a problem, show us your exact code. > > > -- Joachim > > _______________________________________________ > ECLiPSe-Users mailing list > ECLiPSe-Users_at_crosscoreop.com > http://www.crosscoreop.com/mailman/options/eclipse-users >Received on Wed Aug 08 2007 - 13:32:32 CEST
This archive was generated by hypermail 2.2.0 : Thu Feb 02 2012 - 02:31:58 CET