Chương 3-Baitoan Van Tai - Phan2

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 15

Chương 3

Bài toán vận tải


(tiếp theo)
Định lý

Giả sử X là một phương án của bài toán vận tải và


tập G của nó lập thành chu trình
Bao giờ cũng có thể điều chỉnh được X để chuyển
sang một phương án mới X’ không xấu hơn mà
tập G’ không lập thành chu trình
Thuật toán phá chu trình tập G
Giả sử K là một chu trình của G.
Phân K thành tập các ô chẵn K+và tập ô lẻ K-(xen kẽ nhau)

 cij  c ij
( i , j )K  ( i , j )K 
(Nếu không thì ta quy ước lại các ô chẵn lẻ trên K)

Kí hiệu:   min xij i, j   K  
Chuyển X thành X’ theo công thức sau:

 xij   , (i, j )  K 


xij'   xij   , (i, j )  K 

 xij , (i, j )  K

3.4 Phương pháp thế vị giải bài toán vận tải

Định lí tiêu chuẩn tối ưu: Phương án X của bài toán vận
tải là tối ưu khi và chỉ khi tồn tại các số

ui, i=1..m và vj, j = 1..n

Ui: thế vị ứng với các điểm phát


Vj: thế vị ứng với các điểm thu
Sao cho:
ui  v j  cij (i, j )  G

ui  v j  cij (i, j )  G
Thuật toán tìm nghiệm tối ưu
• Bước 1:Tìm phương án xuất phát.
• Bước 2: Kiểm tra phương án:
- Nếu các ô sử dụng lập thành chu trình phá vỡ chu trình
- Nếu phương án thoái thêm ô “ chọn không” thỏa mãn:
+ Không tạo chu trình
+ Đảm bảo tính được thế vị
+ Có Ci j min
- Xác định các thế vị ui và vj của các ô thuộc tập G:

ui  v j  cij
Cho u1=0 (u1 là dòng đầu hoặc dòng có 1 ô sử dụng)
vj=cij-u1 cho cột j cắt dòng u1 tại ô sử dụng.
ui=cij-vj cho dòng i cắt cột j ở một ô sử dụng.
- Xác định các đại lượng  ij cho các ô(i,j) (i, j )  G
Theo công thức:  ij  (ui  v j )  cij

ij  0(i, j ) Phương án là tối ưu

 ij  0 Phương án chưa tối ưu


Bước 3: Điều chỉnh phương án.
Giả sử ô vi phạm tiêu chuẩn là (i*,j*)  i* j *  0
tức là
(nếu có nhiều ô vi phạm thì chọn max ij )
Thêm ô (i*,j*) vào G sẽ tạo một chu trình K duy nhất

Coi ô (i*,j*) là ô chẵn, tức là (i


*
, j* )  K 

X  X’ mà tập G’ không lập thành chu trình


(thuật toán phá vỡ chu trình)

xi*, j*  xis js  0 Với   xi s js



 min xij i, j   K  
G  G \ (is , j s )  (i , j )
' * *
Quay lại Bước 2
Ví dụ Giải bài toán vận tải
Thu Bj
Phát Ai b3 = 20 b4 = 10
b 1= 5 b2 = 15
2 1 4 3
a1 = 10
6 0 5 2
a2 = 25
1 4 8 2
a3 = 15
m n

a
i 1
i  10  25  15  50   b j  5  15  20  10  50
j 1
Bảng 1:
Phương pháp góc Tây Bắc tìm PACB XP
Thu Bj b3’ = 5
b2’= 10
Phát Ai (b3 = 20)
b1 = 5 (b2 = 15) b4 = 10
2 1 4 3
a1 ’= 5
5 5
(a 1 = 10 )
6 0 5 2
a2’= 15
10 15
(a2 = 25 )
1 4 8 2
a 3 ’= 10
5 10
(a3 = 15)

Số ô sử dụng | G |= 6 = m + n -1,
5 5 0 0  phương án X không thoái hóa
X  0 10 15 0  Tập các ô sử dụng G không tạo thành
0 0 5 10
chu trình nên phương án X là phương
án cực biên xuất phát.
Thu Bj
Bảng 1:
Phát Ai
b1 = 5 b2 = 15 b3 = 20 b4 = 10 Thế vị ui
2 - 1 + 4 3 U1 = 0

5 5
a 1 = 10
6 0 - 5 + 2 U2 =-1

10 15
a2 = 25
1 + 4 8 - 2 U3 = 2

5 10
a3 = 15
Thế vị vj V1 = 2 V2 = 1 V3 = 6 V4 = 0

Tính thế vị cho bảng số 1.Ta có ci j = ui + vj tại ô sử dụng


Cho u1 =0 => v1= c11 - u1= 2 - 0=2; v2= c12 - u1= 1- 0=1;
Từ v2=1=> u2= c22 - v2 = 0 - 1= -1
Từ u2=-1=> v3= c23 - u2 = 5 - (-1)= 6
Từ v3=6=> u3= c33 - v3 = 8 - 6 = 2
Từ u =2=> v = c - u = 2 - 2 = 0
Bảng 1: Tính  ij

Thu Bj

Phát Ai Thế vị
b1 = 5 b2 = 15 b3 = 20 b4 = 10 ui
2 - 1 + 4 3 U1 = 0

ij  (ui  v j )  cij , (i, j )  G 5 5


a 1 = 10
6 0 - 5 + 2 U2 =-1

10 15
13  u1  v3  c13  0  6  4  2  0 a2 = 25
1 + 4 8 - 2 U3 = 2

14  u1  v4  c14  0  0  3  3 a3 = 15
5 10

Thế vị vj V1 = 2 V2 = 1 V3 = 6 V4 = 0
 21  u 2  v1  c21  1  2  6  5
 24  u 2  v4  c24  1  0  2  3  31 max  K 
 31  u3  v1  c31  2  2  1  3  0 
  min xij i, j   K   5 
 32  u3  v2  c32  2  1  4  1 Phá vỡ chu trình chuyển sang bảng số 2
Bảng 2
Thu Bj

Phát Ai Thế vị
b1 = 5 b2 = 15 b3 = 20 b4 = 10 ui
2 1 - 4 + 3 U1 = 0

0 10
a 1 = 10
6 0 + 5 - 2 U2 = -1

5 20
a2 = 25
1 4 8 2 U3 = -1

5 10
a3 = 15
V1 = 2 V2 = 1 V3 = 6 V4 = 3
Thế vị vj

Ta có  ij >0 nên phương án chưa tối ưu, ô ( 1,3) là ô vi phạm. Gán ô (1,3) là ô thuộc tập K +.

 
  min xij i, j   K   10 Phá vỡ chu trình chuyển sang bảng số 3
Bảng 3

Thu Bj
Thế vị
Phát Ai b1 = 5 b2 = 15 b3 = 20 b4 = 10 ui
2 - 1 4 + 3 U1 = 0

0 10
a 1 = 10
6 0 5 - 2 + U2 = 1

15 10
a2 = 25
1 + 4 8 2 - U3 = -1

5 10
a3 = 15
Thế vị vj V1 = 2 V2= -1 V3 = 4 V4 = 3

>0 nên phương án chưa tối ưu, ô ( 2, 4) là ô vi phạm. Gán ô (2, 4) là ô thuộc tập K +.
 ij
Ta có chu trình như bảng 3, tiến hành phá vỡ chu trình

 
  min xij i, j   K   0

Ta có bảng số 4 như sau:


Bảng 4

Thu Bj
Thế vị
Phát Ai b1 = 5 b2 = 15 b3 = 20 b4 = 10 ui
2 1 4 3 U1 = 0

a 1 = 10 10
6 0 5 2 U2 = 1

a2 = 25 15 10 0
1 4 8 2 U3 = 1

a3 = 15 5 10
Thế vị vj V1 = 0 V2= -1 V3 = 4 V4 = 1

Ta thấy  ij  0, (i, j )  G
do đó phương án X là phương án tối ưu

0 0 10 0 
X  0 15 10 0 
5 0 0 10
Hàm mục tiêu f (X) = 4.10+ 0.15 +5.10 + 1.5+2.10 =115

You might also like