主要内容

mpsread

阅读LP和MILP优化数据的MPS文件

描述

例子

问题= mpsread(mpsfile.读取线性编程(LP)和混合整数线性编程(MILP)问题的数据。它返回一个结构中的数据intlinprog.线性规划问题求解器接受。

例子

问题= mpsread(mpsfile.,'returnnames.',真的)增强了回归问题结构与variablenames.约束名包含中变量和约束名称的字段mpsfile.

例子

全部收缩

加载A.议员文件并解决它描述的问题。

加载eil33-2.mps.来自公共存储库的文件。查看问题类型。

Gunzip('http://miplib.zib.de/webdata/instances/eil33-2.mps.gz')问题= mpsread('eil33-2.mps'
问题= F:[4516x1双] Aineq:[0x4516双] Bineq:[0x1 Double] AEQ:[32x4516双] BEQ:[32x1双] LB:[4516x1双] UB:[4516x1双] INTCON:[4516x1双]求解器:'intlinprog'选项:[1x1 Optim.Options.Intlinprog]

注意问题.国际贸易公司不是空的,而且问题解决者“intlinprog”这个问题是an integer linear programming problem.

更改禁止迭代显示的选项,并在解算器进行时生成绘图。

选项=最佳选项(“intlinprog”“显示”'最终的'“PlotFcn”,@ Optimplotmilp);问题.Options =选项;

通过呼叫来解决问题intlinprog.

[x,fval,exitflag,output]=intlinprog(问题);
找到最佳解决方案。Intlinprog已停止,因为目标值在最佳值的间隙公差范围内,options.AbsoluteGaptoreance=0(默认值)。intcon变量是公差范围内的整数,options.IntegerTolerance=1e-05(默认值)。

加载A.议员文件并获取其变量和约束名称。

加载eil33-2.mps.来自公共存储库的文件。查看返回的问题结构。

Gunzip('http://miplib.zib.de/webdata/instances/eil33-2.mps.gz')问题= mpsread('eil33-2.mps'“返回姓名”,真的)
问题=带有字段的结构:f:[4516×1双] Aineq:[0×4516双] Bineq:[0×1双] AEQ:[32×4516双] BEQ:[32×1双] LB:[4516×1 double] ub: [4516×1 double] intcon: [4516×1 double] solver: 'intlinprog' options: [1×1 optim.options.Intlinprog] variableNames: [4516×1 string] constraintNames: [1×1 struct]

查看每种类型的前几个名称。

问题.变量名称(1:4)
ans = 4×1字符串阵列“x1”“x2”“x3”“x4”
problem.constraintNames.eqlin(1:4)
ANS = 4×1字符串阵列“C1”“C2”“C3”“C4”

问题没有不平等的限制。

问题.Constraintnames.ineqlin.ineqlin.
ans = 0×1空字符串数组

输入参数

全部收缩

到MPS文件的路径,指定为字符向量或字符串标量。mpsfile.应该是中的一个文件MPS格式

笔记

  • mpsread不支持半连续约束或万博1manbetxSOS约束。

  • mpsread万博1manbetx支持“固定格式”文件。

  • mpsread不支持扩展,如万博1manbetxobjsense.objname.

  • mpsread默默地忽略了变量界限之前未出现的部分MPS文件的一部分。

例子:“文档/优化/milpproblem.mps”

数据类型:烧焦|细绳

名称 - 值对指示从MPS文件返回变量和约束名称,其中值指定为逻辑。错误的指示不返回名称。符合事实的原因mpsread返回两个额外的领域问题输出结构:

  • 问题。变量名称- 字符串数组的变量名称

  • 问题.Constraintnames.-约束名称的结构:

    • problem.constraintNames.eqlin线性平等约束名称的字符串数组

    • 问题.Constraintnames.ineqlin.ineqlin.线性不等式约束名称的字符串数组

问题结构不等式约束问题.apeq.问题B.bineq与名称有相同的订单问题.Constraintnames.ineqlin.ineqlin.。同样,约束问题问题。贝克与名称有相同的订单problem.constraintNames.eqlin这个问题。变量名称顺序与解决方案变量的顺序相同X跑步后线性规划问题intlinprog.在这方面问题结构体。

例子:mpsread('filename','returnnames',true)

数据类型:逻辑

输出参数

全部收缩

问题结构,作为具有字段的结构返回:

F 表示目标的向量f'*x
Intcon. 表示采用整数值的变量的向量(LP为空,MILP为非空)
艾奈克 线性不等式约束中的矩阵Aineq * X.≤.Bineq.

Bineq.

线性不平等约束的矢量Aineq * X.≤.Bineq.

AEQ.

线性平等约束中的矩阵aeq * x = beq

BEQ.

线性平等约束的矢量aeq * x = beq
下界矢量
UB. 上限矢量
求解器 “intlinprog”(如果Intcon.是不是空的)或'linprog'(如果Intcon.(是空的)

选项

默认选项,由命令返回

优化选项(解算器)
variablenames. 字符串数组包含来自MPS文件的变量名称。此字段仅显示returnnames.符合事实的
约束名 包含MPS文件中约束名称的结构。有关说明,请参阅returnnames.。此字段仅在以下情况下显示:returnnames.符合事实的

mpsread回报问题.apeq.问题作为稀疏矩阵。

R2015b中引入