线性规划中的单纯形法与内点法(原理、步骤以及matlab实现)(一)

线性规划(Linear Programming Problem:LPP)是凸优化以及现实生活中经常遇到的问题,解决线性规划问题常用的方法有单纯形法(Simlex Method)(普通单纯形法,大M法,两阶段法,对偶单纯形法)以及内点法(karmarkar method)

matlab中求解线性规划使用 linprog(f, A, b, Aeq, beq, lb, ub)以及revised(c, b, a, inq, 1)

注:f为目标函数(min形式)系数矩阵,A为限制条件系数矩阵,b为右端值矩阵(元素可以小于零),Aeq为等式约束的系数矩阵,beq为等式约束的右端值矩阵,lb和ub为未知数的下限和上限

1.LPP 

2.Simplex Method

每一次迭代的tableau 格式如下:

 

=====================================================================

=====================================================================

换入基、换出基的选择:

原理:

所以标准型可以换成以下的形式:

迭代的思想:

 

 

解的情况讨论:

 

========================================================================

========================================================================

2.1 Simplified Simplex Method (普通单纯形)

LPP中的约束条件全是等式约束

standard form

 注:这里的右端值b必须全部非负

 下面举例说明该种方法的应用以及matlab的两种实现

 

Solution 

首先引入变量(slack or surplus)将原问题转为标准格式:

下面开始迭代:

first tableau

 

将x1作为基变量换出x4

second tableau

将x2作为基变量换出x3

third tableau

 

可以看到

所有的z_j-c_j都是非负的,所以此时的x值是最优值,答案为:

matlab实现

linprog() : 

注意:linprog()解决问题的标准格式如下:

 

所以需要转换原问题为最小化问题!!!

 

f = [-2, -1];
A = [3 4; 6 1];
b = [6 3];
[x, fval] = linprog(f, A, b)

 

 下面贴出运行结果

revised():

注意:该函数不是内置函数,需要自行下载函数,附上网址:http://cn.mathworks.com/matlabcentral/fileexchange/26554-revised-simplex-method?focused=5147615&tab=function

 

c = [2 1];
A = [3 4; 6 1];
b = [6 3];
inq = [-1 -1];
revised(c, b, A, inq, 0)

 

 

 

转载于:https://www.cnblogs.com/Mr-ZeroW/p/optimization.html

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值