8.2.8. MdoVar

class mindopt::MdoVar

一个可定义优化变量的对象。

此对象会实现包含优化变量的数据结构。可通过调用 MdoModel::addVar() 创建空变量对象。创建空变量对象后,用户可通过调用具有适当实值模型属性的 MdoVar::setRealAttr() 来修改该对象的下界、上界或目标系数。

Note

请勿使用构造函数 (MdoVar::MdoVar()) 创建空变量对象。

示例

/* Create an empty model. */
MdoModel model;

MdoI32 itmp = 0;
MdoReal dtmp = 0.0;
std::string ctmp;

/* Add variables. */
std::vector<std::reference_wrapper<MdoVar> > x;
x.push_back(model.addVar(0.0, 10.0,         1.0, col[0], "x0", MDO_NO));
x.push_back(model.addVar(0.0, MDO_INFINITY, 1.0, col[1], "x1", MDO_NO));
x.push_back(model.addVar(0.0, MDO_INFINITY, 1.0, col[2], "x2", MDO_NO));
x.push_back(model.addVar(0.0, MDO_INFINITY, 1.0, col[3], "x3", MDO_NO));

/* Check variable object */
MdoVar x0 = model.getVar(0);
itmp = x[0].get().sameAs(x0);
std::string x0_name = x0.getStrAttr("ColName");
MdoVar x0_copy = model.getVar(x0_name);
itmp = x[0].get().sameAs(x0_copy);
itmp = x0.getIndex();

/* Set/get attribute */
x[1].get().setIntAttr("IsInteger", 0);
itmp = x[1].get().getIntAttr("IsInteger");
x[1].get().setStrAttr("ColName", col_name);
ctmp = x[1].get().getStrAttr("ColName");
x[2].get().setRealAttr("Obj", +100);
dtmp = x[2].get().getRealAttr("Obj");

构造函数/析构函数。

MdoVar(void)

默认构造函数。

MdoVar(MdoMdlPtr model, MdoI32 index)

带参数的构造函数。

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

  • index – 变量索引。

virtual ~MdoVar(void)

析构函数。

MdoVar(const MdoVar &rhs)

复制构造函数。

Parameters

rhs – 要复制的对象。

基本运算符。

MdoVar &operator=(const MdoVar &rhs)

赋值运算符。

Parameters

rhs – 要复制的对象。

Return

已更新的对象。

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

MdoI32 getIndex(void) const

此函数会检索优化模型中的变量的当前索引。

Return

优化模型中变量的当前索引。

MdoBool sameAs(const MdoVar &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

实值列属性的值。