GRBaddgenconstrPoly


GRBaddgenconstrPoly

int GRBaddgenconstrPoly GRBmodel *模型,
const char *姓名、
int xvar,
int yvar,
int 满,
* p,
const char *选项)

添加一个新的通用类型约束GRB_GENCONSTR_POLY一个模型。注意,由于我们的惰性更新方法,新的约束实际上不会添加,直到您更新模型(使用GRBupdatemodel),优化模型(使用GRBoptimize),或者将模型写入磁盘(使用GRBwrite).

多项式函数约束说明了这种关系<span>$< span>y = p_0 x^d + p_1 x^{d-1} +…+ p_{d-1} x + p_{d}<span>$</span>应该存在于变量之间< span > < /美元跨度> x < span > < / span >美元< span > < / span > y < span >美元< / span >

模型中加入了函数的分段线性近似。近似值的细节由以下四个属性(或使用具有相同名称的参数)控制:FuncPiecesFuncPieceErrorFuncPiecesLength,FuncPieceRatio.详情请参阅一般的约束讨论。

返回值:

非零返回值表明在添加一般约束时发生了问题。指的是错误代码可能返回值列表的表。关于错误的详细信息可以通过调用来获得GRBgeterrormsg

参数:

模型:应加入新的一般约束的模型。

的名字:新通用约束的名称。这个论证可以是,在这种情况下,约束被赋予一个默认名称。

xvar:变量的索引< span > < /美元跨度> x < span > < / span >美元

yvar:变量的索引< span > < / span > y < span >美元< / span >

:系数数组的长度p.如果< span > < /美元跨度> x ^ d < span > < / span >美元最高幂项是什么应该是< span > < / span > d + 1美元美元< span > < / span >

p:多项式函数的系数(从最高次幂的系数开始)。

选项:可用于设置控制该函数约束的分段线性逼近的属性的字符串。要给属性赋值,请在属性名后面加上等号和所需的值(不能有空格)。不同属性的赋值应该用空格分隔(例如:“FuncPieces = 1 FuncPieceError = 0.001”)。

使用示例:

/* y = 3 x^4 + 7 x + 3 = 3 x^4 + 0 x^3 + 0 x^2 + 7 x + 3 */ int plen = 5;Double p[] = {3, 0, 0, 7, 3};error = grbadgenconstrucpoly (model, "poly", xvar, yvar, 5, p, "");