[ library(colgen) | Reference Manual | Alphabetic Index ]

ColgenInstance:solver_setup(+SolveSubProblem, +Obj, +Options)

Define subproblem, objective and options for ColgenInstance.
Subproblem solution predicate
The objective function to minimize
A list of options


Define the partial linear expression Obj as the objective to minimize for the problem associated with the colgen instance ColgenInstance. It will typically contain implicit_sum terms.

Associate the user-defined predicate SolveSubProblem to provide profitable variables during the solution process.

The first argument of the subproblem solution predicate must be a subproblem structure:

      sp_prob(master_pool, cutoff, cost, coeff_vars, aux, ...)
where and master_pool will be unified with the colgen instance ColgenInstance so that solutions can be posted to it from within the solution predicate, cutoff is a minimum acceptable value for the cost of subproblem solutions that will be updated before calling the predicate, cost is the variable occurring in the implicit sum term of obj (if any) representing the contribution of new subproblem solutions to the master problem solution cost, coeff_vars is a list of all subproblem variables occurring in the implicit sum terms of master problem constraints.

The following options are accepted:

a user-specified separation goal (XXX).
node selection criterion passed to bfs instance (best_first|depth_first|best_estimate).
Option to be passed to the associated eplex solver instance.
policy for active prevention of duplicate columns (off|lp|clp).
tolerance for optimality (1e-5|float).
should we try and perturb the external solver basis when we appear to be at optimal and external solver returns same basis after adding columns ('off' - no, 'on' - temporarily set the external solver to always perturb)
print messages while solving.
should we halt when we find degeneracy (default 'stop'), or continue and let the subproblem solver deal with it ('continue').
the policy to perform basis stabilisation:
no stabilisation is performed.
on(BoundIter, BoundUpdate, CoeffIter, CoeffUpdate)
then the default policy is used with var bounds/coefficients updated by BoundUpdate/CoeffUpdate after BoundIter/CoeffIter iterations respectively.
stab_pred(UpdatePred, StoppingPred)
a user defined policy is employed and UpdatePred/ StoppingPred should be predicates that perform the updates and test for stopping conditions.

See Also

set / 2