From 4b64cf486f5c999fd8167758cae27839f3b50848 Mon Sep 17 00:00:00 2001 From: Harpreet Date: Sat, 3 Sep 2016 00:34:27 +0530 Subject: Structure updated and intqpipopt files added --- .../linux/include/coin/BonOaFeasChecker.hpp | 73 ++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 newstructure/thirdparty/linux/include/coin/BonOaFeasChecker.hpp (limited to 'newstructure/thirdparty/linux/include/coin/BonOaFeasChecker.hpp') diff --git a/newstructure/thirdparty/linux/include/coin/BonOaFeasChecker.hpp b/newstructure/thirdparty/linux/include/coin/BonOaFeasChecker.hpp new file mode 100644 index 0000000..5ef8c14 --- /dev/null +++ b/newstructure/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 ©) + : + 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 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 -- cgit