标签:数学 .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