Professional Documents
Culture Documents
L03 ĐSTT Nhóm13
L03 ĐSTT Nhóm13
ĐỀ TÀI 13:
ỨNG DỤNG CỦA ĐẠI SỐ TUYÊN TÍNH TRONG VẬN TẢI
LỜI CẢM ƠN
Đầu tiên, cho chúng em xin gửi lời cảm ơn chân thành đến Trường đại học Bách Khoa –
ĐHQG TPHCM, đã đưa môn Đại số Tuyến Tính vào chương trình giảng dạy.
Đặc biệt, chúng em xin gửi lời cảm ơn sâu sắc đến giảng viên bộ môn là cô Nguyễn Xuân
Mỹ đã giảng dạy, truyền đạt cho chúng em kiến thức quý báu trong những ngày qua.
Trong suốt thời gian tham gia lớp Đại số tuyến tính của cô, chúng em tự thấy bản thân
mình tư duy hơn, học tập càng thêm nghiêm túc và hiệu quả. Đây chắc chắn là những tri
thức quý báu, là hành trang cần thiết cho chúng em sau này.
Bộ môn Đại số tuyến tính là một môn học vô cùng hữu ích, có tính thực tế cao,đảm bảo
cung cấp đủ nhu cầu thực tiễn cho sinh viên. Tuy nhiên, do vốn kiến thức chúng em còn
nhiều hạn chế cũng như còn bỡ ngỡ nên mặc dù đã cố gắng hết sức nhưng chắc chắn bài
tập lớn Đại số tuyến tính lần này khó có thể tránh khỏi những thiếu sót và vài chỗ còn
chưa chính xác. Kính mong cô xem xét, góp ý cho Bài tập lớn của chúng em được hoàn
thiện hơn. Chúng em xin chân thành cảm ơn!
MỤC LỤC
THỰC HIỆN: LỚP L03 – NHÓM 13 ........................................................................................................... 1
LỜI CẢM ƠN ............................................................................................................................................... 2
1. CƠ SỞ LÝ THUYẾT .......................................................................................................................... 4
1.1 Khái niệm ...................................................................................................................................... 4
1.2 Phương án cực biên cơ bản ........................................................................................................ 10
1.3 Phương án cực biên tối ưu hơn ................................................................................................... 14
2. Matlab (Dùng xác định phương án cực biên cơ bản không suy biến) .......................................... 16
2.1 Phương pháp góc Tây Bắc .......................................................................................................... 16
2.2 Phương pháp số nhỏ nhất trong bảng......................................................................................... 17
3. Kết luận .............................................................................................................................................. 20
TÀI LIỆU THAM KHẢO .......................................................................................................................... 21
1. CƠ SỞ LÝ THUYẾT
1.1 Khái niệm
- Qui hoạch tuyến tính (LP) là một thuật toán nhằm tìm ra phương án tối ưu (hoặc kế
hoạch tối ưu) từ vô số các phương án quyết định. Phương án tối ưu là phương án thỏa
mãn được các mục tiêu đề ra của một hãng, phụ thuộc vào các hạn chế và các ràng buộc.
- LP đề cập đến vấn đề phân bổ nguồn lực khan hiếm giữa các hoạt động cạnh tranh trong
một phương thức tối ưu. Quyết định tối ưu mang lại hiệu quả cao nhất, lãi gộp
(Contribution Margin - CM) cao nhất hay doanh thu hoặc chi phí thấp nhất. Mô hình LP
gồm 2 thành phần:
+ Hàm mục tiêu: Phải xác định mục tiêu cụ thể phải đạt tới.
+ Các ràng buộc: Các ràng buộc dưới dạng các hạn chế về sự sẵn có của nguồn lực hay
thỏa mãn các yêu cầu tối thiểu. Như tên gọi quy hoạch tuyến tính, cả hàm mục tiêu và các
ràng buộc phải dưới dạng tuyến tính.
=> Muốn tìm kết hợp sản phẩm tối ưu. Kết hợp tối ưu là kết hợp tối đa hóa tổng hiệu quả
hay lãi gộp (CM) trong ngân sách được giới hạn và công suất sản xuất. Hoặc là có thể
muốn xác định kết hợp nguyên liệu đầu vào có chi phí nhỏ nhất trong khi vẫn đáp ứng
được các đòi hỏi của sản xuất, tận dụng công suất sản xuất và sử dụng nhân công sẵn có
- Giải quyết vấn đề phân phối hàng hoá từ một số địa điểm cung cấp (điểm nguồn) đến
một số địa điểm tiêu thụ (điểm đích) sao cho:
- Áp dụng để xác định vị trí nhà kho, cửa hàng hay nhà xưởng mới khi xem xét một số
phương án về địa điểm xây dựng
-Tối ưu kho vận là bài toán có tính ứng dụng rất cao trong lớp các bài toán tối ưu. Vấn đề
mà bài toán giải quyết liên là vấn đề mà nhiều doanh nghiệp đang gặp phải. Bài toán này
sẽ giúp cho các doanh nghiệp tiết kiệm được chi phí vận chuyển hàng hoá nhờ phân bổ
Bài tập lớn Đại số tuyến tính (MT100) Page 4
Nhóm 13 – L03
Đại học Bách khoa TP.HCM Mã đề: 13
nguồn lực ở các kho một cách hợp lý đến các cửa hàng. Không chỉ giúp tối ưu về chi phí,
bài toán vận chuyển còn có thể chuyển sang mục tiêu khác đó là tối ưu thời gian vận
chuyển. Một trong những công trình nổi tiếng nghiên cứu ứng dụng của toán học trong
vận tải là bài toán vận tải trong quy hoạch tuyến tính, được tạo ra bởi nhà toán học người
Pháp Gaspard.
Phương án tối ưu (PATU): Một PA x* của bài toán QHTT được gọi là nghiệm hay PATU
nếu nó làm cho hàm mục tiêu đạt min (hoặc max) đúng như yêu cầu bài toán đó. Giải một
bài toán QHTT đã cho là đi tìm một nghiệm của bào toán đó.
Phương án cực biên (PACB) a) Đối với bài toán (G) Xét một bài toán QHTT dạng tổng
quát (G) có n biến x1, x2, …, xn. Một PA x* = (x1*, x2*, …, xn*) của bài toán (G) đang
xét được gọi là phương án cực biên (PACB) nếu nó thỏa mãn dấu “=” (còn gọi là thỏa
mãn chặt) với ít nhất n ràng buộc trong đó có đúng n ràng buộc độc lập tuyến tính (tức là
ma trận hệ số của n ràng buộc đó có hạng bằng n) trong hệ rằng buộc của (G).
Nếu gọi:
• 𝑎𝑖 : Khả năng cung cấp của điểm nguồn thứ i (i = 1,. . . ,m)
• cij: Chi phí vận chuyển một đơn vị hàng hoá từ điểm nguồn i đến điểm đích j
• xij: Lượng hàng được vận chuyển từ điểm nguồn i đến điểm đích j
MinZ = ∑𝑚 𝑛
𝑖=1 ∑𝑗=1 𝑐𝑖𝑗 𝑥𝑖𝑗
• Ràng buộc:
∑𝑚
𝑖=1 𝑥𝑖𝑗 ≥ 𝑏𝑗 với (j=1,…,n)
Ví dụ 2. Giả sử yêu cầu tối thiểu mỗi ngày về các chất dinh dưỡng đạm, đường, khoáng
cho một loại gia súc tương ứng là 90g, 130g, 10g. Cho biết hàm lượng các chất dinh
dưỡng trên có trong 1g thức ăn A, B, C và giá mua 1kg thức ăn mỗi loại được cho trong
bảng sau:
Hãy lập mô hình toán học của bài toán xác định khối lượng thức ăn mỗi loại phải mua để
tổng số tiền chi cho mua thức ăn ít nhất nhưng đáp ứng được nhu cầu dinh dưỡng mỗi
ngày.
– Nếu tổng lượng thu bằng tổng lượng phát thì ta sử dụng các phương án cưc biên để tính
cước phí nhỏ nhất.
Tính chất:
+Bài toán vận tải cân bằng thu phát luôn có phương án tối ưu.
+Ma trận hệ số các ràng buộc của bài toán vận tải có hạng bằng 𝑚 + 𝑛 − 1.
Trường hợp phát lớn hơn thu. Ta thêm trạm thu giả 𝑏𝑛+1 , với lượng hàng là
𝑏𝑛+1 = ∑𝑚 𝑛
𝑖=1 𝑎𝑖 − ∑𝑗=1 𝑏𝑗 , 𝑐𝑖𝑛+1 = 0, 𝑖 = 1, … , 𝑚
Trường hợp phát ít hơn thu. Ta thêm trạm phát giả 𝑎𝑚+1 ; với lượng hàng là
𝑎𝑚+1 = ∑𝑛𝑗=1 𝑏𝑗 − ∑𝑚
𝑖=1 𝑎𝑖 , 𝑐𝑚+1𝑖 = 0, 𝑗 = 1, … , 𝑛
– Sau đó tính bằng phương án cực biên như "Cân bằng thu phát".
– Sau khi tìm được phương án tốt nhất ta loại bỏ hàng hoặc cột đã thêm vào.
Ví dụ: Giải bài toán vận tải không cân bằng thu phát cho bởi bảng vận tải sau:
-Trong bảng vận tải, những ô có xij > 0 được gọi là ô chọn, những ô có xij = 0 gọi là ô
loại.
-Ta gọi một đườ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. Và hai ô chọn liên tiếp thì nằm trên cùng một dòng hay một cột.
-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 ô.
-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ì ô loại này cùng với một số ô chọn đã cho để tạo
thành chu trình và chu trình này là duy nhất.
Định lý:
- 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.
-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.
+Phương án cực biên suy biến: Số ô chọn nhỏ hơn m + n – 1, ta chọn thêm 1 ô có giá
trị nhỏ nhất ưu tiên theo thứ tự từ trên bên trái và không tạo thành chu trình.
Ý tưởng chính của phương pháp này là phân phối lượng hàng lớn nhất có thể vào ô có
cước phí thấp nhất. Phương pháp phân phối lượng hàng 𝑥𝑖𝑗 được thực hiện như sau:
𝑎𝑖 𝑙𝑜ạ𝑖 𝑑ò𝑛𝑔 𝑖, 𝑏𝑗 = 𝑏𝑗 − 𝑎𝑖
𝑥𝑖𝑗 = 𝑚𝑖𝑛{𝑎𝑖 ; 𝑏𝑗 } = {𝑏𝑗 𝑙𝑜ạ𝑖 𝑐ộ𝑡 𝑗, 𝑎𝑖 = 𝑎𝑖 − 𝑏𝑗
𝑎𝑖 = 𝑏𝑗 𝑙𝑜ạ𝑖 𝑑ò𝑛𝑔 𝑖 𝑐ộ𝑡 𝑗
Lặp lại quá trình trên cho các ô tiếp theo đến khi yếu cầu của trạm phát, trạm thu được
thỏa mãn. Phương án thu được bằng phương pháp này là phương án cực biên.
Ví dụ: Bằng phương pháp cước phí thấp nhất, thành lập một phương án cực biên của bài
toán vận tải:
Ta ưu tiên phân phối lượng hàng nhiều nhất vào ô ở góc Tây - Bắc (góc trên bên trái) của
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
Phương pháp Vogel (Fogel) cho ta một phương án cực biên khá tốt, theo nghĩa nó rất
gần với phương án tối ưu.
i) Trên mỗi dòng, mỗi cột của ma trận cước phí ta tính hiệu số giữa hai giá trị
cước phí nhỏ nhất.
ii) Chọn dòng hay cột có hiệu số này lớn nhất (nếu có nhiều dòng hay cột thỏa
điều kiện này thì ta chọn một dòng hay một cột trong các dòng, cột này)
iii) Phân lượng hàng nhiều nhất vào ô có cước phí nhỏ nhất trên dòng hay cột vừa
chọn được. Khi đó nếu nơi nào đã phát hết hàng thì ta xóa dòng chứa nơi phát
đó. Nếu nơi nào nhận đủ hàng thì ta xóa cột chứa nơi nhận đó. Lúc đó cột
(dòng) này hiệu số sẽ không tính cho bước sau.
iv) Lặp lại ba bước nói trên với những ô còn lại cho đến hết. Ta thu được phương
án cực biên.
Để giải bài toán vận tải, ta thực hiện bốn bước như sau:
Bước 1. Thành lập phương án cực biên bằng một trong các phương pháp: cước phí thấp
nhất, Tây- Bắc, Vogel.
Bước 2. Xét xem phương án cực biên hiện thời đã tối ưu hay chưa bằng thuật toán quy
không cước phí ô chọn. Nếu phương án cực biên hiện thời là phương án tối ưu thì thuật
toán kết thúc. Ngược lại sang bước 3.
Bước 3. Xây dựng phương án cực biên mới tốt hơn xem 4.4.2.
Xét bài toán quy hoạch tuyến tính có phương án cực biên ban đầu không suy biến (có
𝑚 + 𝑛 − 1 ô chọn). Nếu bài toán có phương án cực biên suy biến (có ít hơn 𝑚 + 𝑛 − 1 ô
chọn) thì ta thêm ô chọn giả (𝑖, 𝑗) với 𝑥𝑖𝑗 = 0 vào sao cho các ô chọn giả này và các ô
chọn ban đầu không tạo thành chu trình.
Bài toán vận tải sau khi quy không cước phí các ô chọn:
+Nếu 𝑐 ′ 𝑖𝑗 ≥ 0 với mọi (𝑖, 𝑗) thì phương án cực biên hiện thời là phương án tối ưu.
+Nếu tồn tại 𝑐 ′ 𝑖𝑗 < 0 thì có thể tìm một phương án mới tốt hơn phương án hiện thời.
Bước 1. Ô chọn mới là ô loại có 𝑐 ′ 𝑖𝑗 âm nhất (là số âm có giá trị tuyệt đối lớn nhất).
Bước 2. Xác định chu trình chứa ô chọn mới vừa xác định bước 1. Ô chọn mới được đánh
dấu (+), các ô chọn còn lại trên chu trình đánh dấu xen kẻ dấu (-), (+) trên chu trình.
Ví dụ: Cho bài toán vận tải có phương án cực biên. Chứng minh phương án cực
biên hiện thời chưa tối ưu. Xây dựng một phương án khác tốt hơn.
Giải
sumr = sum(cung);
sumc = sum(chua);
if (sumr == sumc)
disp('Transceiver balance: ');
count = 1;
matrix = zeros(length(cung), length(chua));
for i = 1:length(cung)
for j = count:length(chua)
matrix(i, j) = min(cung(i), chua(j));
disp(matrix);
minTB = 0;
for i = 1:length(chua)
for j = 1:length(chua)
if (matrix(i, j) == 0)
continue;
else
minTB = minTB + matrix(i, j) * (i + j);
end
end
end
disp('Cuoc phi nho nhat tinh theo phuong phap tay bac');
disp(minTB);
else
disp('Khong can bang, hay nhap lai ma tran.');
end
sumr = 0;
sumc = 0;
for i = 1:length(cung)
sumr = sumr + cung(i);
end
for i = 1 : length(chua)
sumc = sumc + chua(i);
end
if (sumr == sumc)
copy = x;
[row col] = size(x);
flag = 1;
mink = 0;
while (flag == 1)
for i = 1 : row
k = 0;
for j = 1 : col
if (copy(i,j) == -1)
continue;
else
mink = min(copy(i,j),mink);
end
end
end
for i = 1 : row
for j = 1 : col
if (copy(i,j) == mink)
newmatrix(i,j) = min(cung(i),chua(j));
if (cung(i) == newmatrix(i,j))
for k = 1 : col
copy(i,k) = -1;
end
chua(j) = chua(j) - newmatrix(i,j);
cung(i) = cung(i) - newmatrix(i,j);
end
end
end
end
flag1 = 1;
flag2 = 1;
for i = 1 : length(cung)
if (cung(i) ~= 0)
flag1 = 0;
end
end
for i = 1 : length(chua)
if (chua(i) ~= 0)
flag2 = 0;
end
end
if (flag1 == 1 && flag2 == 1)
flag = 0;
end
end
minTB = 0;
for i = 1 : length(cung)
for j = 1 : length(chua)
if (newmarix(i,j) == 0)
continue;
else
minTB = minTB + newmatrix(i,j)*x(i,j);
end
end
end
disp(newmatrix);
disp("cuoc phi nho nhat tinh theo phuong phap cuoc phi nho nhat");
disp(minTB);
end
*Nhận xét:
Phương án Cước phí nhỏ nhất tối ưu chi phí vận chuyển hơn phương pháp Tây
Bắc.
3. KẾT LUẬN
Qua bài tập lớn lần này, nhóm chúng em đã được tìm hiểu sâu hơn về một đề tài thú vị,
tiếp xúc nhiều hơn với những phần mềm hữu ích. Đã cùng nhau nỗ lực hoàn thành
nhiệm vụ được giao. Nhóm đã có thêm nhiều kĩ năng, kiến thức. Học hỏi được những
điều hay từ thành viên trong nhóm, rèn luyện được khả năng tự học, tận dụng được tối
đa nguồn thông tin và biết chắt lọc nội dung để tiếp thu học hỏi. Trong quá trình làm
việc nhóm cũng gặp phải không ít khó khăn. Như việc thiếu kinh nghiệm trong việc
giao tiếp dẫn đến bất đồng quan điểm nhưng các thành viên trong nhóm đều mang tinh
thần muốn học hỏi, tiếp nhận cái mới nên chúng em đã học được cách lắng nghe, học
cách cùng nhau giải quyết vấn đề khó. Một lần nữa chúng em xin chân thành cám ơn
cô!
[YT] Hà Chí Công - Lý thuyết bài toán vận tải không cân bằng thu phát
https://www.youtube.com/watch?v=NNnoKWaCqL0
[YT] Hà Chí Công - Bài toán vận tải cân bằng thu phát
https://www.youtube.com/watch?v=ijEu7XLtScc
[YT] Trần Hoan - Qui hoạch tuyến tính – Giải bài toán bằng phương pháp thế vị
https://www.youtube.com/watch?v=cNldrcJYHs4
https://www.youtube.com/watch?v=Ps5o_y4mAdc
[YT] Trần Hoan - Khái niệm cơ bản về bài toán vận tải
https://www.youtube.com/watch?v=MtUokYl5OOY