[Symphony] LP solver (Clp) won't stop after TM_time_limit & 2 newbie questions

lebodicp at insa-rouen.fr lebodicp at insa-rouen.fr
Mon Jan 26 06:59:24 EST 2009


Hello,

Thank you for your answer, Ashutosh. Sorry I didn't answer earlier.

>> -I've tried using column generation, but couldn't get it right (for my
>> problem, variables are known from the start as required in SYMPHONY). I
>> followed the manual instructions but obviously I'm doing something
>> wrong.
>> I can't find an example that uses column generation. Is there something
>> of
>> that kind available?
>
> column generation hasnt been tested in a while. so i am not sure if its a
> problem in symphony or with how you call it. more information about where
> it
> seems broken may help. is it not compiling? or crashing? or giving
> unexpected
> output?

Symptoms were an unexpected output, but for the moment I have given up on
using column generation. The error was probably on my side.


>> -I didn't realize using sym environment rather than osi would prevent me
>> from using Cgl cuts. Now that the code is written, what would be the
>> easiest way to get Cgl cuts to work? Would it be possible to (1)export
>> to
>> mps (2)read the mps file with another program that uses osi? What would
>> be
>> the best way?
>
> This behaviour is unexpected.  what version of symphony are you using and
> on
> which platform? you can increase the verbosity level by using '-v 10' and
> see if
> cuts are actually generated. did you also modify
> user_generate_cuts_in_lp()
> function? if so, can you post it as well?

I didn't modify user_generate_cuts_in_lp().
I have updated SYMPHONY to 5.1.10, it does now generate cgl cuts. Maybe it
did before, though for a given problem, the separation time indicated a
few ms, and now it is over a second. Still, the manual indicates that "to
use CGL cuts, OSI interface has to be used", but I don't use OSI. Anyhow,
I'm glad it works now.

I have questions, however, on how the cgl flags work in the parameter file.
-Does setting generate_cgl_cuts to 1 set every generate_cgl_*_cuts to 1,
or does it just make them default?
-From what I've seen, SYMPHONY still uses, say, foo cuts, when setting
generate_cgl_cuts to 1 and generate_cgl_foo_cuts to 0. If
generate_cgl_cuts is set to 0 and generate_cgl_foo_cuts is set to 1, no
cuts are generated. Is this a desired behavior? How can I fine-tune cgl
cuts?
-For my application, only probing and MIR cuts are generated. Setting
generate_cgl_cuts to 1 produces:
******************************************************************************
Now displaying the relaxed solution ...
Receiving/creating cuts...
16 probing cuts added
75 2-MIR cuts added
generate_cgl_cuts: Number of Coefficients = 2	Max = 1.000000, Min = 1.000000
generate_cgl_cuts: Number of Coefficients = 2	Max = 1.000000, Min = 1.000000
...
******************************************************************************

In the parameter file, additionaly setting
generate_cgl_lift_and_project_cuts to 0 or 1 now produces:
***********************************************************************************
Now displaying the relaxed solution ...
Receiving/creating cuts...
16 probing cuts added
75 2-MIR cuts added
Clp6003E Matrix has 172 large values, first at column 25, row 6886 is
-1.79769e+308
Clp3003W Analysis indicates model infeasible or unbounded
Clp6003E Matrix has 172 large values, first at column 25, row 6886 is
-1.79769e+308
Clp0004I Stopped due to errors - objective value 0
Clp0032I Errors objective 0 - 0 iterations time 0.012
...
***********************************************************************************

The separation time is then remarkably higher. Should I submit this as a
bug of cgl or is this SYMPHONY related?

Thanks for your time.
Regards,

Pierre




More information about the Symphony mailing list