summaryrefslogtreecommitdiff
path: root/thirdparty/linux/include/coin/BonOaFeasChecker.hpp
diff options
context:
space:
mode:
authorHarpreet2016-09-03 00:36:51 +0530
committerHarpreet2016-09-03 00:36:51 +0530
commita0d9443af147e949c1e6a01ac24749d12593ec5b (patch)
tree1a1955c5482ae608fd7f618b06f4ecc6a0d39a23 /thirdparty/linux/include/coin/BonOaFeasChecker.hpp
parent4b64cf486f5c999fd8167758cae27839f3b50848 (diff)
downloadFOSSEE-Optim-toolbox-development-a0d9443af147e949c1e6a01ac24749d12593ec5b.tar.gz
FOSSEE-Optim-toolbox-development-a0d9443af147e949c1e6a01ac24749d12593ec5b.tar.bz2
FOSSEE-Optim-toolbox-development-a0d9443af147e949c1e6a01ac24749d12593ec5b.zip
cbcintlinprog added
Diffstat (limited to 'thirdparty/linux/include/coin/BonOaFeasChecker.hpp')
-rw-r--r--thirdparty/linux/include/coin/BonOaFeasChecker.hpp73
1 files changed, 73 insertions, 0 deletions
diff --git a/thirdparty/linux/include/coin/BonOaFeasChecker.hpp b/thirdparty/linux/include/coin/BonOaFeasChecker.hpp
new file mode 100644
index 0000000..5ef8c14
--- /dev/null
+++ b/thirdparty/linux/include/coin/BonOaFeasChecker.hpp
@@ -0,0 +1,73 @@
+// (C) Copyright International Business Machines 2006
+// All Rights Reserved.
+// This code is published under the Eclipse Public License.
+//
+// Authors :
+// P. Bonami, Carnegie Mellon University
+//
+// Date : 12/26/2006
+
+
+#ifndef BonOaFeasibilityChecker_HPP
+#define BonOaFeasibilityChecker_HPP
+#include "BonOaDecBase.hpp"
+
+namespace Bonmin
+{
+ /** Class to perform OA in its classical form.*/
+ class OaFeasibilityChecker : public OaDecompositionBase
+ {
+ public:
+ /// New usefull constructor
+ OaFeasibilityChecker(BabSetupBase &b);
+ /// Copy constructor
+ OaFeasibilityChecker(const OaFeasibilityChecker &copy)
+ :
+ OaDecompositionBase(copy),
+ pol_(copy.pol_),
+ type_(copy.type_),
+ cut_count_(copy.cut_count_),
+ maximum_oa_cuts_(copy.maximum_oa_cuts_)
+ {}
+ /// Destructor
+ ~OaFeasibilityChecker();
+
+ /** Register OA options.*/
+ static void registerOptions(Ipopt::SmartPtr<Bonmin::RegisteredOptions> roptions);
+
+ virtual CglCutGenerator * clone() const
+ {
+ return new OaFeasibilityChecker(*this);
+ }
+ protected:
+ /// virtual method which performs the OA algorithm by modifying lp and nlp.
+ virtual double performOa(OsiCuts & cs, solverManip &lpManip,
+ BabInfo * babInfo, double &cutoff, const CglTreeInfo & info) const;
+ /// virutal method to decide if local search is performed
+ virtual bool doLocalSearch(BabInfo * babInfo) const
+ {
+ return 0;
+ }
+
+ /** See documentation for feas_check_discard_policy option.*/
+ enum CutsPolicies {
+ DetectCycles = 0,
+ KeepAll,
+ TreatAsNormal};
+ /** Policy for keeping cuts.*/
+ CutsPolicies pol_;
+
+ /** See documentation for feas_check_cut_types option.*/
+ enum CutsTypes {
+ OA = 0,
+ Benders};
+ /** Type of cuts.*/
+ CutsTypes type_;
+
+ /** Count the total number of cuts generated.*/
+ mutable unsigned int cut_count_;
+ /** maximum number of OA cuts.*/
+ unsigned int maximum_oa_cuts_;
+ };
+}
+#endif