模型参数

模型参数

模型变量存储优化问题(如问题声明)。

可以通过多种方式建立模型。控件的适当字段模型struct使用标准MATLAB例程。您也可以从文件读取模型,使用gurobi_read.. 几个API函数(古罗比·菲亚斯放松古罗比欧放松)还返回模型。

的所有向量字段模型变量必须是密集向量,二次约束和指标一般约束的线性部分除外,所有矩阵字段必须是稀疏矩阵,所有字符串、名称等必须是稀疏矩阵烧焦数组。

下面列举了模型Gurobi在优化模型时将考虑的论点:

常用字段:

一个
线性约束矩阵。

obj(可选)
线性目标向量(c向量的问题声明)。出现时,必须为的每列指定一个值一个。当不存在时,每个变量的默认客观系数为0。

意义(可选)
线性约束的意义。允许的值是“=”“<”,或“>”. 必须为每一行指定一个值一个,或指定所有约束具有相同意义的单个值。当不存在时,所有感官都默认为“<”

园艺学会(可选)
线性约束的右边向量(< span > < / span > b < span >美元< / span >问题声明)。的每一行必须指定一个值一个。不存在时,右侧向量默认为零向量。

磅(可选)
下限向量。存在时,必须为每列指定一个值一个。当不存在时,每个变量的默认下界为0。

乌兰巴托(可选)
上界向量。出现时,必须为的每列指定一个值一个。当不存在时,变量有无限的上界。

vtype(可选)
变量类型。这个向量用于捕获可变完整性约束。允许的值是“C”(连续)“B”(二进制),“我很高兴(整数),“年代”(半连续),或“N”(semi-integer)。二进制变量必须是0或1。整型变量可以接受指定的上下边界之间的任何整型值。半连续变量可以在指定的上下限之间取任意值,或者取零值。半整型变量可以接受指定的上下边界之间的任意整数值,或0值。出现时,必须为的每列指定一个值一个,或指定所有变量具有相同类型的单个值。当不存在时,每个变量都被视为连续的。指本节有关变量类型的详细信息。

modelsense(可选)
优化的意义。允许的值是“敏”(最小化)或“马克斯”(最大化)。当不存在时,默认的优化感觉是最小化。

modelname(可选)
模型的名称。该名称出现在Gurobi日志中,并在将模型写入文件时出现。

objcon(可选)
目标函数中的常数偏移量( < span > < /美元跨度> \ mathrm{α}< span > < / span >美元问题声明)。

varnames(可选)
变量名为vector。一个细胞数组。当存在时,这个向量中的每个元素都定义了一个变量的名称。的每一列必须指定名称一个

constrnames(可选)
约束名为vector。细胞阵列。存在时,向量的每个元素都定义约束的名称。必须为每一行指定一个名称一个

二次目标和约束字段:

问(可选)
二次目标矩阵。在场时,必须是一个方阵,其行数和列数等于其中的列数一个

Quadcon(可选)
二次约束。一个结构体数组。当出现时,每个元素都在quadcon定义一个单独的二次约束: <span>$</span>x^TQc\,x+q^Tx\le\mathrm{beta}<span>$</span>

质量控制矩阵必须是一个平方矩阵,其行数和列数等于一个。有两个选项可用于存储矩阵:(i)在型号:quadcon(i).Qc作为稀疏矩阵;(ii)通过三个稠密的向量型号:quadcon(i).Qrowmodel.quadcon .Qcol(我),model.quadcon .Qval(我)以三倍格式指定矩阵,分别使用行索引、列索引和值。

可选向量定义了约束中的线性项。它可以是一个稠密的向量,为每列指定一个值一个或稀疏向量(稀疏n×1矩阵)。它存储在model.quadcon q(我)

标量β存储在model.quadcon .rhs(我)。它定义约束的右侧值。

可选感觉字符串定义了二次约束的含义。允许的值是“<”“=”“>”。如果不存在,默认感觉是“<”。它储存在model.quadcon .sense(我)

可选名称字符串定义二次约束的名称。它储存在model.quadcon(我). name

SOS约束字段:

sos(可选)
特殊有序集(SOS)约束。一个结构体数组。当出现时,每个条目都进入紧急求救信号定义单个SOS约束。SOS约束可以是类型1或2。SOS约束的类型< span > < /美元跨度>我< span > < / span >美元是通过model.sos .type(我). 1类SOS约束是一组变量,其中集合中最多有一个变量的值不是零。第2类SOS约束是一组有序的变量,其中最多有两个变量可以取非零值。如果两个值为非零,则它们在有序集中必须是连续的。SOS约束的成员通过将其索引放置在向量中来指定model.sos .index(我).与SOS成员相关的权重以矢量形式提供model.sos .weight(我)。请参考本节有关SOS约束的详细信息。

多目标字段:

multiobj(可选)
模型的多目标规范。结构数组。当存在时,中的每个条目multiob.定义多目标问题的单个目标。请参阅多目标章节以了解更多关于多目标优化的细节。每一个目标< span > < /美元跨度>我< span > < / span >美元可能有以下字段:
奥比恩
通过指定模型.multiobj(i).objn。这是th目标向量。

objcon(可选)
通过指定model.multiobj .objcon(我)。如有提供,这是-目标常数。默认值为0。

优先级(可选)
通过指定model.multiobj .priority(我)。如果提供,则此值为分层这一目标的优先次序。默认值为0。

重量(可选)
通过指定model.multiobj .weight(我)。如果提供,此值是聚合目标时使用的乘数。默认值为1.0。

reltol(可选)
通过指定model.multiobj .reltol(我)。如果提供,则此值指定执行分层多目标优化时的相对目标降级。默认值为0。

abstol(可选)
通过指定模型.多目标(i).Absol。如果提供此值,则指定进行分层多目标优化时的绝对目标降级。默认值为0。

名称(可选)
通过指定模型.多目标(i).名称. 如果提供,此字符串将指定-目标函数。

注意,当存在多个目标时result.objval优化调用结果中返回的字段将是与多目标模型

多目标模型不能有其他目标。因此,组合多目标模型任何一个model.objmodel.objconmodel.pwlobj,或Model.Q.这是一个错误。

一般约束字段:

下面描述的结构数组用于添加一般的约束一个模特。

数学规划传统上定义了一组基本约束类型:变界约束、线性约束、二次约束、完整性约束和SOS约束。这些问题通常由底层求解器直接处理(尽管并不总是),并且是整个算法的基础。手机万博登录

Gurobi接受许多额外的约束类型,我们统称为一般(功能)约束.这些通常是由解算器直接处理。相反,它们通过预解转换为从上面手机万博登录列出的基本类型中选择的约束(和变量)。在某些情况下,产生的一个或多个约束在数学上等同于原始约束;在其他情况下,它们是近似值。如果这些约束出现在您的模型中,但如果您希望自己使用基本约束类型来重新格式化它们,那么您当然可以这样做。但是,请注意,Gurobi有时可以利用模型中其他约束中包含的信息来构建比您可能创建的更有效的公式。

属于此项的其他约束类型一般约束保护伞包括:

  • MAX (genconmax):设置一个决策变量等于一组决策变量中的最大值
  • MIN (genconmin):设置一个决策变量等于一组决策变量中的最小值
  • ABS (genconabs):设置一个决策变量等于其他决策变量的绝对值
  • AND (genconand):当且仅当所有的二元决策变量都等于1时,设置一个二元变量等于1
  • OR (genconor):当且仅当一组二元决策变量中至少有一个变量等于1时,设置一个二元变量等于1
  • 指示符(genconind):当给定的二元变量取某个值时,则必须满足给定的线性约束
  • 分段线性约束(genconpwl):设置一个变量,该变量等于使用其他变量由一组点定义的分段线性函数
  • 多项式(genconpoly):设置一个变量等于由其他变量定义的多项式函数
  • 自然指数(genconexp):设置一个变量等于其他变量的自然指数函数
  • 指数(genconexpa):设置一个变量等于其他变量的指数函数
  • 自然对数(genconlog):设置一个变量等于其他变量的自然对数函数
  • 对数(genconloga):通过其他变量将一个变量设置为等于对数函数
  • 功率(genconpow):设置一个变量等于其他变量的功率函数
  • SIN (genconsin):用其他变量设置一个变量等于正弦函数
  • COS (genconcos):设一个变量等于另一个变量的余弦函数
  • TAN (gencontan):设置一个变量等于另一个变量的正切函数

请参考本节有关一般约束的更多细节。

genconmax(可选)
一个结构体数组。当出现时,每个条目都进入genconmax定义了表单的MAX一般约束
< span > < / span > x美元[\ mathrm {resvar}] = \马克斯\左\ {\ mathrm {con}, x [j]: j \ \ mathrm {var} \右\}< span > < / span >美元
每个条目可能有以下字段:
雷斯瓦尔
通过指定model.genconmax .resvar(我)。约束条件左侧变量的下标。
var
通过指定型号.genconmax(i).vars,它是约束条件右边的变量指标向量。
反对(可选)
通过指定model.genconmax .con(我)。当存在时,指定constant on the left-hand side. Default value is<span>$</span>-\infty<span>$</span>
名称(可选)
通过指定model.genconmax(我). name。如果存在,则指定< span > < /美元跨度>我< span > < / span >美元-th MAX一般约束。

genconmin(可选)
一个结构体数组。当出现时,每个条目都进入genconmax定义窗体的最小常规约束
< span > < / span > x美元[\ mathrm {resvar}] = \敏\左\ {\ mathrm {con}, x [j]: j \ \ mathrm {var} \右\}< span > < / span >美元
每个条目可能有以下字段:
雷斯瓦尔
通过指定模型.genconmin(i).resvar。约束条件左侧变量的下标。
var
通过指定模型.genconmin(i).vars,它是约束条件右边的变量指标向量。
反对(可选)
通过指定模型.genconmin(i).con。当存在时,指定constant on the left-hand side. Default value is< span > < / span > \ infty美元美元< span > < / span >
名称(可选)
通过指定型号.genconmin(i).名称。如果存在,则指定< span > < /美元跨度>我< span > < / span >美元-th最小一般约束。

genconabs(可选)
一个结构体数组。当出现时,每个条目都进入genconmax定义了一个ABS通用的表单约束
< span > < / span > x美元[\ mathrm {resvar}] = \绿色x [\ mathrm {argvar}] \绿色< span > < / span >美元
每个条目可能有以下字段:
雷斯瓦尔
通过指定model.genconabs .resvar(我)。约束条件左侧变量的下标。
阿格瓦尔
通过指定模型.genconaabs(i).argvar. 约束右侧的变量索引。
名称(可选)
通过指定model.genconabs(我). name。如果存在,则指定< span > < /美元跨度>我< span > < / span >美元-th ABS通用约束。

genconand(可选)
一个结构体数组。当出现时,每个条目都进入genconand定义表单的和一般约束
<span>$</span>x[\mathrm{resvar}]=\mathrm{and}\{x[i]:i\in\mathrm{vars}\}<span>$</span>
每个条目可能有以下字段:
雷斯瓦尔
通过指定模型.genconand(i).resvar。约束条件左侧变量的下标。
var
通过指定model.genconand .vars(我),它是约束条件右边的变量指标向量。
名称(可选)
通过指定model.genconand(我). name。如果存在,则指定< span > < /美元跨度>我< span > < / span >美元-第四,一般约束。

Genconor(可选)
一个结构体数组。当出现时,每个条目都进入发电商定义表单的OR一般约束
<span> $ </ span> x [\ mathrm {resvar}] = \ mathrm {或} \ {x [i]:i \ in \ mathrm {vars} \} <span> $ </ span>
每个条目可能有以下字段:
雷斯瓦尔
通过指定model.genconor .resvar(我)。约束条件左侧变量的下标。
var
通过指定型号:genconor(一)vars,它是约束条件右边的变量指标向量。
名称(可选)
通过指定型号.genconor(i).名称。如果存在,则指定< span > < /美元跨度>我< span > < / span >美元-th或一般约束。

genconind(可选)
一个结构体数组。当出现时,每个条目都进入g定义表单的INDICATOR通用约束
<span> $ </ span> x [\ mathrm {binvar}] = \ mathrm {binval} \ lightarrow \ sum \ left(x \ mronternativer {(j)} {... \ cdot \ mathrm {a} \ mralternativer {(j)} {[[j]]} \右)\ \ mathrm {sense} \ \ mathrm {rhs} <span> $ </ spr>
这个约束说明当二进制变量 < span > < / span > x美元[\ mathrm {binvar}] < span > < / span >美元取值binval然后是线性约束 < span > < / span > \总和\离开美元(x [\ mathrm {var} \ MRalternative {(j)} {[[j]]}] \ cdot \ mathrm {val} \ MRalternative {(j)} {[[j]]} \) \ \ mathrm{感觉}\ \ mathrm {rhs} < span > < / span >美元必须持有。请注意,感觉是其中之一“=”“<”,或“>”为了平等(<span>$</span>=<span>$</span>),小于或等于(< span > < / span > \ leq美元美元< span > < / span >)或大于或等于(<span>$</span>\geq<span>$</span>)限制。每个条目可能有以下字段:
binvar
通过指定模型.genconind(i).binvar.关联二进制变量的索引。
binval
通过指定型号:GENCONID(一)binval.强制满足以下线性约束的二进制变量的值。它可以是0或1。
一个
通过指定型号:GENCONID(i).a。参与隐含线性约束的变量系数的向量。可以指定的值一个的每一列一个(密集向量)或通过一个稀疏向量(稀疏n × 1矩阵)。
感觉
通过指定模型.genconind(i).意义。隐含线性约束的感觉。必须是其中一个“=”“<”,或“>”
园艺学会
通过指定型号:GENCONID(i).rhs。隐含线性约束的右边值。
名称(可选)
通过指定model.genconind(我). name。如果存在,则指定< span > < /美元跨度>我< span > < / span >美元-th指标一般约束。

genconpwl(可选)
一个结构体数组。当出现时,每个条目都进入genconpwl定义窗体的分段线性约束
< span > < / span > x美元[\ mathrm {yvar}] = f (x [\ mathrm {xvar}]) < span > < / span >美元
的断点<span>$</span>f<span>$</span>作为参数提供。请参阅的说明分段线性目标有关如何定义分段线性函数的详细信息

每个条目可能有以下字段:

xvar
通过指定model.genconpwl .xvar(我). 约束右侧的变量索引。
yvar
通过指定model.genconpwl .yvar(我)。约束条件左侧变量的下标。
xpts
通过指定模型.genconpwl(i).xpts。指定< span > < /美元跨度> x < span > < / span >美元定义分段线性函数的点的值。必须处于非减少秩序。
YPTS.
通过指定model.genconpwl .ypts(我)。指定<span>$</span>y<span>$</span>定义分段线性函数的点的值。
名称(可选)
通过指定型号.genconpwl(i).名称。如果存在,则指定< span > < /美元跨度>我< span > < / span >美元-分段线性一般约束。

genconpoly(可选)
一个结构体数组。当出现时,每个条目都进入genconpoly定义一个多项式函数约束的形式
< span > < / span > x美元[\ mathrm {yvar}] = p_0 x [\ mathrm {xvar}] ^ d + p_1 x [\ mathrm {xvar}] ^ {d 1} +……+ p_{d}<span>$</span> . x[\mathrm{xvar}
将函数的分段线性近似添加到模型中。使用以下四个属性(或使用同名参数)控制近似的详细信息:功能块FuncPieceError函数长度,funcpieceratio。详情请查阅一般约束讨论

每个条目可能有以下字段:

xvar
通过指定模型.genconpoly(i).xvar. 约束右侧的变量索引。
yvar
通过指定型号:genconpoly(i).yvar。约束条件左侧变量的下标。
p
通过指定每分钟model.genconpoly (i)。指定coefficients for the polynomial function (starting with the coefficient for the highest power). If< span > < /美元跨度> x ^ d < span > < / span >美元是最高幂项,长度的密集向量< span > < / span > d + 1美元美元< span > < / span >返回。
名称(可选)
通过指定model.genconpoly(我). name。如果存在,则指定< span > < /美元跨度>我< span > < / span >美元-多项式函数约束。
功能部件(可选)
通过指定model.genconpoly .funcpieces(我)。当存在时,指定功能块属性< span > < /美元跨度>我< span > < / span >美元-多项式函数约束。
funcpiecelength(可选)
通过指定model.genconpoly .funcpiecelength(我)。当存在时,指定FuncPieceLength属性< span > < /美元跨度>我< span > < / span >美元-多项式函数约束。
错误(可选)
通过指定model.genconpoly .funcpieceerror(我)。当存在时,指定FuncPieceError属性< span > < /美元跨度>我< span > < / span >美元-多项式函数约束。
funcpieceratio(可选)
通过指定model.genconpoly .funcpieceratio(我)。当存在时,指定funcpieceratio属性< span > < /美元跨度>我< span > < / span >美元-多项式函数约束。

genconexp(可选)
一个结构体数组。当出现时,每个条目都进入genconexp定义形式的自然指数函数约束
<span>$</span>x[\mathrm{yvar}]=\mathrm{exp}(x[\mathrm{xvar}])<span>$</span>
将函数的分段线性近似添加到模型中。使用以下四个属性(或使用同名参数)控制近似的详细信息:功能块FuncPieceError函数长度,funcpieceratio。详情请查阅一般约束讨论

每个条目可能有以下字段:

xvar
通过指定model.genconexp .xvar(我). 约束右侧的变量索引。
yvar
通过指定model.genconexp .yvar(我)。约束条件左侧变量的下标。
名称(可选)
通过指定model.genconexp(我). name。如果存在,则指定< span > < /美元跨度>我< span > < / span >美元-th自然指数函数约束。
功能部件(可选)
通过指定model.genconexp .funcpieces(我)。当存在时,指定功能块属性< span > < /美元跨度>我< span > < / span >美元-th自然指数函数约束。
funcpiecelength(可选)
通过指定型号.genconexp(i).funcpiecelength。当存在时,指定FuncPieceLength属性< span > < /美元跨度>我< span > < / span >美元-th自然指数函数约束。
错误(可选)
通过指定model.genconexp .funcpieceerror(我)。当存在时,指定FuncPieceError属性< span > < /美元跨度>我< span > < / span >美元-th自然指数函数约束。
funcpieceratio(可选)
通过指定model.genconexp .funcpieceratio(我)。当存在时,指定funcpieceratio属性< span > < /美元跨度>我< span > < / span >美元-th自然指数函数约束。

genconexpa(可选)
一个结构体数组。当出现时,每个条目都进入genconexpa定义形式的指数函数约束
< span > < / span > x美元[\ mathrm {yvar}] = \ mathrm{一}^ {x [\ mathrm {xvar}]} < span > < / span >美元
将函数的分段线性近似添加到模型中。使用以下四个属性(或使用同名参数)控制近似的详细信息:功能块FuncPieceError函数长度,funcpieceratio。详情请查阅一般约束讨论

每个条目可能有以下字段:

xvar
通过指定model.genconexpa .xvar(我). 约束右侧的变量索引。
yvar
通过指定model.genconexpa .yvar(我)。约束条件左侧变量的下标。
一个
通过指定型号:genconexpa(i).a。指定指数函数的基< span > < /美元跨度> > 0 < span > < / span >美元
名称(可选)
通过指定型号.genconexpa(i).名称。如果存在,则指定< span > < /美元跨度>我< span > < / span >美元-指数函数约束。
功能部件(可选)
通过指定型号:genconexpa(i)。当存在时,指定功能块属性< span > < /美元跨度>我< span > < / span >美元-指数函数约束。
funcpiecelength(可选)
通过指定model.genconexpa .funcpiecelength(我)。当存在时,指定FuncPieceLength属性< span > < /美元跨度>我< span > < / span >美元-指数函数约束。
错误(可选)
通过指定model.genconexpa .funcpieceerror(我)。当存在时,指定FuncPieceError属性< span > < /美元跨度>我< span > < / span >美元-指数函数约束。
funcpieceratio(可选)
通过指定模型.genconexpa(i)。当存在时,指定funcpieceratio属性< span > < /美元跨度>我< span > < / span >美元-指数函数约束。

genconlog(可选)
一个结构体数组。当出现时,每个条目都进入genconlog定义窗体的自然对数函数约束
< span > < / span > x美元[\ mathrm {yvar}] = \ mathrm{日志}(x [\ mathrm {xvar}]) < span > < / span >美元
将函数的分段线性近似添加到模型中。使用以下四个属性(或使用同名参数)控制近似的详细信息:功能块FuncPieceError函数长度,funcpieceratio。详情请查阅一般约束讨论

每个条目可能有以下字段:

xvar
通过指定model.genconlog .xvar(我). 约束右侧的变量索引。
yvar
通过指定model.genconlog .yvar(我)。约束条件左侧变量的下标。
名称(可选)
通过指定型号.genconlog(i).名称。如果存在,则指定< span > < /美元跨度>我< span > < / span >美元-自然对数函数约束。
功能部件(可选)
通过指定model.genconlog(i).funcpieces。当存在时,指定功能块属性< span > < /美元跨度>我< span > < / span >美元-自然对数函数约束。
funcpiecelength(可选)
通过指定model.genconlog .funcpiecelength(我)。当存在时,指定FuncPieceLength属性< span > < /美元跨度>我< span > < / span >美元-自然对数函数约束。
错误(可选)
通过指定model.genconlog .funcpieceerror(我)。当存在时,指定FuncPieceError属性< span > < /美元跨度>我< span > < / span >美元-自然对数函数约束。
funcpieceratio(可选)
通过指定模型.genconlog(i)。当存在时,指定funcpieceratio属性< span > < /美元跨度>我< span > < / span >美元-自然对数函数约束。

genconloga(可选)
一个结构体数组。当出现时,每个条目都进入genconloga定义了对数函数约束的形式
<span>$</span>x[\mathrm{yvar}]=\mathrm{log}(x[\mathrm{xvar}])\set减号\mathrm{log}(a)<span>$</span>
将函数的分段线性近似添加到模型中。使用以下四个属性(或使用同名参数)控制近似的详细信息:功能块FuncPieceError函数长度,funcpieceratio。详情请查阅一般约束讨论

每个条目可能有以下字段:

xvar
通过指定model.genconloga .xvar(我). 约束右侧的变量索引。
yvar
通过指定model.genconloga .yvar(我)。约束条件左侧变量的下标。
一个
通过指定model.genconloga(我)。。指定base of the logarithmic function< span > < /美元跨度> > 0 < span > < / span >美元
名称(可选)
通过指定model.genconloga(我). name。如果存在,则指定< span > < /美元跨度>我< span > < / span >美元-th对数函数约束。
功能部件(可选)
通过指定model.genconloga(i).funcpieces。当存在时,指定功能块属性< span > < /美元跨度>我< span > < / span >美元-th对数函数约束。
funcpiecelength(可选)
通过指定模型.genconloga(i).分段长度。当存在时,指定FuncPieceLength属性< span > < /美元跨度>我< span > < / span >美元-th对数函数约束。
错误(可选)
通过指定model.genconloga .funcpieceerror(我)。当存在时,指定FuncPieceError属性< span > < /美元跨度>我< span > < / span >美元-th对数函数约束。
funcpieceratio(可选)
通过指定model.genconloga .funcpieceratio(我)。当存在时,指定funcpieceratio属性< span > < /美元跨度>我< span > < / span >美元-th对数函数约束。

genconpow(可选)
一个结构体数组。当出现时,每个条目都进入genconpow定义表单的幂函数约束
< span > < / span > x美元[\ mathrm {yvar}] = x [\ mathrm {xvar}] ^ \ mathrm{一}< span > < / span >美元
将函数的分段线性近似添加到模型中。使用以下四个属性(或使用同名参数)控制近似的详细信息:功能块FuncPieceError函数长度,funcpieceratio。详情请查阅一般约束讨论

每个条目可能有以下字段:

xvar
通过指定model.genconpow .xvar(我). 约束右侧的变量索引。
yvar
通过指定model.genconpow .yvar(我)。约束条件左侧变量的下标。
一个
通过指定model.genconpow(我)。。指定exponent of the power function.
名称(可选)
通过指定model.genconpow(i).name。如果存在,则指定< span > < /美元跨度>我< span > < / span >美元-幂函数约束。
功能部件(可选)
通过指定model.genconpow .funcpieces(我)。当存在时,指定功能块属性< span > < /美元跨度>我< span > < / span >美元-幂函数约束。
funcpiecelength(可选)
通过指定model.genconpow(i).funcpiecelength。当存在时,指定FuncPieceLength属性< span > < /美元跨度>我< span > < / span >美元-幂函数约束。
错误(可选)
通过指定模型.genconpow(i)。当存在时,指定FuncPieceError属性< span > < /美元跨度>我< span > < / span >美元-幂函数约束。
funcpieceratio(可选)
通过指定模型.genconpow(i)。当存在时,指定funcpieceratio属性< span > < /美元跨度>我< span > < / span >美元-幂函数约束。

genconsin(可选)
一个结构体数组。当出现时,每个条目都进入根康辛定义正弦函数约束的形式
<span>$</span>x[\mathrm{yvar}]=\mathrm{sin}(x[\mathrm{xvar}])<span>$</span>
将函数的分段线性近似添加到模型中。使用以下四个属性(或使用同名参数)控制近似的详细信息:功能块FuncPieceError函数长度,funcpieceratio。详情请查阅一般约束讨论

每个条目可能有以下字段:

xvar
通过指定model.genconsin .xvar(我). 约束右侧的变量索引。
yvar
通过指定model.genconsin .yvar(我)。约束条件左侧变量的下标。
名称(可选)
通过指定型号.genconsin(i).名称。如果存在,则指定< span > < /美元跨度>我< span > < / span >美元-第th正弦函数约束。
功能部件(可选)
通过指定型号:genconsin(i)。当存在时,指定功能块属性< span > < /美元跨度>我< span > < / span >美元-第th正弦函数约束。
funcpiecelength(可选)
通过指定model.genconsin .funcpiecelength(我)。当存在时,指定FuncPieceLength属性< span > < /美元跨度>我< span > < / span >美元-第th正弦函数约束。
错误(可选)
通过指定模型.genconsin(i).funciphererror。当存在时,指定FuncPieceError属性< span > < /美元跨度>我< span > < / span >美元-第th正弦函数约束。
funcpieceratio(可选)
通过指定model.genconsin .funcpieceratio(我)。当存在时,指定funcpieceratio属性< span > < /美元跨度>我< span > < / span >美元-第th正弦函数约束。

genconcos(可选)
一个结构体数组。当出现时,每个条目都进入genconcos定义窗体的余弦函数约束
<span>$</span>x[\mathrm{yvar}]=\mathrm{cos}(x[\mathrm{xvar}])<span>$</span>
将函数的分段线性近似添加到模型中。使用以下四个属性(或使用同名参数)控制近似的详细信息:功能块FuncPieceError函数长度,funcpieceratio。详情请查阅一般约束讨论

每个条目可能有以下字段:

xvar
通过指定model.genconcos .xvar(我). 约束右侧的变量索引。
yvar
通过指定model.genconcos .yvar(我)。约束条件左侧变量的下标。
名称(可选)
通过指定型号.GENCONCS(i).名称。如果存在,则指定< span > < /美元跨度>我< span > < / span >美元-th余弦函数约束。
功能部件(可选)
通过指定model.genconcos .funcpieces(我)。当存在时,指定功能块属性< span > < /美元跨度>我< span > < / span >美元-th余弦函数约束。
funcpiecelength(可选)
通过指定model.genconcos .funcpiecelength(我)。当存在时,指定FuncPieceLength属性< span > < /美元跨度>我< span > < / span >美元-th余弦函数约束。
错误(可选)
通过指定模型.genconcos(i)。当存在时,指定FuncPieceError属性< span > < /美元跨度>我< span > < / span >美元-th余弦函数约束。
funcpieceratio(可选)
通过指定model.genconcos .funcpieceratio(我)。当存在时,指定funcpieceratio属性< span > < /美元跨度>我< span > < / span >美元-th余弦函数约束。

gencontan(可选)
一个结构体数组。当出现时,每个条目都进入根康坦定义表单的正切函数约束
<span>$</span>x[\mathrm{yvar}]=\mathrm{tan}(x[\mathrm{xvar}])<span>$</span>
将函数的分段线性近似添加到模型中。使用以下四个属性(或使用同名参数)控制近似的详细信息:功能块FuncPieceError函数长度,funcpieceratio。详情请查阅一般约束讨论

每个条目可能有以下字段:

xvar
通过指定型号:gencontan(i).xvar. 约束右侧的变量索引。
yvar
通过指定型号:gencontan(i).yvar。约束条件左侧变量的下标。
名称(可选)
通过指定model.gencontancos(我). name。如果存在,则指定< span > < /美元跨度>我< span > < / span >美元-th切线函数约束。
功能部件(可选)
通过指定model.gencontan .funcpieces(我)。当存在时,指定功能块属性< span > < /美元跨度>我< span > < / span >美元-th切线函数约束。
funcpiecelength(可选)
通过指定模型.gencontan(i).分段长度。当存在时,指定FuncPieceLength属性< span > < /美元跨度>我< span > < / span >美元-th切线函数约束。
错误(可选)
通过指定模型gencontan(i)。当存在时,指定FuncPieceError属性< span > < /美元跨度>我< span > < / span >美元-th切线函数约束。
funcpieceratio(可选)
通过指定model.gencontan .funcpieceratio(我)。当存在时,指定funcpieceratio属性< span > < /美元跨度>我< span > < / span >美元-th切线函数约束。

先进的领域:

pwlobj(可选)
分段线性目标函数。一个结构体数组。当出现时,每个条目都进入pwlobj为单个变量定义分段线性目标函数。正在定义目标函数的变量的索引存储在model.pwlobj .var(我)这个< span > < /美元跨度> x < span > < / span >美元定义分段线性函数的点的值存储在
model.pwlobj(我)方式。在< span > < /美元跨度> x < span > < / span >美元向量的顺序必须是非递减的。的<span>$</span>y<span>$</span>定义分段线性函数的点的值存储在model.pwlobj .y(我)

vbasis(可选)
变量基状态向量。用于为单纯形算法提供高级起点。您通常不会关心此向量的内容,而是将其从上一次优化运行的结果传递到下一次运行的输入。出现时,必须为每个colu指定一个值锰一个

cbasis(可选)
约束基状态向量。用于为单纯x算法提供高级起点。咨询vbasis描述的细节。出现时,必须为的每一行指定一个值一个

varhintval(可选)
一组用户提示。如果您知道某个变量可能在MIP模型的高质量解决方案中采用某个特定值,则可以提供该值作为提示。您还可以(可选)使用varhintpri领域如果存在,则必须为字段的每列指定一个值一个.使用的值为对于没有这种提示的变量。有关详情,请参阅瓦希特瓦尔属性文件。manbet体育手机客户端

varhintpri(可选)
用户提示的优先级。函数提供变量提示之后瓦欣特瓦尔Struct中,您也可以选择提供提示优先级,以表明您对提示的信心水平。如果存在,则必须为的每列指定一个值一个。有关详情,请参阅瓦欣特普里属性文件。manbet体育手机客户端

branchpriority(可选)
变量分支优先。如果存在,该属性的值将用作在MIP搜索期间为分支选择分数变量的主要标准。值较大的变量总是优先于值较小的变量。使用标准的分支变量选择标准可以打破束缚。如果存在,则必须为的每列指定一个值一个

pstart(可选)
当前单纯形起始向量。如果设置pstart模型中每个变量的值,以及德斯塔特每个约束的值,然后simplex将使用这些值来计算一个暖开始基。有关详情,请参阅PStart属性文件。manbet体育手机客户端

dstart(可选)
当前单纯形起始向量。如果设置德斯塔特为模型中每个线性约束的值pstart每个变量的值,然后simplex将使用这些值来计算热启动基础。有关更多详细信息,请参阅德斯塔特属性文件。manbet体育手机客户端

懒惰(可选)
确定是否将线性约束视为懒惰的约束。如果存在,则必须为的每一行指定一个值一个。有关详情,请参阅懒惰的属性文件。manbet体育手机客户端

开始(可选)
MIP起始向量。MIP解算器将尝手机万博登录试从这个向量构建一个初始解。出现时,必须为每个变量指定一个起始值。注意,可以将变量的起始值设置为,指示MIP解算器尝试填充该变量的值。手机万博登录

分区(可选)
MIP解决方案改进启发式使用的MIP变量分区号。如果存在,则必须为的每个变量指定一个值一个。有关详情,请参阅隔断属性文件。manbet体育手机客户端

如果上面列出的强制性组件中有任何缺失,则gurobi ()函数将返回一个错误。

下面是一个示例,演示了如何构建一个简单的优化模型:


模型A=稀疏([1 2 3;1 1 0]);
model.obj = [1 1 1];
model.modelsense='max';
模型。园艺学会= [4; 1];
模型。感觉= '<>'