旅游公司租车问题 —— 动态规划 v.s. + Leapms线性规划
有一个旅游公司承包一条旅游线路,未来四周内的大巴车需求分别是:4辆、1辆、4辆和5辆。该公司向租车公司租赁服务,租车公司的计价方案是:租车收取一次性手续费3000,每车每周费用2000。求最节省租车方案。
线性规划方法
参数定义:
d[k]: 第k周的需求车数;
s[k]: 第k周周初库存车辆数量;
x[k]: 第k周周初租车数量;
y[k]第k周周初还车数量。
目标
数学式:
$\min \sum_{k=1}^{n}(3000x_k+2000(x_k+s_k-y_k))$
+Leapms形式:
min sum{k=1,...,n}(3000x[k]+2000(x[k]+s[k]-y[k]))
约束(+Leapms形式):
s[k]+x[k]-y[k] ≥ d[k] | k=1,...,n // 每周车辆需求约束
s[k+1] =s[k] + x[k] - y[k] | k=1,...,n-1 //库存变化逻辑
数据:
n=4
d={4 1 4 5}
完整+Leapms模型:
min sum{k=1,...,n}(5000x[k]+2000(s[k]-y[k]))
subject to
x[k]+s[k]-y[k]>=d[k]| k=1,...,n
s[k+1]=x[k]+s[k]-y[k]| k=1,...,n-1
s[1]=0
where
n is a number
d is a set
x[k],s[k],y[k] are variables of nonnegative numbers -->
|k=1,...,n
data
n=4
d={4 1 4 5}
直接求解
在 +Leapms 中使用 load 和 mip 命令求解。
Welcome to +Leapms ver 1.1(162260) Teaching Version -- an LP/LMIP modeling and
solving tool.欢迎使用利珀 版本1.1(162260) Teaching Version -- LP/LMIP 建模和求
解工具. +Leapms>load
Current directory is "ROOT".
.........
tour_bus.leap
.........
please input the filename:tour_bus.leap
================================================================
1: min sum{k=1,...,n}(5000x[k]+2000(s[k]-y[k]))
2: subject to
3: x[k]+s[k]-y[k]>=d[k]| k=1,...,n
4: s[k+1]=x[k]+s[k]-y[k]| k=1,...,n-1
5: s[1]=0
6: where
7: n is a number
8: d is a set
9: x[k],s[k],y[k] are variables of nonnegative numbers -->
10: |k=1,...,n
11: data
12: n=4
13: d={4 1 4 5}
================================================================
>>end of the file.
Parsing model:
1D
2R
3V
4O
5C
6S
7End.
..................................
number of variables=12
number of constraints=8
..................................
+Leapms>mip
relexed_solution=49000; number_of_nodes_branched=0; memindex=(2,2)
The Problem is solved to optimal as an MIP.
找到整数规划的最优解.非零变量值和最优目标值如下:
.........
s2* =4
s3* =4
s4* =4
x1* =4
x4* =1
.........
Objective*=49000
.........
+Leapms>
得到最优解: x1*=4, x4*=1, x2*=x3*=0, 目标函数值:49000。
CPLEX求解
在+Leapms环境中输入cplex命令,即可触发CPLEX求解器对问题进行求解。
+Leapms>cplex
You must have licience for Ilo Cplex, otherwise you will violate
corresponding copyrights, continue(Y/N)?
你必须有Ilo Cplex软件的授权才能使用此功能,否则会侵犯相应版权,
是否继续(Y/N)?y
+Leapms>
Tried aggregator 1 time.
LP Presolve eliminated 2 rows and 3 columns.
Aggregator did 1 substitutions.
Reduced LP has 5 rows, 8 columns, and 15 nonzeros.
Presolve time = 0.02 sec. (0.01 ticks) Iteration log . . .
Iteration: 1 Dual infeasibility = 4000.000000
Iteration: 4 Dual objective = 46000.000000
Solution status = Optimal
Solution value = 49000
s2=4
s3=4
s4=4
x1=4
x4=1
+Leapms - Latex数学概念模型
在+Leapms环境下,使用 “latex"命令可以把上面的+Leapms模型直接转换为如下Latex格式的数学概念模型

动态规划方法:
dk: 第k周的需求车数;sk : 第k周周初库存车辆数量;xk: 第k周周初租车数量;yk第k周周初还车数量。
递推方程:
f(sk)=min{3000xk+2000(sk-yk)+f(sk+1)), (1)
其中 sk+1=sk+xk-yk, (2)
sk+1≥dk, (3)
xk≥0, yk≥0。 (4)
<代数式求解非常繁琐> 。。。
图解法:
(1)根据题意,共四个阶段, 把状态取为阶段最后时刻的保有车数,每个周期的最大状态是5,最小是该阶段用车数量。画出阶段及状态:

(2)画出状态转移和决策含义:

(3)使用倒序法递推最优解:

(4) 得到最优解: x1*=4, x4*=1, x2*=x3*=0, 目标函数值:49000:

旅游公司租车问题 —— 动态规划 v.s. + Leapms线性规划的更多相关文章
- Java练习 SDUT-3349_答答租车系统(面向对象综合练习)
答答租车系统(面向对象综合练习) Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 各位面向对象的小伙伴们,在学习了面向对 ...
- Java学习笔记(四)——好记性不如烂键盘(答答租车)
根据所学知识,编写一个控制台版的租车系统. 功能: 1. 展示所有可租车辆 2. 选择车型.租车辆 3. 展示租车清单,包含:总金额.总载货量及其车型.总载人量及其车型 代码参考imooc中Java课 ...
- [代码审计]某租车系统JAVA代码审计[前台sql注入]
0x00 前言 艰难徘徊这么久,终于迈出第一步,畏畏缩缩是阻碍大多数人前进的绊脚石,共勉. 系统是租车系统,这个系统是Adog师傅之前发在freebuf(http://www.freebuf.com/ ...
- java学习之租车系统
背景:有三种类型的车供给用户来租用 要求:控制台用户交互界面,根据用户需求输出租车价格,结果如下: 创建租车类主要设计过程: 创建租车类 创建Car父类,包含四种属性成员,重写构造方法 创建三种 ...
- 我的Java之旅——答答租车系统的改进
之前的答答租车系统虽然可以实现项目的要求,但是没有用Java面向对象,今天用面向对象的三大特性封装.继承和多态来改进原来的代码.题目和之前的代码参考上篇博客,这里不再述说. 改进后的代码: Vehic ...
- 我的Java之旅——答答租车系统
今天试着写了一个新的程序,叫做"答答租车系统",是慕课网上的一个综合练习,戳我看原题. 项目要求截图如下: 我的代码(简单粗暴版): Vehicle.java public cla ...
- Java学习笔记三十:Java小项目之租车系统
Java小项目之租车系统 一:项目背景介绍: 根据所学知识,编写一个控制台版的“呱呱租车系统” 功能: 1.展示所有可租车辆: 2.选择车型.租车量: 3.展示租车清单,包含:总金额.总载货量以及其车 ...
- Rol租车网项目总结
现在自行车的租聘如此火爆,我们是否需要加入这个浩浩荡荡的行列? 相比起现在ofo共享单车,摩拜单车.而我们的竞争力在何处? 如何能让我们的项目脱颖而出? 而我们的Rol租车网为什么要叫Rol呢? Ri ...
- 基于JSP+Servlet开发在线租车系统 java 源码
运行环境: 最好是java jdk 1.8,我们在这个平台上运行的.其他版本理论上也可以.IDE环境: Eclipse,Myeclipse,IDEA都可以tomcat环境: Tomcat 7.x,8. ...
随机推荐
- BZOJ_1196_[HNOI2006]公路修建问题_kruskal+二分答案
BZOJ_1196_[HNOI2006]公路修建问题_kruskal+二分答案 题意:http://www.lydsy.com/JudgeOnline/problem.php?id=1196 分析: ...
- Java中ArrayList学习笔记
1. 先看两段代码 这段代码在执行的时候会报 但是这样写就好着呢: 总结,研究报错的代码 ,在for循环的时候调用next()方法,next方法中调用了checkForComodification这个 ...
- MIP ACCESS细节剖析
什么是 MIP ACCESS MIP ACCESS 由百度 MIP 团队开发的一种页面访问权限控制机制,能够允许网页发布者在页面元素中定义内容标记,并结合用户访问情况进行综合评价,从而展现或隐藏页面中 ...
- 用Python学分析 - t分布
1. t分布形状类似于标准正态分布2. t分布是对称分布,较正态分布离散度强,密度曲线较标准正态分布密度曲线更扁平3. 对于大型样本,t-值与z-值之间的差别很小 作用- t分布纠正了未知的真实标 ...
- Nginx高并发优化方案
原网址: https://blog.csdn.net/HoeWang/article/details/81221463 一.一般来说nginx 配置文件中对优化比较有作用的为以下几项: 1. work ...
- redis的set类型!!!!
一.概述 在Redis中,我们可以将Set类型看作为没有排序的字符集合,和List类型一样,我们也可以在该类型的数据值上执行添加.删除或判断某一元素是否存在等操作.需要说明的是,这些操作的时间复杂度为 ...
- 浅析vue2.0的diff算法
一.前言 如果不了解virtual dom,要理解diff的过程是比较困难的. 虚拟dom对应的是真实dom, 使用document.CreateElement 和 document.CreateTe ...
- 利用策略模式优化过多 if else 代码
前言 不出意外,这应该是年前最后一次分享,本次来一点实际开发中会用到的小技巧. 比如平时大家是否都会写类似这样的代码: if(a){ //dosomething }else if(b){ //dosh ...
- 第一课《.net之--泛型》
今天我来学习泛型,泛型是编程入门学习的基础类型,从.net诞生2.0开始就出现了泛型,今天我们开始学习泛型的语法和使用. 什么是泛型? 泛型(generic)是C#语言2.0和通用语言运行时(CLR) ...
- if条件、while循环、for循环 相关练习
1.实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败! while True: name = input('请输入用户名:') psw = inpu ...