有一個旅游公司承包一條旅游線路,未來四周內的大巴車需求分別是: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:

