[PPL-devel] Out of memory when solving integer problem with only two large vars
Georgi Guninski
guninski at guninski.com
Sat Dec 21 13:26:47 CET 2013
I am trying to solve the following problem, not
necessarily with ppl.
Given positive integers $A0,B0,L$ find integers $A,B$
satisfying:
1 <= A
A <= L
1 <= B
B <= L
1 <= A0*A - B0*B
A0*A - B0*B <= L
Encoded it in PPL by modifying an example (also attached):
=====
Constraint_System cs;
cs.insert(A >= 1);
cs.insert(A <= Coefficient(L));
cs.insert(B >= 1);
cs.insert(B <= Coefficient(L));
cs.insert(Coefficient(A0)*A - Coefficient(B0)*B >= 1);
cs.insert(Coefficient(A0)*A - Coefficient(B0)*B <= Coefficient(L) );
// All integer variables.
Variables_Set ivs(A, B);
// Cost function.
Linear_Expression cost(Coefficient("10"));
MIP_Problem mip(cs.space_dimension(), cs.begin(), cs.end(), ivs, cost,
MINIMIZATION);
if (mip.solve() != OPTIMIZED_MIP_PROBLEM) {
=======
(reads 3 ints from stdin)
This works for small input, but for:
A0=654013667618
B0=654013667619
L=808711
PPL consumes 6GB RAM very fast and I run out of memory.
Am I doing something wrong?
Other ways to solve the problem?
Attached is the source, function "test10".
Thank you.
ppl-1.1 on x86_64 linux.
--
Georgi
-------------- next part --------------
A non-text attachment was scrubbed...
Name: mipproblem1.cc
Type: text/x-c++src
Size: 67532 bytes
Desc: not available
URL: <http://www.cs.unipr.it/pipermail/ppl-devel/attachments/20131221/3b2f2b90/attachment.cc>
More information about the PPL-devel
mailing list