Hi, Mark! I guess all you have to do is write
{FS.distribute ff [B]}
or
{FS.distribute ff o(B)}
instead of
{FS.distribute ff B}
You see, you got suspended because FS.distribute will wait for its
second argument (which should always be a "vector" of FS variables,
not one single raw variable) to get determined in order to continue.
Cheers,
Jorge.
2009/7/8 mark richardson <[email protected]>:
> Hi,
>
> I've been trying for a couple of weeks to get to grips with a combination of
> FD's and FS's.
> My problem can be demonstrated with the following script:
>
> declare
> proc {Script Root}
> A B C in
> Root=A#B#C
> A::1#2
> C::1#2
> B={FS.var.upperBound 1#2}
> {FS.card B C} C=<:A
> {FD.distribute ff A#C}
> %{FS.distribute ff B}
>
> end
>
> {ExploreAll Script}
>
>
> Now, as expected I get three solutions to this script. One correctly gives B
> as {1#2}#2. What I would like is for the other two solutions is to get {1}#1
> and {2}#1 resp. but I get {1#2}#1 for both.
> I understand why I'm not getting this (there is nothing to constrain the FS
> value to 1 or 2) but what I don't understand is how I could rewrite this to
> get the desired results. I initially thought that this would simply be a
> case of distributing the FS variable separately (on the commented out line)
> but then I lose the successful solution and am left with two solutions that
> are suspended.
> I realise this is my lack of understanding so if anyone could suggest
> anything I'd be very grateful.
>
> Regards
> Mark
>
> --
> Mark Richardson
> Research Assistant
> University of Teesside, UK
> [email protected] [email protected]
> [email protected]
>
> _________________________________________________________________________________
> mozart-users mailing list
> [email protected]
> http://www.mozart-oz.org/mailman/listinfo/mozart-users
>
_________________________________________________________________________________
mozart-users mailing list
[email protected]
http://www.mozart-oz.org/mailman/listinfo/mozart-users