[Coin-symphony] tracking cuts
Ted Ralphs
tkralphs at lehigh.edu
Fri Jul 22 18:21:55 EDT 2005
Michael Hennebry wrote:
> On Wed, 13 Jul 2005, Ted Ralphs wrote:
>
>
>>Yes, that is the idea of the global pool, but the pool is not checked
>>every iteration by default (this is configurable) and it is not checked
>>until after user_is_feasible() is called in the LP processing loop.
>>Furthermore, cut generation is still performed, even when the pool is
>>checked. For classes of inequalities for which there is an exact
>>separation algorithm (such as subtour constraints), this means that the
>>pool will not have any effect because any violated cuts previously
>>generated will be re-generated by the cut generation routines before
>>they are found in the pool. Generally speaking, one should not store
>>cuts that are "easy" to re-generate in the pool. In particular, this
>>includes any class for which there is efficient exact separation. For
>>classes that are difficult to separate or for which only heuristic
>>separation is possible, the pool will be much more effective. Hope this
>>helps. Let me know if you find out there really is a bug in there somewhere.
>
>
> As I understand the above, the sequence is
> check feasibility
> generate cuts
> fetch cuts from pool.
Yes, that's correct, but even if you fetched the cuts from the pool
first, duplicates might still be generated sine there is really no way
of preventing this from happening with the current implementation. I
suppose an interesting experiment would be to fetch the cuts from the
pool first and then not to generate cuts if any violated cuts were found
in the pool. That would probably be easy to implement, at least in the
sequential version. In the parallel version, cuts are fetched from the
pool simultaneously with generation.
Ted
--
Dr. Ted Ralphs
Assistant Professor
Industrial and Systems Engineering
Lehigh University
(610)758-4784
tkralphs at lehigh.edu
www.lehigh.edu/~tkr2
More information about the Symphony
mailing list