[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Help-glpk] Callbacks for column generation

From: Andrew Makhorin
Subject: Re: [Help-glpk] Callbacks for column generation
Date: Thu, 10 Dec 2009 05:06:09 +0300

> What would happen if i add cols in a callback when the reason for
> calling the calback is GLP_IROWGEN, it would start adding columns to
> the global problem?.

To represent subproblems, i.e. nodes of the search tree, the glpk mip
solver uses the original problem object (glp_prob) passed to it from
the application program. Initially the original mip becomes the root
subproblem, however, once it has been split into subproblems, it is
removed from the active list and, thus, formally becomes inaccessible
(but it is restored on exit from the solver). If you add "lazy" rows
and/or cuts within the callback routine, you add them to the current
subproblem, and these rows/cuts are local in the sense that they are
inherited only by child subproblems. If the solver would allow adding
new columns, they also would be added only to the current subproblem.
That is, if the root (or any other) subproblem being removed from the
active list became non-active, it is impossible to change something in
it, because formally it does not exist.

On the other hand, you can create a copy of the original problem
object; in this case you can change it (i.e. adding rows, columns, etc.)
even in the callback routine, because the copy is a separate problem
object not related to the mip solution process.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]