On 2013-01-31, Daniel Friedan <[email protected]> wrote:
> ------=_Part_880_30796308.1359641848689
> Content-Type: text/plain; charset=ISO-8859-1
>
> First, I'll try my MILP problems in double-precision (probably using 
> CPLEX).  I'll re-post my question about arbitrary precision if it turns out 
> that I need it.
IMHO the main problem with MILPs is that it's pretty hard to get a
certificate of optimality (much easier with LPs/SDPs). 
Commercial solvers don't do them, free
solvers don't do them either, AFAIK.
(that's OK if you just want to use the solution obtained, but
claiming anything about optimality is a different matter)
>
> We definitely needed arbitrary precision when we did some related problems 
> using semi-definite programming (over the real numbers -- without the 
> integrality constraints).  To use arbitrary precision floating point 
> arithmetic, we had to employ SDPA-GMP as our SDP-solver, invoking it from 
> Sage via a shell script.

SDPs are known to be much more demanding in this sense, and for good
geometric/algebraic reasons too.

Best,
Dmitrii
>
> Thanks again for the help.
>
> Daniel
>
> On Tuesday, January 29, 2013 3:12:45 PM UTC, Daniel Friedan wrote:
>>
>> The following example from Sage Reference v5.6 >> Numerical Optimization 
>> >> Mixed integer linear programming
>>       http://www.sagemath.org/doc/reference/sage/numerical/mip.html
>> gives a wrong answer when solver = 'PPL' is used.  The equality 
>> constraints are violated.
>>
>> Sage 5.6-OSX-64bit-10.6 under OS X 10.6.8
>>
>> sage: p = MixedIntegerLinearProgram(maximization=False, solver = "PPL")
>> sage: print p.base_ring()
>> sage: w = p.new_variable()
>> sage: p.add_constraint(w[0] + w[1] + w[2] - 14*w[3] == 0)
>> sage: p.add_constraint(w[1] + 2*w[2] - 8*w[3] == 0)
>> sage: p.add_constraint(2*w[2] - 3*w[3] == 0)
>> sage: p.add_constraint(w[0] - w[1] - w[2] >= 0)
>> sage: p.add_constraint(w[3] >= 1)
>> sage: _ = [ p.set_min(w[i], None) for i in range(1,4) ]
>> sage: p.set_objective(w[3])
>> sage: p.show()
>> sage: print 'Objective Value:', p.solve()
>> sage: for i, v in p.get_values(w).iteritems():\
>> sage:          print 'w_%s = %s' % (i, int(round(v)))
>>
>> Rational Field
>> Minimization:
>>   x_3
>> Constraints:
>>   constraint_0: 0 <= x_0 + x_1 + x_2 - 14 x_3 <= 0
>>   constraint_1: 0 <= x_1 + 2 x_2 - 8 x_3 <= 0
>>   constraint_2: 0 <= 2 x_2 - 3 x_3 <= 0
>>   constraint_3: - x_0 + x_1 + x_2 <= 0
>>   constraint_4: - x_3 <= -1
>> Variables:
>>   x_0 is a continuous variable (min=0, max=+oo)
>>   x_1 is a continuous variable (min=-oo, max=+oo)
>>   x_2 is a continuous variable (min=-oo, max=+oo)
>>   x_3 is a continuous variable (min=-oo, max=+oo)
>> Objective Value: 1
>> w_0 = 8
>> w_1 = 5
>> w_2 = 2
>> w_3 = 1
>>
>>
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-support" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-support?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to