Scippy

SoPlex

Sequential object-oriented simPlex

spxsolver.h File Reference

main LP solver class More...

#include <assert.h>
#include <iostream>
#include <iomanip>
#include <sstream>
#include "soplex/spxdefines.h"
#include "soplex/timer.h"
#include "soplex/timerfactory.h"
#include "soplex/spxlp.h"
#include "soplex/spxbasis.h"
#include "soplex/array.h"
#include "soplex/random.h"
#include "soplex/unitvector.h"
#include "soplex/updatevector.h"
#include "soplex/stablesum.h"

Go to the source code of this file.

Classes

class  SPxSolver
 Sequential object-oriented SimPlex.SPxSolver is an LP solver class using the revised Simplex algorithm. It provides two basis representations, namely a column basis and a row basis (see Representation). For both representations, a primal and dual algorithm is available (see Type). More...
 

Namespaces

 soplex
 Everything should be within this namespace.
 

Macros

#define HYPERPRICINGTHRESHOLD   5000
 
#define HYPERPRICINGSIZE   100
 
#define SPARSITYFACTOR   0.6
 
#define DENSEROUNDS   5
 
#define SPARSITY_TRADEOFF   0.8
 
#define MAXNCLCKSKIPS   32
 
#define SAFETYFACTOR   1e-2
 
#define NINITCALLS   200
 

Functions

std::ostream & operator<< (std::ostream &os, const SPxSolver::VarStatus &status)
 Pretty-printing of variable status. More...
 
std::ostream & operator<< (std::ostream &os, const SPxSolver::Status &status)
 Pretty-printing of solver status. More...
 
std::ostream & operator<< (std::ostream &os, const SPxSolver::Type &status)
 Pretty-printing of algorithm. More...
 
std::ostream & operator<< (std::ostream &os, const SPxSolver::Representation &status)
 Pretty-printing of representation. More...
 

Detailed Description

main LP solver class

Definition in file spxsolver.h.

Macro Definition Documentation

◆ DENSEROUNDS

#define DENSEROUNDS   5

number of refactorizations until sparsity is tested again

Definition at line 41 of file spxsolver.h.

Referenced by SPxSolver::computeCoTest(), SPxSolver::computeFtest(), and SPxSolver::computeTest().

◆ HYPERPRICINGSIZE

◆ HYPERPRICINGTHRESHOLD

#define HYPERPRICINGTHRESHOLD   5000

do (auto) hyper pricing only if problem size (cols+rows) is larger than HYPERPRICINGTHRESHOLD

Definition at line 38 of file spxsolver.h.

Referenced by SoPlex::_solveRealLPAndRecordStatistics().

◆ MAXNCLCKSKIPS

#define MAXNCLCKSKIPS   32

maximum number of clock skips (iterations without time measuring)

Definition at line 47 of file spxsolver.h.

Referenced by SPxSolver::isTimeLimitReached().

◆ NINITCALLS

#define NINITCALLS   200

the number of clock updates in isTimelimitReached() before clock skipping starts

Definition at line 49 of file spxsolver.h.

Referenced by SPxSolver::isTimeLimitReached().

◆ SAFETYFACTOR

#define SAFETYFACTOR   1e-2

the probability to skip the clock when the time limit has been reached

Definition at line 48 of file spxsolver.h.

Referenced by SPxSolver::isTimeLimitReached().

◆ SPARSITY_TRADEOFF

#define SPARSITY_TRADEOFF   0.8

threshold to decide whether Ids or coIds are preferred to enter the basis; coIds are more likely to enter if SPARSITY_TRADEOFF is close to 0

Definition at line 42 of file spxsolver.h.

Referenced by SPxDantzigPR::selectEnterX(), SPxDevexPR::selectEnterX(), and SPxSteepPR::selectEnterX().

◆ SPARSITYFACTOR

#define SPARSITYFACTOR   0.6

percentage of infeasibilities that is considered sparse

Definition at line 40 of file spxsolver.h.