class KLinearRelaxationSolver : public KRelaxationSolver

This class is intended as a superclass for linear relaxation solvers.

Such a solver must be provided with

It relies on a LP/MIP solver to provide the following information:

  • a value (a bound for the relaxed problem, cf method getBound())

  • a solution, possibly not feasible for the original problem, but which can be used to guide the search for a feasible solution

  • if the problem is LP, reduced costs (that can be used for instance in the “reduced cost fixing” procedure).



Subclassed by KClpLinearRelaxationSolver, KCoinLinearRelaxationSolver, KXPRSLinearRelaxationSolver

Public Types

enum SolveAlgorithm

Resolution algorithms


enumerator ALG_PRIMAL

Primal simplex algorithm.

enumerator ALG_DUAL

Dual simplex algorithm.

enumerator ALG_NETWORK

Network simplex algorithm.

enumerator ALG_BARRIER

Newton barrier method.

Public Functions

virtual int writeLP(const char *filename) const = 0

Writes the current problem to a file (in lp format).


filename – the path of the file to write (existing file is overwrited, if any)


return code is reserved for future use (for now, errors are trapped by an exception)

virtual void generateCuts(KLinearRelaxation *relaxation) = 0

Cut generation