JavaScript is required

Có 5 công việc đánh số 1, 2, 3, 4, 5 và 5 người thợ được đánh số 1, 2, 3, 4, 5. Tùy thuộc tay nghề chuyên môn, mỗi thợ chỉ có thể thực hiện 1 số công việc nào đó: Người thợ 1 chỉ có thể thực hiện công việc 4, thợ 2 chỉ có thể thực hiện công việc 1 hoặc 5, thợ 3 chỉ có thể thực hiện công việc 4, thợ 4 chỉ có thể thực hiện công việc 2 hoặc 3, thợ 5 chỉ có thể thực hiện công việc 1 hoặc 5. Hỏi có thể chọn ra nhiều nhất bao nhiêu công việc để phân công cho thợ sao cho mỗi công việc chỉ được thực hiện bởi duy nhất 1 người thợ (phù hợp tay nghề chuyên môn) và mỗi thợ không được thực hiện quá 1 công việc?

A.

2

B.

3

C.

4

D.
5
Trả lời:

Đáp án đúng: B


Bài toán này thuộc loại bài toán tìm cặp ghép cực đại trong đồ thị hai phía. Ta có thể biểu diễn mối quan hệ giữa thợ và công việc bằng một đồ thị hai phía, trong đó một bên là tập các thợ, một bên là tập các công việc, và có cạnh nối giữa thợ và công việc nếu thợ đó có thể thực hiện công việc đó. Thợ 1: Công việc 4 Thợ 2: Công việc 1, 5 Thợ 3: Công việc 4 Thợ 4: Công việc 2, 3 Thợ 5: Công việc 1, 5 Ta sẽ thử tìm một phương án phân công sao cho số công việc được thực hiện là lớn nhất: 1. Phân công thợ 1 cho công việc 4. 2. Phân công thợ 4 cho công việc 2. 3. Phân công thợ 5 cho công việc 1. Như vậy, ta đã phân công được 3 công việc (1, 2, 4) cho 3 thợ (1, 4, 5). Ta cũng có thể phân công như sau: 1. Phân công thợ 1 cho công việc 4. 2. Phân công thợ 4 cho công việc 3. 3. Phân công thợ 2 cho công việc 5. Như vậy, ta cũng phân công được 3 công việc (3, 4, 5) cho 3 thợ (1, 2, 4). Nếu ta cố gắng phân công 4 công việc, điều này có vẻ không khả thi vì thợ 3 cũng muốn làm công việc 4, nhưng công việc 4 đã được giao cho thợ 1. Tương tự, thợ 2 và thợ 5 đều có thể làm công việc 1 hoặc 5, nhưng nếu cả hai đều được phân công, một người sẽ phải làm công việc 1 và người còn lại làm công việc 5. Điều này vẫn chỉ cho phép tối đa 3 công việc được thực hiện. Vậy, số công việc nhiều nhất có thể phân công là 3.

Câu hỏi liên quan