bug-prolog
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: uncaught exception: error(resource_error(too_big_fd_constraint), #


From: Daniel Diaz
Subject: Re: uncaught exception: error(resource_error(too_big_fd_constraint), # /2)
Date: Fri, 17 Feb 2012 11:24:29 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:9.0) Gecko/20111229 Thunderbird/9.0

Hello,

There are some problems with your code. First you should write #<=> instead of #= in your code.
Anyway the problem with the size of the constraints is not linked to this. I have fixed it in my code and a version is available here:

http://gprolog.univ-paris1.fr/unstable/gprolog-20120217.tgz

However, there are 3 possible workarounds with the current version:

  1. note that an xor over n variables is true iff an odd number of variables are true.
    Thus you can obtain the same behavior with a linear equation followed by a modulo.
    E.g. X1 + X2 + ... + Xn #= S, S rem 2 #= 1.

  2. you can also split big constraints into smaller ones (max 10 variables is OK).
    E.g. X1 ## X2 ## X3 ## ... X20 #<=> 1 becomes X1 ## .. ## X10 #<=> S, S ## X11 ## ... X20 #<=> 1.

  3. You can define a predicate xor/2 that accepts a list and a result and does the job. Use it as: xor([X1,...,X20],1).
    Here is the definition of xor/2.

    xor([X|L], R) :-
        xor(L, X, R).


    xor([], R, R).

    xor([Y|L], X, R) :-
        X ## Y #<=> Z,
        xor(L, Z, R).

Daniel

Le 13/02/2012 18:00, Ujjwal Guin a écrit :
Hello,

My name is Ujjwal Guin, a doctoral student of University of
Connecticut. Currently, I am trying to run a prolog program on the
university server (Linux). The program is very small and quite simple.
If I run the same program in my Windows (BProlog), I am getting the
proper result. I am mentioning the program below.

solve(Vars):-
Vars=[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,B0,B1,B2,B3,B4,B5,B6,B7,B8,B9,B10,B11,B12],
fd_domain_bool(Vars),
B6##B3##B2##B1##B0##A5##A2##A1##A0#=1,
B4##B1##B0##A3##A0#=1,
B9##B6##B5##B3##B12##B10##A9##A7##A6##A5##A4##A3##A2##A11##A10#=1,
B9##B7##B6##B3##B2##B0##A8##A7##A6##A4##A3##A2##A1##A0#=0,
B7##B5##B4##B1##B0##A6##A5##A4##A2##A1##A0#=1,
B6##B4##B3##B0##A5##A4##A3##A1##A0#=1,
B8##B6##B2##B11##A9##A7##A6##A2##A12##A11##A0#=0,
B7##B5##B10##B1##A8##A6##A5##A11##A10##A1#=0,
B7##B4##B2##A8##A7##A5##A3##A2#=1,
B4##B1##A5##A4##A2##A0#=0,
fd_labeling(Vars).

I will really appreciate your help to execute the program..

Thank you very much.

Regards
Ujjwal Guin

_______________________________________________
Bug-prolog mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/bug-prolog



--
Ce message a été vérifié par MailScanner pour des virus ou des polluriels et rien de suspect n'a été trouvé.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]