Loading...
Searching...
No Matches
CglRedSplitParam.hpp
Go to the documentation of this file.
// Name: CglRedSplitParam.hpp
// Author: Francois Margot
// Tepper School of Business
// Carnegie Mellon University, Pittsburgh, PA 15213
// email: fmargot@andrew.cmu.edu
// Date: 11/24/06
//
// $Id$
//-----------------------------------------------------------------------------
// Copyright (C) 2006, Francois Margot and others. All Rights Reserved.
// This code is licensed under the terms of the Eclipse Public License (EPL).
#ifndef CglRedSplitParam_H
#define CglRedSplitParam_H
#include "CglParam.hpp"
class CglRedSplitParam : public CglParam {
public:
virtual void setAway(const double value);
inline double getAway() const {return away_;}
virtual void setLUB(const double value);
inline double getLUB() const {return LUB;}
void setEPS_ELIM(const double value);
double getEPS_ELIM() const {return EPS_ELIM;}
virtual void setEPS_RELAX_ABS(const double eps_ra);
inline double getEPS_RELAX_ABS() const {return EPS_RELAX_ABS;}
virtual void setEPS_RELAX_REL(const double eps_rr);
inline double getEPS_RELAX_REL() const {return EPS_RELAX_REL;}
// Set the maximum ratio between largest and smallest non zero
// coefficients in a cut. Default: 1e8.
virtual void setMAXDYN(double value);
inline double getMAXDYN() const {return MAXDYN_LUB;}
// Set the maximum ratio between largest and smallest non zero
// coefficient in a cut involving structural variables with
// lower or upper bound in absolute value larger than LUB.
// Should logically be larger or equal to MAXDYN. Default: 1e13.
virtual void setMAXDYN_LUB(double value);
inline double getMAXDYN_LUB() const {return MAXDYN_LUB;}
virtual void setEPS_COEFF_LUB(const double value);
inline double getEPS_COEFF_LUB() const {return EPS_COEFF_LUB;}
virtual void setMINVIOL(double value);
inline double getMINVIOL() const {return MINVIOL;}
virtual void setUSE_INTSLACKS(int value);
inline int getUSE_INTSLACKS() const {return USE_INTSLACKS;}
virtual void setUSE_CG2(int value);
inline int getUSE_CG2() const {return USE_CG2;}
virtual void setNormIsZero(const double value);
inline double getNormIsZero() const {return normIsZero;}
virtual void setMinReduc(const double value);
inline double getMinReduc() const {return minReduc;}
virtual void setMaxTab(const double value);
inline double getMaxTab() const {return maxTab_;}
CglRedSplitParam(const double lub = 1000.0,
const double eps_elim = 1e-12,
const double eps_relax_abs = 1e-8,
const double eps_relax_rel = 0.0,
const double max_dyn = 1e8,
const double max_dyn_lub = 1e13,
const double eps_coeff_lub = 1e-13,
const double min_viol = 1e-7,
const int use_int_slacks = 0,
const int use_cg2 = 0,
const double norm_zero = 1e-5,
const double min_reduc = 0.05,
const double away = 0.05,
const double max_tab = 1e7);
CglRedSplitParam(const CglParam &source,
const double lub = 1000.0,
const double eps_elim = 1e-12,
const double eps_relax_abs = 1e-8,
const double eps_relax_rel = 0.0,
const double max_dyn = 1e8,
const double max_dyn_lub = 1e13,
const double eps_coeff_lub = 1e-13,
const double min_viol = 1e-7,
const int use_int_slacks = 0,
const int use_cg2 = 0,
const double norm_zero = 1e-5,
const double min_reduc = 0.05,
const double away = 0.05,
const double max_tab = 1e7);
CglRedSplitParam(const CglRedSplitParam &source);
virtual CglRedSplitParam* clone() const;
virtual CglRedSplitParam& operator=(const CglRedSplitParam &rhs);
virtual ~CglRedSplitParam();
protected:
double LUB;
double EPS_ELIM;
double EPS_RELAX_ABS;
double EPS_RELAX_REL;
// Maximum ratio between largest and smallest non zero
// coefficients in a cut. Default: 1e8.
double MAXDYN;
// Maximum ratio between largest and smallest non zero
// coefficients in a cut involving structural variables with
// lower or upper bound in absolute value larger than LUB.
// Should logically be larger or equal to MAXDYN. Default: 1e13.
double MAXDYN_LUB;
double EPS_COEFF_LUB;
double MINVIOL;
int USE_INTSLACKS;
int USE_CG2;
double normIsZero;
double minReduc;
double away_;
double maxTab_;
};
#endif
CglParam.hpp
CglParam::CglParam
CglParam(const double inf=COIN_DBL_MAX, const double eps=1e-6, const double eps_c=1e-5, const int max_s=COIN_INT_MAX)
Default constructor.
CglRedSplitParam::CglRedSplitParam
CglRedSplitParam(const CglRedSplitParam &source)
Copy constructor.
CglRedSplitParam::LUB
double LUB
Value considered large for the absolute value of lower or upper bound on a variable.
Definition CglRedSplitParam.hpp:213
CglRedSplitParam::getMAXDYN_LUB
double getMAXDYN_LUB() const
Get the value of MAXDYN_LUB.
Definition CglRedSplitParam.hpp:111
CglRedSplitParam::setMaxTab
virtual void setMaxTab(const double value)
Set the maximum allowed value for (mTab * mTab * CoinMax(mTab, nTab)) where mTab is the number of row...
CglRedSplitParam::EPS_RELAX_REL
double EPS_RELAX_REL
For a generated cut with right hand side rhs_val, EPS_RELAX_EPS * fabs(rhs_val) is used to relax the ...
Definition CglRedSplitParam.hpp:226
CglRedSplitParam::maxTab_
double maxTab_
Maximum value for (mTab * mTab * CoinMax(mTab, nTab)).
Definition CglRedSplitParam.hpp:267
CglRedSplitParam::setEPS_ELIM
void setEPS_ELIM(const double value)
Set the value of EPS_ELIM, epsilon for values of coefficients when eliminating slack variables; Defau...
CglRedSplitParam::CglRedSplitParam
CglRedSplitParam(const CglParam &source, const double lub=1000.0, const double eps_elim=1e-12, const double eps_relax_abs=1e-8, const double eps_relax_rel=0.0, const double max_dyn=1e8, const double max_dyn_lub=1e13, const double eps_coeff_lub=1e-13, const double min_viol=1e-7, const int use_int_slacks=0, const int use_cg2=0, const double norm_zero=1e-5, const double min_reduc=0.05, const double away=0.05, const double max_tab=1e7)
Constructor from CglParam.
CglRedSplitParam::getEPS_RELAX_ABS
double getEPS_RELAX_ABS() const
Get value of EPS_RELAX_ABS.
Definition CglRedSplitParam.hpp:92
CglRedSplitParam::MINVIOL
double MINVIOL
Minimum violation for the current basic solution in a generated cut.
Definition CglRedSplitParam.hpp:244
CglRedSplitParam::setUSE_CG2
virtual void setUSE_CG2(int value)
Set the value of USE_CG2.
CglRedSplitParam::setMinReduc
virtual void setMinReduc(const double value)
Set the value of minReduc, threshold for relative norm improvement for performing a reduction; Defaul...
CglRedSplitParam::getMaxTab
double getMaxTab() const
Get the value of maxTab.
Definition CglRedSplitParam.hpp:155
CglRedSplitParam::clone
virtual CglRedSplitParam * clone() const
Clone.
CglRedSplitParam::USE_INTSLACKS
int USE_INTSLACKS
Use integer slacks to generate cuts if USE_INTSLACKS = 1. Default: 0.
Definition CglRedSplitParam.hpp:247
CglRedSplitParam::setEPS_RELAX_REL
virtual void setEPS_RELAX_REL(const double eps_rr)
Set EPS_RELAX_REL.
CglRedSplitParam::EPS_ELIM
double EPS_ELIM
Epsilon for value of coefficients when eliminating slack variables.
Definition CglRedSplitParam.hpp:217
CglRedSplitParam::setMAXDYN_LUB
virtual void setMAXDYN_LUB(double value)
CglRedSplitParam::getMinReduc
double getMinReduc() const
Get the value of minReduc.
Definition CglRedSplitParam.hpp:146
CglRedSplitParam::getEPS_COEFF_LUB
double getEPS_COEFF_LUB() const
Get the value of EPS_COEFF_LUB.
Definition CglRedSplitParam.hpp:118
CglRedSplitParam::setMINVIOL
virtual void setMINVIOL(double value)
Set the value of MINVIOL, the minimum violation for the current basic solution in a generated cut.
CglRedSplitParam::getMAXDYN
double getMAXDYN() const
Get the value of MAXDYN.
Definition CglRedSplitParam.hpp:103
CglRedSplitParam::operator=
virtual CglRedSplitParam & operator=(const CglRedSplitParam &rhs)
Assignment operator.
CglRedSplitParam::getAway
double getAway() const
Get value of away.
Definition CglRedSplitParam.hpp:73
CglRedSplitParam::setNormIsZero
virtual void setNormIsZero(const double value)
Set the value of normIsZero, the threshold for considering a norm to be 0; Default: 1e-5.
CglRedSplitParam::setUSE_INTSLACKS
virtual void setUSE_INTSLACKS(int value)
Set the value of USE_INTSLACKS.
CglRedSplitParam::CglRedSplitParam
CglRedSplitParam(const double lub=1000.0, const double eps_elim=1e-12, const double eps_relax_abs=1e-8, const double eps_relax_rel=0.0, const double max_dyn=1e8, const double max_dyn_lub=1e13, const double eps_coeff_lub=1e-13, const double min_viol=1e-7, const int use_int_slacks=0, const int use_cg2=0, const double norm_zero=1e-5, const double min_reduc=0.05, const double away=0.05, const double max_tab=1e7)
Default constructor.
CglRedSplitParam::EPS_COEFF_LUB
double EPS_COEFF_LUB
Epsilon for value of coefficients for variables with absolute value of lower or upper bound larger th...
Definition CglRedSplitParam.hpp:240
CglRedSplitParam::getUSE_INTSLACKS
int getUSE_INTSLACKS() const
Get the value of USE_INTSLACKS.
Definition CglRedSplitParam.hpp:129
CglRedSplitParam::setEPS_COEFF_LUB
virtual void setEPS_COEFF_LUB(const double value)
Set the value of EPS_COEFF_LUB, epsilon for values of coefficients for variables with absolute value ...
CglRedSplitParam::normIsZero
double normIsZero
Norm of a vector is considered zero if smaller than normIsZero; Default: 1e-5.
Definition CglRedSplitParam.hpp:255
CglRedSplitParam::EPS_RELAX_ABS
double EPS_RELAX_ABS
Value added to the right hand side of each generated cut to relax it.
Definition CglRedSplitParam.hpp:221
CglRedSplitParam::setAway
virtual void setAway(const double value)
Set away, the minimum distance from being integer used for selecting rows for cut generation; all row...
CglRedSplitParam::~CglRedSplitParam
virtual ~CglRedSplitParam()
Destructor.
CglRedSplitParam::setMAXDYN
virtual void setMAXDYN(double value)
CglRedSplitParam::away_
double away_
Use row only if pivot variable should be integer but is more than away_ from being integer.
Definition CglRedSplitParam.hpp:263
CglRedSplitParam::getNormIsZero
double getNormIsZero() const
Get the value of normIsZero.
Definition CglRedSplitParam.hpp:140
CglRedSplitParam::getMINVIOL
double getMINVIOL() const
Get the value of MINVIOL.
Definition CglRedSplitParam.hpp:124
CglRedSplitParam::MAXDYN
double MAXDYN
Definition CglRedSplitParam.hpp:230
CglRedSplitParam::getUSE_CG2
int getUSE_CG2() const
Get the value of USE_CG2.
Definition CglRedSplitParam.hpp:134
CglRedSplitParam::setLUB
virtual void setLUB(const double value)
Set the value of LUB, value considered large for the absolute value of a lower or upper bound on a va...
CglRedSplitParam::MAXDYN_LUB
double MAXDYN_LUB
Definition CglRedSplitParam.hpp:236
CglRedSplitParam::setEPS_RELAX_ABS
virtual void setEPS_RELAX_ABS(const double eps_ra)
Set EPS_RELAX_ABS.
CglRedSplitParam::getEPS_RELAX_REL
double getEPS_RELAX_REL() const
Get value of EPS_RELAX_REL.
Definition CglRedSplitParam.hpp:97
CglRedSplitParam::getLUB
double getLUB() const
Get the value of LUB.
Definition CglRedSplitParam.hpp:80
CglRedSplitParam::getEPS_ELIM
double getEPS_ELIM() const
Get the value of EPS_ELIM.
Definition CglRedSplitParam.hpp:87
CglRedSplitParam::minReduc
double minReduc
Minimum reduction in percent that must be achieved by a potential reduction step in order to be perfo...
Definition CglRedSplitParam.hpp:259
CglRedSplitParam::USE_CG2
int USE_CG2
Use second way to generate a mixed integer Gomory cut (see methods generate_cgcut()) and generate_cgc...
Definition CglRedSplitParam.hpp:251