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

   Define subproblem, objective and options for ColgenInstance.

Arguments
   SolveSubProblem     Subproblem solution predicate
   Obj                 The objective function to minimize
   Options             A list of options

Type
   library(colgen)

Description
  
  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:
    
    separate(+SeparationGoal)
	a user-specified separation goal (XXX).
    node_select(+Val)
	node selection criterion passed to bfs instance
	(best_first|depth_first|best_estimate).
    eplex_option(+EplexOption)
	Option to be passed to the associated eplex solver instance.
    disallow(+Policy)
	policy for active prevention of duplicate columns (off|lp|clp).
    int_tolerance(+Tol)
	tolerance for optimality (1e-5|float).
    basis_perturbation(+OffOn)
	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)
    info_messages(+OffOn)
	print messages while solving.
    on_degeneracy(+Action)
	should we halt when we find degeneracy (default 'stop'), or
	continue and let the subproblem solver deal with it ('continue').
    stabilisation(+Policy)
	the policy to perform basis stabilisation:
	
	off
	    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
