Giới thiệu
Bài toán vận tải (Transportation Problem) là một mô hình bài toán vận chuyển hàng hóa từ một số nguồn, kho (điểm bắt đầu) đến một số điểm tiêu thụ (điểm kết thúc) thỏa mãn một số những ràng buộc cho trước với tổng chi phí tối thiểu Để có được giải pháp tối ưu (Optimal Solution) cho bài toán, cần có giải pháp khả thi ban đầu (Intial Feasible Solution) cho các quy trình giải pháp hiện có Lịch sử của bài toán vận tải có từ rất lâu, và là một trong những dạng biến thể của bài toán lập trình tuyến tính (Linear Programming), bài toán vận tải có tác động lớn đến việc thiết lập thuật toán giải cho bài toán lập trình tuyến tính.
Bài toán được F.L.Hitchcock xây dựng lần đầu tiên vào năm 1941, ông cũng đưa ra một quy trình tính toán gần giống với phương pháp đơn hình được thành lập sau này để giải quyết vấn đề. Trong giai đoạn chiến tranh thế giới 2 đang bùng nổ, T.C.Koopmans gặp phải vấn đề tương tự liên quan đến công việc của mình khi đang là thành viên của Joint Shipping Board.
Phương pháp đơn hình được phát triển bởi G.B.Dantzig để giải quyết bài toán lập trình tuyến tính một cách hiệu quả trong hầu hết các trường hợp Sau đó, phương pháp đơn hình được Dantzig áp dụng để giải bài toán vận tải và thu được phương án tối ưu được công bố vào năm 1951 Ngoài ra, Dantzig đề xuất một phương pháp riêng biệt mới để tìm phương án khả thi ban đầu cho bài toán vận tải, sau này được Charnes và Cooper đặt tên là quy tắc North West Corner(NWC).
Sự phát triển lý thuyết của một thuật toán giải pháp tối ưu như vậy là quan trọng Là một lớp của bài toán lập trình tuyến tính (LP), bài toán vận tải luôn là một giải pháp khả thi và tồn tại ít nhất một giải pháp tối ưu Tuy nhiên, điều kiện khả thi của bài toán không dẫn đến điều kiện tối ưu.
Mô hình toán học
Người ta cần vận chuyển một loại hàng hóa từmkho chứa hàng ( gọi làđiểm phát) đến n điểm tiêu thụ ( gọi làđiểm thu) Biết rằng: Điểm phát thứichứaa i đơn vị hàng,i=1, ,m; Điểm thu thứ jcầnb j đơn vị hàng, j=1, ,n Chi phí vận chuyển một đơn vị hàng từ điểm xuất phátiđến điểm thu jlàc i j ,i=1, ,mvà j=1, ,n Vấn đề đặt ra là cần xác định lượng hàng cần chuyển từ mỗi điểm phát đến từng điểm tiêu thụ như thế nào để chi phí vận chuyển là cực tiểu.
Ký hiệux i j là số lượng hàng cần vận chuyển từ điểm phát thứiđến điểm thu thứ j,i=1, ,m, j=1, ,n Các đại lượngx i j tạo thànhma trận phân phối hàng hóa
Để đơn giản, người ta xét bài toán vận tải với giả thiết: i) x i j ≥0,i=1, ,m,j=1, ,n Điều đó có nghĩa là hàng hóa được chuyển theo một hướng từ các điểm phát đến các điểm thu, tức là các điểm thu không được trả lại hàng Dễ thấy rằngx i o j o ó nghĩa là hàng không được chuyển từ điểm pháti o đến điểm thu j o ; ii) Hàng có thể chuyển từ một điểm phát đến một điểm thu bất kì và ngược lại, một điểm thu cũng có thể nhận hàng từ một điểm phát tùy ý sao cho các điểm phát phải phát hết hàng và các điểm thu phải thỏa mãn nhu cầu cần có, tức là: n
∑ i=1 x i j =b j ,j=1, ,n iii) Tổng lượng hàng ởmđiểm phát đúng bằng tổng lượng hàng cần có ởnđiểm thu (tổng cung bằng tổng cầu), tức m i=1 ∑ a i n j=1 ∑ b j
Người ta gọi đây làđiều kiện cân bằng thu phát.
Vì chi phí vận chuyển hàng từ điểm pháti đến điểm thu j làc i j x i j nên tổng chi phí vận chuyển hàng từ tất cả các điểm phát đến tất cả các điểm thu là: m
∑ j=1 c i j x i j Vậy mô hình toán học của bài toán vận tải như sau: min m
Như vậy ta thấy ngay điều kiện cân bằng thu phát chính là điều kiện cần và đủ để bài toán vận tải có nghiệm tối ưu Vectorx= (x 11 ,x 12 , ,x 1n ,x 21 , ,x 2n , ,x m1 , ,x mn ) T thỏa mãn các ràng buộc trên được gọi làmột phương ánchấp nhận được của bài toán vận tải Để đơn giản, ta thường viết làx= (x i j ) Cách biểu diễn phương ánxdưới dạng ma trận phân phối hàng hóa và các cước phíc i j ta đã đề cập ở trên.
Ta thấy bài toán vận tải là một bài toán quy hoạch tuyến tính chính tắc vì ta có thể đưa bài toán về dạng tìm min của: f(x) = vđk:Ax=b x≥0, trong đó
vàc= (c 11 ,c 12 , ,c 1n ,c 21 , ,c 2n , ,c m1 , ,c mn ) T là vector hệ số mục tiêu của bài toán vận tải.
Mệnh đề 1.1 Ma trận A có hạngm+n−1
Chứng minh: Gọia k là các vector hàng thứkcủa ma trận A,k=1, ,m+n Dễ thấy rằng m k=1 ∑ a k m+n k=m+1 ∑ a k =e trong đóe∈R m×n là vector có tất cả các thành phần đều bằng 1 Do đó rank A≤m+n−1 Bất kìm+n−1hàng nào của A cũng độc lập tuyến tính Thật vậy, chẳng hạn ta chứng minh nếu m i=2 ∑ u i a i + n j=1 ∑ v j a m+ j =0 thìu i =0,i=2, ,mvàv j =0,j=1, ,n.
Thật vậy, xét n toạ độ đầu tiên của đẳng thức vector này ta được: v 1 =v 2 = =v n =0
Xét các toạ độ n+1, 2n+1, , (m-1)n+1 của đẳng thức vector này, ta lại có u 2 +v 1 =u 3 +v 1 = =u m +v 1 =0 nên ta suy rau 2 =u 3 = =u m =0 Vậy rank A =m+n−1
Hệ quả 1.1. i) Phương án cực biên của bài toán vận tải không có nhiều hơnm+n−1thành phần dương. ii) Ta nói phương án cực biên cuả bài toán vận tải là không suy biến nếu nó có đúngm+n−1 thành phần dương và là suy biến nếu nó có ít hơnm+n−1thành phần dương. iii) Mỗi phương án cực biênx o = (x o i j )tương ứng với ít nhất một cơ sở gồmm+n−1vector
A i j độc lập tuyến tính Trong trường hợpx o = (x o i j )là phương án cực biên không suy biến thì nó tương ứng với một cơ sở duy nhất là hệ{A i j :x o i j >0}gồmm+n−1vector độc lập tuyến tính.
Sự tồn tại của phương án tối ưu
Điều kiện để bải toán vận tải giải được trong bài báo cáo này là khi tổng cung bằng tổng cầu, tức là∑ m i=1 a i =∑ n j=1 b j trong đó m biểu thị cho tổng số điểm phát và n biểu thị cho tổng số điểm thu Nhưng chúng ta cũng biết rằng bài toán vận tải không cân bằng vẫn có thể giải được khi∑ m i=1 a i >∑ n j=1 b j Do đó điều kiện khả thi cho bài toán vận tải không đủ để luôn chứng minh được bài toán vận tải luôn thật sự giải được Ta sẽ tìm điều kiện khả thi mới cho bài toán để chứng minh bài toán luôn giải được Ngoài ra, giới hạn trên được đặt cho các biến cơ bản trong giải pháp khả thi đối với bài toán vận tải không cân bằng Các định lý dưới đây chỉ ra rằng bài toán vận tải có cả phương án chấp nhận được và phương án tối ưu. Định lý 1.1(Sự tồn tại phương án chấp nhận được) Giải pháp cho bài toán vận tải sẽ khả thi nếu và chỉ nếu n
∑ j=1 m i=1 ∑ x i j n j=1 ∑ b j m i=1 ∑ a i vớix i j là số lượng hàng cần vận chuyển từ điểm phátiđến điểm thu j,b j là lượng cầu cho điểm thu jvàa i là lượng cung cho điểm pháti
Chứng minh: Giả sử bài toán có phương án tối ưu x o = (x o i j ) thỏa mãn các ràng buộc
∑ n j=1 x o i j =a i ,i=1, ,mvà∑ m i=1 x o i j =b j ,j=1, ,n Tính tổnga i theoivà tổngb j theo j ta thu được n j=1 ∑ b j n j=1 ∑ m i=1 ∑ x o i j m i=1 ∑ n
Dễ dàng thấyx i j = a i b j m i=1 ∑ a i thỏa mãn các ràng buộc, do đó nó là một phương án chấp nhận được của bài toán vận tải(đpcm).
2 Bảng vận tải, chu trình
Bảng vận tải - Transportation table
Bài toán vận tải có thể viết dưới dạng bảng sau đây (gọi là bảng vận tải): a i b j b 1 ã ã ã b j ã ã ã b n a 1
• Bảng gồmm+1hàng (đánh số: 0,1, ,m) vàn+1cột (đánh số 0,1, ,n).
• Ô(i,j)là ô nằm ở giao hàng i và cột j.
• Lượng pháta i được ghi vào ô(i,0).
• Lượng thub j được ghi vào ô(0,j).
T ={(i,j)|i=1,ã ã ã,m,j=1,ã ã ã,n} được gọi là phần chính của bảng vận tải.
• Chi phí vận chuyểnc i j được ghi ở góc trên bên trái ô(i,j)∈T.
• Phương án của bài toánx= (x i j )>0được ghi vào góc dưới, bên phải của ô(i,j)∈T.
• Có sự tương ứng1−1giữa các ô(i,j)∈T và các vecto cột của ma trậnA Ký hiệu:
• |G(x)|là số phần tử củaG(x).
• Ô(i,j)∈G(x)là mộtô chọnvà ô(i,j)∈/G(x)làô loại.
• Phương án cực biên cókhông quá(m+n−1)ô chọn hay ô sử dụng.
• Phương án cực biên không suy biếncó đúng(m+n−1)ô chọn.
Chu trình
Định nghĩa 2.1 Một tập được sắp thứ tự các ô của bảng vận tải được gọi là chu trình nếu nó thỏa mãn đồng thời ba tính chất sau:
• Hai ô cạnh nhau trong cùng một hàng hay một cột
• Không có ba ô trên cùng một hàng hay một cột
• Ô đầu tiên nằm trong cùng một hàng hay một cột với ô cuối cùng.
Ví dụ 2.1 Dãy các ô sau đây của bảng vận tải thành lập chu trình
Một số dạng của chu trình được minh họa ở bảng sau:
• Chu trình là tập hợp các ô trong bảng vận tải mà trong đó mỗi ô đều nằm trên cùng một hàng (hoặc cùng một cột) chỉ với một ô đứng trước, đồng thời nằm trên cùng một hàng (hoặc cùng một cột) chỉ với một ô đứng sau nó.
• Từ định nghĩa, ta thấy một hàng hoặc một cột mà chu trình đi qua bao giờ cũng chỉ có hai ô thuộc chu trình, do đó tổng số ô trên chu trình là chẵn và ít nhất là bốn ô.
Giả sửG∈T là một tập các ô nào đó của bảng vận tải. Định nghĩa 2.2 Ta nóiG∈T chứa chu trình nếu ta có thể xây dựng được ít nhất một chu trình gồm các ô thuộcG 0 ⊆G Trong trường hợp ngược lại, ta nóiG không chứa chu trình.
Bổ đề 2.1(Dấu hiệu nhận biết một tập các ôGcó chứa chu trình hay không) Giả sử tập các ôG của bảng vận tải thỏa mãn tính chất: trong mỗi hàng và mỗi cột của bảng vận tải hoặc không chứa ô nào củaGhoặc có ít nhất là hai ô củaG Khi đóGchứa chu trình.
Gọi các ô trong tập G là các ô chọn.
Theo giả thiết, trong mỗi hàng và mỗi cột của bảng vận tải hoặc không có ô chọn nào hoặc có ít nhất hai ô chọn.
Bắt đầu từ ô chọn(i 1 ,j 1 )nào đó, ta đánh dấu ô này bởi dấu(+).
Theo giả thiết, trên hàngi 1 có ít nhất một ô chọn khác là(i 1 ,j 2 ) Ta đánh dấu ô này bởi dấu (−).
Vì(i 1 ,j 2 )không phải ô chọn duy nhất trên cột j 2 nên đi theo cột này đến được ô chọn khác là(i 2 ,j 2 )và đánh dấu(+).
Tiếp tục dịch chuyển tiếp trên hàngi 2 đến(i 2 ,j 3 )và đánh dấu(−)v.v
Quá trình này không thể kéo dài vô tận vì số ô của bảng vận tải là hữu hạn Vì vậy, đến một lúc nào đó ta sẽ quay trở lại một ô nào đó mà trước đó ta đã đi qua, tức là phát hiện ra một chu trình(đpcm). Định lý 2.1 Cho tập các ôG⊂T Khi đó, hệ vecto{A ij |(i,j)∈G}độc lập tuyến tính khi và chỉ khiGkhông chứa chu trình.
⇒ Giả sử hệ vecto{A ij |(i,j)∈G}độc lập tuyến tính Ta chứng minhGkhông chứa chu trình Giả thiết phản chứng rằngGchứa một chu trình là:
=0 Trong đó:e k ,k∈ {i 1 , ,i s ,m+j 1 , ,m+j s }là vecto đơn vị thứktrong không gianR m+n Theo định nghĩa, hệ véc tơ{A i 1 j 1 ,A i 1 j 2 , ,A i s j s ,A i s j 1 }phụ thuộc tuyến tính vì:
Nên hệ{A i j |(i,j)∈G}phụ thuộc tuyến tính (mâu thuẫn).
Chứng tỏ G không chứa chu trình.
⇐ Giả sử các ô thuộcGkhông chứa chu trình.
Ta sẽ chứng minh{A i j |(i,j)∈G}độc lập tuyến tính.
VìGkhông chứa chu trình, theoBổ đề 2.1, tồn tại một ô(r,s)∈Gmà nó là ô duy nhất trên hàngrhoặc trên cộts Chẳng hạn,(r,s)là ô duy nhất trên hàngr, tức là trong hệ{A i j |(i,j)∈G} có duy nhất một vec tơA i j vớii=r.
Nên từ (1.9) suy raα rs =0 Loại ô(r,s)khỏiG, đặtG ′ =G\(r,s) TậpG ′ cũng không chứa chu trình.
Tương tự, ta chứng minh đượca i j =0với mọi(i,j)∈G, chứng tỏ{A i j |(i,j)∈G}độc lập tuyến tính.
Hệ quả 2.1 Phương ánx= (x i j )là phương án cực biên khi và chỉ khi tập các ô chọnG(x) {(i,j)|x i j }>0không chứa chu trình.
Bài toán vận tải là một quy hoạch tuyến tính nên phương ánx=x i j là một phương án cực biên khi và chỉ khi các véc tơ{A i j |x i j }>0độc lập tuyến tính Do đó tập các ô sử dụngG(x) không chứa chu trình.
Từ các kết quả trên, người ta còn hay gọi phương án cực biên của bài toán vận tải làphương án không chứa chu trình.
Hệ quả 2.2 Cho bảng vận tải T ={(i,j)|i=1, ,m,j=1, ,n} vớim≥2,n≥2 Mọi tập
G⊂T có|G| ≥m+nđều chứa chu trình.
VìrankA=m+n−1và|G| ≥m+n nên hệ các véc tơ{A i j |(i,j)∈G}phụ thuộc tuyến tính Do đó tậpGphải chứa chu trình.
Hệ quả 2.3 Cho tập P⊂T là tập gồm (m+n−1) ô Giả sử P không chứa chu trình và
(i 0 ,j 0 )∈/P Khi đóP∪(i 0 ,j 0 )sẽ chứa một chu trình duy nhất.
Vì tậpP∪(i 0 ,j 0 )cóm+nô nên nó phải chứa chu trình Vì tậpPkhông chứa chu trình nên chu trình này phải đi qua(i 0 ,j 0 )và đó là chu trình duy nhất.
Thật vậy, giả sử phản chứngP∪(i 0 ,j 0 )chứa hai chu trình khác nhau làK vàK ′ sau:
TừK vàK ′ ta lập được chu trình mới:
K ∗ ={(i 0 ,j 1 ),(i 1 ,j 1 ), ,(i k ,j k ),(i k ,j 0 ),(i k ,j 0 ),(i k ,j k ), ,(i 0 ,j 1 )} không đi qua(i 0 ,j 0 ) Điều này mâu thuẫn với giả thiếtPkhông chứa chu trình Do đó giả thiết phản chứng sai.
Ví dụ 2.2 Xét bài toán vận tải với a= (110,100,60,100) T , b= (95,80,65,35,95) T ,
1 Bài toán này có nghiệm tối ưu hay không?
2 Xét phương án sau và kiểm tra xem đây có phải là một phương án cực biên của bài toán trên không.Vì sao? x
3 Tính chi phí phải trả nếu thực hiện theo phương ánxnày.
1 Bài toán cóm=4điểm phát vàn=5điểm thu.
∑ j=1 b j 70, tức là điều kiện cân bằng thu phát được thỏa mãn.
Nên bài toán có nghiệm tối ưu.
2 Vìx≥0và ta kiểm tra lượng:
Nên x là một phương án chấp nhận được.
Ta thấy:G(x)không chứa chu trình(do hàng thứ 3 của bảng vận tải chỉ chứa một ô của G)
Nên phương ánxlà một phương án cực biên.
3 Chi phí phải trả nếu thực hiện theo phương án này là: f(x) = ∑
3 Phương pháp thế vị giải bài toán vận tải
Cơ sở lý thuyết
Xét bài toán vận tải: min f(x) n i=1 ∑ m
(x i j ) =b j j=1,n x i j ≥0 Bài toán đối ngẫu của bài toán vận tải (PT) là: max f(x) m i=1 ∑
Trong mục này, ta sẽ xét trường hợp các phương án cực biên của bài toán (PT) đều không suy biến (trường hợp còn lại sẽ được trình bày trong mục thuật toán)
Cho phương ánx 0 Ký hiệu:G(x 0 ) =n
(i,j)∈T |x 0 i j >0o Định lý 3.1(Điều kiện cần và đủ đểx 0 là phương án tối ưu) Phương ánx 0 = (x 0 i j )của bài toán vận tải (PT) là phương án tối ưu khi và chỉ khi tồn tại các sốu i ,i=1,mvàv j , j=1,nthỏa mãn: u i +v j ≤c i j ∀(i,j)∈T (3.1) u i +v j =c i j ∀(i,j)∈G(x 0 ) (3.2)
(⇒):Giả sử phương ánx 0 = (x 0 i j )là phương án tối ưu của bài toán vận tải (PT)
Theo định lý đối ngẫu mạnh, bài toán đối ngẫu (DT) có phương án tối ưuy 0 = (u 1 , ,u m ,v 1 , ,v n ) T
Doy 0 phải là phương án chấp nhận được của bài toán đối ngẫu nên nó thỏa mãn mọi ràng buộc của bài toán, tức: u i +v j ≤c i j i=1,mvà j=1,n
Hơn nữa, vìx 0 là phương án tối ưu của bài toán gốc (PT) vày 0 là phương án tối ưu của bài toán đối ngẫu (DT) nên theo định lý về độ lệch bù ta có:
Như vậy chiều thuận được chứng minh.
(⇐):Cho phương ánx 0 = (x 0 i j ) Giả sử tồn tại các sốu i ,i=1,mvàv j , j=1,nthỏa mãn (1.1.1) và (1.1.2) Ta cần chứng minhx 0 là phương án tối ưu.
⇒x 0 i j =0với (i,j)∈/G(x 0 ) kết hợp (1 ) suy ra giá trị hàm mục tiêu tạix 0 là: f(x 0 ) m i=1 ∑ n
((u i +v j )x 0 i j ) (3.3) Giả sửx¯= (x¯ i j )là một phương án bất kỳ của bài toán vận tải Ta có: f(x) =¯ m i=1 ∑ n j=1 ∑
∑ j=1 v j m i=1 ∑ ¯ x i j m i=1 ∑ u i a i + n j=1 ∑ v j b j ( vìx¯là một phương án) m i=1 ∑ u i n
∑ j=1 v j m i=1 ∑ x 0 i j ( vìx 0 là một phương án) m i=1 ∑ n
= f(x 0 ) Vậyx 0 là phương án tối ưu của bài toán vận tải đang xét⇒chiều nghịch đã được chứng minh.
Chú ý:Giả sửx 0 là phương án cực biên không suy biến Ta có các véc tơn
A i j |(i,j)∈G(x 0 )o độc lập tuyến tính và |G(x 0 )| = m + n - 1 Do đó hệ (2) tương ứng: u i +v j =c i j , (i,j)∈G(x 0 ) có m + n - 1 phương trình độc lập tuyến tính với nhau và m + n biếnu i , i = 1, ,m vàv j , j = 1, ,n.
Do đó để giải hệ này, có thể cho một biến giá trị tùy ý (thông thường chou 1 =0) và các ẩn còn lại được xác định duy nhất bằng phương pháp thế Như vậy, mỗi phương án cực biên không suy biến x 0 = (x 0 i j )tương ứng với một bộ sốu i , i = 1, ,m vàv j , j = 1, ,n (sai khác một hằng số ) thoả mãn (1.1.2) Ta gọi các sốu i ,v j này là các thế vị Các đại lượng∆i j :=u i +v j −c i j là được gọi là cácước lượng Khi đó, điều kiện (1) được viết lại là:
∆ i j ≤0với mọi(i,j)∈T Định lý sau đây cho ta biết dấu hiệu nhận biết phương án cực biên không suy biếnx 0 chưa phải tối ưu và từ đó chuyển sang một phương án cực biênx 1 mà tại đó giá trị hàm mục tiêu tốt hơnx 0 Định lý 3.2 Giả sửx 0 là một phương án cực biên không suy biến của bài toán vận tải vàu i ,v j , i
= 1, ,m và j = 1, ,n là bộ các thế vị tương ứng với nó Nếu:
∃(i,j)∈/G(x 0 )sao cho∆ i k j k >0 (3.4) thìx 0 không phải là phương án tối ưu và từx 0 ta chuyển đến được một phương án cực biênx 1 tốt hơnx 0 , tức: f(x 1 )< f(x 0 )
Nhắc lại một số định lý và hệ quả trước: Định lý: Cho tập các ôG⊂T Khi đó, hệ véc tơ
A i |(i,j)∈G độc lập tuyến tính khi và chỉ khi G không chứa chu trình.
Hệ quả 1: Phương án x= x 1j là phương án cực biên khi và chỉ khi tập các ô chọn G(x) (i,j)|x i >0 không chứa chu trình.
Hệ quả 4.2 Cho bảng vận tảiT ={(i,j)|i=1,ã ã ã,m,j=1,ã ã ã,n}vớim≥2,n≥2 Mọi tậpG⊂T có|G| ≥m+nđều chứa chu trình.
Hệ quả 4.3 Cho tâpP⊂T là tập gồm(m+n−1) ô Giả sửPkhông chứa chu trình và (i 0 ,j 0 )∈/P Khi đóP∪(i 0 ,j 0 )sẽ chứa một chu trình duy nhất.
Giả sử có điều kiện (4) Ta sẽ chứng minh rằng, từx 0 có thể chuyển sang được phương án cực biênx 1 thỏa mãn f(x 1 )< f(x 0 ).
Theo hệ quả 1, do x 0 là phương án cực biên không suy biến nên|G(x 0 )|=m+n−1 và G(x 0 )không chứa chu trình.
(i k ,j k ) chứa một chu trình K duy nhất đi qua(i k ,j k ) Đánh dấu các ô trong K bởi các dấu + và -, xuất phát từ ô(i k ,j k )với dấu +, sao cho không có hai ô nào cạnh nhau trong K lại được đánh dấu bởi cùng một dấu Ký hiệu:
K + :các ô trong K được đánh dấu +
K − :các ô trong K được đánh dấu - Xây dựng phương ánx 1 = (x 1 i j )theo công thức: x 1 i j
Vì x 0 là phương án cực biên không suy biến nênθ >0 Theo cách xây dựng chu trình K và phương ánx 1 ta có: x 1 i k j k =θ >0 (3.7)
Từ (5) và (6) rõ ràngx 1 i j ≥0với mọi (i,j) Vì các ô trong K từng đôi thuộcK + vàK − xen kẽ nhau nên n
Do đóx 1 là một phương án chấp nhận được của bài toán vận tải Nên có:
Vì K là chu trình duy nhất chứa trongG(x 0 )∪
(i k ,j k ) , mà theo cách chọn thì(i r ,j r )∈K nên ô chọn mới là (i k ,j k )không thể tạo thành chu trình với các ô thuộc G(x 0 )\
(i r ,j r ) , tức là G(x 1 )không chứa chu trình Điều đó chứng tỏx 1 là phương án cực biên Dou i +v i =c i j với mọi (i,j)∈G(x 0 )vàx 0 i j =0với mọi(i,j)∈/G(x 0 )nên giá trị hàm mục tiêu tạix 0 là: f(x 0 ) m i=1 ∑ n j=1 ∑ c i j x 0 i j m i=1 ∑
(i k ,j k ) (3.9) Để cho đơn giản cách viết, ta ký hiệuGˆ :=G(x 1 )\
(do ∆ ik jk =u ik +v jk −c ik jk )
∑ j=1 v j b j −θ∆i k j k (dox 1 là một phương án) m
∑ i=1 x i j 0 −θ∆i k j k (dox 0 là một phương án)
Vìθ >0và∆ i k j k >0nên: f(x 1 ) = f(x 0 )−θ∆i k j k < f(x 0 ) Định lý đã được chứng minh.
Chú ý:Cho phương án cực biên không suy biếnx 0 và bộ thế vịu i ,v j tương ứngx 0 Theo chứng minh vừa rồi, nếux 0 chưa phải phương án tối ưu thì ta chuyển sang được phương án cực biênx 1 và giá trị hàm mục tiêu tạix 1 giảm được một lượng làθ∆ i k j k , tức phụ thuộc cả vàoθ và
∆ i k j k , trong đóθ đươc tính theo (6) Với mong muốn giá trị hàm mục tiêu giảm được nhiều nhất có thể và vừa đơn giản việc tính toán, trong trường hợp có nhiều ô(i,j)∈/G(x 0 )cùng có∆ i j >0 thuật toán thế vị giải bài toán vận tải chọn ô(i s ,j s )sao cho:
∆ i j >0|(i,j)∈/G(x 0 )o và gọi ô(i s ,j s )làô điều chỉnh Sau đó xây dựng phương án cực biênx 1 theo (5) với ô (i k ,j k ) được thay bởi(i s ,j s ) Chu trình K được gọi làchu trình điều chỉnh. Định lý 3.3 Nếu bài toán vận tải không suy biến thì thuật toán thế vị là hữu hạn Tức là sau hữu hạn phép tính ta sẽ nhận được nghiệm tối ưu.
Chứng minh:Bài toán vận tải thỏa mãn điều kiện cân bằng thu phát nên luôn có nghiệm tối ưu Do bài toán không suy biến nên tại mỗi bước lặp ta đều cóθ >0và giá trị hàm mục tiêu giảm thực sự Vì vậy, sau một số hữu hạn bước lặp, ta sẽ nhận được phương án tối ưu
Mệnh đề 3.1 Nếu các lượng pháta i ,, i = 1, ,m và các lượng thub j , j = 1, ,n đều là các số nguyên thì bài toán vận tải sẽ có nghiệm tối ưu với các thành phần đều nguyên.
Chứng minh: Trong các bước tính toán của thuật toán thế vị ta không phải dùng phép chia.
Do đó, nếu dữ liệu ban đầua i ,b j đều là các số nguyên thì theo các cách tìm phương án cực biên,phương án xuất phát cũng sẽ có các thành phần nguyên Vì thế, các bước lặp cho đến phương án tối ưu ta luôn có các thành phần của phương án tối ưu đều là số nguyên.
Thuật toán thế vị
Thuật toán thế vị giải bài toán vận tải xuất phát từ một phương án cực biên Thuật toán này dùng để tối ưu phương án của bài toán vận tải không suy biến Tức là tối ưu các phương án cực biên có đúng(m+n−1)thành phần dương, với giả thiết là ta đã biết 1 phương án cực biên.
Khởi tạo:Giả thiết đã biết phương án cực biên không suy biếnx 0 = (x 0 i j ) Tập ô chọn tương ứng vớix 0 làG(x 0 ) ={(i,j)|x 0 i j >0}gồm(m+n−1)phần tử không chứa chu trình.
Bước 1: Tìm các thế vịu i , i = 1, ,m vàv j , j = 1, ,n tương ứng với phương án cực biênx 0 Các thế vị thỏa mãn hệ(n+m−1)phương trình: u i +v j =c i j ∀(i,j)∈G(x 0 )
Hệ phương trình trên có(m+n−1)phương trình, xác địnhm+nẩn Như vậy, sẽ có mộtu i hoặc mộtv i được xác định tùy ý và(m+n−1)ẩn còn lại sẽ xác định duy nhất.
- Đầu tiên, chou i 0 =0(i 0 thường là dòng đầu tiên hoặc là dòng chứa 1 ô sử dụng).
- Sau đó xác địnhv j =c i j −u i 0 cho những cột cắt dòngi 0 ở một ô sử dụng.
- Tiếp đó, xác địnhu i =c i j −v j cho dòng i cắt cột ở một ô sử dụng.
Bằng quy tắc đó ta xác định đượcu i vàv j cho mỗi dòng và cột
Bước 2: Tính các ước lượng và kiểm tra điều kiện tối ưu
Với mọi ô(i,j)∈/Gta xác định các ước lượng∆ i j như sau:
- Nếu∆i j ≤0 ∀(i,j)thì phương án đã cho tối ưu.
- Nếu∆i j ≥0với ít nhất một ô(i,j)thì phương án đã cho chưa tối ưu Ta có thể điều chỉnh để hạ nữa hàm mục tiêu
Bước 3: Điều chỉnh phương án
Giả sử ô vi phạm tiêu chuẩn tối ưu là(i s ,j s )tức là∆ i j >0(nếu có nhiều ô vi phạm ta chọn ô tương ứng max∆ i j với hi vọng hàm mục tiêu giảm nhanh nhất). Ô(i s ,j s )∈/G Bây giờ ta thêm ô(i s ,j s )vào tập G, khi đó có tất cả(m+n)ô sử dụng. Ô(i s ,j s )sẽ lập với các ô của G một chu trình K duy nhất Chia K thành hai phần :K + (tập các ô chẵn) vàK − (tập các ô lẻ) Coi ô(i s ,j s )là ô chẵn,(i s ,j s )∈K +
Bước 4: Chuyển sang phương án mới
Do đó, ôx 0 i s j s trở thành ô sử dụng
G ′ =G\(i r ,j r )∪(i s ,j s )vẫn gồm(m+m−1)ô sử dụng và không lập thành chu trình. Quay lại bước 2.
Ta lại xác định hệ thống thế vị mới ứng với phương án X’ và G’ Tiếp tục quá trình cho đến khi nào xảy ra tình huốngθ i j ≤0,∀(i,j)⇐⇒lúc đó ta nhận được phương án tối ưu.
Chú ý:Nếu số ô sử dụng N < m+n-1 thì thêm (m+n-1) - N ô mới vớix i j =0sao cho không tạo thành chu trình.
Chú ý: (Dấu hiệu nhận biết phương án cực biến và cách khắc phục)Tương tự như khi giải bài toán quy hoạch tuyến tính, trong trường hợp bài toán vận tải suy biến ta có hai dấu hiệu nhận biết sau: i) θ =0 Khi đó, ta vẫn thực hiện thuật toán bình thường Ô điều chỉnh(i s ,j s )sẽ trở thành ô chọn của phương án cực biên mới x’ vớix ′ i s j s =θ Còn ô(i r ,j r ứng vớix i r j r =θ ở trên chu trình điều chỉnh sẽ trở thành ô loại đối với phương án x’ Tuy nhiên, kết quả điều chỉnh không làm thay đổi phương án cực biên mà chỉ thay đổi tập vecto cơ sở ứng với phương án đó ii) θ đạt tại nhiều ô khác nhau Khi đó, ta sẽ loại một trong những ô này theo quy tắc ngẫu nhiên
Chú ý: (Dấu hiệu bài toán có phương án tối ưu duy nhất và không duy nhất) i) Nếu phương án cực biên không suy biếnx 0 thỏa mãn tiêu chuẩn:
∆ i j =u i +v j −c i j 0do đó phương án cực biên này chưa phải là phương án tối ưu.
Ta tiến hành điều chỉnh phương án.
Nhận xét:Ta thấy rằng ô (3,1) tuy là ô loại nhưng ước lượng vẫn bằng 0 Do đó bài toán này sẽ có vô số phương án tối ưu.Tuy nhiên ở đây, chúng ta sẽ chỉ tìm ra 1 nghiệm tối ưu của bài toán Do chỉ có∆ 24 >0nên chọn luôn ô(2,4)làm ô điều chỉnh Ghép ô(2,4)vào tậpG(x 0 )ta có chu trìnhK={(2,4),(2,3),(3,3),(3,4)}vớiK + ={(2,4),(3,3)}vàK − ={(2,3),(3,4)} v j -2 2 -1 3 u i
Ta cóθ =min{x i j ∈K − }=1=x 23 , loại ô (2,3) ra khỏi phương án cực biên Và đưa ô(2,4) vào phương án Ta có bảng vận tải mới b j a i 50 80 95 75
Tính lại các thế vị Đặtu 1 =0 v 2 =c 12 −u 1 =2−0=2 v 4 =c 14 −u 1 =3−0=3 u 2 =c 24 −u 4 =8−3=5 v 1 =c 21 −u 2 =5−5=0 u 3 =c 34 −v 4 =9−3=6 v 3 =c 33 −u 3 =5−6=−1
Tính lại các ước lượng
Nhận xét: Vẫn có ∆ 31 =2>0 do đó phương án cực biên này chưa phải là phương án tối ưu Ta tiến hành điều chỉnh phương án Ghép ô (3,1) vào tậpG(x 0 )ta có chu trình K {(2,1),(3,1),(2,4),(3,4)}vớiK + ={(3,1),(2,4)}vàK − ={(2,1),(3,4)} v j -2 2 -1 3 u i
Ta có θ =min{x i j ∈K − }=x 34 , loại ô(3,4)ra khỏi phương án cực biên Và đưa ô (3,1)vào tập G Ta có phương án mới: b j a i 50 80 95 75
Tính lại các thế vị Đặtu 1 =0 v 2 =c 12 −u 1 =2−0=2 v 4 =c 14 −u 1 =3−0=3 u 2 =c 24 −u 4 =8−3=5 v 1 =c 21 −u 2 =5−5=0 u 3 =c 31 −v 1 =4−0=4 v 3 =c 33 −u 3 =5−4=1
Tính lại các ước lượng
Như vậy mọi ước lượng đều là âm nên ta thu được phương án tối ưu là: ¯ x
Giá trị tối ưu của hàm mục tiêu là: f¯∗2+10∗4+35∗5+65∗8+15∗4+95∗520
4 Phương án xuất phát cho thuật toán thế vị
Phương pháp góc tây bắc (Northwest - conner rule)
Ý tưởng phương pháp
Phương pháp góc tây bắc là phương pháp đơn giản nhất được sử dụng để tìm phương án cực biên xuất phát cho bài toán vận tải thỏa mãn điều kiện cân bằng thu phát Trong phương pháp này, ta sẽ bắt đầu từ ô trên cùng bên trái( góc tây bắc).
Thuật toán
Khởi tạo:Lập bảng vận tải T với các số liệua i ,b j ,c i j ,i=1,m, j=1,n.
Bước 1: Bắt đầu từ ô trên cùng bên trái (vị trí góc tây bắc) của bảng T, ta điền lượng hàng lớn nhất có thểx 11 = min(a 1 ,b 1 ) từ ô phát 1 đến ô thu 1.
Bước 2: Ở cả ô thu và ô phát, trừ đi lượng hàng đã chuyển Từ đây có 3 trường hợp có thể xảy ra:
• a 1 =0(Lượng hàng còn cần thu ở ô thu 1 làb 1 −a 1 đơn vị hàng) Xóa hàng thứ nhất đi, ta thu được bảng T’ gồm (m - 1) hàng và n cột.
• b 1 =0(Lượng hàng còn cần phát ở ô phát 1 làa 1 −b 1 đơn vị hàng) Xóa cột thứ nhất đi, ta thu được bảng T’ gồm m hàng và (n - 1) cột.
• a 1 =b 1 =0(Lượng hàng còn cần thu và phát ở ô thứ nhất là 0) Ta quy ước xóa cột thứ nhất đi, ta thu được bảng T’ gồm m hàng và (n - 1) cột.
Bước 3: Lặp lại bước 1 và 2 cho đến khi lượng thu và phát còn lại là 0.
Ví dụ
Chọn ô(1,1)của bảng và phân phối lượng hàng tối đa có thể chuyển (ở đây là 50 đơn vị hàng) b j a i 50 80 95 75
Giảm cả ô thub 1 và ô pháta 1 đi 50 đơn vị hàng đó, ta thấy hànga 1 @, cộtb 1 =0nên ta xóa cột đó đi Lúc này ô(1,2)sẽ là ô(1,1)của bảng mới b j a i 0 80 95 75
Thực hiện lặp lại các bước trên cho đến khi hết lượng thu và lượng phát còn lại b j a i 0 80 95 75
Ta tìm được phương án xuất phát: x
Giá trị hàm mục tiêu với phương án xuất phát này bằng: f(x) P∗11+40∗2+40∗10+60∗6+35∗5+75∗9"40
Phương pháp cực tiểu chi phí (The least-cost Method)
Ý tưởng phương pháp và thuật toán
Trong phương pháp góc tây bắc, khi tiến hành phân phối các lượng vận chuyển, ta luôn chọn ô ở góc tây bắc mà không chú ý đến cước phí di chuyển Ở phần này, với phương pháp cực tiểu chi phí, ta sẽ điền lượng hàng lớn nhất có thể vào ô có cước phí nhỏ nhất toàn bảng vận tải.Chẳng hạn, với bảng đầu tiên là bảng T, ta điền một lượng hàng lớn nhất có thể vào ô(i 0 ,j 0 )mà c i 0 j 0 =min{c i j |(i,j)∈T} cho chuyên chở một lượng hàng lớn nhất có thể từ điểm pháti 0 đến điểm thu j 0 tương ứng Nếu nhiều ô có cước phí bằngc i 0 j 0 thì ta phân hàng vào ô nào có thể nhận lượng hàng lớn nhất Nếu lượng hàng lớn nhất có thể phân phối vào mỗi ô này như nhau thì chọn phân hàng vào một ô bất kì.
Ví dụ
Xét bài toán vận tải với véc tơ lượng phát a, lượng thu b và ma trận chi phí C như bảng sau đây:
Dễ thấy ô(1,2)có chi phí nhỏ nhất toàn bảng,c 12 =2 Ta phân phối 80 đơn vị hàng vào ô (1,2) Điểm thu thứ hai đã thu đủ lượng hàng yêu cầu, do đó ta xóa cột thứ hai Điểm phát thứ nhất còn phải phát một lượng hàng làa ′ 1 −80. b j a i 50 0 95 75
Tiếp theo, trong các ô còn lại ta thấy được ô(1,4)có cước phí nhỏ nhất bằng 3 Ta phân phối 10 đơn vị hàng vào ô(1,4) Điểm phát thứ nhất đã phát đủ lượng hàng yêu cầu, do đó ta xóa hàng thứ nhất Điểm thu thứ tư còn phải thu một lượng hàng làb ′ 4 u−10e. b j a i 50 0 95 65
Trong các ô còn lại ta thấy được ô(3,1)có cước phí nhỏ nhất bằng 4 Ta phân phối 50 đơn vị hàng vào ô(3,1) Điểm thu thứ nhất đã thu đủ lượng hàng yêu cầu, do đó ta xóa cột thứ nhất. Điểm phát thứ ba còn phải phát một lượng hàng làa ′ 3 0−50`. b j a i 0 0 95 65
Trong các ô còn lại ta thấy được ô(3,3)có cước phí nhỏ nhất bằng 5 Ta phân phối 60 đơn vị hàng vào ô(3,3) Điểm phát thứ ba đã phát đủ lượng hàng yêu cầu, do đó ta xóa hàng thứ ba.Điểm thu thứ ba còn phải thu một lượng hàng làb ′ 3 −605. b j a i 0 0 35 65
Ta thấy được ô(2,3)có cước phí nhỏ nhất bằng 6 Ta phân phối 35 đơn vị hàng vào ô(2,3) Điểm thu thứ ba đã thu đủ lượng hàng yêu cầu, do đó ta xóa cột thứ ba Điểm phát thứ hai còn phải phát một lượng hàng làa ′ 2 0−35e Sau đó ta phân 65 đơn vị hàng vào ô cuối cùng là ô(2,4), như vậy ta đã phát đủ lượng hàng vào các điểm thu. b j a i 0 0 0 0
Ta tìm được phương án xuất phát: x
Giá trị hàm mục tiêu với phương án xuất phát này bằng: f(x) ∗2+10∗3+50∗4+60∗5+35∗6+65∗820
Phương pháp xấp xỉ Vogel (Vogel’s Approximation Method)
Ý tưởng phương pháp
Phương pháp Góc Tây Bắc và Cực tiểu chi phí là hai phương pháp được đề cập trong đa phần các tài liệu Ở phần này, ta sẽ thảo luận thêm về phương pháp thứ 3: Phương pháp xấp xỉ Vogel.Phương pháp xấp xỉ vogel là phương pháp cải tiến phương pháp chi phí thấp nhất thường cho lời giải ban đầu tốt hơn hai phương pháp trên và có thể cho được lời giải tối ưu.
Thuật toán
Khởi tạo:Lập bảng vận tải T với các số liệua i ,b j ,c i j ,i=1,m, j=1,n.
Bước 1: Ở mỗi hàng, tìm ra giá trị bé nhất và bé thứ hai của chi phí vận chuyển, sau đó lấy hiệu số tuyệt đốip i =|c i j −c i j ′|, gọi là lượng phạt và viết nó ở bên phải hàng tương ứng.
Tương tự với mỗi cột, tìm ra giá trị bé nhất và bé thứ hai của chi phí vận chuyển, sau đó lấy hiệu số tuyệt đốiq j =|c i j −c i ′ j |, gọi là lượng phạt và viết nó ở bên dưới cột tương ứng.
Bước 2: Tìm lượng phạt lớn nhất max(p i ,q j ) và chi phí bé nhất min(c i j ) trong hàng/cột đó, sau đó phân bổ mức tối đa giữa lượng phát ở hàng tương ứng và lượng thu ở cột tương ứng.
Từ đây có 3 trường hợp có thể xảy ra:
• a i =0(Lượng hàng còn cần thu ở cột thu j làb i −a i đơn vị hàng) Xóa hàng thứ i đi, ta thu được bảng T’ gồm (m-1) hàng và n cột.
• b j =0(Lượng hàng còn cần phát ở hàng phát i làa i −b j đơn vị hàng) Xóa cột thứ j đi, ta thu được bảng T’ gồm m hàng và (n-1) cột.
• a i =b j =0(Lượng hàng còn cần thu và phát ở hàng thu i và hàng phát j là 0). Quy ước xóa cột thứ j đi, ta thu được bảng T’ gồm m hàng và (n-1) cột.
Bước 3: Lặp lại bước 1 và 2 cho đến khi lượng thu và phát còn lại là 0.
Ví dụ
Xét bài toán vận tải với véc tơ lượng phát a, lượng thu b và ma trận chi phí C như bảng sau đây:
9 Ở hàng thứ nhất, ta chọn được ô có chí phí thấp nhấtc 12 =2và thấp thứ haic 14 =3, dễ tính được lượng phạt là p 1 =|2−3|=1, sau đó ghi vào bên phải hàng tương ứng Tương tự với các hàng và cột còn lại. b j a i 50 80 95 75
9 Ở hàngq j , chọn lượng phạt lớn nhất max(q 2 ) = 8 và ô chi phí thấp nhất trong cộtb 2 làc i j =2. Sau đó phân bổ 80 đơn vị hàng vào ô(1,2) Điểm thu thứ hai đã thu đủ lượng hàng yêu cầu, do đó ta xóa cột thứ hai Điểm phát thứ nhất còn phải phát một lượng hàng làa ′ 1 −80. b j a i 50 0 95 75
Thực hiện lặp lại các bước trên cho đến khi lượng phát và lượng thu còn lại bằng 0. b j a i 50 0 95 65
Ta tìm được phương án xuất phát: x
Giá trị hàm mục tiêu với phương án xuất phát này bằng: f(x) P∗11+40∗2+40∗10+60∗6+35∗5+75∗9"40
5 Các bài toán mở rộng
Bài toán vận tải không cân bằng thu - phát
Tổng lượng phát lớn hơn tổng lượng thu
∑ j=1 b j tức là tồn tại điểm phát không hết hàng Khi đó ràng buộc trong phát biểu bài toán đổi lại thành n
Ta đưa bài toán về bài toán vận tải cân bằng thu phát như sau: thêm vào điểm thu giản+1với lượng thu là b n+1 m
∑ j=1 b j >0 Đây chính là lượng hàng tồn tại ở các trạm phát sau khi thỏa mãn yêu cầu của tất cả trạm thu nên cước phíc i(n+1) =0với mọii=1, ,m Bài toán vận tải mở rộng vớimđiểm phát vàn+1 điểm thu là: min f(x) m
Bài toán này thỏa mãn điều kiện cân bằng thu phát và ta có thể giải nó bằng thuật toán thế vị nhận được phương án tối ưux ∗ Nếux ∗ i(n+1) >0thì ở điểm phát thứicòn đọng lại lượng hàng là x ∗ i(n+1) Giả sử một đơn vị hàng tồn ở điểm phátiphải chịu cước phí lưu kho làs i ,i=1, ,m. Khi đó ta tính cước phí lưu kho cho từng điểm phát Chi phí lưu kho ở điểm phátilà: f storage (i) =s i x ∗ i(n+1)
Phương án vận chuyển tối ưu của bài toán gốc làx opt = (x opt i j )với(x opt i j ) =x ∗ i j ,i=1, ,m;j1, ,n Chi phi phí vận chuyển tối ưu là: f min m i=1 ∑ n j=1 ∑ c i j x ∗ i j
Tổng lượng thu lớn hơn tổng lượng phát
∑ j=1 b j > m i=1 ∑ a i tức là lượng hàng có ở các điểm phát không đáp ứng đủ nhu cầu ở điểm thu Khi đó ràng buộc trong phát biểu bài toán đổi lại thành m i=1 ∑ x i j ≤b j
Ta đưa bài toán về bài toán vận tải cân bằng thu phát như sau: thêm vào điểm phát giảm+1với lượng phát là a m+1 n j=1 ∑ b j − m i=1 ∑ a i >0 Đây chính là lượng hàng tồn tại ở các trạm phát sau khi thỏa mãn yêu cầu của tất cả trạm thu nên cước phíc i(n+1) =0với mọii=1, ,m Bài toán vận tải mở rộng vớim+1điểm phát vàn điểm thu là: min f(x) m+1 i=1 ∑ n j=1 ∑ c i j x i j vđk n
∑ j=1 x i j =a i ,i=1, ,m+1 m+1 i=1 ∑ x i j =b j ,j=1, ,n x i j ≤0,i=1, ,m+1;j=1, ,n trong đóc (m+1) j =0,j=1, ,n Bài toán này thỏa mãn điều kiện cân bằng thu phát và ta có thể giải nó bằng thuật toán thế vị nhận được phương án tối ưux ∗ Nếux ∗
(m+1) j>0thì ở điểm thu thứ jcòn thiếu một lượng hàng làx (m+1) ∗ j Giả sửt j là số tiền tổn thất của điểm phát thứ jkhi thiếu một đơn vị hàng j=1, ,n Khi đó số tiền tổn thất của điểm phát thứ jlà: f loss (j) =t j x ∗ (m+1) j Chi phi phí vận chuyển tối ưu là: f min m
Ví dụ
Xét bài toán vận tải với lượng phát a, lượng thu b và ma trận chi phí C cho ở bảng sau: b j a i 25 35 120
Bài toán cóm=3điểm phát vàn=3điểm thu và có tổng lượng phát lớn hơn tổng lượng thu
∑ j=1 b j 0 vì vậy ta thêm trạm thu giản+1=4vớib 4 #0−180Pvà đặtc 15 =c 25 =c 35 =0 Khi đó ta nhận được bài toán mở rộng cân bằng thu phát Phương án cực biênx 0 xác định theo phương pháp cực tiểu chi phí của bài toán và có kết quả được trình bày ở bảng sau: b j a i 25 35 120 50
Sau khi xác định các thế vị và ước lượng ta thu được bảng sau: v j -3 3 5 0 u i
Chọn ô (2,4) làm ô điều chỉnh, tiếp tục thuật toán thế vị ta chuyển sang phương án cực biên mới x 1 Phương án cực biênx 1 được xác định bởi bảng: b j a i 25 35 120 50
Nhận thấy∆ i j ≤0với mọi(i,j)∈/G(x 1 )nên ta kết thúc thuật toán và phương án tối ưu duy nhất là: x ∗
Giá trị hàm mục tiêu là: f 0∗5+25∗2+5∗10+35∗7+5∗90
Bài toán vận tải với ràng buộc bất đẳng thức
Trong thực tế nhiều mô hình bài toán vận tải có dạng minf(x) m i=1 ∑ n j=1 ∑ c i j x i j (4.20) vđk: n j=1 ∑ x i j ≤a i ,i=1, ,m (4.21) m i=1 ∑ x i j ≥b i ,j=1, ,n (4.22) x i j ≥0,i=1, ,m,j=1, ,n (4.23). Điều kiện (4.21) có nghĩa là các điểm phát có thể không phát hết hàng Điều kiện (4.22) có nghĩa là các điểm thu thu quá nhu cầu có thể tiêu thụ được Sau đây là điều kiện cẩn và đủ để bài toán (4.20)-(4.23) có phương án tối ưu. Định lý 5.1 Bài toán (4.20) - (4.23) có phương án tối uu khi và chỉ khi tổng lương phát không bẻ hơn tổng luợng thu, nghĩa là m i=1 ∑ a i ≥ n
Việc áp dung thuật toán thể vị để giải bài toán (4.20) - (4.23) được chia làm hai trường hợp, phụ thuộc vào điểu kiện (4.24) Cụ thể:
Tức bài toán thỏa m¯an điểu kiện cân bàng thu phát Khi đó, dể dàng chúng minh dược rằng mọi phương án chấp nhận được của bài toán (4.20) - (4.23) đều thoả m¯an(4.21) và (4.22) dưới dạng dấu dảng thức, tức n j=1 ∑ x i j =a i ,i=1, ,m m i=1 ∑ x i j =b i ,j=1, ,n
Vì vậy, trong trường hợp này bài toán (4.20) - (4.23) có dạng bài toán cân bằng thu phát thông thường và giải được bằng thuật toán thế vị.
∑ j=1 b j tức tổng lượng phát lớm hơn tổng lượng thu Có thể chứng minh được rằng: "Nếux ∗ là nghiệm tối ưu của (4.20) - (4.23) thìx ∗ thoả m¯an chặt ràng buộc (4.22)." Vì vậy, bài toán (4.20)-(4.23) tương đương với bài toán minf(x) m i=1 ∑ n
Mô hình này cũng phù hợp với thực tế vì các điểm thu có thể tự càn đối chỉ nhận đủ lượng hàng cần tiêu thụ Sử dụng kỹ thuật thêm trạm thu giả (n+1), ta có thể giải bài toán mới này bằng cách đưa thêm biến phụ x i(n+1) ≥0,i=1, ,mtương ứng với hệ số mục tiêu c i(n+1) =0,i=1, ,m, và chuyển về bài toán cân bằng thu phát với mđiểm phát và (n+1) điểm thu Lúc này , ta có thể giải bài toán bằng thuật toán thế vị và nhận được phương án tối ưux ∗ x ∗ i j m×(n+1) Chú ý rằng, phương án tối ưu của bài toán ban đầu làx opt x opt i j với x opt i j =x ∗ i j với mọii=1, ,m Nếux ∗ i(n+1) >0thì có nghĩa là điểm phát thứ icòn thừa một lượng hàng làx ∗ i(n+1) đơn vị
Ví dụ 5.1 Tìm phương án tối ưu của bài toán vận tải dưới đây, với điều kiện các trạm phát có thể không phát hết lượng hàng, các trạm thu có thể thu có thể thu quá nhu cầu tiêu thụ. b j a i 60 70 40
Giải.Do∑ 3 i=1 a i %0>∑ 3 j=1 b j 0, ta thêm trạm thu giảb 4 với lượng hàngb 4 =∑ 3 i=1 a i −
Sử dụng phương pháp cực tiểu chi phí, ta được phương án xuất phát cơ bản b j a i 60 70 40 70
Giải bài toán trên bằng phương pháp thế vị, ta được phương án tối ưux ∗ b j a i 60 70 40 70
Nếu bỏ cộtb 4 đi, ta được phương án tối ưu cho bài toán ban đầux (opt) b j a i 60 70 40
Bài toán lập kho nhận hàng
Giả sử một tập đoàn gồmmnhà máy sản xuất một loại hàng hóa với sản lượng tương ứng là a i ,i = 1, , mvà họ đã có sẵnn old kho chứa hàng với dự trữ làb 1 , ,b old Người ta định xây dựngn new kho mới Bài toán đặt ra là mỗi kho mới phải được thiết kế để chứa bao nhiêu hàng và tìm phương án vận chuyển hết hàng từmnhà máy đếnn=b old +n new kho sao cho chi phí vận chuyển là nhỏ nhất với giả thiết các kho mới có thể chứa lượng hàng không hạn chế Cho biết cước phí vận chuyển một đơn vị hàng từ nhà máyiđến khojlàc i j ,i = 1, , m, j = 1, , n.
Ta có thể đưa bài toán này về bài toán vận tải cầu vượt cung( tổng lượng thu lớn hơn tổng lượng phát) bằng cách gán lượng thu: b j =∑ m i=1 a i ,∀j=n old +1, ,n old +n new
. Như vậy, ta phải thêm điểm phát giả(m + 1)với lượng phát là: a m+1 =∑ n j=1 b j −∑ m i=1 a i vàc (m+1) j = 0 với mọij = 1, ,n Khi đó cung bằng cầu và bài toán lập kho hàng tương đương với bài toán vận tải thu phát mở rộng sau: minf(x) m+1
Giả sử phương án vận chuyển tối ưu của bài toán này làx ∗ = (x i j ∗ ) Khi đó, mỗi kho mới j,j∈ {n old +1, ,n}phải được thiết kế với trữ lượng là: b ∗ j m i=1 ∑ x ∗ i j
Hiển nhiên nếub ∗ j =0thì không cần lập kho jnày Phương án tối ưu của bài toán ban đầu là x opt = (x ot p i j )với mọii=1, ,m, j=1, ,n.
Ví dụ 5.2 Một liên hợp sản xuất có ba nhà máy sản xuất xi măng và đã có hai kho Họ dự định xây thêm một kho nữa (với lượng chứa tùy ý) sao cho ba kho này có thể chứa hết lượng xi măng cần chuyển ra khỏi nhà máy Thông tin được xác định ở bảng dưới: b j a i 75 65 250
Bài toán cóm=3, n old =2, n new =1, n=n old +n new =3 Gán b3 =∑ 3 n=1 a i p+100+
80%0 Đặt điểm phát giả là điểm phátm+1=4với lượng phát a 4 =∑ 3 j=1 b j −∑ 3 i=1 a i 390−2500và các cước phic 4j =0, ∀j=1, ,4. b j a i 75 65 250
Phương án cơ bản xuất phát là. v j -1 2 5 u i
Quy 0 cước phí ô chọn rồi kiểm tra thấy∆ 23 =1>0là lớn nhất. v j -1 2 5 u i
Do đó, chọn ô điều chỉnh là ô (2,3) Chu trìnhK ={(2,3),(2,1),(3,1),(3,3)},vớik + 5,k − =5 v j -1 2 5 u i
Sau biến đổi, ta được: v j 0 2 5 u i
Vì các ước lượng∆ i j Σ(pht))
• Trên thực tế, có một trạm phát chỉ được chuyển một lượng hàng nhất định, ít hơn khả năng cung cấp của nó hay trạm được để tồn kho. Đối với bài toán có ô cấm, ta vẫn có thể áp dụng thuật toán thế vị để giải bằng cách đặtc i j =M, với M là số dương lớn tùy ý,c i j là cước phí của ô bị cấm , (Có nghĩa là ta sẽ đánh cước phí cực nặng vào ô này) Khi đó, trong phương án tối ưu thì ô không thể phân phối hàng.
Ví dụ 5.3 Xét bài toán vận tải (PT) sau:
Công ty A cần vận chuyển một loại hàng hóa từ 3 điểm phát với lượng phát lần lượt là 200,
165, 130 đơn vị hàng đến 3 điểm thu với nhu cầu tương ứng 200, 160, 180 đươn vị hàng Biết rằng điểm thu 1 được ưu tiên nhận đủ hàng; điểm thu thứ 3 được nhận tối thiểu 140 đơn vị hàng và không có tuyến vận chuyển từ điểm phát 2 đến điểm thu 2 Ma trận cước phí vận chuyển được xác định như sau:
Hãy xác định phương án chuyển hàng tối ưu.
Bài toán cón=3vàm=3và∑ 3 k=1 a i I5