有一个旅游公司承包一条旅游线路,未来四周内的大巴车需求分别是: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>

得到最优解: x*=4, x*=1, x*=x*=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格式的数学概念模型

旅游公司租车问题 —— 动态规划 v.s. + Leapms线性规划-LMLPHP


动态规划方法:

d: 第k周的需求车数;s : 第k周周初库存车辆数量;x: 第k周周初租车数量;y第k周周初还车数量。

递推方程:

f(s)=min{3000x+2000(s-y)+f(s)),    (1)

其中 s=s+x-y,                                   (2)

s≥d,                                             (3)

x≥0, y≥0。                                       (4)

<代数式求解非常繁琐> 。。。

图解法:

(1)根据题意,共四个阶段, 把状态取为阶段最后时刻的保有车数,每个周期的最大状态是5,最小是该阶段用车数量。画出阶段及状态:

旅游公司租车问题 —— 动态规划 v.s. + Leapms线性规划-LMLPHP

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

旅游公司租车问题 —— 动态规划 v.s. + Leapms线性规划-LMLPHP

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

旅游公司租车问题 —— 动态规划 v.s. + Leapms线性规划-LMLPHP

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

旅游公司租车问题 —— 动态规划 v.s. + Leapms线性规划-LMLPHP


05-02 07:17