Professional Documents
Culture Documents
BTLĐSTT CĐ26
BTLĐSTT CĐ26
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
… …
…
…
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:
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
∑ 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
( )
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
∑ 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
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
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
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
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
14
70 3 4 5
150 9 2 7
70 10 5 7
150 9 8 7
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
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
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.
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
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
( )
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
L1 L2 L3 L4
R1 2 3 2 3
R2 3 3 X 2
R3 1 4 3 X
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
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
( )
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)
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
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
( )
0 50 0
Do đó: X = 0 10 20
40 0 0
Vậy phương án điều xe hiệu quả nhất khi tổng số TKm xe không là 790 Km
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
( )
0 2500 0
¿
Vậy phương án là X 5000 400500 và G(X)max = 54450
0 150200 0
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:
Chuyển đổi bài toán vận tải sang thành dạng trên ta được:
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:
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