Loading...
Searching...
No Matches
SPxMainSM< R > Class Template Reference LP simplifier for removing uneccessary row/columns. More...
Inheritance diagram for SPxMainSM< R >:
![]()
Detailed DescriptionLP simplifier for removing uneccessary row/columns. This SPxSimplifier is mainly based on the paper "Presolving in linear programming" by E. Andersen and K. Andersen (Mathematical Programming, 1995). It implements all proposed methods and some other preprocessing techniques for removing redundant rows and columns and bounds. Also infeasibility and unboundedness may be detected. Removed are:
Definition at line 71 of file spxmainsm.h. Member Enumeration Documentation◆ SimpleStep
Definition at line 1290 of file spxmainsm.h. Constructor & Destructor Documentation◆ SPxMainSM() [1/2]
Definition at line 1453 of file spxmainsm.h. Referenced by SPxMainSM< R >::clone(). ◆ SPxMainSM() [2/2]copy constructor. Definition at line 1468 of file spxmainsm.h. ◆ ~SPxMainSM()destructor. Definition at line 1525 of file spxmainsm.h. Member Function Documentation◆ aggregateVars()
aggregate two variables that appear in an equation. ◆ checkSolution()checks a solution for feasibility ◆ cIdx()returns for a given column index of the (reduced) LP the corresponding column index in the unsimplified LP. Definition at line 1423 of file spxmainsm.h. References SPxMainSM< R >::m_cIdx. ◆ clone()
clone function for polymorphism Implements SPxSimplifier< R >. Definition at line 1530 of file spxmainsm.h. References SPxMainSM< R >::SPxMainSM(). ◆ computeMinMaxResidualActivity()
computes the minimum and maximum residual activity for a given row and column. If colNumber is set to -1, then ◆ computeMinMaxValues()
calculate min/max value for the multi aggregated variables ◆ duplicateCols()removes duplicate columns ◆ duplicateRows()removes duplicate rows. ◆ epsZero()Definition at line 1432 of file spxmainsm.h. References SPxMainSM< R >::m_epsilon. ◆ feastol()Definition at line 1437 of file spxmainsm.h. References SPxMainSM< R >::m_feastol. ◆ fixColumn()handles the fixing of a variable. correctIdx is true iff the index mapping has to be updated. ◆ getBasis()
get optimal basis. Implements SPxSimplifier< R >. Definition at line 1604 of file spxmainsm.h. References SPxMainSM< R >::m_cBasisStat, SPxMainSM< R >::m_postsolved, SPxMainSM< R >::m_rBasisStat, and DataArray< T >::size(). ◆ getBasisColStatus()gets basis status for a single column. Implements SPxSimplifier< R >. Definition at line 1598 of file spxmainsm.h. References SPxMainSM< R >::m_cBasisStat, and SPxMainSM< R >::m_postsolved. ◆ getBasisRowStatus()gets basis status for a single row. Implements SPxSimplifier< R >. Definition at line 1592 of file spxmainsm.h. References SPxMainSM< R >::m_postsolved, and SPxMainSM< R >::m_rBasisStat. ◆ handleExtremes()handles extreme values by setting them to zero or R(infinity). ◆ handleRowObjectives()◆ isUnsimplified()specifies whether an optimal solution has already been unsimplified. Reimplemented from SPxSimplifier< R >. Definition at line 1563 of file spxmainsm.h. References SPxMainSM< R >::m_postsolved. ◆ multiaggregation()performs multi-aggregations of variable based upon constraint activitu. ◆ operator=()assignment operator Definition at line 1494 of file spxmainsm.h. References SPxMainSM< R >::m_addedcols, SPxMainSM< R >::m_cBasisStat, SPxMainSM< R >::m_cIdx, SPxMainSM< R >::m_cutoffbound, SPxMainSM< R >::m_dual, SPxMainSM< R >::m_epsilon, SPxMainSM< R >::m_feastol, SPxMainSM< R >::m_hist, SPxMainSM< R >::m_keepbounds, SPxMainSM< R >::m_opttol, SPxMainSM< R >::m_postsolved, SPxMainSM< R >::m_prim, SPxMainSM< R >::m_pseudoobj, SPxMainSM< R >::m_rBasisStat, SPxMainSM< R >::m_redCost, SPxMainSM< R >::m_result, SPxMainSM< R >::m_rIdx, SPxMainSM< R >::m_slack, SPxMainSM< R >::m_stat, SPxMainSM< R >::m_thesense, and SPxSimplifier< R >::operator=(). ◆ opttol()Definition at line 1442 of file spxmainsm.h. References SPxMainSM< R >::m_opttol. ◆ propagatePseudoobj()tightens variable bounds by propagating the pseudo objective function value. ◆ removeCol()removes a column in the LP. Definition at line 1412 of file spxmainsm.h. References SPxMainSM< R >::m_cIdx. ◆ removeEmpty()removed empty rows and empty columns. ◆ removeRow()removes a row in the LP. Definition at line 1406 of file spxmainsm.h. References SPxMainSM< R >::m_rIdx. ◆ removeRowSingleton()
remove row singletons. ◆ result()returns result status of the simplification Implements SPxSimplifier< R >. Definition at line 1557 of file spxmainsm.h. References SPxMainSM< R >::m_result. ◆ rIdx()returns for a given row index of the (reduced) LP the corresponding row index in the unsimplified LP. Definition at line 1418 of file spxmainsm.h. References SPxMainSM< R >::m_rIdx. ◆ simplify() [1/2]
simplify SPxLPBase<R> Implements SPxSimplifier< R >. Definition at line 1540 of file spxmainsm.h. References SPxMainSM< R >::simplify(). Referenced by SPxMainSM< R >::simplify(). ◆ simplify() [2/2]
simplify SPxLPBase<R> Implements SPxSimplifier< R >. ◆ simplifyCols()performs simplification steps on the columns of the LP. ◆ simplifyDual()performs simplification steps on the LP based on dual concepts. ◆ simplifyRows()performs simplification steps on the rows of the LP. ◆ trivialHeuristic()tries to find good lower bound solutions by applying some trivial heuristics ◆ unsimplifiedDual()returns a reference to the unsimplified dual solution. Implements SPxSimplifier< R >. Definition at line 1574 of file spxmainsm.h. References SPxMainSM< R >::m_dual, and SPxMainSM< R >::m_postsolved. ◆ unsimplifiedPrimal()returns a reference to the unsimplified primal solution. Implements SPxSimplifier< R >. Definition at line 1568 of file spxmainsm.h. References SPxMainSM< R >::m_postsolved, and SPxMainSM< R >::m_prim. ◆ unsimplifiedRedCost()returns a reference to the unsimplified reduced costs. Implements SPxSimplifier< R >. Definition at line 1586 of file spxmainsm.h. References SPxMainSM< R >::m_postsolved, and SPxMainSM< R >::m_redCost. ◆ unsimplifiedSlacks()returns a reference to the unsimplified slack values. Implements SPxSimplifier< R >. Definition at line 1580 of file spxmainsm.h. References SPxMainSM< R >::m_postsolved, and SPxMainSM< R >::m_slack. ◆ unsimplify()
reconstructs an optimal solution for the unsimplified LP. Implements SPxSimplifier< R >. Friends And Related Symbol Documentation◆ AggregationPSDefinition at line 1283 of file spxmainsm.h. Referenced by SPxMainSM< R >::AggregationPS::clone(). ◆ DoubletonEquationPSDefinition at line 1280 of file spxmainsm.h. Referenced by SPxMainSM< R >::DoubletonEquationPS::clone(). ◆ DuplicateColsPSDefinition at line 1282 of file spxmainsm.h. Referenced by SPxMainSM< R >::DuplicateColsPS::clone(). ◆ DuplicateRowsPSDefinition at line 1281 of file spxmainsm.h. Referenced by SPxMainSM< R >::DuplicateRowsPS::clone(). ◆ EmptyConstraintPSDefinition at line 1272 of file spxmainsm.h. Referenced by SPxMainSM< R >::EmptyConstraintPS::clone(). ◆ FixBoundsPSDefinition at line 1276 of file spxmainsm.h. Referenced by SPxMainSM< R >::FixBoundsPS::clone(). ◆ FixVariablePSDefinition at line 1275 of file spxmainsm.h. Referenced by SPxMainSM< R >::FixVariablePS::clone(). ◆ ForceConstraintPSDefinition at line 1274 of file spxmainsm.h. Referenced by SPxMainSM< R >::ForceConstraintPS::clone(). ◆ FreeColSingletonPSDefinition at line 1279 of file spxmainsm.h. Referenced by SPxMainSM< R >::FreeColSingletonPS::clone(). ◆ FreeConstraintPSDefinition at line 1271 of file spxmainsm.h. Referenced by SPxMainSM< R >::FreeConstraintPS::clone(). ◆ FreeZeroObjVariablePSDefinition at line 1277 of file spxmainsm.h. Referenced by SPxMainSM< R >::FreeZeroObjVariablePS::clone(). ◆ RowSingletonPSDefinition at line 1273 of file spxmainsm.h. Referenced by SPxMainSM< R >::RowSingletonPS::clone(). ◆ ZeroObjColSingletonPSDefinition at line 1278 of file spxmainsm.h. Referenced by SPxMainSM< R >::ZeroObjColSingletonPS::clone(). Member Data Documentation◆ m_addedcolscolumns added by handleRowObjectives() Definition at line 1340 of file spxmainsm.h. Referenced by SPxMainSM< R >::operator=(). ◆ m_cBasisStatbasis status of columns. Definition at line 1320 of file spxmainsm.h. Referenced by SPxMainSM< R >::getBasis(), SPxMainSM< R >::getBasisColStatus(), and SPxMainSM< R >::operator=(). ◆ m_cIdxcolumn index VectorBase<R> in original LP. Definition at line 1322 of file spxmainsm.h. Referenced by SPxMainSM< R >::cIdx(), SPxMainSM< R >::operator=(), and SPxMainSM< R >::removeCol(). ◆ m_classSetCols
stores parallel classes with non-zero row entry Definition at line 1328 of file spxmainsm.h. ◆ m_classSetRows
stores parallel classes with non-zero colum entry Definition at line 1326 of file spxmainsm.h. ◆ m_cutoffboundthe cutoff bound that is found by heuristics Definition at line 1342 of file spxmainsm.h. Referenced by SPxMainSM< R >::operator=(). ◆ m_dual
unsimplified dual solution VectorBase<R>. Definition at line 1318 of file spxmainsm.h. Referenced by SPxMainSM< R >::operator=(), and SPxMainSM< R >::unsimplifiedDual(). ◆ m_dupCols
arrange duplicate columns w.r.t. their pClass values Definition at line 1332 of file spxmainsm.h. ◆ m_dupRows
arrange duplicate rows using bucket sort w.r.t. their pClass values Definition at line 1330 of file spxmainsm.h. ◆ m_epsilonepsilon zero. Definition at line 1334 of file spxmainsm.h. Referenced by SPxMainSM< R >::epsZero(), and SPxMainSM< R >::operator=(). ◆ m_feastolprimal feasibility tolerance. Definition at line 1335 of file spxmainsm.h. Referenced by SPxMainSM< R >::feastol(), and SPxMainSM< R >::operator=(). ◆ m_histVectorBase<R> of presolve history. Definition at line 1324 of file spxmainsm.h. Referenced by SPxMainSM< R >::operator=(). ◆ m_keepboundskeep some bounds (for boundflipping) Definition at line 1339 of file spxmainsm.h. Referenced by SPxMainSM< R >::operator=(). ◆ m_opttoldual feasibility tolerance. Definition at line 1336 of file spxmainsm.h. Referenced by SPxMainSM< R >::operator=(), and SPxMainSM< R >::opttol(). ◆ m_postsolvedstatus of postsolving. Definition at line 1333 of file spxmainsm.h. Referenced by SPxMainSM< R >::getBasis(), SPxMainSM< R >::getBasisColStatus(), SPxMainSM< R >::getBasisRowStatus(), SPxMainSM< R >::isUnsimplified(), SPxMainSM< R >::operator=(), SPxMainSM< R >::unsimplifiedDual(), SPxMainSM< R >::unsimplifiedPrimal(), SPxMainSM< R >::unsimplifiedRedCost(), and SPxMainSM< R >::unsimplifiedSlacks(). ◆ m_prim
unsimplified primal solution VectorBase<R>. Definition at line 1316 of file spxmainsm.h. Referenced by SPxMainSM< R >::operator=(), and SPxMainSM< R >::unsimplifiedPrimal(). ◆ m_pseudoobjthe pseudo objective function value Definition at line 1343 of file spxmainsm.h. Referenced by SPxMainSM< R >::operator=(). ◆ m_rBasisStatbasis status of rows. Definition at line 1321 of file spxmainsm.h. Referenced by SPxMainSM< R >::getBasis(), SPxMainSM< R >::getBasisRowStatus(), and SPxMainSM< R >::operator=(). ◆ m_redCost
unsimplified reduced cost VectorBase<R>. Definition at line 1319 of file spxmainsm.h. Referenced by SPxMainSM< R >::operator=(), and SPxMainSM< R >::unsimplifiedRedCost(). ◆ m_result
result of the simplification. Definition at line 1341 of file spxmainsm.h. Referenced by SPxMainSM< R >::operator=(), and SPxMainSM< R >::result(). ◆ m_rIdxrow index VectorBase<R> in original LP. Definition at line 1323 of file spxmainsm.h. Referenced by SPxMainSM< R >::operator=(), SPxMainSM< R >::removeRow(), and SPxMainSM< R >::rIdx(). ◆ m_slack
unsimplified slack VectorBase<R>. Definition at line 1317 of file spxmainsm.h. Referenced by SPxMainSM< R >::operator=(), and SPxMainSM< R >::unsimplifiedSlacks(). ◆ m_statpreprocessing history. Definition at line 1337 of file spxmainsm.h. Referenced by SPxMainSM< R >::operator=(). ◆ m_thesenseoptimization sense. Definition at line 1338 of file spxmainsm.h. Referenced by SPxMainSM< R >::operator=().
|