diff options
author | Harpreet | 2016-09-03 00:34:27 +0530 |
---|---|---|
committer | Harpreet | 2016-09-03 00:34:27 +0530 |
commit | 4b64cf486f5c999fd8167758cae27839f3b50848 (patch) | |
tree | d9d06639fb7fa61aef59be0363655e4747105ec7 /build/Bonmin/include/coin/CoinPresolveDual.hpp | |
parent | d19794fb80a271a4c885ed90f97cfc12baa012f2 (diff) | |
download | FOSSEE-Optim-toolbox-development-4b64cf486f5c999fd8167758cae27839f3b50848.tar.gz FOSSEE-Optim-toolbox-development-4b64cf486f5c999fd8167758cae27839f3b50848.tar.bz2 FOSSEE-Optim-toolbox-development-4b64cf486f5c999fd8167758cae27839f3b50848.zip |
Structure updated and intqpipopt files added
Diffstat (limited to 'build/Bonmin/include/coin/CoinPresolveDual.hpp')
-rw-r--r-- | build/Bonmin/include/coin/CoinPresolveDual.hpp | 85 |
1 files changed, 0 insertions, 85 deletions
diff --git a/build/Bonmin/include/coin/CoinPresolveDual.hpp b/build/Bonmin/include/coin/CoinPresolveDual.hpp deleted file mode 100644 index b021ce0..0000000 --- a/build/Bonmin/include/coin/CoinPresolveDual.hpp +++ /dev/null @@ -1,85 +0,0 @@ -/* $Id: CoinPresolveDual.hpp 1510 2011-12-08 23:56:01Z lou $ */ - -// Copyright (C) 2002, International Business Machines -// Corporation and others. All Rights Reserved. -// This code is licensed under the terms of the Eclipse Public License (EPL). - -#ifndef CoinPresolveDual_H -#define CoinPresolveDual_H - -/*! \class remove_dual_action - \brief Attempt to fix variables by bounding reduced costs - - The reduced cost of x_j is d_j = c_j - y*a_j (1). Assume minimization, - so that at optimality d_j >= 0 for x_j nonbasic at lower bound, and - d_j <= 0 for x_j nonbasic at upper bound. - - For a slack variable s_i, c_(n+i) = 0 and a_(n+i) is a unit vector, hence - d_(n+i) = -y_i. If s_i has a finite lower bound and no upper bound, we - must have y_i <= 0 at optimality. Similarly, if s_i has no lower bound and a - finite upper bound, we must have y_i >= 0. - - For a singleton variable x_j, d_j = c_j - y_i*a_ij. Given x_j with a - single finite bound, we can bound d_j greater or less than 0 at - optimality, and that allows us to calculate an upper or lower bound on y_i - (depending on the bound on d_j and the sign of a_ij). - - Now we have bounds on some subset of the y_i, and we can use these to - calculate upper and lower bounds on the d_j, using bound propagation on - (1). If we can manage to bound some d_j as strictly positive or strictly - negative, then at optimality the corresponding variable must be nonbasic - at its lower or upper bound, respectively. If the required bound is lacking, - the problem is unbounded. -*/ - -class remove_dual_action : public CoinPresolveAction { - - public: - - /// Destructor - ~remove_dual_action () ; - - /// Name - inline const char *name () const { return ("remove_dual_action") ; } - - /*! \brief Attempt to fix variables by bounding reduced costs - - Always scans all variables. Propagates bounds on reduced costs until there's - no change or until some set of variables can be fixed. - */ - static const CoinPresolveAction *presolve(CoinPresolveMatrix *prob, - const CoinPresolveAction *next) ; - - /*! \brief Postsolve - - In addition to fixing variables (handled by make_fixed_action), we may - need use our own postsolve to restore constraint bounds. - */ - void postsolve (CoinPostsolveMatrix *prob) const ; - - private: - - /// Postsolve (bound restore) instruction - struct action { - double rlo_ ; ///< restored row lower bound - double rup_ ; ///< restored row upper bound - int ndx_ ; ///< row index - } ; - - /// Constructor with postsolve actions. - remove_dual_action(int nactions, const action *actions, - const CoinPresolveAction *next) - : CoinPresolveAction(next), - nactions_(nactions), - actions_(actions) - {} - - /// Count of bound restore entries - const int nactions_ ; - /// Bound restore entries - const action *actions_ ; - -} ; -#endif - - |