mpsread
读取MPS文件,获取LP和MILP优化数据
描述
例子
导入并运行MPS文件
加载一个国会议员
归档并解决它所描述的问题。
加载eil33 - 2. -国会议员
来自公共存储库的文件。查看问题类型。
gunzip (“http://miplib.zib.de/webdata/instances/eil33 - 2. mps.gz”问题= mpsread(“eil33 - 2.议员”)
问题= f: [4516x1 double] Aineq: [0x4516 double] bineq: [0x1 double] Aeq: [32x4516 double] beq: [32x1 double] lb: [4516x1 double] ub: [4516x1 double] intcon: [4516x1 double] solver: 'intlinprog' options: [1x1 optima .options. intlinprog]
请注意,problem.intcon
不是空的,还有problem.solver
是“intlinprog”
.这是一个整数线性规划问题。
更改选项以抑制迭代显示,并在求解程序进行时生成图形。
选择= optimoptions (“intlinprog”,“显示”,“最后一次”,“PlotFcn”, @optimplotmilp);问题。选项= options;
通过打电话来解决问题intlinprog
.
[x, fval exitflag、输出]= intlinprog(问题);
找到最优解。Intlinprog停止是因为目标值在最优值、选项的差距容忍范围内。AbsoluteGapTolerance = 0(默认值)。intcon变量是公差范围内的整数,选项。IntegerTolerance = 1e-05(默认值)。
获取变量和约束名称
加载一个国会议员
文件,并获取其变量名和约束名。
加载eil33 - 2. -国会议员
来自公共存储库的文件。查看返回的问题结构。
gunzip (“http://miplib.zib.de/webdata/instances/eil33 - 2. mps.gz”问题= mpsread(“eil33 - 2.议员”,“ReturnNames”,真正的)
problem = struct with fields: f: [4516×1 double] Aineq: [0×4516 double] bineq: [0×1 double] Aeq: [32×4516 double] beq: [32×1 double] lb: [4516×1 double] ub: [4516×1 double] intcon: [4516×1 double] solver: 'intlinprog' options: [1×1 optim.com .options. aspl: [4516×1 double]Intlinprog]变量名:[4516×1 string] constraintNames: [1×1 struct]
查看每个类型的前几个名称。
problem.variableNames (1:4)
Ans = 4×1 string数组"x1" "x2" "x3" "x4"
problem.constraintNames.eqlin (1:4)
Ans = 4×1 string数组"c1" "c2" "c3" "c4"
问题中不存在不等式约束。
problem.constraintNames.ineqlin
Ans = 0×1空字符串数组
输入参数
mpsfile
- - - - - -MPS文件路径
特征向量|字符串标量
MPS文件的路径,指定为字符向量或字符串标量。mpsfile
应该在议员格式.
请注意
mpsread
不支持半连续约束或SOS约束。mpsread
支持“固定格式”文件。mpsread
不支持诸如objsense
而且objname
.mpsread
对象中的变量会被静默忽略界限
中先前没有出现的列
部分的MPS文件。
例子:“文件/优化/ milpproblem.mps”
数据类型:字符
|字符串
ReturnNames
- - - - - -指示从MPS文件返回变量名和约束名的名称-值对
假
(默认)|真正的
名称-值对指示从MPS文件返回变量和约束名,其值指定为逻辑的。假
表示不返回名称。真正的
原因mpsread
中返回两个额外字段问题
输出结构:
problem.variableNames
-变量名的字符串数组problem.constraintNames
-约束名称的结构:problem.constraintNames.eqlin
线性等式约束名称的字符串数组problem.constraintNames.ineqlin
线性不等式约束名称的字符串数组
的问题
结构不等式约束问题。Aineq
而且problem.bineq
和里面名字的顺序一样吗problem.constraintNames.ineqlin
.同样,约束问题。Aeq
而且problem.beq
和里面名字的顺序一样吗problem.constraintNames.eqlin
.的problem.variableNames
顺序与解变量的顺序相同x
在运行linprog
或intlinprog
在问题
结构。
例子:mpsread(“文件名”、“ReturnNames”,真的)
数据类型:逻辑
输出参数
问题
——问题结构
结构
问题结构,作为带字段的结构返回:
f |
向量代表客观f ' * x |
intcon |
表示接受整数值的变量的向量(LP为空,MILP为非空) |
Aineq |
矩阵的线性不等式约束Aineq * x ≤bineq |
|
向量在线性不等式约束下Aineq * x ≤bineq |
|
矩阵的线性等式约束Aeq * x =说真的 |
|
向量在线性等式的约束下Aeq * x =说真的 |
磅 |
下界向量 |
乌兰巴托 |
上界向量 |
解算器 |
“intlinprog” (如果intcon 非空的),还是“linprog” (如果intcon 是空的) |
|
默认选项,如命令返回的那样 optimoptions(解决) |
variableNames |
包含来自MPS文件的变量名的字符串数组。此字段仅在ReturnNames 是真正的 . |
constraintNames |
结构,包含来自MPS文件的约束名称。有关描述,请参见ReturnNames .此字段仅在ReturnNames 是真正的 . |
mpsread
返回问题。Aineq
而且问题。Aeq
稀疏矩阵。
版本历史
介绍了R2015b
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。