Well, it seems you overlooked the emulator error message being generated:

%******************* error in finite set system *****************
%**
%** unknown distribution strategy
%**
%** At argument:  1
%** In statement: {FS.distribute ff [{1 2}#2]}
%**
%** Call Stack:
%** procedure 'FSDistribute' in file
"c:/cygwin/home/yjaradin/mozart/share/lib/cp/FS.oz", line 372, column
6, PC = 19941200
%**--------------------------------------------------------------

That's why you have failure there. It turns out that 'ff' is not a
possible strategy for FS.distribute. Try 'naive' instead and
everything goes fine.

Cheers,

Jorge.

2009/7/8 mark richardson <[email protected]>:
> Hi,
>
> I see your point about a 'vector' rather than a single variable, but if I
> try {FS.distribute ff [B]} I now get all nodes failing?
> There's something very basic wrong here that I'm not seeing I think!
>
> Regards
>
> Mark
>
> Jorge Marques Pelizzoni wrote:
>>
>> 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
>>
>
>
> --
> 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

Reply via email to