You are on page 1of 28

TRƯỜNG ĐẠI HỌC BÁCH KHOA-ĐHQG TPHCM

KHOA KHOA HỌC VÀ ỨNG DỤNG


----------

BÀI TẬP LỚN ĐẠI


SỐ TUYẾN TÍNH

GVHD: Nguyễn Anh


Thi
Chủ đề 26: Ứng dụng đại
số tuyến tính trong quy
hoạch tuyến tính với bài toán vận tải

Thành phố Hồ Chí Minh-5-2021


DANH SÁCH THÀNH VIÊN
STT HỌ VÀ TÊN MSSV

1 Lâm Nhật Tân 2010597


2 Tô Duy Tân 2012017

3 Đặng Nguyễn Duy Tân 2014449

4 Du Tuấn Thịnh 2012104

5 Phạm Đức Thắng 2012080

6 Bùi Trần Nhật Thanh 2012021

7 Nguyễn Thị Thanh 2014465

8 Đậu Xuân Thành 2014486

9 Nguyễn Hồ An Thi 2014559

10 Nguyễn Quốc Thiện 2010645

11 Dương Thái Thịnh 2014589

12 Lê Văn Phước Thắng 2014536

LỜI CÁM ƠN
Trong cuộc sống để thành công thì điều không thể thiếu là có được sự giúp đỡ, hỗ
trợ dù ít hay nhiều, nó cũng chính là nguồn định hướng cho ta. Và để hoàn thiện bài tập
nhóm này chúng em cũng được rất nhiều sự quan tâm, hỗ trợ của thầy cô, của các anh chị
và của chính các bạn. Nhóm xin gửi lời cảm ơn sâu sắc tới cô Nguyễn Anh Thi giảng
viên bộ môn Đại số tuyến tính đã chỉ bảo, giúp đỡ. Chính nhờ sự giúp đỡ tận tình ấy của
thầy cô, anh chị đã giúp nhóm định hướng đúng, hoàn thành bài tập lớn theo đúng chỉ tiêu
nhóm đề ra.

Mặc dù chúng em đã cố gắng học hỏi để làm tốt bài tập lớn của mình nhưng do
kiến thức còn hạn chế nên bài tập lớn của nhóm em không tránh khỏi sự sai sót. Vậy em
rất mong sự chỉ bảo và giúp đỡ quý thầy cô để bài tập lớn cũng như kiến thức của chúng
em được hoàn chỉnh hơn.

Sau đây là nội dung tìm hiểu bài tập lớn của nhóm.
MỤC LỤC
I . CƠ SỞ LÍ THUYẾT........................................................................................................5
1.Bài toán vận tải cân bằng thu phát...................................................................................5
2. Phương án cực biên của bài toán vận tải.........................................................................7
3.Các phương pháp thành lập phương án cực biên...........................................................10
3.1. Phương pháp cước phí thấp nhất:..........................................................................10
3.2. Phương pháp góc Tây-Bắc:...................................................................................10
3.3. Phương pháp Vogel (Folgel):................................................................................11
4. Thuật toán thế vị giải bài toán vận tải...........................................................................11
4.1. Thuật toán quy không cước phí ô chọn..................................................................11
4.2. Xây dựng phương án cực biên mới........................................................................14
5.Một số trường hợp đặc biệt của bài toán vận tải............................................................14
6.Bài toán vận tải cực đại cước phí...................................................................................15
II . BÀI TOÁN ỨNG DỤNG THỰC TẾ...........................................................................16
Bài toán 1: Bài toán cân bằng thu phát.............................................................................16
Bài toán 2: Bài toán phân phối đất trồng có ô cấm...........................................................18
Bài toán 3: Bài toán điều xe..............................................................................................19
Bài toán 4: bài toán phân công nhân lực...........................................................................22
III. VIẾT CHƯƠNG TRÌNH ĐỂ GIẢI MỘT BÀI TOÁN CỤ THỂ.............................24
1. Giới thiệu hàm linprog trong Matlab:.........................................................................24
2. Đoạn code................................................................................................................... 25
3. Ví dụ............................................................................................................................. 26
4.Tài liệu tham khảo.........................................................................................................27
I . CƠ SỞ LÍ THUYẾT
1.Bài toán vận tải cân bằng thu phát
Giả sử:

Thu Phát b1 b2 … bj … bn

a1 c11 c12 … c1j … c1n

a2 c21 c22 … c2j … c2n

… …


aj ci1 ci2 … cij … cin

… …


am cm1 cm2 … cmj … Cmn

 Có m nơi cung cấp hàng hóa (trạm phát), trạm phát i chứa ai đơn vị
hàng hóa i =1,..,m.
 Có n nơi tiêu thụ hàng hóa (trạm thu), trạm thu thứ j chứa bj đơn vị
hàng hóa j= 1,…,n.
 Tổng lượng phát bằng tổng lượng thu, nghĩa là :

m n

∑ ai=¿ ∑ b j ¿
i=1 j=1

 Cước phí vận chuyển một đơn vị hàng hóa từ nơi cung cấp thứ i đến nơi
tiêu thụ thứ j là cij

Yêu cầu của bài toán là tìm lượng hàng phân phối xij ≥0 từ trạm phát thứ
i đến trạm thu thứ j sao cho:

 Tổng chi phí vận chuyển thấp nhất


m n

z = ∑ ∑ c ij x ij  min
i=1 j=1

5
 Giải tỏa kho
n

∑ x ij= ai , i= 1,…,m.
i=1

 Cửa hàng nhận đủ hàng


m

∑ x ij= bj , j=1,….,n.
i=1

 Bảng phân phối lượng hàng vận chuyển xij từ trạm phát thứ i đến trạm thu
thứ j thường được trình bày như sau

bj
aj b1 b2 … bj … bn

c11 c12 c1j c1n


a1
x11 x12 x1j x1n
c21 c22 c2j c2n
a2
x21 x22 x2j x2n

ci1 ci2 cij cin


aj xi1 xi2 xij xin

cm1 cm2 cmj Cmn


am xm1 xm2 xmj xmn
 Ma trận

( )
x 11 x 12 x
⋯ 1n
x 21 x 22 x 2n
x = ⋮ ⋱ ⋮
x m 1 x m 2 ⋯ x mn
thỏa các ràng buộc (4.3) và (4.4) được gọi là phương án chấp nhận được.
 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.
Chứng minh. Ta cần chứng minh tập các phương án chấp nhận được khác
rỗng và hàm mục tiêu luôn bị chặn dưới. Thật vậy ta có

6
ai b j
xij =
∑ ai ≥ 0
m
∀ i, j
i=1

là phương án chấp nhận được vì


n
ai b j ai n
n
∑ ∑ b j =a , i = 1,…,m
∑ x = m
= m

∑ ai ∑ ai i
ij j=1 j=1
j=1
i=1 i=1
m m
ai b j bj
m
∑ ∑ ai=b , j = 1,…,n
∑ x ij= i=1 m
= m

∑ ai ∑ j
i=1
i=1 a i
i=1 i=1
Hàm mục tiêu bị chặn dưới bởi không
m n
z = ∑ ∑ c ij x ij≥ 0
i=1 j=0

Vậy theo tính chất của bài toán quy hoạch tuyến tính, bài toán vận tải luôn
có phương án tối ưu.
 Tính chất: 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 m + n - 1

2. Phương án cực biên của bài toán vận tải


 Định nghĩa : (Ô chọn, Ô loại)
i. Ta viết ( i : j ) là ô ở dòng i cột j
ii. 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.
 Định nghĩa : ( Đường đ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.
 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ụ . Dãy các ô chọn sau tạo thành một đường đi:

Ví dụ. Các ô chọn sau có lập thành đường đi không, tại sao?

7
 Đị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ụ. Dãy các ô chọn sau tạo thành một chu trình

 Tính chấ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 ô.
 Tính chất: 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ụ. 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ư

8
9
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.

 Đị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
 Định nghĩa: 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ụ . Phương án sau là phương án cực biên không suy biến

Ví dụ. Phương án sau là phương án cực biên suy biến

Nhận xét. Một phương án cơ bản có các cô chọn có thể không lập thành một
đường đi.

9
3.Các phương pháp thành lập phương án cực biên
3.1. Phương pháp cước phí thấp nhất:
Ý 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 xij được thực
hiện như sau:
xij = min{ai;bj}= {ai loại dòng i, bj = bj-ai
{bj loại cột j, ai = ai-bj
{ai = bj loại dòng i, cột j
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 1 phương án cực biên
của bài toán vận tải:

bj 30 40 50 60
ai
80 1 5 7 2
45 5 7 4 9
55 12 2 3 6

3.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.
Ví dụ: Bằng phương pháp góc Tây - Bắc, thành lập phương án cực biên của bài
toán vận tải
bj 30 40 50 60
ai
80 1 5 7 2
45 5 7 4 9
55 12 2 3 6

10
3.3. Phương pháp Vogel (Folgel):
Phương pháp Vogel 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.
Ví dụ: Bằng phương pháp Vogel tìm phương án cực biên của bài toán vận tải:

bj 30 40 50 60
ai
80 1 5 7 2
45 5 7 4 9
55 12 2 3 6

4. Thuật toán thế vị giải bài toán vận tải


Để giải bài toán vận tải, ta thực hiện 4 bước sau:
 Bước 1: thành lập phương án cực biên thành 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 giờ đã 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 giờ
là 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.
 Bước 4: quay về bước 2.
4.1. Thuật toán quy không cước phí ô chọn
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ó m+n-1 ô chọn). Nếu bài toán có phương án cực biên suy biến (có ít hơn
m+n-1 ô chọn) thì ta thêm ô chọn giả (i;j) với xij = 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.

11
Ví dụ: Xét bài toán vận tải có phương án cực biên suy biến:

ai bj 40 100 60 50
1 2 4 3
80
40 40
2 4 5 1
70
20 50
4 1 2 5
100
100

Ta thêm ô chọn giả (1;2) với x12 = 0 thì bài toán có m + n – 1 ô chọn
Thuật toán quy không cước phí thực hiện như sau: Lần lượt công vào các cước
phí ở dông 1,…,m một lượng r1,…,rm và vào cột 1,…,n một lượng s1,…,sn sao cho
tổng cước phí trên các ô chọn bằng không.

Ví dụ: Quy không cước phí ô chọn của bảng vận tải

ai bj 40 100 60 50

80 1 2 4 3

40 40
70 2 4 5 1

20 50
100 4 1 2 5

100

12
ai bj 30 40 50 60
80 1 5 7 2

30 50
45 5 7 4 9

35 10
55 12 2 3 6

40 15

ri sj
1 5 7 2

30 50
5 7 4 9

35 10
12 2 3 6

40 15

Bài toán vận tải sau khi quy không cước phí ô chọn:

ai bj 30 40 50 60

80
30 50

45
35 10

55 40 15

 Đinh lý: Lần lượt cộng vào các cước phí ở dòng 1,…,m một lượng r1,
…,rm và vào cột 1,…,n một lượng s1,…,sn tức thay cij bởi:
c’ij = ri + sj + cij

13
thì ta được bài toán mới có cùng phương án tối ưu với bài toán cũ.
Nhận xét: Bài toán quy không cước phí tối ưu thì bài toán ban đầu
cũng tối ưu và chúng cùng phương án tối ưu.

 Định lý :(Dấu hiệu tối ưu) Bài toán vận tải sau khi quy không cước phí
các ô chọn:
 Nếu c’ij ≥ 0 với mọi (i;j) 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 c’ij < 0 thì có thể tìm một phương án mới tốt hơn phương án
hiện thời.
4.2. Xây dựng phương án cực biên mới
Trên bảng quy không cước phí tìm:
 Bước 1: Ô vào là ô loại có c’ij < 0 nhỏ nhất.
 Bước 2: Ô vào đánh dấu (+), các ô còn lại xen kẽ dấu (-), (+) trên chu
trình
 Bước 3: Xác định phương án cực biên mới.
 Lượng điều chỉnh q = min{xijǀ(i;j) có dấu (-)}
 Lập phương án cực biên mới:
x ij = ¿

5.Một số trường hợp đặc biệt của bài toán vận tải.
Bài toán vận tải không cân bằng thu phát
+Trường hợp phát lớn hơn thu: Ta thêm trạm thu giả b n+1, với lượng
hàng là
m n
b n+1=∑ ai−∑ b j , c ¿+1 =0 , i=1 ,… . , m
i=1 j=1

Lúc này bài toán cân bằng thu phát


+Trường hợp phát ít hơn thu: Ta thêm trạm phát giả a m+1, với lượng
hàng là
n m
a m+1=∑ b j −∑ ai , c m+1 i=0 , j=1 , … ., n
j=1 i=1

Lúc này bài toán cân bằng thu phát


 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:
bj 100 65 95
ai
80 7 5 2

14
70 3 4 5
150 9 2 7

+ Bài toán vận tải có ô cấm:


Đây là bài toán vận tải mà vì một lý do nào đó có một nơi phát không
thể chuyên chở hàng đến một nơi nhận nào đó được. Để giải quyết vấn
đề này chúng ta cho cước phí ở ô đó là M, với M là số dương rất lớn,
lớn hơn bất kì số nào cần so sánh. Sau đó chúng ta giải như những bài
toán đã trình bày ở trên
 Ví dụ: Giải bài toán vận tải với hai ô cấm cho như sau:

bj 100 65 95 40
ai
80 6 5 11 10

70 10 5 7

150 9 8 7

6.Bài toán vận tải cực đại cước phí


Bước 1: Thành lập phương án cực biên bằng phương pháp cực đại cước
phí, chúng ta phân phối lượng hàng nhiều nhất vào ô có cước phí lớn nhất
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 c ' ij ≤ 0 với mọi (i, j)thì phương án cực biên hiện thời là phương
án tối ưu, thuật toán kết thúc
 Nếu tồn tạic ' ij >¿ 0 thì có thể tìm một phương án mới tốt hơn
phương án hiện thời, chuyển sang bước 3

Bước 3: Xây dựng phương án cực biên mới tốt hơn, chú ý ô vào là ô loại
có c ' ij >¿ 0 lớn nhất, các bước tiếp theo làm giống bài toán min
Bước 4: Quay về bước 2
o Vd: Giải bài toán vận tải cực đại cước phí sau

15
bj 70 55 85 60
ai

90 6 5 11 10

80 10 6 5 7

100 9 8 7 4

II . BÀI TOÁN ỨNG DỤNG THỰC TẾ


Bài toán 1: Bài toán cân bằng thu phát
Một công ty X sản xuất mì gói có 4 cơ sở sản xuất ở 4 tỉnh là A1, A2, A3,A4.
Một tháng có thể sản suất lần lượt là 15, 35, 10, 40 ( lô mì ). Công ti A kí hợp đồng với
4 cửa hàng B1, B2, B3, B4. Nhu cầu tiêu thụ của các cửa hàng trong một tháng lần
lượt là 30, 35, 25, 10 (lô mì). Biết chi phí vận chuyển từ cơ sở sản xuất được cho theo
bảng sau:

Thu B1 B2 B3 B4
Phát
A1 1 3 2 5

A2 6 8 1 10

A3 3 2 6 5

A4 3 9 4 9

Đơn vị: trăm ngàn đồng.

Tìm phương án tối tưu nhất để chi phí vận chuyển là nhỏ nhất?

BÀI GIẢI

Ta thấy: Tổng thu = Tổng phát => Bài toán luôn có phương án tối ưu.

* Phương án ban đầu:

16
B1 B2 B3 B4 Ui
A1 15 0
1 3 2 5

A2 10 25 1
6 8 1 10
A3 10 -5
3 2 6 5

A4 15 15 10 2
3 9 4 9
Vj 1 7 0 7

Kiểm tra phương án:


c’ij = ui + vj , với i=1..4 , j=1..4. ( xét với những ô chọn)
c’ij= ui + vj – cij
gán u1= 0 => c’11 = c’12 = c’23 = c’32 = c’41 = c’44 = 0 ,
c’12 = 4 , c’13 = -2 , c’14 = 2 , c’43 = -2, c’21 = -4 , c’24 = -2
c’31 = -7 , c’33 = -11 , c’34 = -3
Xét thấy c’12 và c’14 > 0 ; c12 có c’ lớn nhất => c12 là ô bổ sung.
Từ các ô chọn, ta có vòng thích hợp:

B1 B2 B3 B4 Ui

A1 0 15 0
1 3 2 5

A2 10 25 5
6 8 1 10
A3 10 -1
3 2 6 5

A4 30 0 10 6
3 9 4 9
Vj -3 3 -4 3

Lượng điều chỉnh q = min (lượng hàng có trong ô)


 q= 15
Thực hiện loại bỏ c11
* Kiểm tra phương án:
17
c’12 = c’22 = c’23 = c’32 = c’41 = c’42 = c’44 = 0
c’11 = -4 , c’13 = -6 , c’14 = -2
c’21 = -4 , c’24 = -2
c’31 = -7 , c’33 = -11 , c’34 = -3
c’43 = -2
Xét thấy các giá trị c’ đều bé hơn 0
=> phương án đang xét là tối ưu nhất của bài toán.

( )
0 15 0 0
0 10 25 0
Vậy phương án tối ưu của bài toán là: X = 0 10 0 0
30 0 0 10

Vậy chi phí nhỏ nhất là: fmin = 35 (triệu đồng)

Bài toán 2: Bài toán phân phối đất trồng có ô cấm


Người ta cần trồng 4 giống lúa trên 3 thửa ruộng. Do đặc điểm của mỗi
giống lúa và mỗi thửa ruộng là khác nhau nên tổng chi phí trên 1 ha là khác
nhau. Được biểu diễn:

L1 L2 L3 L4

R1 2 3 2 3

R2 3 3 X 2

R3 1 4 3 X

Đơn vị: triệu đồng

Biết diện tích mỗi thửa ruộng lần lượt là 30 , 60 , 45 (ha). Diện tích cần trồng
cho mỗi giống lúa là 28 , 12 , 10 , 20 (ha). Ngoài ra, người ta cũng biết rằng
trên thửa ruộng 2 không trồng được giống lúa 3 và trên thửa ruộng thứ 3 không
trồng được giống lúa thứ 4.

Lập kế hoạch phân phối đất trồng để chi phí nhỏ nhất?

GIẢI:

Xem các thửa ruộng như trạm phát , các loại lúa như trạm thu.

( )
23 2 3
Từ đề ta có ma trận chi phí trồng C = 33 M 2
143 M

Lập phương án cận biên bằng phương pháp thế vị:


+ Vì trên thửa R2 không trồng được L3 nên ô (2,3) là ô cấm,
18
+ Vì trên thửa R3 không trồng được L4 nên ô (3,4) là ô cấm.
=> Chi phí ô cấm được thay M (M>0, rất lớn).
Ta thấy: Tổng thu ≠ Tổng phát (không cân bằng thu phát)
=> Lập trạm thu giả (cân bằng thu phát)

L1 L2 L3 L4 L (ảo) Ui
28 12 10 20 65

R1 12 10 8 0
2 3 2 3 0
R2 20 40 0
3 3 M 2 0

R3 28 17 0
1 4 3 M 0

Vj 1 3 2 2 0

* Kiểm tra phương án:


∆ ij = ui + vj – cij , i=1..3 , j=1..4
Ta thấy: ∀ ∆ ij ≤ 0 ở mọi ô ( i, j )
=> Phương án tối ưu

( )
0 12 10 0
Vậy phương án tối ưu của bài toán với ô cấm là: X = 0 0 0 20
28 0 0 0

x23 = x34 = 0 phù hợp với điều kiện bài toán ban đầu.
Chi phí thấp nhất là fmin = 12*3 + 10*2 + 20*2 +28*1 = 124 (triệu đồng)

Bài toán 3: Bài toán điều xe


Một công ty nông sản lên kế hoạch vận chuyển hàng từ các nông trại đến
kho dự trữ. Sức chứa tối đa của kho A là 40 tấn, của kho B là 60 tấn và của kho
C là 20 tấn. Trong khi đó, nông trại I, II, III có thể cung cấp lượng nông sản lần
lượt là: 50 tấn, 30 tấn và 40 tấn. Quãng đường vận chuyển (km) cho bởi bảng
sau:
Kho A Kho B Kho C
Nông trại I 7 8 9
Nông trại II 6 7 8
Nông trại III 4 6 7
Sau mỗi lần giao hàng , xe phải chạy rỗng từ kho dự trữ về nông trại ban đầu. Biết xe 1
tấn chạy rỗng trên đoạn đường 1TKm xe không.

19
Tìm phương án điều xe sao cho tổng số TKm xe không nhỏ nhất?

GIẢI:

Gọi xij là tổng số tấn xe chạy rỗng từ Bj về Ai, f(x) là tổng số TKm xe không
trong kế hoạch đề ra.
Từ dữ liệu đề bài, ta lập được phương án sau:

40 60 20
Số ô chọn = m + n -1 = 5

G(x) là
50 50 tập hợp các ô
chọn: x12 , 7 8 9 x21 , x22 , x31 , x32
* Ta có ui + vj = ci tại các
ô chọn 30 20 10
Mặc định: 6 7 8 u1 = 0 , suy ra: v2
=8 , u2 = -1 , v1 = 7 ,
u3 40 20 20 = -3 , v3 = 10
Nên 4 6 7

40 60 20 Ui
50 50
7 8 9 0

30 20 10
6 7 8 -1

40 20 20
4 6 7 -3

Vj 7 8 10
20
Ta lại có: ∆ ij = ui + vj – cij ,
Nếu ∆ ij ≤0 ∀ ( i, j ) thì đây là phương án tối ưu.
Xét: ∆ 11 = 0
∆ 12 = 0
∆ 13 = 1
∆ 23 = 1
Vì ∆ 13 và ∆ 23 > 0 => phương án không tối ưu.
….
Tương tự thì ta có được bản sau:

40 60 20

50 50
0 0 1

30 20 10
0 0 1

40 20 20
0 -1 0

* Tìm phương án tối ưu mới:


Chọn ô (2,3) là ô đưa vào
Chọn ô (3,3) là ô
đưa ra
40 60 20 Vòng V là:
50 50
0 0 1

30 20 10
0 0 1

40 20 20
0 -1 0

21
=> x’23 = 20 , x’21 = 0 , x’31 = 40 , x’33 = 0
Nên:

40 60 20

50 50
7 8 9

30 0 10 20
6 7 8

40 40 0
4 6 7

Lúc này, ta được: : u1 = 0 , v2 = 8 , u2 = -1 , v1 = 6 , u3 = -2 , v3 = 10

Có∆ ij ≤0 ∀ ( i , j ) => đây là phương án tối ưu.

( )
0 50 0
Do đó: X = 0 10 20
40 0 0

f(x)min = 8*50+ 7*10 +8*20 +4*40 = 790 (TKm)

Vậy phương án điều xe hiệu quả nhất khi tổng số TKm xe không là 790 Km

Bài toán 4: bài toán phân công nhân lực


Một nhà vườn có 3 nhóm nhân viên dự định trồng 4 loại cây. Lợi
nhuận thu được, số lượng công nhân mỗi nhóm, số cây trồng được cho bằng
bảng sau:

Số lượng công nhân


Loại cây 1 Loại cậy 2 Loại cây Loại cây 4 của mỗi nhóm
3
Nhóm 1 22 25 20 18 250
Nhóm 2 30 32 25 28 1100
Nhóm 3 29 28 25 25 3500
Tổng số 500 400 600 500
công

22
Lập kế hoạch phân phối công nhân sao cho tổng lợi nhuận thu được là lớn nhất,
biết rằng nhân viên nhóm 2 không nhận trồng loại cây 2.

GIẢI:

* Xem mỗi nhóm nhân viên là một trạm phát , ta có A= (250, 1400, 3500)
* Xem mỗi loại cây là một trạm thu, ta có B= (500, 400, 600, 500)
* Lợi nhuận là ma trận C
=> Đây là bài toán vận tải max (lợi nhuận max)
* Lưu ý: nhóm nhân viên 2 không trồng loại cây 2 nên ta gán giá trị lợi nhuận
tại ô (2,2) là một giá trị rất nhỏ.

B1 B2 B3 B4 Ui

A1 X 250 X X 0
22 25 20 18
A2 500 X 400 500 3
30 32 25 28
A3 X 150 200 X 3
29 28 25 23
Vj 27 25 22 25

Có: c’ij = ui + vj – cij , gán u1 = 0, suy ra: u2 = 3


u3 =3
v1 =27
v2 =25
v3 =22
v4 =25
Do x22 = 0 tại ô cấm (2,2) => phương án là tối ưu nhất

( )
0 2500 0
¿
Vậy phương án là X 5000 400500 và G(X)max = 54450
0 150200 0

III. VIẾT CHƯƠNG TRÌNH ĐỂ GIẢI MỘT BÀI TOÁN CỤ


THỂ
1. Giới thiệu hàm linprog trong Matlab:
 Mô hình:

23
Hàm mục tiêu:

Ràng buộc:
 Cú pháp:
[x ,fval , flag,output ,lambda ]=linprog (f ,A,b ,Aeq ,beq ,lb ,ub ,x0 ,options )
 Các giá trị đầu vào:

f: Vectơ hệ số của hàm mục tiêu


A: Ma trận của ràng buộc bất đẳng thức
b: Vectơ bên phải của ràng buộc bất đẳng thức

Aeq: Ma trận của ràng buộc đẳng thức


beq: Vectơ bên phải của ràng buộc đẳng thức
lb : Cận dưới của x
ub: Cận trên của x
x0: Nghiệm xuất phát, nếu không có thì để trống []
options: Dùng hàm optimset , chỉ ra thuật toán nào được sử dụng,….
 Các giá trị đầu ra:
x: Nghiệm tối ưu
fval: Giá trị tối ưu của hàm mục tiêu
exitflag: Thuật toán có hội tụ hay không, 0 exitflag > thì thuật toán hội tụ.
output: Cấu trúc bao gồm: Số bước lập, thuật toán được sử dụnglambda: Cấu trúc chứa
các nhân tử lagrange tương ứng với những ràng buộc

Chuyển đổi bài toán vận tải sang thành dạng trên ta được:

f: ma trận giá thành của hàm mục tiêu


Nghiệm x: giá trị của nghiệm
A,b: kết hợp hệ số vế trái và vế phải của 2 ràng buộc sau:

lb là cận dưới của x, tức là ma trận cột 0 độ dài bằng

Như vậy ta sẽ gọi hàm linprog như sau:


[x fval e o l] = linprog(f,A,b,[],[],lb,[]);
24
2. Đoạn code
Source code
clc; clear
disp('Bai toan van tai trong quy hoach tuyen tinh');
Ap = input('Nhap ma tran phat: A = ');
Bt = input('Nhap ma tran thu: B = ');
Cij = input('Nhap ma tran chi phi C = ');
% Ap = [50 55 70]';
% Bt = [30 60 20 40]';
% Cij = [15 18 19 13;21 14 15 17;25 12 17 22];
f = [];
m = length(Ap);
n = length(Bt);
%Ham muc tieu f -> min
for i = 1:m
for j=1:n
f = [f;Cij(i,j)];
end
end
b = [Ap; -Bt];
A =[];
for i=1:m
a = zeros(1,m*n);
for j=1:n
a(n*i - n + j) = 1;
end
A = [A;a];
end
for j=1:n
a = zeros(1,m*n);
for i=1:m
a(j + n*i - n) = -1;
end
A = [A;a];
end
lb = zeros(m*n,1);
[x fval e o l] = linprog(f,A,b,[],[],lb,[]);
x = round(x); %lam tron
disp('Phuong an tim duoc: ');
t = 0;
for i=1:m
for j=1:n
t = t+1;
KQ(i,j) = x(t);
if x(t) ~= 0
fprintf('X(%d,%d) = %d\n',i,j,x(t));
end
end
end
fprintf('Tong chi phi: %.0f\n',fval);

25
3. Ví dụ
Có 3 cơ sở sản xuất đá (A1,A2,A3) và 4 công trường xây dựng (B1,B2,B3,B4).
Công suất sản xuất đá hàng tuần của các cơ sở lần lượt là 50, 55, 70 . Nhu cầu
tiêu thụ đá hàng tuần của các bốn công trường lần lượt là 30, 60, 20, 40
Chi phí vận chuyển đá từ các cơ sở sản xuất đá đến các công trường tiêu
thụ đá không phụ thuộc vào khối lượng đá vận chuyển, được cho như sau (đơn
vị tính 10.000 đồng).
  B1 B2 B3 B4
A1 15 18 19 13
A2 21 14 15 17
A3 25 12 17 22

Hãy xác định phương án vận chuyển đá từ nơi cung cấp đến nơi tiêu thụ để tổng
chi phí vận chuyển là thấp nhất.
Đáp án:

4.Tài liệu tham khảo


https://www.slideshare.net/chienproger/tnh-ton-khoa-hc-chng-8-quy-hoch-tuyn-tnh
https://voer.edu.vn/c/bai-toan-van-tai/78021439/a36107d4

26
HẾT
Chúng em chân thành cám ơn cô đã xem bài báo cáo của chúng em!
Chúc cô một ngày tốt lành!

27

You might also like