码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-11-30 20:20:04      阅读:252      评论:0      收藏:0      [点我收藏+]

标签:数学   .com   ...   load   线性规划   span   库存   目标   bsp   

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

技术分享图片

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


 

动态规划方法:

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)

动态规划递推:

    k=4时: s5=d4=5, 由(2)知道 5=s4+x4-y4, 即:y4=s4+x4-5,代入(1):

                  f(s4)=min{3000x4+2000(5-x4)+0}    →  f*(s4) = 10000, x4*=0

    k=3时:x3与y3只有一个为0, 且 s3+x3-y3≥d3=4 .

                  f3(0)=min{3000x3+2000(0-y3)+10000}  →  f3(0)* = 22000, x3*=4, y3*=0

        f3(1)=min{3000x3+2000(1-y3)+10000}  →  f3(1)* = 21000, x3*=3, y3*=0

        f3(2)=min{3000x3+2000(2-y3)+10000}  →  f3(2)* = 20000, x3*=2, y3*=0

        f3(3)=min{3000x3+2000(3-y3)+10000}  →  f3(3)* = 19000, x3*=1, y3*=0

        f3(4)=min{3000x3+2000(4-y3)+10000}  →  f3(4)* = 18000, x3*=0, y3*=0

        f3(5)=min{3000x3+2000(5-y3)+10000}  →  f3(5)* = 18000, x3*=0, y3*=1

   k=2时:x2与y2只有一个为0, 且 s2+x2-y2≥d2=1 .

               f2(0)=min{3000x2+2000(0-y2)+f3(0+x2-y2)}  →  f2(0)* = 24000, x2*=1, y2*=0

               f2(1)=min{3000x2+2000(1-y2)+f3(1+x2-y2)}  →  f2(1)* = 25000, x2*=1, y2*=0

               f2(2)=min{3000x2+2000(1-y2)+f3(1+x2-y2)}  →  f2(1)* = 25000, x2*=1, y2*=0

                   ...

 <非常繁琐> 。。。

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


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

标签:数学   .com   ...   load   线性规划   span   库存   目标   bsp   

原文地址:https://www.cnblogs.com/leapms/p/10045681.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!