微软存油中转问题的最优解构造及证明

本文探讨了在微软设定的油中转问题中,如何构建最优解并进行证明。通过一系列推论,得出汽车从A点到B点需要设置7个中转站,每个中转站的汽油量分配策略,以及最小耗油量为3836.50公升。
摘要由CSDN通过智能技术生成
问题: 一辆载油 500升的汽车从A开往1000公里外的B,已知汽车每公里耗油量为1升,A处有无穷多的油,其他任何地点都没有油,但该车可以在任何地点存放油以备中转,问从A到B最少需要多少油?

乍一看,这道题目类似于小学奥数题,难度应该不大。但是仔细思考过后,发现其实不然。这个问题不仅难以构造最优解,而且无法使用计算机暴力破解(因为可能有无穷多种情况)。

接下来,我将给出构造过程及其完整证明(thanks to hzc,我修改了其中表意不明的部分)。

注:

最后一次行驶表示从A拿油出发直接到B的过程

Li可能表示第i个中转站,也可能表示最后一次行驶前第i个中转站中的油量

 

约束条件1:

油箱容量为0-500

说明到达每一个中转站L前后油箱容量都满足该条件。到达加油站前,原油量w1>=0,到达加油站后,油量w2>=w1且w2<=500且w2<=w1+Li(中转站i的总油量)

 

约束条件2:

中转站Li内汽油量>=0

 

推论1:

假设最后一次行驶后所有中转站内存储的汽油都被用尽,那么所需的油量等于总路径长度。

证明:

如果没有被用尽,说明之前加了比自己所需的更多的油,而这

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值