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 27 of file ClpSimplexNonlinear.hpp.


Member Function Documentation

int ClpSimplexNonlinear::primal (  ) 

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
int ClpSimplexNonlinear::pivotNonlinearResult (  ) 

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:

Generated on 15 Mar 2015 for Coin-All by  doxygen 1.6.1