Re: FD with large domains

Daniel Diaz <[email protected]>
Newsgroups gmane.comp.gnu.prolog.general
Message-ID <[email protected]>
Hi Fred,

you are right, problems occur here with multiplication overflows. There 
is no good solution (except performing a lot of runtime tests which 
would decrease the performance of the solver). Initially FD are thought 
for "small" finite domains and thus this situation should not occur. 
However this requiere all FD var domains are intially and correctly defined.

You suggestion is interesting (a particular mode which, at least, checks 
overflows). I have to see how this impact my code.

Thank you

Daniel

Le 20/01/2012 15:45, Fred Bapst a écrit :
> Hello,
>
> I'd like to point out a couple of questionable situations in GnuProlog 
> when dealing with FD variables with large domains (eg default domain).
>
> - A*B #= C.                           no
> - fd_domain([A,B,C],0,1000000),
>   A*B #= C.                           no
> - fd_domain([A,B,C],0,10000000),
>   A*B #= C.                           yes
> - X#<1000000,  4321 rem X #= 1.       no
> - X#<10000000, 4321 rem X #= 1.       yes
> -   X*X #= Y.                         yes
> - X*X*X #= Y.                         no
> -  X**3 #= Y.                         yes
>
> Some of these issues might be due to integer overflow. My "numerical 
> problem sniffer" tool suggested for instance to double-check this code 
> snippet from BipsFD/fd_math_fd.fd:
>
> pl_xy_eq_z(fdv X, fdv Y, fdv Z) {
>  ...
>  start Z in min(X)*min(Y)..max(X)*max(Y)
> }
>
> Depending how it gets translated, the integer multiplication might 
> overflow.
>
> Am I off-topic? If not, do you think it is desirable to provide a 
> "mode" where it is ensured that propagation rules avoids overflows 
> that could crash a domain? Could it be proposed as a student project 
> (for how many hours of work)?
>
> Best regards.
>
> _______________________________________________
> Users-prolog mailing list
> [email protected]
> https://lists.gnu.org/mailman/listinfo/users-prolog
>


-- 
Ce message a ete verifie par MailScanner
pour des virus ou des polluriels et rien de
suspect n'a ete trouve.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.