8.2.2. MdoCons¶
-
class mindopt::MdoCons¶
约束对象。
此对象会实现包含优化约束的数据结构。通过调用
MdoModel::addCons()
创建一个空约束对象。创建后,用户可以调用包含适当实值模型属性的MdoCons::setRealAttr()
来修改其左侧值或右侧值。Note
请勿使用构造函数 (
MdoVar::MdoCons()
) 创建空约束对象。示例
/* Create an empty model. */ MdoModel model; MdoI32 itmp = 0; MdoReal dtmp = 0.0; std::string ctmp; /* Add empty constraints. */ std::vector<std::reference_wrapper<MdoCons> > cons; cons.push_back(model.addCons(1.0, 1.0, "c0")); cons.push_back(model.addCons(1.0, MDO_INFINITY, "c1")); /* Input columns. */ std::vector<MdoCol> col(4); col[0].addTerm(cons[0], 1.0); col[0].addTerm(cons[1], 1.0); col[1].addTerm(cons[0], 1.0); col[2].addTerm(cons[0], 2.0); col[2].addTerm(cons[1], -1.0); col[3].addTerm(cons[0], 3.0); col[3].addTerm(cons[1], 6.0); /* Check constraint object */ MdoCons c0 = model.getCons(0); itmp = cons[0].get().sameAs(c0); std::string c0_name = c0.getStrAttr("RowName"); MdoCons c0_2 = model.getCons(c0_name); itmp = cons[0].get().sameAs(c0_2); itmp = c0.getIndex(); /* Set/get attribute */ cons[1].setIntAttr("RowBasis", 1); itmp = cons[1].get().getIntAttr("RowBasis"); cons[1].get().setRealAttr("LHS", -5.0); dtmp = cons[1].get().getRealAttr("LHS"); cons[1].get().setStrAttr("RowName", row_name); ctmp = cons[1].get().getStrAttr("RowName");
构造函数/析构函数。
-
MdoCons(void)¶
默认构造函数。
-
virtual ~MdoCons(void)¶
析构函数。
基本运算符。
用于访问内部数据的函数。
-
MdoBool sameAs(const MdoCons &rhs) const¶
此函数会检查两个约束对象是否引用同一个约束。
- Parameters
rhs – 其他约束对象。
- Return
一个可指示两个约束对象是否引用同一个约束的布尔标志。
-
void setStrAttr(std::string att, std::string val)¶
此函数会更改字符串值行属性的值。
- Parameters
att – 待访问的字符串值行属性。
val – 字符串值行属性的新值。
-
std::string getStrAttr(std::string att) const¶
此函数会返回字符串值行属性的值。
- Parameters
att – 待访问的字符串值行属性。
- Return
字符串值行属性的值。
-
void setIntAttr(std::string att, MdoI32 val)¶
此函数会更改整数值行属性的值。
- Parameters
att – 待访问的整数值行属性。
val – 新值。
-
MdoI32 getIntAttr(std::string att) const¶
此函数会返回整数值行属性的值。
- Parameters
att – 待访问的整数值行属性。
- Return
整数值行属性的值。
-
MdoCons(void)¶