Company
LOGO
Cặp ghép
Hà Nội, 10/2013
Nhóm 4
Tối ưu tổ hợp I
Company name
Nội dung
Thuật toán
4
Giới thiệu bài toán
1
Các khái niệm
2
Mô hình hóa toán học
3
Giải bài toán
5
Một số ứng dụng thực tế
6
TUTH I – Nhóm 4
Company
LOGO
Cặp ghép
Tối ưu tổ hợp I – Nhóm 4
1. Giới thiệu bài toán
Tối ưu tổ hợp I
Company name
1. Giới thiệu
Trong cuộc sống chúng ta thường gặp phải những
vấn đề liên quan đến tổ chức như: phân công công việc,
tuyển dụng theo yêu cầu, xếp lịch hay thời khóa biểu…
Câu hỏi đặt ra là giải quyết như thế nào cho tốt, cho
đạt, thậm chí tối ưu để mang lại hiệu quả và lợi ích cao
nhất cho công việc.
TUTH I – Nhóm 4
Company name
2. Ví dụ thực tế
Bài toán: Chọn 3 trong 4 người vào 3 vị trí làm việc
của cửa hàng. Sao cho tiền lương phải trả là ít nhất và
người được chọn phải đáp ứng được yêu cầu của
công việc.
Mức lương (triệu đồng) đòi hỏi được cho trong bảng:
TUTH I – Nhóm 4
Công vi cệ
1 2 3
Nguy n Th Anễ ị 1 2 1
Lý Ng c B oọ ả Không kđủđ 1 3
V ình C ngũĐ ườ 2 2 Không kđủđ
Tr n Th D ngầ ế ươ 1 2 3
Company name
2. Tổng quát hóa
Bài toán tổng quát
Input:
m người: x1, x2, …, xm;
n công việc: y1, y2, …, yn;
Người xi (i = ) đáp ứng được yêu cầu công việc yj
(j = ) với mức lương c nào đó.
Output:
Cách tuyển dụng người sao cho đáp ứng được nhu
cầu của công việc với chi phí bỏ ra là thấp nhất.
TUTH I – Nhóm 4
Company name
3. Bài toán kinh điển
Bài toán “Đám cưới vùng quê”
Có m chàng trai và n cô gái ở một vùng quê.
Đối với mỗi chàng trai ta biết các cô gái mà anh ta
vừa ý.
Có cách nào có thể tổ chức đám cưới mà chàng trai
nào cũng sánh duyên với các cô gái mà mình vừa ý?
TUTH I – Nhóm 4
?
Company
LOGO
Cặp ghép
Tối ưu tổ hợp I – Nhóm 4
2. Các khái niệm
Tối ưu tổ hợp I
Company name
2. Các khái niệm
TUTH I – Nhóm 4
2.1 Đồ thị 2 phía
Đồ thị G = (V, E) được gọi là “Đồ thị 2 phía” nếu:
∃X, Y ≠ ∅ sao cho:
Đồ thị 2 phía được ký hiệu G = (X ∪ Y, E). Với tập
đỉnh V phân hoạch thành 2 tập X và Y.
Company name
2. Các khái niệm
Ví dụ đồ thị 2 phía:
TUTH I – Nhóm 4
Company name
2. Các khái niệm
2.2 Đồ thị 2 phía đầy đủ:
Đồ thị G = (X ∪ Y, E) được gọi là đồ thị 2 phía
đầy đủ nếu: ∀x ∈ X, ∀y ∈ Y: (x,y) ∈ E
Ví dụ:
TUTH I – Nhóm 4
Company name
2. Các khái niệm
2.3 Đồ thị 2 phía đầy đủ, cân bằng:
Đồ thì G = (X ∪ Y, E) được gọi là đồ thị 2 phía đầy
đủ, cân bằng nếu: |X| = |Y| = k
Ví dụ:
TUTH I – Nhóm 4
Company name
2. Các khái niệm
2.4 Cặp ghép
Cho đồ thị 2 phía G = ( X ∪ Y, E), một tập con các
cạnh M của của E được gọi là “một cặp ghép của G”
nếu:
∀
e1,e2
∈
E, e1
≠
e2
⇒
e1, e2 không có đỉnh
chung
TUTH I – Nhóm 4
Company name
2. Các khái niệm
Ví dụ cặp ghép:
TUTH I – Nhóm 4
2
6
3
4
7
8
1
5
o
(1,6), (4,7), (5,8)
o
(2,6), (5,7)
Company name
2. Các khái niệm
2.5 Cặp ghép cực đại
Cho đồ thị 2 phía G = ( X ∪ Y, E), một cặp ghép
M của G được gọi là “một cặp ghép cực đại” nếu
nó có lực lượng lớn nhất trong tất cả các cặp ghép
của G.
Chú ý:
Một đồ thị có thể có MỘT hay NHIỀU cặp
ghép cực đại.
TUTH I – Nhóm 4
Company name
2. Các khái niệm
Ví dụ cặp ghép cực đại:
TUTH I – Nhóm 4
2
6
3
4
7
8
1
5
o
(1,6), (4,7), (5,8)
o
(2,6), (4,7), (5,8)
Company name
2. Các khái niệm
2.6 Giá trị của cặp ghép
Giá trị của một cặp ghép M là tổng trọng số các cạnh
của nó:
TUTH I – Nhóm 4
( , )
( , )
u v M
M c u v
∈
=
∑
Company
LOGO
Cặp ghép
Tối ưu tổ hợp I – Nhóm 4
3. Mô hình hóa bài toán
Tối ưu tổ hợp I
Company name
3.1. Mô hình hóa toán học
Người và công việc được mô hình hóa thành các
đỉnh:
Người→ tập đỉnh X.
Công việc → tập đỉnh Y
Nếu người xi đáp ứng được công việc yj thì có cung
nối giữa 2 đỉnh với trọng số là số lương tương ứng.
Khi đó ta được đồ thị 2 phía có trọng số G = (X ∪ Y,
E).
TUTH I – Nhóm 4
?
Yêu cầu bài toán đưa về: Tìm cặp ghép cực đại,
giá trị cực tiểu của đồ thị G?
Company name
3.1. Mô hình hóa toán học
Ví dụ thực tế sau khi được mô hình hóa:
TUTH I – Nhóm 4
B
1
C
2
3
A
D
1
2
1
1
3
2
1
Người
Việc
2
2
3
Company
LOGO
Cặp ghép
Tối ưu tổ hợp I – Nhóm 4
4. Thuật toán
Hình thành thuật giải Hungary
Tối ưu tổ hợp I
Company name
TUTH I – Nhóm 4
4.1. Ý tưởng thuật toán
Thực hiện từng bước đưa các trọng số của các cung
trong đồ thị về giá trị 0.
Nhận thấy: Các trọng số của cặp ghép cực đại có giá
trị cực tiểu sẽ tiến về 0 trước. Dựa vào điều này mà ta
có thể tìm được nghiệm và dừng thuật toán tại một
thời điểm thỏa mãn.
TUTH I – Nhóm 4
Company name
TUTH I – Nhóm 4
4.2. Các định lý bổ sung
Định lý 1: Nếu mọi trọng số của G đều không âm, tồn tại
một bộ k cạnh có trọng số 0 sao cho bộ này là một cặp
ghép của G thì bộ cạnh này chính là một “cặp ghép cực
đại, giá trị cực tiểu của G”.
Định lý 2: Với mọi đỉnh v của G, nếu cộng một số ∆ vào
tất cả các cạnh có đỉnh là v thì ta được đồ thị G’ mới có
cùng cặp ghép cực đại giá trị cực tiểu với đồ thị G
Company name
TUTH I – Nhóm 4
4.3. Hình thành thuật giải
Từ đồ thị 2 phía G = (X ∪Y, E), ta xây dựng đồ thị 2 phía đầy đủ, cân bằng
G’ = (X’ ∪Y’,E’). Cách thực hiện:
Thêm các đỉnh ảo vào tập đỉnh nhỏ hơn.
Thêm các cạnh ảo có trọng số rất lớn vào các cạnh chưa có trong E.
Lưu đồ thị 2 phái đầy đủ, cân bằng vào ma trận 2 chiều:
Tìm cặp ghép cực đại giá trị cực tiểu của G’ sau đó suy ra cặp ghép cực
đại giá trị cực tiểu của G.
TUTH I – Nhóm 4
1 2 … k
1 C11 C12 … C1k
2 C21 C22 … C2k
… … … … …
k Ck1 Ck2 … Ckk
Company name
? Dấu hiệu dừng:
TUTH I – Nhóm 4
4.4. Ý tưởng giải thuật
Định lý 2 → cộng một hàng hoặc một cột với số ∆ thì kết
quả của bài toán không đổi.
Định lý 1 → Biến đổi đến khi ma trận thỏa mãn: tất cả
mọi phần tử đều không âm, tồn tại một bộ k phần tử 0,
sao cho mỗi hàng chứa một số 0 của bộ này, mỗi cột chứa
một số 0 của bộ này.