MỘT SỔ BÀI TỐN ÚNG Ĩ)ỤNG CỦA QUI HOẠCH ĐỘNG
5.2. CÁC QUÁ TRÌNH QUYẾT ĐỊNH VĨI NHIỀU THAM SỐ
THAM SỐ
Ta xét sự phân bổ hai loại tài nguyên vào N quá trình độc lập nhau: Giả sử, ta cĩ X đơn vị tài nguyên thứ nhất, y đơn vị tài nguyên thứ hai. Gọi Xj và yj là lượng tài nguyên thứ nhất, thứ hai phân cho quá trình thứ i và gịCXị, yị) là hàm hiệu quả tương ứng. Giả thiết rằng, các hàm hiệu quả này chỉ phụ thuộc vào Xị và yj phân cho quá trình i, chứ khơng phụ thuộc vào các lượng tài nguyên cịn lại phân cho các quá trình khác. Khi đĩ bài tốn phân bổ tối ưu hai loại tài nguyên cĩ thể phát biểu dưới dạng mơ hình sau:
N
R(xb x2,...., XN; yb y2,.... yN) = gị (Xị, yO => max (5.10)' j=i
Với điều kiện: ' N = X i=l •£yi = y (5-11) i=l Xj > 0 (i = 1,2,..., N) y. > 0 (1=1,2,. .., N)
Ta gọi fN(x,y) = max R(x1; X2,...., XN; yb y2,...., yN) (5.12) {xi,yi}
Trong đĩ các biến Xị và yj thoả mãn (5.11); X và y khơng âm; N = 1, 2,...
Khi đĩ hệ thức truy hồi đối vởi bài tốn cĩ dạng: f](x, y) = ểi(x, y) (5.13)
fN(x, y) = max max [gN(xN’ yN) + Ín-i(x ■ xn; y ■ ybi)] 0 < XN < X, 0 < yN < y
Với N > 2 (5-14)
Trong thực tế, ta cĩ thể gặp các bài tốn phân bổ một loại tài nguyên cho các quá trình khác nhau, nhưng lại cĩ hai loại ràng buộc về loại tài nguyên này. Mơ hình bài tốn cĩ dạng:
N
R(Xi, x2,..., XN) = X ểi (Xi) => max (5-15) i=l
Với điều kiện:
' Ny Hi (Xi ) < X y Hi (Xi ) < X i=l N (5.16) z bi (Xi ) < y i=l Xi > 0 (i = 1, 2,. . ., N)
Ta gọi fN(x,y) = max [g^Xj) + g2(x2) +....+ ễ>n(xn)] (5.17) ÍXịl
Các biến Xịd = 1, 2,...., N) thoả mãn điều kiện (5.16) Khi đĩ hệ thức truy hồi của bài tốn cĩ dạng:
(5.18) fi(x,y) = max gx(X1)
ajíxp < X bjixx) < y
fN(x,y) = max [gbi(xN) + *N - 1ÍX - aN(xN); y - bN(xN)] ( 5.19) aN(x) < X
bN(x) < y
với N = 2, 3, 4,...
Tương tự ta cĩ thể mơ hình ho á và xây dựng hệ thúc truy hồi cho bài tốn phân bổ nhiều loại tài nguyên vào các quá trình khác nhau hoặc bài tốn phân bổ một loại tài nguyên vởi nhiều ràng buộc độc lập.
Việc giải các bài tốn trên cĩ thể gặp những khĩ khăn nhất định trong tính tốn, đơi khi để khắc phục những khĩ khăn này ta phải dùng các cơng cụ tốn học khác. Vì vậy ta khơng nghiên cứu chi tiết ở đây.
5.3. BÀI TỐN Dự TRỮ TỐI Ưu HỆ THỐNG KHO
Giả sử cĩ một hệ thống kho chuyên dùng đối với một loại sản phẩm nào đĩ. Hệ thống kho này cĩ sức chứa B và dự trữ ban đầu A. Loại hàng hố này, giá mua và bán biến động theo thời vụ (hay thời kỳ). Bài tốn đặt ra là, tìm sách lược mua vào bán ra cho từng thời kỳ để sao cho tổng tiền lãi thu được đối với cả quá trình (chẳng hạn một năm) là lớn nhất, đồng thời thoả mãn một số điều kiện hạn định trước khi kinh doanh mặt hàng này.
Giả sử quá trình ta xét được chia thành N thời kỳ (khơng nhất thiết đều nhau). Ta ký hiệu Cị là giá muà một đơn vị hàng ở thịi kỳ i, Pị là giá bán một đơn vị hàng trong
thời kỳ này, Xj là lượng hàng mua vào; Yi là lượng hàng bán ra trong thời kỳ i (i = 1, 2,..., N). Các biến x¡ và y¡j phải thoả mãn các điều kiện sau:
a. Lượng hàng hố cịn lại ở cuối mỗi thời kỳ khơng vượt quá sức chita B của kho,
b. Lượng hàng bán ra trong thời kỳ i khơng vượt quá lượng hàng hố cịn dự trữ ở cuối thời kỳ i-1. cần xác định sách lược mua vào, bán ra cho từng thời kỳ để tổng tiền lãi thu được qua N thời kỳ là lớn nhất.
Giải
Ta ký hiệu PN là tổng tiền lãi thu được sau N thời kỳ; khi đĩ mơ hình của bài tốn như sau:
N
Pn = E (Pj yj - ci xj) => max (5-20) j=i
với các điều kiện:
A + ¿(Xj - yj) B> 1 = 1,2,...,N (5.21) j=i i-l yj < A + (Xj - y¡), i = 1,2,..., N (5.21) J=1 yi A Xj > o, y¡ > 0 Vi = 1, 2,...., N. Nếu ta ký hiệu: Fn(A) = max PN {Xị, yị}
Trong đĩ Xị, Yi (i = 1, 2,..., N) thoả mãn các điều kiện (5.21) - (5.23). Ta chứng minh hệ thức truy hồi đối với bài tốn (5.20) - (5.23) cĩ dạng sau:
Fj(A) = P1A
và Fn(A) = max [piyi - qx! + FN .! (A + Xj - yx)J (5.25) X|, yi với N > 2
trong đĩ xb yx biến thiên trong miền
Dy XpYi > 0 < Yi < A X1 - yi < B - A (5.26) Chứng minh
Trước tiên ta chứng minh hệ thức (5.24). Từ mơ hình bài tốn (5.20) - (5.23) ta cĩ:
Fj(A) = max [piyi - c1x1] (5.24a) X1> yi
Với P1 và Cj là hằng số, thì Fi(A) sẽ đạt giá trị lớn nhất khi yx nhận giá trị cực đại và Xj nhận giá trị cực tiểu. Xét miền Dx ta thấy
max yi = A, min xx = 0
Dx Di
Do đĩ: FX(A) = PXA - q.o = P1A
Bây giờ chúng ta giả thiết rằng ỏ thời kỳ thứ nhất, chúng ta đã chọn sách lược X! và y1. Như vậy, ỏ cuối thời kỳ thứ nhất hoặc bắt đầu thời kỳ thứ hai, hệ sẽ ở trạng thái (A + Xj - yi) và tiền lãi thu được trong thời kỳ thứ nhất là P]^ = PxYi - CịXp
Chúng ta sẽ nghiên cứu quá trình với N giai đoạn và giả thiết rằng sau thời kỳ thứ nhất, chúng ta sử dụng sách lược tối ưu đối với trạng thái hình thành của hệ thống sau thời kỳ này, thì sau N thời kỳ, tổng tiền lãi sẽ là
PN = P1Y1 - C1X1 + fn - 1(A + X] - yj) (5.27) Và như vậy sách lược tối ưu đối với cả N giai đoạn sẽ ứng với
Fn(A) = max - cpq + FN. j(A + Xi - y^,
v-i.Yi.
ở đây x1( yx nằm trong miền Dx xác định bỏi (5.26).
Ví dụ 5.4.
Chúng ta xét q trình cĩ 4 thời kỳ, trong đĩ A = 100, B = 200, Pị và Cị cho trong bảng 5.10 Bảng 5.10 Giá Thời Pi Ci 1 6 4 II 7 4 III 3 4 IV . 5 4
Cần xác định sách lược mua, bán tối ưu để tổng lãi thu được lớn nhất.
Giải
1. Chiíng ta xác định sách lược tối ưu và hiệu quả sau thời kỳ N - 1. Trong ví dụ của chúng ta, ta xét trạng thái
của hệ sau thời kỳ III (xuất phát từ cuối). Vì dự trữ ở thịi kỳ cuối bằng A và đến cuổì quá trình chỉ cịn một bưởc nên tiền lãi tối ưu thu được là:
FX(A) = p4A = 5.A
Thật vậy, việc xác định sách lược tối ưu, tức là chọn x4(A) và y4(A) từ điều kiện:
[ x4,y4 > 0 y4 < A x4-y4 < 200-A
Theo hệ thức (5.24a) đối với Fx, ta nhận được: FX(A) = max (5y4 - 4x4)
x4,.y4
Giá trị lớn nhất của y4 bằng A, giá trị nhỏ nhất của x4 bằng 0, ở đây X4(A) = 0, y4(A) = A và như vậy:
FX(A) = 5A
2. Chúng ta xét trạng thái hình thành sau khi kết thúc thời kỳ N - 2, ỗ đây cần tìm tiền lãi lớn nhất
F2(A) = max [p3x3 - C3X3 + FX(A + x3 - y3)l x3, y3
= max [3y3 - 4x3 + 5(A + x3 - y3)] x3, y3
= max [5A + x3 - 2y3l x3> -y3
= 5A + max [x3 - 2y3J trên miền x3, y3
(5.27) x3 > O
< o < y3 < A Xg - y3 < 200 - A
Rõ ràng, biểu thức (Xg - 2y3) sẽ đạt được max khi x3 nhận giá trị lớn nhất cĩ thể và y3 nhận giá trị nhỏ nhất. Từ (5.27) ta cĩ:
x3 < 200 - A + y3
và do vậy, giá trị lởn nhất của x3 là: 200 - A + y3 Thay giá trị của x3 vào biểu thức x3 - 2y3, ta được
max [x3 - 2y3] = max [200 - A - y3] x3, y3 y3
y3 nhận giá trị nhỏ nhất bằng 0 thì biểu thức trên nhận giá trị lớn nhất, nên:
F2(A) = 5A + 200 - A = 200 + 4A Sách lược tối ưu củo. giai đoạn III ià
Xg(A) = 200 - A y3(A) = 0
3. Bây giờ ta xác định tiền lãi lớn nhất và sách lược tối ưu đơi với trạng thái sau thời kỳ N - 3
F3(A) = max [p2y2 - C2X2 + F2(A + x2 - y2)J x2, y2
= max [7y2 - 4x2 + 200 + 4(A + x2 - y2)J x2, y2
= max [4A + 200 + 3y2] x2, y2
= 200 + 4A + max 3y2, với điều kiện x2, y2
x2 > 0
< 0 <■ y2 < A (5.28) x2 - y2 < 200 - A
Dễ thấy giá trị max 3y2 với ràng buộc (5.28) đạt tại x2,y2
y2 = A và x2 = 0 nên:
F3(A) = 200 + 4A + 3A = 200 + 7A
Sách lược tối ưu trong giai đoạn II
x2(A) = 0 y2(A) - A
4. Đối với thời kỳ I (giai đoạn I) ta cĩ
F4(A) = max [Pi-Yi - cpq + F3(A + Xi - yx)] *1> yi
- max [6yx - 4xx + 200 +(7A + X! - y^] X1>. Y1
= max [3xj - y1 + 200 + 7A] X1, Y1
= 200 + 7A + max [3x! - yj] trên miền *1, Y1
(5.29) X] > O
< O < yj < A X1 -yx < 200-A
Từ (5.29) ta thấy giá trị lớn nhất của X! là 200 - A + y! thay vào biểu thức trên, ta cĩ:
F4(A) = 200 + 7A + max [60Ơ - 3A + 3yx - y-l] yi
= 200 + 7A + max [600 - 3A + 2yJ Ï1
Từ (5.29) ta lấy giá trị lớn nhất của yj = A. Khi ấy:
F4(A) = 600 - 3A + 2A + 7A + 200 = 800 + 6A,
sách lược tối ưu ở thời kỳ I
Xj(A) = 200, y^A) = A
Vì ồ thời kỳ I ta cĩ A = 100, nên tổng tiền lãi sau bốn thời kỳ là F4(A) = 800 + 6A = 1400 đơn vị tiền. Chúng ta lần lượt xác định sách lược tối ưu đơi với từng thời kỳ và ghi trong bảng 5.11 Bảng 5.11 |i Ai xi yi ll 100 200 100 II 200 0 200 III 0 200 0 IV 200 0 200
5.4. BÀI TỐN Dự TRỮ VỚI NHU CẦU XÁC ĐỊNH NHƯNG PHÂN BỐ KHƠNG ĐỂU
Giả sử nhu cầu về một loại hàng hố nào đĩ trong khoảng thời gian T là Q đơn vị. Nhu cầu này hồn tồn xác định nhưng phân bố khơng đều, nghĩa là cường độ tiêu thụ trong các khoảng thời gian khác nhau cĩ thể khác nhau. Để bổ sung dự trữ, ta phải tiến hành các hợp đồng đặt hàng, cứ mỗi lần đặt hàng, phải chịu một chi phí nào đấy, ta gọi là chi phí đặt hàng, ta giả thiết chi phí này khơng phụ thuộc vào kích thước lơ hàng đặt. Loại hàng này cĩ giá mua vào khơng đổi nên ta khơng cần đưa vào mơ hình trị giá của các lơ hàng đặt. Hơn nữa, ta giả thiết loại hàng này được sản xuất nhanh và vận chuyển nhanh nên khơng cần quan tâm đến khoảng thời gian tính từ khi đặt hàng đến khi hàng chuyển về kho. Để đáp ứng cho nhu cầu tiêu thụ ồ thời kỳ nào đĩ thì lượng hàng ở trong kho vào đầu thời kỳ này phải ít nhất bằng lượng hàng yêu cầu của thời kỳ đĩ. Nếu đặt mua hàng ít lần thì tiết kiệm được chi phí đặt hàng, nhưng khi hàng khơng tiêu thụ hết ngay thì phải tốn chi phí bảo quản. Chi phí này tỷ lệ thuận với thời gian bảo quản.
Câu hỏi đặt ra là: khi nhu cầu trong cả khoảng thời gian T và của từng thời kỳ đã biết, chi phí đặt hàng, chi phí bảo quản đã biết, ta cần phải tiến hành bao nhiêu lần đặt hàng và khối lượng mỗi lơ hàng đặt từng lần là bao nhiêu để thoả mãn được nhu cầu của tất cả các thời kỳ nhưng chi phí tổng cộng là ít nhất.
Ta ký hiệu:
Cp Chi phí bảo quản một đơn vị hàng trong một đơn vị thời gian
Khoảng thời gian T được chia làm n thời kỳ (cĩ thể khơng đều nhau), gọi tị là thời điểm đầu của thời kỳ i (i = 1, n) và Qj là nhu cầu trong thời kỳ i (i =1, n). Lượng hàng này phải cĩ ỗ kho chậm nhất là vào đầu thời kỳ i hoặc cĩ thể mua để lưu ồ kho từ trưởc một sơ' thời kỳ.
Từ giả thiết nêu trên, ta thấy khi tìm sách lược bổ sung dự trữ tối ưu, ta khơng cần thiết đưa vào mơ hình chi phí bảo quản lượng hàng yêu cầu của thịi kỳ i, tính từ đầu thời kỳ i cho đến thời điểm giao cho khách hàng vì những chi phí này đối với mọi cách nhập hàng vào là giống nhau. Như vậy, ta chỉ cần tính chi phí bảo quản đối với những lượng hàng đã lưu kho, ít nhất một thời kỳ. Cũng từ các giả thiết trên ta thấy rằng: đối với sách lược tối ưu thì khối lượng (kích thước) lơ hàng đặt lần i là Xị (i = 1,2,...), sẽ nhận một trong các giá trị:
xi = Qi> xi = Qi + Qi+1 xi = Qi + Qi+1 +•••• + Qn-
Vì nếu khơng thoả mãn đủ nhu cầu, chảng hạn đối với thời kỳ cuối, thì chúng ta phải tiến hành thêm một lần đặt hàng để lượng hàng bổ sung này phải cĩ ỏ kho vào thời điểm đầu thời kỳ n và chịu 1 chi phí đặt hàng Cs, cộng thêm chi phí bảo quản lượng hàng đã mua từ trước để thoả mãn một phần nhu cầu thời kỳ n. Cách tốt hơn: lần đặt hàng cuối cùng ta đặt 1 lượng hàng đúng bằng nhu cầu thời kỳ n và chuyển vê' vào đúng đầu thời kỳ này thì giảm được chi phí bảo quản.
Ta gọi N(ij) là tổng chi phí, gồm chi phí của các lần đặt hàng và chi phí bảo quản hàng dự trữ, nhằm thoả mãn nhu cầu của các thời kỳ từ i đến j. Khi đĩ hàm chi phí cĩ dạng:
(5.30) N(ij) = cs + Ci ỵ (tk - ti) Qk
k=i
trong đĩ i = 1, 2,..., n j = i,_ i + l,--. n
Nhiệm vụ đặt ra là: xác định khối lượng của các lần đặt hàng Xj sao cho tổng chi phí N(ij) đơi với cả thời gian T là nhỏ nhất.
Như vậy, mơ hình bài tốn là:
N(ij) = cs + (tk - tị) Qk -> min
k=l
ĩ = 1, 2,...., n j = i, i + 1,...., n với điều kiện:
Xị > 0, ¿Xị = Q
i=l
Ta ký hiệu Kj) là chi phí nhỏ nhất để đảm bảo dự trữ cần thiết, đáp ứng cho nhu cầu trong các thời kỳ, từ đầu kế hoạch đến hết thời kỳ j, thì
flj) = min [N(ij) + Ki - 1)] (5.31) 1 < i < j
Đối với Kl), từ (5.30), ta cĩ:
Kl) = cs (5.32)
Dựa vào hệ thức (5.32), (5.31) ta lần lượt tính được dẫy Kl), K2),...„ Kn).
ở đây, Kn) sẽ cho ta tổng chi phí tối thiểu (nhỏ nhất) cần tìm.
Ví dụ 5.5.
Giải bài tốn trong mơ hình trên với các số liệụ sau:
Thời kỳ 1 2 3 4 5 6 7 8
Đầu thời kỳ i (tính theo
tháng kể từ đầu năm) 0 3 4 6 7 8 11 12
Nhu cầu (Qị) 20 30 60 20 50 70 40 10
Chi phí đặt hàng Cs = 150, chi phí bảo quản một đơn vị hàng trong thời gian 1 tháng là 2.
Lập oảng tính N(ij) Bảng 5.12
Những sơ liệu được tính trong bảng theo cơng thức (5.30)
1 2 3 4 5 6 7 8 1 150 2 330 150 3 270 150 4 390 230 150 5 790 530 250 150 6 530 290 150 7 610 390 150 8 170 150
Chú ý:
Trong mỗi cột ta tiếp tục tính tới khi hiệu của hai phần tử liền kề vượt q 150. Nếu hiệu lớn hơn 150 thì cách thích hợp hơn là để thoả mãn nhu cầu của thời kỳ đĩ, ta chỉ cần tiến hành thêm 1 lần đặt hàng mới (chi phí 150) thời điểm đặt hàng tính sao cho hàng được chuyển tới kho đúng vào thời điểm đầu của thời kỳ này.
Ta tính dẫy giá trị của f(1), f(2),.... f(8) theo (5.32). (5.31) f(D = cs = 150 f(2) = min {N(2,2) + f 1); N(l,2)} = min {150 + 150; 330} = 300 f(3) = min {N(3,3) + «2); N(2.3) + ftp; N(l,3)} = min {150 + 300; 270 + 150} = 420 f(4) = min < N(4,4)+f(3) N(3,4) + f(2) N(2,4) + f(l) i................... N(5,5) + f(4) N(4,5) + f(3) N(3,5) + f(2) N(2,5) + f(l) min < f(5) = min ’ f(6) ► - min < N(5,6) + f(4) 150 + 420 230 + 300 390+ 150 150 + 530 250 + 420 = 530 = 670 . í 150+ 670 ì min [290+ 530 J = 820 > min <
. [ 150+ 820 i _min I 390 + 670 J 970 min I 390 + 670 J 970
min I 170 + 820 Jí 150+ 970 i = 990,
ở đây f(8) = 990 đơn vị tiền cho ta tổng chi phí nhỏ nhất. Để tìm sách lược mua dự trữ tối ưu ta tìm từ f(8) ngược lên. Lần cuối mua 50 đơn vị hàng thoả mãn nhu cầu thời kỳ 7 và 8. Tìm từ f(6): lần 4 mua 120 đơn vị hàng thoả mãn nhu cầu thời kỳ 5 và 6. Tìm từ f(4): lần 3 mua 80 đơn vị hàng thoả mãn nhu cầu thời kỳ 3 và 4. Tìm từ f(2): lần 2 mua 30 đơn vị hàng thoả mãn nhu cầu thịi kỳ 2. Tìm từ f(1): lần 1 mua 20 đơn vị hàng thoả mãn nhu cầu thời kỳ 1.
Phương án tối ưu:
Lần 1: mua 20 đơn vị hàng thoả mãn nhu cầu thời kỳ 1. Lần 2: mua 30 đơn vị hàng thoả mãn nhu cầu thời kỳ 2. Lần 3: mua 80 đơn vị hàng thoả mãn nhu càu thơi kỳ 3 và 4 Lần 4: mua 120 đơn vị hàng để thoả mãn nhu cầu thời kỳ 5 và 6 Lần 5: mua 50 đơn vị hàng để thoả mãn nhu cầu thồi kỳ 7 và 8 Bằng cách tương tựta tìm được phương án tối ưu hai: