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)

默认构造函数。

MdoCons(MdoMdlPtr model, MdoI32 index)

带参数的构造函数。

Parameters
  • model – 指向优化模型的指针。

  • index – 约束索引。

virtual ~MdoCons(void)

析构函数。

MdoCons(const MdoCons &rhs)

复制构造函数。

Parameters

rhs – 要复制的对象。

基本运算符。

MdoCons &operator=(const MdoCons &rhs)

赋值运算符。

Parameters

rhs – 要复制的对象。

Return

已更新的对象。

用于访问内部数据的函数。

MdoI32 getIndex(void) const

此函数会返回优化模型中约束的当前索引。

Return

优化模型中约束的当前索引。

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

整数值行属性的值。

void setRealAttr(std::string att, MdoReal val)

此函数会更改实值行属性的值。

Parameters
  • att – 待访问的实值行属性。

  • val – 新值。

MdoReal getRealAttr(std::string att) const

此函数会检索实值行属性的值。

Parameters

att – 待访问的实值行属性。

Return

实值行属性的值。