线性规划

数学简述

  • 线性规划其实在高中就已经接触过,其原理并不复杂,即通过线性约束条件,解决最优问题,但进入大学后,那肯定会对其定义概念进行升级一番,要不然不就显得很弟弟,于是加入矩阵后,其标准的问题型为:
    在这里插入图片描述其实上述的约束条件,个人认为就是对三类约束的分类:
  • 维数约束(每一个相等条件都是一种降维)
  • 线性约束
  • 域约束

上述为标准型的线性规划问题,其实线性规划也能够抽象解决离散问题,比如我在建模书上看到用其解决带有离散性质的绝对值问题,但建模书中,又讲用线性规划去解决指派问题(图论中讨论的问题),我觉的这很没道理,虽然在模型的构建上能够说的过去(x范围为(0,1))但其都没有所谓的域的概念,何谈线性呢?指派问题还是应该归结到图论中的极大匹配问题,才是正解。

Matlab试跑

简单的测试代码:

 f=[-2;-3;5];
 a=[-2,5,-1;1,3,1];
 b=[-10,12];
 aeq=[1,1,1]
 beg=7;
 [x,-y]=linprog(f,a,b,aeq,beg,zeros(3,1));

可以看出其语法格式还是挺简单的,但要在使用过程中依据matlab标准线性规划型进行灵活的变换。

  • 或许是鄙人见识浅薄了,刚才又发现matlab能对整数进行规划,问题和代码如下:
    在这里插入图片描述
f_12=[7 5 9 6 3];
ic_12=[1,2,3,4,5];
A_12=[56,20,54,42,15;1,4,1,0,0;-1,-2,0,-1,-2];
b_12=[100;4;-2];
lb_12=zeros(5,1);
ub_12=ones(5,1);
[x_12,fval_12,flag_12]=intlinprog(f_12,ic_12,A_12,b_12,[],[],lb_12,ub_12)

此题我们不难发现,如果要进行整数的规划的话,只需要在linprog前,加一个int,就可以,如果要实现0,1二值规划,只需要在整数规划的基础上,加一个最大不超过2的线性限制就可以了。

可视化

除了上述问题外,怎么实现可视化,也是一个重要的问题,图论的话,matlab有专门的可视化工具,但线性规划去做可视化的话,好像没有专门的模块,但我们通过matlab的画图模块,自己做约束条件,能够很容易的实现上述目的,或者利用python 的matlibplot库去实现均可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值