使用工具解决实际问题-线性规划

目录

一、问题

二、流程

①确定目标

②确定条件

 ③寻找工具

④工具解读

⑤参数设置


一、问题

假设我们需要从北京(0号节点),运送一批货物到上海(7号节点),中间的1-6号节点都是中转站。如上图所示。

不同的节点有不同的发送货物的上限,比如0发往1,最多发3吨,0发往2,最多发2吨,1可以发往4/5号节点,分别是最多5吨和1吨。 

如何能使从北京发往上海的发送的货物重量达到最大?

二、流程

①确定目标

一次发送的货物重量最大,说明从0号节点出发的时候,量最大,因此,我们的目标就是:

 其中,x01代表从0号节点到1号节点的货物重量。

②确定条件

根据“发送的货物重量等于接收的货物重量”,我们有如下条件:

 ③寻找工具

根据我们的目标函数,我们可以知道该问题属于线性规划,于是我们可以搜索是否有相关的库,比如搜索python linear programming library

 

④工具解读

后面还有更多详细的有关这个工具的解释。

根据描述,我们需要设置一些参数:

最小化的目标函数是c.T @ x的形式;条件中的A_eq, B_eq;x的取值范围

⑤参数设置

由于我们的问题是最大化问题,因此加个负号,转为最小化问题。因此:

由于c是要和x进行矩阵运算的,并且原本的x01+x02+x03由于转成了最小化问题变成-x01-x02-x03

所以c中每一个数字对应到每一个x参数上之后,把前三个设置为-1

 我们的限制条件是类似于x26=x67,也就是x26-x67=0,因此,对应位置置为1或者-1即可,其他地方置为0,对于所有的条件都这样写。

对于x的取值范围,直接形成一个元组形成的列表即可。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值