Hi,
Thanks for your help. I've got so used to seeing errors that arise from
complicated problems that I just assumed this was another.
I feel just a little bit stupid now :+)
My larger problem is solved now so thanks again.
Mark
Jorge Marques Pelizzoni wrote:
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
--
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