主要内容

建立了一个线性规划,Solver-Based

将问题转化为求解器的形式

这个例子展示了如何将一个问题从数学形式转换成优化工具箱™解决语法使用solver-based方法。而问题是线性规划,技术适用于所有的解决者。

问题中的变量和表达式表示的模型操作一家化工厂,埃德加和库普的一个例子[1]。有两个视频描述问题。

这个例子的其余部分是只关心把解决语法问题。紧跟视频的例子优化建模,第2部分:转化成解算器形式。视频和例子之间的主要区别是,这个例子展示了如何使用命名变量,或索引变量,类似于哈希键。这种差异在结合变量为一个向量

模型描述

这段视频数学建模与优化,第1部分表明一个问题转换为数学形式的一个方法是:

  1. 得到一个整体的问题

  2. 确定目标(最大化或最小化)

  3. 识别(名字)变量

  4. 确定约束条件

  5. 确定哪些变量可以控制

  6. 指定所有数量的数学符号

  7. 检查模型的完整性和正确性

意义的变量在本节中,看到这段视频数学建模与优化,第1部分

最小化目标函数优化问题,受到其他表达式作为约束条件。

目标函数是:

HPS 0.002614 + 0.0239 + 0.009825 EP页

约束:

2500年P16250年
I1192000年
C62000年
I1 - HE1132000年
I1 = LE1 + HE1 + C
1359.8 I1 = 1267.8 HE1 + 1251.4 LE1 + 192 C + 3413 P1
3000年P29000年
I2244000年
LE2142000年
I2 = LE2 +何
1359.8 I2 = 1267.8 + 1251.4 LE2 + 3413 P2
HPS = I1和I2 + BF1 +
HPS =议员C + +有限合伙人
有限合伙人= LE1 + LE2 + BF2
议员= HE1 + + BF1 - BF2
P1和P2 + PP24550年
EP +页12000年
国会议员271536年
有限合伙人100623年
所有的变量都是正的。

解决方法

为了解决优化问题,采取以下措施。

还视频所示的步骤优化建模,第2部分:转化成解算器形式

选择一个解算器

找到合适的解决这个问题,请参考优化决策表。表问你对你的问题进行分类类型的目标函数和类型的约束。对于这个问题,目标函数是线性的,约束是线性的。决策表推荐使用linprog解算器。

如你所见的问题由优化工具箱的功能或者是linprog函数引用页面,linprog解决解决问题的形式

最小值 x f T x 这样 { 一个 x b , 一个 e x = b e , l b x u b (1)
  • fTx意味着一个行向量常量f增加一个列向量的变量x。换句话说,

    fTx=f(1)x(1)+f(2)x(2)+…+f(n)x(n),

    在哪里n的长度是f

  • 一个xb代表线性不等式。一个是一个k——- - - - - -n矩阵,k是不平等和的数量吗n是变量的数量(大小x)。b是一个向量的长度k。有关更多信息,请参见线性不等式约束

  • Aeq x=说真的代表线性等式。Aeq是一个——- - - - - -n矩阵,是平等的数量和n是变量的数量(大小x)。说真的是一个向量的长度。有关更多信息,请参见线性等式约束

  • x乌兰巴托意味着向量中每个元素x必须大于相应的元素,必须小于相应的元素乌兰巴托。有关更多信息,请参见绑定约束

的语法linprog解算器,见其功能参考页面,

[x fval] = linprog (f, A、b Aeq,说真的,磅,乌兰巴托);

输入到linprog矩阵和向量的求解方程1

结合变量为一个向量

有16个变量的方程模型描述。把这些变量为一个向量。的名义变量的向量x方程1。决定一个秩序,构建的组件x的变量。

下面的代码构造向量使用单元阵列的变量的名称。

变量= {“I1”,“I2”,“HE1”,“何”,“LE1”,“LE2”,“C”,BF1的,“BF2”,“HPS”,“议员”,“有限合伙人”,“P1”,“P2”,“页”,“EP”};N =长度(变量);%为索引创建变量1:N v = eval ([{v}变量,“=”num2str (v),“;”]);结束

执行这些命令您的工作区中创建以下命名变量:

清单的变量:BF1 = 8, BF2 = 9,等等

这些命名变量代表组件的索引号x。你不需要创建命名变量。这段视频优化建模,第2部分:转化成解算器形式显示了如何解决问题简单地使用索引的组件的数量x

写绑定约束

有四个变量下界,和六个方程的上界模型描述。下界:

P12500年
P23000年
国会议员271536年
有限合伙人100623年

同时,所有的变量都是积极的,这意味着他们有下界的零。

创建一个下界向量作为一个向量的0,然后再添加其他四个下界。

磅= 0(大小(变量));磅([P1, P2,国会议员,有限合伙人])=…(2500、3000、271536、100623);

上界的变量有:

P16250年
P29000年
I1192000年
I2244000年
C62000年
LE2142000年

创建一个上界向量的向量,然后添加六个上界。

乌兰巴托=正(大小(变量));乌兰巴托([P1, P2, I1、I2 C, LE2]) =…(6250,9000,192000,244000,62000,142000];

编写线性不等式约束

有三个方程的线性不等式模型描述:

I1 - HE1132000年
EP +页12000年
P1和P2 + PP24550年

为了使方程形式一个xb左边,把所有的变量的不平等。所有这些方程已经形成。确保每个“小于”形式的不平等是由通过乘以1无论合适:

I1 - HE1132000年
ep -页-12000年
p1, P2 - PP-24550年

MATLAB中®工作空间,创建一个矩阵作为3-by-16零矩阵,对应3线性不等式在16个变量。创建b向量与三个组件。

一个= 0 (16);(1,I1) = 1;(1)HE1) = 1;b (1) = 132000;(2)EP) = 1;(2页)= 1;b (2) = -12000;(3,(P1, P2, PP)) = (1 1 1);b (3) = -24550;

编写线性等式约束

有八个线性方程的方程模型描述:

I2 = LE2 +何
有限合伙人= LE1 + LE2 + BF2
HPS = I1和I2 + BF1 +
HPS =议员C + +有限合伙人
I1 = LE1 + HE1 + C
议员= HE1 + + BF1 - BF2
1359.8 I1 = 1267.8 HE1 + 1251.4 LE1 + 192 C + 3413 P1
1359.8 I2 = 1267.8 + 1251.4 LE2 + 3413 P2

为了使方程形式Aeq x=说真的,把所有的变量等式的一边。方程成为:

LE2 +何- I2 = 0
LE1 + LE2 + BF2 - LPS = 0
I1和I2 + + BF1 - HPS = 0
议员C + + LPS - HPS = 0
LE1 + HE1 + C - I1 = 0
HE1 +何+ BF1 - BF2议员= 0
1267.8 HE1 + 1251.4 LE1 + 192 C + 3413 P1 - 1359.8 I1 = 0
合1267.8 + 1251.4 LE2 + 3413 P2 - 1359.8 I2 = 0

现在写Aeq矩阵和说真的对应于这些方程的向量。在MATLAB工作区,创建Aeq矩阵作为8-by-16零矩阵,对应于8 16个变量的线性方程组。创建说真的向量与八个组件,所有零。

Aeq = 0 (8, 16);说真的= 0 (8,1);Aeq ([LE2 HE2, I2]) = (1 1 1);Aeq (2, [LE1 LE2, BF2,有限合伙人))= (1,1,1,1);Aeq ([I1、I2 BF1, HPS]) = (1, 1, 1, 1);Aeq (4, [C、议员、有限合伙人,HPS]) = (1, 1, 1, 1);Aeq (5, [LE1 HE1 C, I1)) = (1, 1, 1, 1);Aeq(6日[HE1 HE2, BF1 BF2,议员))= [1,1,1,1,1);Aeq(7日[HE1 LE1 C, P1, I1)) = (1267.8、1251.4,192, 3413, -1359.8);Aeq (8, [HE2 LE2, P2, I2]) = (1267.8, 1251.4, 3413, -1359.8);

编写目的

目标函数是

fTx=HPS 0.002614 + 0.0239 + 0.009825 EP页

这个表达式写成一个向量f乘数的x向量:

f = 0(大小(变量));f ((HPS PP EP)) = (0.002614 0.0239 0.009825);

与linprog解决这个问题

现在,您已经输入所要求的linprog解算器。所说的解算器和打印输出格式化的形式:

选择= optimoptions (“linprog”,“算法”,对偶单纯形的);[x fval] = linprog (f, A、b Aeq,说真的,磅,乌兰巴托,选项);d = 1: N流(' % 12.2 f \ t % s \ n”x (d)、变量d {})结束fval

结果:

找到最优解。136328.74 I1和I2 HE1 128159.00 244000.00 143377.00 0.00 HE2 LE1 100623.00 LE2 8169.74 C 0.00 BF1 6250.00 100623.00 271536.00 380328.74 0.00 BF2 HPS议员有限合伙人P1 7060.71 P2 11239.29页760.71 EP fval = 1.2703 e + 03

检查解决方案

fval输出为目标函数的最小值在任何可行点。

解向量x是目标函数的最小值。注意:

  • BF1,BF2,LE10,他们的下界。

  • I2244000年,其上界。

  • 的非零组件f向量是

    • HPS- - - - - -380328 .74点

    • - - - - - -11239 .29

    • EP- - - - - -760.71

这段视频优化建模,第2部分:转化成解算器形式给的解释这些特征的原始问题。

参考书目

[1]埃德加·托马斯·F。,David M. Himmelblau.化工过程的优化。麦格劳-希尔,纽约,1988年。

相关的话题