Tải bản đầy đủ

CHƯƠNG 5 BÀI TOÁN ĐƯỜNG ĐI VÀ BÀI TOÁN PHÂN CÔNG

Bài Giảng Toán Chuyên Ngành – Specialized Mathematics

CHƯƠNG 5 BÀI TOÁN ĐƯỜNG ĐI VÀ BÀI TOÁN PHÂN CÔNG
5.1. Bài toán tìm đường đi ngắn nhất
5.1.1. Giới thiệu bài toán
Bài toán tìm đường đi ngắ n nhấ t là bài toán tìm lô ̣ trình di chuyể n (của người, xe máy hay
hàng hóa) từ mô ̣t điạ điể m này đế n mô ̣t điạ điể m khác trên hê ̣ thố ng nhiề u đường giao thông có
sẵn sao cho tổ ng chiề u dài đường đi là ngắ n nhấ t. Nói cách khác, nó tim
̀ đường đi ngắ n nhấ t xuấ t
phát từ mô ̣t điể m nguồ n ban đầ u đế n mô ̣t chuỗi các điể m đić h khác nhau. Ví du ̣ như:
+ Tim
̀ đường đi ngắ n nhấ t từ nhà máy cung cấ p bê tông tươi đế n các công trường xây dựng.
+ Tim
̀ đường đi ngắ n nhấ t để vâ ̣n chuyể n công nhân, máy móc thiế t bi ̣ từ công ty xây dựng
đế n các công trường xây dựng.
+ Tim
̀ đường đi nhắ n nhấ t từ mô ̣t thành phố này đế n mô ̣t thành phố khác trên hê ̣ thố ng đường
giao thông.
+ Tim
̀ đường đi ngắ n nhấ t từ nhà máy sản xuấ t đế n nhà kho chứa hàng.
+ Tim

̀ đường đi ngắ n nhấ t (thời gian it́ nhấ t) từ nhà máy sản xuấ t đế n nơi tiêu thu ̣ sản phẩ m.
Thế vi cu
̣ ̉ a 1 nút: là khoảng cách bé nhấ t từ nút đầ u (Nút 1) đế n nút đó
Trong đó: u j  min ui  d ij 
i

uj - Khoảng cách ngắ n nhấ t từ nút 1 đế n nút j với u1 = 0.
ui - Khoảng cách ngắ n nhấ t từ nút 1 đế n nút i.
dij - Khoảng cách giữa nút j và nút i trước nó.
5.1.2. Phương pháp giải
5.1.2.1. Phương pháp giải thuật tiến
Bước 1: Tim
̀ nút nằ m gầ n nút gố c (nút xuấ t phát/ nút nguồ n) nhấ t. Ghi giá tri ̣ (khoảng cách,
thời gian, chi phi)́ từ nút xuấ t phát đế n nút gầ n nhấ t đó. Lă ̣p la ̣i bước này với n = 1, 2, 3… cho
đế n khi nút thứ n nằ m gầ n nhấ t là nút đích.
Bước 2: Thành lâ ̣p tâ ̣p nút đã khảo sát gồ m nút gố c và nút gầ n nút gố c nhấ t đã xác đinh
̣ ở bước
1.
Bước 3: Xác đinh
̣ tấ t cả các nút chưa khảo sát nằ m gầ n tâ ̣p nút đã khảo sát.
Tâ ̣p nút đã khảo sát đươ ̣c nố i trực tiế p đế n 1 hoă ̣c nhiề u nút chưa khảo sát nào đó sẽ cung cấ p
1 ứng viên cho nút gầ n nhấ t thứ n.
Bước 4: tim
̀ nút nằ m gầ n tâ ̣p nút đã khảo sát, và ghi khoảng cách ngắ n nhấ t đế n nút này từ nút
gố c (giá tri ̣này go ̣i là thế vi ̣của gố c).
Lưu ý: với mỗi nút đã khảo sát và các ứng viên của nó, cô ̣ng khoảng cách giữa chúng và

GV: Trần Đức Học, Huỳnh Thị Minh Trúc

1


Bài Giảng Toán Chuyên Ngành – Specialized Mathematics
khoảng cách ngắ n nhấ t từ nút gố c đế n nút đã khảo sát đó. Nút nào có khoảng cách ngắ n nhấ t sẽ
là nút gầ n nhấ t thứ n và tuyế n đường ngắ n nhấ t sẽ là tuyế n đường ta ̣o ra khoảng cách này.
Bước 5: lă ̣p la ̣i bước 3 và bước 4
+ Tiế p tu ̣c lă ̣p la ̣i quá trình xác đinh
̣ thế vi ̣ của các nút trong ma ̣ng (bằ ng cách cô ̣ng thế vi ̣ của
nút gầ n nhấ t và khoảng cách giữa 2 nút) theo công thức: u j  min ui  d ij 
i


+ Giá tri ̣thế vi ̣ ghi ở nút cuố i cùng chiń h là khoảng cách ngắ n nhấ t từ nút xuấ t phát đế n nút cuố i
cùng.
Ví dụ minh họa: Công ty sản xuất nội thất
Hàng ngày công ty phải vận chuyển các sản phẩm nội thất (bàn, ghế, tủ, …) từ nhà máy sản
xuất đến nhà kho chứa hàng. Giám đốc công ty, muốn tìm đường đi ngắn nhất từ nhà máy sản
xuất (nút 1) đến nhà kho (nút 6). Cho biết sơ đồ mạng lưới đường giao thông được thể hiện như
trong hình dưới (với chiều dài tuyến đường tính theo đơn vị km)

Nhµ m¸y

0
10

200

2

4

10
0

50
0
10

1
20
0

40

3

150

6

0
10 Nhµ kho

5

Hình 0.1. Sơ đồ các tuyến đường giao thông từ nhà máy đến nhà kho
Giải bài toán
Cách 1: Giải bằng cách vẽ hình
Quan sát Hình 0.1, chúng ta thấy rằng nút nằm gần nút gốc (nút 1-nhà máy sản xuất) nhất là
nút 2, với khoảng cách là 100 km. Như vậy, chúng ta có thể nối nút 1 và nút 2 và ghi vào giá trị
100. Khi đó nút 2 sẽ là nút vào tập đã khảo sát.
100

Nhµ m¸y

0
10

2

200

4

10
0

50
0
10

1
20
0

3

40

150

6

0
10 Nhµ kho

5

Hình 0.2. Vòng lặp thứ nhất
Tiếp theo, phải xác định tất cả các nút xuất phát từ tập nút đã khảo sát (nút 1 và nút 2). Đó
chính là nút 3, 4 và 5.
Chúng ta sẽ xác định đường đi ngắn nhất từ tập nút đã khảo sát (nút 1 và nút 2) đến nút 3, 4, 5.

GV: Trần Đức Học, Huỳnh Thị Minh Trúc

2


Bài Giảng Toán Chuyên Ngành – Specialized Mathematics
Có một đường đi xuất phát từ nút 1 là tuyến đường 1-3; và 3 đường đi xuất phát từ nút 2 là
tuyến đường 2-3, tuyến đường 2-4 và tuyến đường 2-5. Đường đi có khoảng cách ngắn nhất theo
tuyến đường 1-2-3 (100+50 = 150 km). Vì vậy, nút 3 sẽ trở thành nút vào trong tập nút đã khảo
sát. Và ta ghi giá trị 150 là thế vị của nút 3.
100

Nhµ m¸y

0
10

2

200

4

10
0

50
0
10

1
20
0

3

40

150

6

0
10 Nhµ kho

5

150

Hình 0.3. Vòng lặp thứ hai
Tương tự, lặp lại quá trình để xác định thế vị cho nút 4 và 5. Tập nút đã khảo sát lúc này gồm
nút 1, 2 và 3. Tiếp theo, ta phải xác định nút tiếp theo vào trong tập nút đã khảo sát. Lúc này, nút
4, 5 là các nút nằm gần tập nút đã khảo sát (xuất phát từ nút 2 và nút 3). Có 3 đường đi xuất phát
từ tập nút đã khảo sát (nút 1, 2, và 3) đến các nút 4 và nút 5 là các tuyến đường 2-4, 2-5 và 3-5.
Khoảng các ngắn nhất là lộ trình 1-2-3-5 (150+40=190 km). Vì vậy, nút 5 sẽ là nút tiếp theo vào
trong tập nút đã khảo sát.
100

Nhµ m¸y

0
10

2

200

4

10
0

50
0
10

1
20
0

3
150

40

150

6

0
10 Nhµ kho

5
190

Hình 0.4. Vòng lặp thứ ba
Tập nút đã khảo sát lúc này gồm các nút 1, 2, 3 và 5. Tiếp theo, ta phải xác định nút tiếp theo
vào trong tập nút đã khảo sát. Lúc này, nút 4 và nút 6 là các nút nằm gần tập nút đã khảo sát. Có
3 tuyến đường đi xuất phát từ tập nút đã khảo sát (nút 1, 2, 3 và 5) đến các nút 4 và 6 là các
tuyến đường 2-4, 5-4 và 5-6. Khoảng cách ngắn nhất là lộ trình 1-2-3-5-6 (190+100=290 km). Vì
vậy, nút 6 sẽ là nút tiếp theo vào trong tập nút đã khảo sát.
Như vậy, đường đi có khoảng cách ngắn nhất từ nút 1 đến nút 6 là 290 km theo tuyến đường
1-2-3-5-6.

GV: Trần Đức Học, Huỳnh Thị Minh Trúc

3


Bài Giảng Toán Chuyên Ngành – Specialized Mathematics
100

Nhµ m¸y

]=’’

0
10

2

200

4

10
0

50
0
10

1
20
0

3

150

40

290

6

0
10 Nhµ kho

5

150

190

kk,.,/p’ơ0;0
Hình 0.5. Vòng lặp thứ tư (cuối cùng)

Cách 2: Giải bằng cách lập bảng
n

1

2

3

2

Tập nút đã khảo
sát nối trực tiếp
với nút chưa khảo
sát
{1}
1
1
{1, 2}
1
2
2
2
{1, 2, 3}
.l.2
2
3
{1, 2, 3, 5}
2
5
5

Nút chưa
khảo sát

Tuyến
đường
khảo
sát

Tổng khoảng
cách (thế vị nút
chưa khảo sát)

Khoảng
cách ngắn
nhất

Nút gần
nhất thứ n

Đoạn
nút nối

2
3

1-2
1-3

100
200

100

Nút 2

1-2

1-3
2-3
2-4
2-5

200
150
300
200

150

Nút 3

2-3

4
5
5

2-4
2-5
3-5

100+200=300
200
150+40=190

190

Nút 5

3-5

4
4
6

2-4
5-4
5-6

300
190+150=340
190+100=290

290

Nút 6

5-6

3
3
4
5

5.1.2.2. Giải bằng thuật toán Dijkstra


Giới thiệu
Giải thuật Dijkstra được sử dụng để tìm đường đi ngắn nhất từ nút nguồn và các nút khác

trong mạng, dùng cho cả bài toán có hay không có mạch vòng. Giải thuật có thể áp dụng cho các
bài toán mạng có vòng.


Giải thuật Dijkstra
Bước 1: Biểu diễn sơ đồ lên bảng
Bước 2: Tiến hành giải thuật
1. (Khởi đầu). Đánh dấu màu nút i.

GV: Trần Đức Học, Huỳnh Thị Minh Trúc

4


Bài Giảng Toán Chuyên Ngành – Specialized Mathematics
Đặt v(i)=0 và đối với mỗi nút j khác so với nút i thì đặt v(j) bằng khoảng cách từ nút i tới j
2. (Dừng thuật toán): Nếu tất cả các nút đều được đánh dấu màu
3. Ngược lại, giữa các nút không được đánh màu, chọn một nút k trong đó v(k) là nhỏ
nhất.đánh dấu màu nút k đó. Ở các nút không được đánh màu j, so sánh v(j) và v(k)+c(k,j)
sau đó chọn giá trị nhỏ hơn ghi để thay thế v(j).
Bước 3: Dựa vào các nút đã được đánh màu tìm đường đi ngắn nhất từ nút i đến tất cả các nút
khác j.
Ví dụ minh họa: Công ty sản xuất nội thất

Nhµ m¸y

200

2

0
10

4

10
0

50
0
10

1
20
0

40

3

150

6

0
10 Nhµ kho

5

Từ sơ đồ ta chuyển lên bảng như sau.

Như vậy ta có

2

10
0

6

300

1
300

0
29

150

3
4 1

2

3

4

6

5

5
GV: Trần Đức Học, Huỳnh Thị Minh Trúc

5


Bài Giảng Toán Chuyên Ngành – Specialized Mathematics
5.1.2.3. Giải bằng Quy hoạch tuyến tính nhị phân
Bài toán tìm đường đi ngắn nhất có thể được xem như là một dạng đặc biệt của bài toán trung
chuyển với một nguồn có cung bằng 1, và một đích có cầu bằng 1, và một số điểm trung chuyển.
Bài toán này có thể được mô hình hóa và giải bằng QHTT nhị nguyên.
Các biến quyết định trong bài toán sẽ cho biết tuyến đường nào được lựa chọn trong sơ đồ
mạng lưới với mục tiêu là cực tiểu khoảng cách (chi phí)
Các ràng buộc sẽ xác định số lượng đơn vị (0 hoặc 1) đi vào một nút bằng với số đi ra khỏi nút
đó.
Các biến được định nghĩa như sau:
xij – phương án lựa chọn tuyến đường từ nút i đến nút j
i = 1, 2, 3, 4, 5 ; j = 2, 3, 4, 5, 6
xij – 1 nếu tuyến đường ij được lựa chọn và ngược lại xịj = 0 nếu tuyến đường ij không được
lựa


Mô hình QHTT của bài toán:
Các biến:

x12 , x13 , x23 , x24 , x25 , x32 , x35 , x42 , x45 , x46 , x52 , x53 , x54 , x56
xij Binary
Hàm mục tiêu:
Min Z  100 x12  200 x13  50 x23  50 x32  200 x24  200 x42  100 x25  100 x52
40 x35  40 x53  150 x45  150 x54  100 x46  100 x56

Các ràng buộc
Bởi vì điểm khởi đầu là nút 1, chúng ta sẽ không tính các biến đi từ nút 2 hoặc nút 3 trở về nút
1. Tương tự như vậy, bởi vì nút 6 là nút cuối, chúng ta sẽ không kể đến các biến bắt đầu tại nút 6.
Khi xem nó là bài toán trung chuyển, nút nguồn gốc (nút 1) phải có một đơn vị vận chuyển ra
từ nó. Do đó, ta có ràng buộc: x12  x13  1
Nút đến cuối cùng (nút 6) phải có một đơn vị vận chuyển đến nó, do đó ta có ràng buộc:
x46  x56  1

Mỗi nút trung gian sẽ có một ràng buộc là lượng đi vào nút phải bằng lượng đi ra khỏi nút đó.
Đối với nút 2, điều này sẽ là: x12  x32  x23  x24  x25
Hay: x12  x32  x23  x24  x25  0
Các ràng buộc ở nút khác được xây dựng tương tự.
Ràng buộc tại nút 3: x13  x23  x32  x35  0

GV: Trần Đức Học, Huỳnh Thị Minh Trúc

6


Bài Giảng Toán Chuyên Ngành – Specialized Mathematics
Ràng buộc tại nút 4: x24  x54  x42  x45  x46  0
Ràng buộc tại nút 5: x25  x35  x45  x52  x53  x54  x56  0
LINGO

Lời giải của bài toán: x12  x23  x35  x56  1
Vậy lộ trình ngắn nhất là: 1-2-3-5-6 với khoảng cách = 290km.
5.2. Bài toán phân công
5.2.1. Giới thiệu bài toán
Bài toán phân công là mô ̣t da ̣ng đă ̣c biê ̣t của bài toán vâ ̣n tải và bài toán quy hoa ̣ch tuyế n tính.
Bài toán phân công đươ ̣c dùng để phân bố nhân sự cho dự án, phân công cán bô ̣ giám sát đế n
từng công trường, giao hơ ̣p đồ ng cho các nhà thầ u, phân công lao đô ̣ng… sao cho tổ ng chi phí
hay thời gian thực hiê ̣n công viê ̣c là it́ nhấ t, tổ ng tiề n lời hay số lươ ̣ng sản phẩ m làm ra là nhiề u
nhấ t. Đă ̣c điể m quan tro ̣ng của bài toán phân công là chỉ có mô ̣t công viê ̣c hay mô ̣t người đươ ̣c
phân công cho mô ̣t máy, mô ̣t công trường hay mô ̣t dự án duy nhấ t.
Mỗi bài toán phân công có mô ̣t ma trâ ̣n chi phí (giờ công/ tiề n lời hay số lươ ̣ng sản phẩ m)
gồ m m dòng và n cô ̣t. Có m bô ̣ phâ ̣n đươ ̣c phân công (i = 1… m tương ứng với số dòng) và n đố i
tươ ̣ng cầ n đươ ̣c thực hiê ̣n (j = 1… n tương ứng với số cô ̣t). Mỗi bô ̣ phâ ̣n i đươ ̣c phân công thực
hiê ̣n mô ̣t đố i tươ ̣ng j với chi phí (giờ công/ tiề n lời hay số lươ ̣ng sản phẩ m) là cij.
5.2.2. Phương pháp giải
5.2.2.1. Phương pháp giải Hungarian
Thuâ ̣t toán Hungarian của bài toán phân công đươc̣ áp du ̣ng cho trường hơ ̣p cực tiể u hàm mu ̣c
tiêu (tổ ng chi phí hay thời gian thực hiê ̣n công viê ̣c nhỏ nhấ t) và ma trâ ̣n chi phí hay giờ công có
số dòng bằ ng số cô ̣t (m = n).
Thuâ ̣t toán Hungarian của bài toán phân công dựa trên tiń h chấ t rút giảm ma trâ ̣n là khi trừ đi
hay cô ̣ng thêm các giá tri ̣ thích hơ ̣p vào các phầ n tử ma trâ ̣n chi phí ta sẽ có mô ̣t ma trâ ̣n chi phí

GV: Trần Đức Học, Huỳnh Thị Minh Trúc

7


Bài Giảng Toán Chuyên Ngành – Specialized Mathematics
cơ hô ̣i. Chi phí cơ hô ̣i là giá tri ̣ thiê ̣t ha ̣i khi có sự phân công chưa phải là tố i ưu. Nế u ta có thể
rút giảm ma trâ ̣n đế n khi có các phầ n tử có giá tri ̣ không (“0”) ở mỗi dòng và cô ̣t thì có thể đa ̣t
đươ ̣c sự phân công tố i ưu vào các ô có giá tri không
(“0”) đó.
̣
Thuâ ̣t toán Hungarian của bài toán phân công đươc̣ thực hiê ̣n qua các bước sau:
Bước 1: Xác đinh
̣ ma trâ ̣n chi phí cơ hô ̣i bằ ng cách:
a- Trừ giá tri ̣chi phí của mo ̣i phầ n tử trong mỗi dòng cho giá tri ̣chi phí nhỏ nhấ t trong dòng
ấ y.
b- Trừ giá tri ̣chi phí của mo ̣i phầ n tử trong mỗi cô ̣t cho giá tri ̣chi phí nhỏ nhấ t trong cô ̣t ấ y.
Bước 2: Kiể m tra điề u kiê ̣n tố i ưu: vẽ mô ̣t số tố i thiể u các đường thẳ ng trên dòng hay cô ̣t đi qua
mo ̣i số không (“0”) của bảng. Nế u như số đường thẳ ng ít hơn số dòng/ cô ̣t, thực hiê ̣n bước 3.
Nế u như số đường thẳ ng bằ ng với số dòng/cô ̣t thì có thể thực hiê ̣n sự phân công tố i ưu như sau:
a- Kiể m tra các dòng và các cô ̣t có duy nhấ t mô ̣t giá tri ̣ không (“0”). Thực hiê ̣n sự phân
công cho các ô đó.
b- Loa ̣i bỏ dòng và cô ̣t có chứa số không (“0”) đã phân phố i và tiế p tu ̣c trở la ̣i tim
̀ kiế m các
dòng và cô ̣t có duy nhấ t mô ̣t giá tri ̣không “(0”) để thực hiê ̣n sự phân công.
Bước 3: Xây dựng ma trâ ̣n chi phí cơ hô ̣i mới: cho ̣n giá ti ̣nhỏ nhấ t chưa nằ m trên đường thẳ ng.
Trừ giá tri ̣ chi phí của mo ̣i phầ n tử không nằ m trên các đường thẳ ng cho giá tri ̣ nhỏ nhấ t ấ y và
cô ̣ng giá tri ̣nhỏ nhấ t ấ y với giá tri ̣nằ m trên giao điể m của hai đường thẳ ng. Trở la ̣i Bước 2.
Ví dụ 1:
Mô ̣t xưởng gia công cố p pha có 4 người thơ ̣ đươ ̣c phân công làm 4 viê ̣c. Tiề n công để làm
xong từng viê ̣c của mỗi người thơ ̣ như trong Bảng 0.1. Đề nghi ̣ phân công sao cho tổ ng chi phí
lao đô ̣ng là nhỏ nhấ t.
Bảng 0.1Tiền công khi phân công từng người thợ thực hiện từng phần việc (ngàn đồng)
Việc
B1

B2

B3

B4

Giá trị nhỏ nhất
trong hàng

A1

12

11

8

14

8

A2

10

9

10

8

8

A3

14

8

7

11

7

A4

6

8

10

9

6

Công nhân

Sử du ̣ng thuâ ̣t toán Hungarian để giải bài toán như sau:
Bước 1: Xác đinh
̣ ma trâ ̣n chi phí cơ hô ̣i.
Trừ giá trị chi phí của mọi phần tử cho giá trị nhỏ nhất trong dòng (hàng)
Giải thích: Giả sử ta quyế t đinh
̣ phân công người thơ ̣ A1 làm công viê ̣c B4. Bảng 0.1 cho thấ y
chi phí nhân công chi sự phân công ấ y là 14 ngàn đồ ng. Đây không phải là sự phân phố i tố t nhấ t

GV: Trần Đức Học, Huỳnh Thị Minh Trúc

8


Bài Giảng Toán Chuyên Ngành – Specialized Mathematics
vì người thơ ̣ A1 có thể làm viê ̣c B3 chỉ với chi phí 8 ngàn đồ ng. Vâ ̣y, sự phân công người thơ ̣
A1 làm viê ̣c B3 có chi phí cơ hô ̣i là 6 = 14 – 8 (ngàn đồ ng), đây là số tiề n tổ n thấ t vì sự phân
công này thay vì cho ̣n sự phân công tiế t kiê ̣m nhấ t. Tương tự, do người thơ ̣ A1 làm viê ̣c B3 là
sự phân phố i tố t nhấ t nên chi phí cơ hô ̣i cho sự phân công này là 8 – 8 = 0 (ngàn đồ ng). Kế t quả
là ta đã tính đươ ̣c chi phí cơ hô ̣i cho mo ̣i phầ n tử của mỗi dòng như trong Bảng 0.2.
Bảng 0.2Chi phí cơ hội tính theo dòng (ngàn đồng)
Việc

Công nhân

B1

B2

B3

B4

A1

4

3

0

6

A2

2

1

2

0

A3

7

1

0

4

A4
Giá trị nhỏ nhất
theo cột

0

2

4

3

0

1

0

0

Trừ giá trị chi phí của mọi phần tử cho giá trị nhỏ nhất trong cột
Giải thích: Đố i với người thơ ̣ A1 thì tố t nhấ t là làm viê ̣c B3 nhưng đố i với viê ̣c thực hiê ̣n công
viê ̣c B3 đây không phải là sự phân công kinh tế nhấ t vì người thơ ̣ A3 có thể làm viê ̣c này với chi
phí chỉ là 7 (ngàn đồ ng). Hay nói cách khác, nế u chúng ta xem xét cách thức phân công theo
công viê ̣c thay vì theo người thì sẽ tính đươ ̣c chi phí cơ hô ̣i cho mo ̣i phầ n tử của mỗi cô ̣t.
Bảng 0.3Chi phí cơ hội tính theo cột (ngàn đồng)
Công nhân

Việc
B1

B2

B3

B4

A1

4

2

0

6

A2

2

0

2

0

A3

7

0

0

4

A4

0

1

4

3

Như vâ ̣y, để thực hiê ̣n bước 1 của thuâ ̣t toán phân công thì phải xác lâ ̣p ma trâ ̣n chi phí cơ hô ̣i
tổ ng thể là ma trâ ̣n chi phí theo dòng và cô ̣t. Thực hiê ̣n phầ n b của bước 1 bằ ng cách lấ y các giá
tri ̣chi phí trong mỗi cô ̣t trừ cho giá tri ̣chi phí nhỏ nhấ t trong cô ̣t đó (Bảng 0.3). Cô ̣t 1, 2 và 3 của
bảng Bảng 0.3 giố ng như bảng Bảng 0.2 vì giá tri ̣nhỏ nhấ t trong cô ̣t là không (“0”).
Bước 2 Kiể m tra điề u kiê ̣n tố i ưu.
Nhiǹ vào Bảng 0.3, ta thấ y có đế n sau sự phân công có chi phí cơ hô ̣i bằ ng không (“0”). Vẽ
các đường thẳ ng ngang và đứng đi qua tấ t cả các giá tri ̣ không (“0”) này thì cầ n đế n 4 đường
thẳ ng (Bảng 0.4). Như vâ ̣y số đường thẳ ng bằ ng với số dòng của ma trâ ̣n và Bảng 0.4 thỏa mañ

GV: Trần Đức Học, Huỳnh Thị Minh Trúc

9


Bài Giảng Toán Chuyên Ngành – Specialized Mathematics
điề u kiê ̣n tố i ưu.
Bảng 0.4Kiểm tra điều kiện tối ưu
Việc

Công nhân

B1

B2

B3

B4

A1

4

2

0

6

A2

2

0

2

0

A3

7

0

0

4

A4

0

1

4

3

Bắ t đầ u thực hiê ̣n sự phân công với dòng hay cô ̣t chỉ có mô ̣t số (“0”) duy nhấ t. Dòng thứ nhấ t
với giá tri ̣ không (“0”) duy nhấ t nằ m ở cô ̣t công viê ̣c B3. Thực hiê ̣n sự phân phố i vào ô (A1B3)
này và vẽ những đường thẳ ng loa ̣i bỏ dòng và cô ̣t đã có sự phân phố i. Từ các dòng và cô ̣t chưa
đươ ̣c loa ̣i bỏ la ̣i tiế p tu ̣c tìm kiế m dòng thứ 3 có mô ̣t số không (“0”) duy nhấ t để thực hiê ̣n sự
phân phố i vào ô (A3B2). Cứ thế tiế p tu ̣c cho đế n khi phân công mỗi người mô ̣t viê ̣c.
Bảng 0.5Bảng phân công
Việc

Công nhân

B1

B2

A1

4

2

A2

2

2

A3

7
0

0
0

6
0

0

4

1

4

3

A4

B3
0

B4

Chi phí nhân công tổ ng cô ̣ng cho sự phân công này đươc̣ tính toán từ bảng ma trâ ̣n chi phí ban
đầ u như sau:
Bảng 0.6Bảng phân công và chi phí
Phân công người thợ
Làm việc
A1
B3
A2
B4
A3
B2
A4
B1
Tổng tiền công (ngàn đồng)

Tiền công
8
8
8
6
22

Ví dụ 2:Mô ̣t công ty xây dựng có 3 kỹ sư đươ ̣c phân công phu ̣ trách 3 dự án. Chi phí để thực
hiê ̣n từng dự án của mỗi kỹ sư như Bảng 0.7. Đề nghi ̣phân công sao cho tổ ng chi phí it́ nhấ t.
Bảng 0.7Chi phí khi phân công từng kỹ sư
Kỹ sư

Dự án
An Cư

An Điền

An Hòa

An

11

14

6



8

10

11

GV: Trần Đức Học, Huỳnh Thị Minh Trúc

10


Bài Giảng Toán Chuyên Ngành – Specialized Mathematics
Kỳ

9

12

7

Sử du ̣ng thuâ ̣t toán Hungarian để giải bài toán như sau:
Bước 1 Xác đinh
̣ ma trâ ̣n chi phí cơ hô ̣i
Bảng 0.8Chi phí cơ hội theo hàng
Dự án

Kỹ sư

An Cư

An Điền

An Hòa

An

5

8

0



0

2

3

Kỳ

2

5

0

Bảng 0.9Chi phí cơ hội theo cột
Dự án

Kỹ sư

An Cư

An Điền

An Hòa

An

5

6

0



0

0

3

Kỳ

2

3

0

Bước 2 Kiể m tra điề u kiê ̣n tố i ưu. Vẽ mô ̣t số tố i thiể u các đường thẳ ng trên dòng hay cô ̣t đi
qua mo ̣i số không (“0”) của bảng..
Nế u số đường thẳ ng bằ ng với số dòng hay cô ̣t của ma trâ ̣n thì có lời giải tố i ưu. Trường hơ ̣p số
đường thẳ ng it́ hơn số dòng hay cô ̣t thì chưa đa ̣t đươ ̣c lời giải tố i ưu. Khi đó phải thực hiê ̣n bước
3 và vẽ bảng chi phí cơ hô ̣i mới.
Bảng 0.10Kiểm tra điều kiện tối ưu
Kỹ sư

Dự án
An Cư

An Điền

An Hòa

An

5

6

0



0

0

3

Kỳ

2

3

0

Theo Bảng 0.10, ma trâ ̣n có ba dòng nhưng chỉ cầ n hai đường thẳ ng ngang và đứng đi qua tấ t
cả các giá tri không
(“0”). Như vâ ̣y, chưa thỏa mãn điề u kiê ̣n tố i ưu.
̣
Bước 3 Xây dựng ma trâ ̣n chi phí cơ hô ̣i mới
Ma trâ ̣n chi phí cơ hô ̣i đươ ̣c xác đinh
̣ bằ ng cách trừ giá tri ̣ chi phí của mo ̣i phầ n tử cho giá tri ̣
nhỏ nhấ t không nằ m trên các đường thẳ ng và cô ̣ng giá tri ̣ nằ m trên giao điể m của hai đường
thẳ ng với giá tri ̣nhỏ nhấ t. Giá tri ̣nhỏ nhấ t trong Bảng 0.10 là 2. Như vâ ̣y lấ y mo ̣i giá tri ̣phầ n tử
không nằ m trên đường thẳ ng trừ cho 2 và lấ y giá tri ̣ nằ m trên giao điể m hai đường thẳ ng cô ̣ng
cho 2. Kế t quả bước 3 trình bày ở Bảng 0.11.

GV: Trần Đức Học, Huỳnh Thị Minh Trúc

11


Bài Giảng Toán Chuyên Ngành – Specialized Mathematics
Bảng 0.11Ma trận chi phí cơ hội mới
Kỹ sư

Dự án
An Cư

An Điền

An Hòa

4



3
0

0

0
5

Kỳ

0

1

0

An

Trở la ̣i bước 2 để kiể m tra điề u kiê ̣n tố i ưu, cầ n phải có it́ nhấ t 3 đường thẳ ng đi qua tấ t cả các
giá tri ̣ không “0” của ma trâ ̣n chi phí cơ hô ̣i mới (Bảng 0.11), như vâ ̣y số đường thẳ ng bằ ng với
số dòng và thỏa điề u kiê ̣n tố i ưu.
Thực hiê ̣n sự phân công bắ t đầ u bằ ng dòng thứ nhấ t có duy nhấ t mô ̣t số không “0”, tiế p tu ̣c
phân phố i cho dòng thứ ba sau khi đã loa ̣i bỏ dòng 1 và cô ̣t 3. Kế t quả cuố i cùng như trong :
phân công kỹ sư An thực hiê ̣n dự án An Hòa, kỹ sư Dư thực hiê ̣n dự án An Điề n và kỹ sư Kỳ
thực hiê ̣n dự án An Cư. Tổ ng chi phí thực hiê ̣n dự án là 25 (triê ̣u đồ ng).
Bảng 0.12Bảng phân công
Kỹ sư

An Cư

An Điền

An

3



0
0

4
0

Kỳ



Dự án

1

An Hòa
0
5
0

Bài toán phân công khi có số dòng và cột khác nhau
Thuâ ̣t toán Hungarian đươ ̣c áp du ̣ng để giải bài toán phân công với điề u kiê ̣n là số dòng và số

cô ̣t của ma trâ ̣n chi phí phải bằ ng nhau, Tuy nhiên không phải lúc nào số bô ̣ phâ ̣n đươ ̣c phân
công (như số người) cũng bằ ng với số viê ̣c, số lươ ̣ng máy, số lươ ̣ng khách hàng cầ n đươc̣ thực
hiê ̣n, vâ ̣n hành hay phu ̣c vu ̣. Trường hơ ̣p số dòng nhiề u hơn số cô ̣t thì ta thêm mô ̣t cô ̣t ảo.
Trường hơ ̣p số cô ̣t nhiề u hơn số dòng thì ta thêm mô ̣t dòng ảo (tương tự như bài toán vâ ̣n tải hở).
Khi đó, ma trâ ̣n chi phí có số dòng bằ ng với số cô ̣t và có thể áp du ̣ng thuâ ̣t toán Hungarian như
đã triǹ h bày. Vì thêm dòng hay cô ̣t ảo là thêm người ảo hay công viê ̣c ảo nên giá tri ̣ hay chi phí
thực hiê ̣n công viê ̣c ở dòng hay cô ̣t này sẽ bằ ng không (“0”).
Ví dụ 3: Mô ̣t xưởng sản xuấ t có 3 công nhân và 4 máy. Tiề n công của mỗi công nhân đứng ở
mỗi máy như trong Bảng 0.13. Haỹ phân công mỗi người đứng mô ̣t máy sao cho tổ ng tiề n công
là tố i thiể u.
Trường hơ ̣p này ta chỉ cầ n thêm mô ̣t dòng tương ứng với mô ̣t người thơ ̣ ảo. Bảng ma trâ ̣n chi

GV: Trần Đức Học, Huỳnh Thị Minh Trúc

12


Bài Giảng Toán Chuyên Ngành – Specialized Mathematics
phí ban đầ u là bảng. Khi đó sẽ có mô ̣t máy đươ ̣c giao cho người thơ ̣ ảo có nghiã là máy này sẽ
không được vâ ̣n hành. Ta có thể áp du ̣ng thuâ ̣t toán Hungarian để tim
̀ lời giải tố i ưu cho bài toán
này.
Bảng 0.13Tiền công của mỗi thợ đứng ở mỗi máy
Thợ

Máy
M1

M2

M3

M4

A1

12

7

20

14

A2

10

14

13

20

A3

5

3

6

9

Bảng 0.14Bảng biến đổi và lời giải
Thợ

M1

M2

M3

M4

A1

12

7

20

14

A2

10

14

13

20

A3

5

3

6

9

Thợ ảo

0

0

0

0

Thợ



Máy

Máy
M1

M2

M3

M4

A1

5

0

13

7

A2

0

4

3

10

A3

2

0

3

6

Thợ ảo

0

0

0

0

Bài toán phân công cực đại hàm mục tiêu
Có một số bài toán phân công tìm lời giải tối ưu là cực đại tiền lời, số lượng sản phẩm hay

hiệu quả công việc thay vì cực tiểu chi phí. Để có thể áp dụng thuật toán Hungarian, phải chuyển
bài toán về bài toán cực tiểu tương đương bằng cách xây dựng ma trận chi phí cơ hội. Các phần
tử của ma trận chi phí cơ hội được xác định bằng hiệu số của phần tử lớn nhất trong ma trận với
giá trị ban đầu của phần tử đang xét. Sau khi lời giải tối ưu của bài toán tương đương được xác
định, tính tổng tiền lời bằng cách cộng các giá trị tiền lời ban đầu ở các ô được phân phối tối ưu.
Ví dụ 4: Có 4 người công nhân được phân công thực hiện bốn công việc. Tiền lời thu được khi
phân công mỗi người công nhân thực hiện một công việc như trong Bảng 0.15. Hãy phân công
mỗi người một việc sao cho tổng tiền lời thu được nhiều nhất.

GV: Trần Đức Học, Huỳnh Thị Minh Trúc

13


Bài Giảng Toán Chuyên Ngành – Specialized Mathematics
Bảng 0.15Tiền lời khi phân công mỗi người thợ một việc (ngàn đồng)
Máy

Công nhân

A

B

C

D

Anh

20

60

50

55

Bình

60

30

80

75

Can

80

100

90

80

Dân

65

80

75

70

Bảng 0.16Bảng ma trận chi phí cơ hội tương đương (ngàn đồng)
Máy

Công nhân

A

B

C

D

Anh

80

40

50

45

Bình

40

70

20

25

Can

20

0

10

20

Dân

35

20

25

30

5.2.2.2. Giải bằng Quy hoạch tuyến tính nhị phân
Ví dụ 5:Sáu người thợ nhận làm khoán ba loại sản phẩm, với số lượng sản phẩm làm khoán
(chiếc/ngày) như trong Bảng 0.17. Hãy phân công hai người thợ làm một loại sản phẩm sao cho
đạt được nhiều sản phẩm.
Bảng 0.17Năng suất khi phân công mỗi thợ làm một sản phẩm
Thợ



Sản phẩm
S1

S2

S3

T1

8

8

11

T2

5

6

10

T3

10

7

10

T4

9

6

9

T5

6

7

8

T6

8

9

10

Mô hình QHTT của bài toán:
Các biến:

xij ; i  1,6; j  1,3; xij Binary
Hàm mục tiêu:

GV: Trần Đức Học, Huỳnh Thị Minh Trúc

14


Bài Giảng Toán Chuyên Ngành – Specialized Mathematics

Min Z  8 x11  5x21  10 x31  9 x41  6 x51  8 x61
8 x12  6 x22  7 x32  6 x42  7 x52  9 x62
11x13  10 x23  10 x33  9 x43  8 x53  10 x63
Các ràng buộc
Theo điều kiện mỗi người thợ làm 1 sản phẩm

x11  x12  x13  1
x21  x22  x23  1
x31  x32  x33  1
x41  x42  x43  1
x51  x52  x53  1
x61  x62  x63  1
Theo điều kiện mỗi sản phẩm cần 2 người thợ

x11  x21  x31  x41  x51  x61  2
x12  x22  x32  x42  x52  x62  2
x13  x23  x33  x43  x53  x63  2
LINGO

Đáp số:
x31  x41  x52  x62  x13  x23  1

Z  56

GV: Trần Đức Học, Huỳnh Thị Minh Trúc

15


Bài Giảng Toán Chuyên Ngành – Specialized Mathematics

-------------------%%%% The end %%%% ---------------------

GV: Trần Đức Học, Huỳnh Thị Minh Trúc

16



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay

×