ĐẠI HỌC QUỐC GIA TP HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA BÁO CÁO BÀI TẬP LỚN Môn Đại số tuyến tính Đề tài ỨNG DỤNG CỦA ĐẠI SỐ TUYẾN TÍNH TRONG QUI HOẠCH TUYẾN TÍNH VỚI BÀI TOÁN VẬN TẢI GVHD Ph D Đặng Văn[.]
Trang 1ĐẠI HỌC QUỐC GIA TP.HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA
BÁO CÁO BÀI TẬP LỚN
Môn: Đại số tuyến tính
Đề tài: ỨNG DỤNG CỦA ĐẠI SỐ TUYẾN TÍNH TRONG QUI HOẠCH TUYẾN TÍNH VỚI BÀI TOÁN VẬN TẢI
Trang 2MỤC LỤC
I BÀI TOÁN VẬN TẢI CÂN BẰNG THU PHÁT 3
1 Mô hình bài toán 3
2 Phương án vận chuyển 3
3 Bảng vận tải 4
II CÁC ĐỊNH NGHĨA VÀ ĐỊNH LÝ, TÍNH CHẤT 4
III CÁC PHƯƠNG PHÁP GIẢI BÀI TOÁN VẬN TẢI 9
1 Phương pháp cước phí thấp nhất 9
2 Phương pháp góc Tây - Bắc 9
IV CÁC BƯỚC GIẢI BÀI TOÁN VẬN TẢI CÂN BẰNG THU PHÁT 9
V CODE MATHLAB GIẢI BÀI TOÁN CÂN BẰNG THU PHÁT 11
VI VÍ DỤ CỤ THỂ 34
DANH MỤC TÀI LIỆU THAM KHẢO 36
Trang 3ỨNG DỤNG CỦA ĐẠI SỐ TUYẾN TÍNH TRONG QUY HOẠCH TUYẾN TÍNH
VỚI BÀI TOÁN VẬN TẢI
Bài toán vận tải (transportation problem) là bài toán quan trọng nhất trong các bài toán qui hoạch tuyến tính Người ta tổng kết rằng 85% các bài toán qui hoạch tuyến tính gặp trong ứng dụng là bài toán vận tải hoặc mở rộng của nó Thuật ngữ bài toán vận tải thường được hiểu là bài toán vận chuyển sao cho cước phí nhỏ nhất
I BÀI TOÁN VẬN TẢI CÂN BẰNG THU PHÁT
1 Mô hình bài toán
Có m nơi 𝐴
1, 𝐴
2, … 𝐴
𝑚cung cấp cùng một một loại hàng hóa với khối lượng tương ứng
là a
1, a
2, ,a
mHàng được cung cấp cho n nơi B
1, B
2, , B
nvới khối lượng tiêu thụ tương ứng là b
1, b
2, ,b
nCước phí chuyên chở một đơn vị hàng từ điểm phát A
iđến điểm thu
B
jlà c
ijHãy lập phương án vận chuyển sao cho tổng chi phí vận chuyển là nhỏ nhất
Trang 4Cân bằng thu phát
Khi tổng số hàng dự trữ m ở điểm phát (cung) là ∑ 𝑎
𝑚 𝑖𝑖
và tổng số nhu cầu của n điểm thu (cầu) là ∑
𝑛𝑗𝑏
𝑗bằng nhau ta nói rằng cân bằng cung cầu (hay cân bằng thu phát)
3 Bảng vận tải
Người ta thường trình bày bài toán vận tải dưới dạng bảng như sau:
Trong đó:
Có n trạm thu hàng và khối lượng hàng tiêu thụ tương ứng là b
nCó m trạm phát hàng và khối lượng hàng cung cấp tương ứng là a
mKhối lượng chở từ trạm phát đến trạm thu là x
ijCước phí chuyên chở một đơn vị hàng từ trạm phát đến trạm thu là c
ij Trang 5gọi là ô loại
Định nghĩa đường đi
Đường đi là tập hợp các ô chọn sao cho:
● Trên cùng một dòng hay một cột không có quá hai ô chọn
● Hai ô chọn liên tiếp thì nằm trên cùng một dòng hay một cột
Ví dụ 1 Dãy các ô chọn sau tạo thành một đường đi:
Định nghĩa chu trình
Một đường đi khép kín được gọi là một chu trình
Ví dụ 2 Dãy các ô chọn sau tạo thành một chu trình
Tính chất 1: Một bảng vận tải có m dòng, n cột thì tập các ô chọn không chứa
chu trình có tối đa m + n - 1 ô
Trang 6Tính chất 2: Với một phương án có đủ m + n - 1 ô chọn không chứa chu trình, thì với bất kỳ một ô loại nào được đưa vào phương án thì sẽ tạo thành
một chu trình và chu trình này là duy nhất
Ví dụ 3 Xét bảng vận tải 3 dòng, 4 cột với một phương án có 3+4-1= 6 ô chọn cho như sau:
Khi ta thêm một ô loại bất kỳ thì ô loại này kết hợp với một số ô chọn này tạo thành
chu trình Chẳng hạn, ta thêm ô loại (1,2) vào phương án thì ô này sẽ kết hợp với các ô (3,2); (3,3); (2,3); (2,1); (1;1) tạo thành chu trình
Trang 7Định lý 1: Một phương án được gọi là phương án cực biên của bài toán vận tải khi
và chỉ khi tập các ô chọn của nó không chứa chu trình
Định lý 2: Một phương án cực biên có m + n - 1 ô chọn được gọi là phương án cực biên không suy biến Ngược lại, một phương án cực biên có ít hơn m + n - 1 ô chọn
được gọi là phương án cực biên suy biến
Ví dụ 4 Phương án sau là phương án cực biên không suy biến
Trang 8Ví dụ 5 Phương án sau là phương án cực biên suy biến:
Trang 9III CÁC PHƯƠNG PHÁP GIẢI BÀI TOÁN VẬN TẢI
1 Phương pháp cước phí thấp nhất
Chọn ô có cước phí bé nhất Điền vào ô đó giá trị lớn nhất có thể
Loại bỏ các ô mà trạm phát hàng hết khả năng cung cấp hoặc trạm thu hàng hết nhu
cầu
Xác định lại ô có chi phí bé nhất trong các ô còn lại và tiếp tục làm giống như 2
bước trên cho tới khi nào hết khả năng phân phối
Trong quá trình chọn ô phân phối có nhiều ô chọn có chi phí nhỏ nhất giống nhau
thì phân phối vào ô nào cũng được Phương án thu được bằng phương pháp này là
phương án cực biên
2 Phương pháp góc Tây - Bắc
Ta ưu tiên phân phối lượng hàng nhiều nhất vào ô ở góc Tây - Bắc trên bảng vận tải Khi đó
nếu:
Trạm phát nào đã hết hàng thì ta xóa dòng chứa trạm phát đó
Trạm thu nào đã nhận đủ hàng thì ta xóa cột chứa trạm thu đó
Sau đó lặp lại quá trình trên đối với những ô còn lại Phương án được thành lập bằng phương
pháp góc Tây - Bắc là phương án cực biên
IV CÁC BƯỚC GIẢI BÀI TOÁN VẬN TẢI CÂN BẰNG THU PHÁT
Bước 1: Kiểm tra cân bằng thu phát
• Nếu ∑ 𝑎
𝑚 𝑖𝑖
= ∑
𝑛𝑗𝑏
𝑗thì bài toán cân bằng thu phát → chuyển sang bước 3
• Nếu ∑ 𝑎
𝑚 𝑖𝑖
≠ ∑ 𝑏
𝑛𝑗 𝑗thì bài toán không cân bằng thu phát → tiếp tục bước 2
Bước 2: Đưa bài toán về cân bằng thu phát
Trang 10Thêm vào các trạm phát/ thu giả có cước phí 𝐶
𝑖𝑛+1= 0 để chuyển bài toán thành cân bằng
Trường hợp phát > thu → thêm trạm thu giả 𝑏
𝑛+1với lượng hàng = ∑ 𝑝ℎá𝑡 − ∑ 𝑡ℎ𝑢
Trường hợp phát < thu → thêm trạm phát giả 𝑎
𝑚+1với lượng hàng = ∑ 𝑡ℎ𝑢 − ∑ 𝑝ℎá𝑡
Bước 3: Tìm phương án xuất phát
Thành lập phương án cực biên ban đầu theo nguyên lý phân bổ tối đa với các ô chọn phân bổ bằng các phương pháp: góc Tây Bắc, cước phí thấp nhất,…
Bước 4: Kiểm tra phương án suy biến hay không suy biến
• Phương án không suy biến là phương án có số ô chọn đúng bằng số ô trạm phát + số ô trạm thu –1 → chuyển tới bước 6
• Phương án suy biến là phương án có số ô chọn < số ô trạm phát + số ô trạm thu –1 →
tiếp tục bước 5
Bước 5: Đưa về phương án không suy biến
Bổ sung thêm các ô loại bất kì của bảng làm ô chọn giả (lượng hàng phân bổ 𝑥
𝑖𝑗= 0) cho
đủ (𝑚 + 𝑛 − 1) ô chọn và đảm bảo không tạo thành chu trình
Bước 7: Tính ∆
𝑖𝑗tại các ô loại và kết luận
∆
𝑖𝑗= 𝑢
𝑖+ 𝑣
𝑗+ 𝑐
𝑖𝑗,∀(i, j)
Kiểm tra dấu hiệu tối ưu của phương án:
Nếu mọi ∆
𝑖𝑗≥ 0 → Phương án đang xét tối ưu → Tính f
min Trang 11- Nếu có ∆
𝑖𝑗< 0 → Phương án không tối ưu và chuyển sang bước 8
Bước 8: Xây dựng phương án mới tốt hơn (lập bảng mới):
• Tìm một ô (r,s) là ô có ∆
𝑖𝑗< 0 𝑣à 𝑛ℎỏ 𝑛ℎấ𝑡
• Tìm một chu trình xuất phát từ ô (r,s)
- Tìm chu trình: từ ô (r,s) kẻ các đường thẳng ngang hoặc dọc nối tới các ô chọn trong bảng, rồi từ ô chọn đó nối tới các ô chọn khác cho đến khi quay trở lại ô (r,s); các đường nối này phải thỏa mãn:
Trên mỗi hàng hoặc cột chỉ có hai ô chọn Hai ô liên tiếp luôn trên cùng hàng hoặc cùng cột
• Đánh dấu (+) vào ô (r,s); dấu trừ (–) vào ô kế tiếp, rồi dấu (+),… cho đến hết vòng
• Tìm q = min{𝒙
𝒊𝒋} với 𝒙
𝒊𝒋thuộc các ô đánh dấu (–)
➢ Ô chọn nào là ô có dấu cộng (+) thì giá trị 𝒙
𝒊𝒋tại đó cộng thêm q
➢ Ô chọn nào là ô có dấu cộng (–) thì giá trị 𝒙
𝒊𝒋tại đó trừ thêm q
➢ Ô chọn nào không có dấu cộng (+) và trừ (–) thì giữ nguyên giá trị 𝒙
𝒊𝒋• Quay lại Bước 6 và thực hiện cho đến khi tìm được phương án tối ưu
V CODE MATHLAB GIẢI BÀI TOÁN CÂN BẰNG THU PHÁT
clc;
c = input('Nhap ma tran chi phi:\n');
s = input('Nhap ma tran cung cap (dang cot):\n');
d = input('Nhap ma tran nhu cau (dang d):\n');
Trang 18x22(ieliminate,n+1)=x22(ieliminate,n+1)-1; % decrease the number
of the basic variable on row one unit
x22(m+1,jeliminate)=x22(m+1,jeliminate)-1; % decrease the number
of the basic variable on column one unit
Trang 19%% Control the constructing loop path
%% Make +/-sign on basic variables in the loop path (x2)
%1 Add - sign on basic variable on row(imax) and on basic variable on
Trang 24%% Control the constructing loop path
%% Make +/-sign on basic variables in the loop path (x2)
%1 Add - sign on basic variable on row(imax) and on basic variable on
Trang 25if (j~=jneg && x44(ineg,j)>0 && x44(ineg,n+1)==2)
Trang 29%% How to correct degeneracy matrix
numstepdegen=reducetant-countstepdegen; iterationstepDegen=0;
for A=1:numstepdegen
iterationstepDegen=iterationstepDegen+1;
%% Construct the u-v variables
%% Construct the u-v variables
end
end
end
end
Trang 34