ClpSimplexNonlinear Class Reference

This solves non-linear LPs using the primal simplex method. More...

#include <ClpSimplexNonlinear.hpp>

Inheritance diagram for ClpSimplexNonlinear:
Inheritance graph
[legend]
Collaboration diagram for ClpSimplexNonlinear:
Collaboration graph
[legend]

List of all members.

Public Member Functions

Description of algorithm
int primal ()
 Primal algorithms for reduced gradient At present we have two algorithms:
int primalSLP (int numberPasses, double deltaTolerance)
 Primal algorithm for quadratic Using a semi-trust region approach as for pooling problem This is in because I have it lying around.
int primalSLP (int numberConstraints, ClpConstraint **constraints, int numberPasses, double deltaTolerance)
 Primal algorithm for nonlinear constraints Using a semi-trust region approach as for pooling problem This is in because I have it lying around.
void directionVector (CoinIndexedVector *longArray, CoinIndexedVector *spare1, CoinIndexedVector *spare2, int mode, double &normFlagged, double &normUnflagged, int &numberNonBasic)
 Creates direction vector.
int whileIterating (int &pivotMode)
 Main part.
int pivotColumn (CoinIndexedVector *longArray, CoinIndexedVector *rowArray, CoinIndexedVector *columnArray, CoinIndexedVector *spare, int &pivotMode, double &solutionError, double *array1)
 longArray has direction pivotMode - 0 - use all dual infeasible variables 1 - largest dj while >= 10 trying startup phase Returns 0 - can do normal iteration (basis change) 1 - no basis change 2 - if wants singleton 3 - if time to re-factorize If sequenceIn_ >=0 then that will be incoming variable
void statusOfProblemInPrimal (int &lastCleaned, int type, ClpSimplexProgress *progress, bool doFactorization, double &bestObjectiveWhenFlagged)
 Refactorizes if necessary Checks if finished.
int pivotNonlinearResult ()
 Do last half of an iteration.

Detailed Description

This solves non-linear LPs using the primal simplex method.

It inherits from ClpSimplexPrimal. It has no data of its own and is never created - only cast from a ClpSimplexPrimal object at algorithm time. If needed create new class and pass around

Definition at line 28 of file ClpSimplexNonlinear.hpp.


Member Function Documentation

Primal algorithms for reduced gradient At present we have two algorithms:

A reduced gradient method.

int ClpSimplexNonlinear::primalSLP ( int  numberPasses,
double  deltaTolerance 
)

Primal algorithm for quadratic Using a semi-trust region approach as for pooling problem This is in because I have it lying around.

int ClpSimplexNonlinear::primalSLP ( int  numberConstraints,
ClpConstraint **  constraints,
int  numberPasses,
double  deltaTolerance 
)

Primal algorithm for nonlinear constraints Using a semi-trust region approach as for pooling problem This is in because I have it lying around.

void ClpSimplexNonlinear::directionVector ( CoinIndexedVector *  longArray,
CoinIndexedVector *  spare1,
CoinIndexedVector *  spare2,
int  mode,
double &  normFlagged,
double &  normUnflagged,
int &  numberNonBasic 
)

Creates direction vector.

note longArray is long enough for rows and columns. If numberNonBasic 0 then is updated otherwise mode is ignored and those are used. Norms are only for those > 1.0e3*dualTolerance If mode is nonzero then just largest dj

int ClpSimplexNonlinear::whileIterating ( int &  pivotMode)

Main part.

int ClpSimplexNonlinear::pivotColumn ( CoinIndexedVector *  longArray,
CoinIndexedVector *  rowArray,
CoinIndexedVector *  columnArray,
CoinIndexedVector *  spare,
int &  pivotMode,
double &  solutionError,
double *  array1 
)

longArray has direction pivotMode - 0 - use all dual infeasible variables 1 - largest dj while >= 10 trying startup phase Returns 0 - can do normal iteration (basis change) 1 - no basis change 2 - if wants singleton 3 - if time to re-factorize If sequenceIn_ >=0 then that will be incoming variable

void ClpSimplexNonlinear::statusOfProblemInPrimal ( int &  lastCleaned,
int  type,
ClpSimplexProgress progress,
bool  doFactorization,
double &  bestObjectiveWhenFlagged 
)

Refactorizes if necessary Checks if finished.

Updates status. lastCleaned refers to iteration at which some objective/feasibility cleaning too place.

type - 0 initial so set up save arrays etc

  • 1 normal -if good update save

2 restoring from saved

Do last half of an iteration.

Return codes Reasons to come out normal mode -1 normal -2 factorize now - good iteration -3 slight inaccuracy - refactorize - iteration done -4 inaccuracy - refactorize - no iteration -5 something flagged - go round again +2 looks unbounded +3 max iterations (iteration done)


The documentation for this class was generated from the following file: