Luận văn: Bài toán ghép cặp và ứng dụng tuyển sinh - Nguyễn Hồng Hải

Dưới đây là thông tin meta tags cho bài viết "Luận văn thạc sĩ bài toán ghép cặp và ứng dụng trong công tác tuyển sinh" theo yêu cầu: { "ai_description":

Trường đại học

Đại học Công nghệ Thông tin & Truyền thông - Đại học Thái Nguyên

Chuyên ngành

Khoa học Máy tính

Người đăng

Ẩn danh

Thể loại

Luận văn thạc sĩ

2015

62
0
0

Phí lưu trữ

30 Point

Tóm tắt

I. Khám phá Luận văn Thạc sĩ Bài toán Ghép cặp và Tối ưu Tuyển sinh Đại học Việt Nam

Trong bối cảnh cạnh tranh giáo dục ngày càng gay gắt, việc tối ưu hóa công tác tuyển sinh đại học trở thành một thách thức lớn đối với các cơ sở đào tạo và cơ quan quản lý. Nhu cầu đảm bảo sự công bằng, minh bạch và hiệu quả trong quá trình phân bổ thí sinh là vô cùng cấp thiết. Đây là lý do luận văn thạc sĩ bài toán ghép cặp và ứng dụng trong công tác tuyển sinh nổi lên như một hướng nghiên cứu đầy tiềm năng, cung cấp các giải pháp khoa học dựa trên nền tảng khoa học máy tính và lý thuyết đồ thị.

Nghiên cứu này không chỉ dừng lại ở lý thuyết mà còn đi sâu vào việc triển khai thực tế, mang lại những cải tiến đáng kể cho quy trình tuyển sinh truyền thống. Mục tiêu chính là xây dựng một hệ thống phân bổ tối ưu, nơi nguyện vọng của thí sinh được xem xét một cách toàn diện, đồng thời đảm bảo chất lượng đầu vào và sự phù hợp với năng lực đào tạo của các trường đại học. Sự phức tạp của bài toán yêu cầu một cách tiếp cận đa chiều, kết hợp giữa các nguyên tắc toán học và khả năng xử lý dữ liệu lớn.

Sự ra đời của các thuật toán ghép cặp đã mở ra một kỷ nguyên mới cho việc giải quyết các vấn đề phân bổ tài nguyên, và tuyển sinh đại học là một ví dụ điển hình. Khả năng tìm kiếm các cặp phù hợp tối ưu trong một tập hợp lớn các lựa chọn mang lại hiệu quả vượt trội so với các phương pháp thủ công hoặc ít khoa học. Điều này không chỉ giảm thiểu rủi ro sai sót mà còn nâng cao sự hài lòng của tất cả các bên liên quan, từ thí sinh đến nhà trường và cơ quan quản lý giáo dục. Luận văn thạc sĩ này cung cấp một cái nhìn toàn diện về cách thức áp dụng những công nghệ tiên tiến này để giải quyết một trong những vấn đề trọng yếu của hệ thống giáo dục quốc gia.

1.1. Tổng quan về Bài toán Ghép cặp trong Khoa học Máy tính

Bài toán ghép cặp là một lĩnh vực quan trọng trong lý thuyết đồ thị, chuyên nghiên cứu về việc tìm kiếm các tập hợp cạnh không kề nhau trong một đồ thị. Mục tiêu thường là tối đa hóa số lượng các cặp được tạo ra hoặc tối ưu hóa tổng trọng số của các cặp đó. Các bài toán ghép cặp xuất hiện rộng rãi trong nhiều lĩnh vực, từ phân công nhiệm vụ, xếp lịch đến phân bổ tài nguyên. Nền tảng của nó được xây dựng trên các khái niệm về đồ thị hai phía, nơi các đỉnh được chia thành hai tập hợp rời rạc, và các cạnh chỉ tồn tại giữa các đỉnh từ các tập hợp khác nhau. Việc hiểu rõ các khái niệm cơ bản về bài toán ghép cặp là nền tảng để phát triển các giải pháp phức tạp hơn cho những vấn đề thực tiễn như công tác tuyển sinh đại học.

1.2. Nhu cầu cấp thiết tối ưu hóa Công tác Tuyển sinh Đại học

Công tác tuyển sinh đại học ở Việt Nam đối mặt với nhiều thách thức, bao gồm việc xử lý một lượng lớn nguyện vọng từ hàng trăm nghìn thí sinh, sự phức tạp trong quy tắc xét tuyển của từng trường, và áp lực đảm bảo công bằng xã hội. Hệ thống tuyển sinh hiện tại, dù đã có những cải tiến, vẫn còn tồn tại các vấn đề như tình trạng thí sinh trượt tất cả các nguyện vọng dù có điểm cao, hoặc trường không tuyển đủ chỉ tiêu. Những vấn đề này tạo ra nhu cầu cấp thiết về một phương pháp tối ưu hóa, đảm bảo mỗi thí sinh được phân bổ vào trường phù hợp nhất với nguyện vọng và năng lực của mình, đồng thời giúp các trường đại học tuyển được những sinh viên chất lượng nhất. Đây là điểm mấu chốt mà luận văn thạc sĩ bài toán ghép cặp và ứng dụng trong công tác tuyển sinh hướng tới.

II. Hiểu Rõ Nền Tảng Các Dạng Bài toán Ghép cặp Quan trọng và Thuật toán Tiêu biểu

Để giải quyết hiệu quả bài toán ghép cặp trong công tác tuyển sinh, việc nắm vững các dạng bài toán cơ bản và các thuật toán tương ứng là điều kiện tiên quyết. Lĩnh vực này rất đa dạng, bao gồm các bài toán ghép cặp không trọng và ghép cặp có trọng số, mỗi loại đòi hỏi một phương pháp tiếp cận riêng biệt. Sự lựa chọn thuật toán phù hợp quyết định đến tính hiệu quả và độ chính xác của giải pháp. Trong bối cảnh tuyển sinh, việc tối ưu hóa sự phù hợp giữa nguyện vọng của thí sinh và chỉ tiêu của nhà trường thường được mô hình hóa thành một bài toán ghép cặp phức tạp, đòi hỏi sự hiểu biết sâu sắc về lý thuyết và thực hành.

Các luận văn thạc sĩ về chủ đề này thường bắt đầu bằng việc phân tích các khái niệm cơ bản của lý thuyết đồ thị, đặc biệt là đồ thị hai phía, làm nền tảng cho việc hình thành bài toán. Các thuật toán như thuật toán đường mở hay thuật toán Hungari không chỉ là công cụ giải quyết mà còn là kim chỉ nam để phát triển những giải pháp tiên tiến hơn. Khả năng mô hình hóa bài toán thực tế thành một cấu trúc toán học chặt chẽ là một kỹ năng quan trọng mà các nhà nghiên cứu cần có. Từ đó, có thể tận dụng sức mạnh của khoa học máy tính để tìm ra lời giải tối ưu một cách nhanh chóng và chính xác.

Việc nghiên cứu sâu về các dạng bài toán ghép cặp cung cấp một bộ công cụ mạnh mẽ để giải quyết các vấn đề phân bổ tài nguyên trong thế giới thực. Không chỉ giới hạn trong lĩnh vực tuyển sinh đại học, các nguyên tắc và thuật toán này còn được áp dụng trong nhiều ngữ cảnh khác như xếp lịch thi đấu, phân công nhiệm vụ, hoặc ghép tạng. Sự linh hoạt và tính tổng quát của các phương pháp này làm cho chúng trở thành một phần không thể thiếu trong kho tàng kiến thức của khoa học máy tính hiện đại, và là trọng tâm của nhiều luận văn thạc sĩ có giá trị.

2.1. Phân loại Bài toán Ghép cặp Từ không trọng đến có trọng số

Bài toán ghép cặp có thể được chia thành hai loại chính: ghép cặp không trọngghép cặp có trọng số. Trong ghép cặp không trọng, mục tiêu thường là tìm một ghép cặp có số lượng cạnh lớn nhất (ghép cặp cực đại). Các cạnh không có giá trị liên quan. Ngược lại, trong ghép cặp có trọng số, mỗi cạnh có một giá trị (trọng số) và mục tiêu là tìm một ghép cặp có tổng trọng số là cực tiểu hoặc cực đại. Ví dụ, trong công tác tuyển sinh, trọng số có thể là mức độ ưu tiên của thí sinh đối với trường hoặc ngược lại. Sự phân loại này giúp định hướng việc lựa chọn thuật toán giải quyết phù hợp, đảm bảo kết quả tối ưu cho từng loại bài toán cụ thể.

2.2. Phương pháp giải quyết Bài toán Ghép cặp Thuật toán đường mở và Thuật toán Hungari

Đối với bài toán ghép cặp không trọng, thuật toán đường mở là một phương pháp kinh điển, hoạt động dựa trên việc tìm kiếm các đường mở xen kẽ để tăng kích thước của ghép cặp hiện tại. Mỗi lần tìm thấy một đường mở, ghép cặp sẽ được cải thiện. Đối với bài toán ghép cặp với trọng số cực tiểu (hoặc cực đại), thuật toán Hungari là một trong những giải pháp hiệu quả nhất. Thuật toán này sử dụng ma trận chi phí và các biến đổi hàng/cột để tìm ra một ghép cặp hoàn hảo có tổng trọng số tối ưu. Các luận văn thạc sĩ thường khai thác sâu các thuật toán này như nền tảng để phát triển các phương pháp giải quyết vấn đề tuyển sinh đại học phức tạp, nơi việc tối ưu hóa dựa trên các ưu tiên (trọng số) là rất quan trọng.

III. Giải Pháp Bền Vững Ứng dụng Bài toán Hôn nhân Bền vững vào Công tác Tuyển sinh

Trong các dạng bài toán ghép cặp, bài toán hôn nhân bền vững (Stable Marriage Problem) nổi bật với khả năng tạo ra các cặp ổn định, nơi không có cặp nào khác có thể làm cho cả hai bên đều hài lòng hơn nếu họ rời bỏ cặp hiện tại. Đây là một khái niệm mạnh mẽ và có ý nghĩa đặc biệt khi áp dụng vào công tác tuyển sinh, nơi mục tiêu không chỉ là ghép cặp mà còn là tạo ra sự hài lòng và ổn định lâu dài cho cả thí sinh và trường đại học. Luận văn thạc sĩ bài toán ghép cặp và ứng dụng trong công tác tuyển sinh đã khai thác sâu sắc tiềm năng này để cải thiện quy trình phân bổ.

Sự hấp dẫn của bài toán hôn nhân bền vững nằm ở khả năng giải quyết các xung đột lợi ích một cách có hệ thống. Trong tuyển sinh, mỗi thí sinh có danh sách ưu tiên các trường, và mỗi trường cũng có danh sách ưu tiên các thí sinh (dựa trên điểm số, nguyện vọng, v.v.). Thuật toán Gale-Shapley, một giải pháp kinh điển cho bài toán này, đảm bảo tìm được một ghép cặp ổn định. Điều này có nghĩa là sẽ không có trường A và thí sinh B nào mà trường A thích thí sinh B hơn sinh viên hiện tại của mình, và thí sinh B cũng thích trường A hơn trường hiện tại của mình. Khả năng này mang lại một nền tảng vững chắc cho việc xây dựng một hệ thống tuyển sinh đại học công bằng và hiệu quả.

Việc áp dụng bài toán hôn nhân bền vững không chỉ giúp phân bổ thí sinh một cách tối ưu mà còn giảm thiểu đáng kể các khiếu nại và sự không hài lòng sau quá trình tuyển sinh. Nó cung cấp một khung lý thuyết mạnh mẽ để xử lý các ưu tiên phức tạp và đảm bảo rằng kết quả cuối cùng là một sự cân bằng hài hòa giữa các bên. Các luận văn thạc sĩ và nghiên cứu khoa học đã chứng minh rằng việc triển khai các nguyên lý của bài toán này có thể cách mạng hóa công tác tuyển sinh, biến nó từ một quy trình phức tạp, dễ gây tranh cãi thành một hệ thống minh bạch và đáng tin cậy.

3.1. Đặc điểm và Đặt bài toán Hôn nhân bền vững Tìm kiếm sự phù hợp tối ưu

Bài toán hôn nhân bền vững (Stable Marriage Problem) được đặt ra với hai tập hợp đối tượng (ví dụ: nam và nữ, hoặc trường và thí sinh), mỗi đối tượng có một danh sách ưu tiên các đối tượng trong tập hợp còn lại. Mục tiêu là tìm một phép ghép cặp một-một giữa các đối tượng sao cho không tồn tại một cặp đối tượng (chưa được ghép cặp với nhau) mà cả hai đều thích nhau hơn đối tượng hiện tại của mình. Phép ghép cặp thỏa mãn điều kiện này được gọi là ghép cặp ổn định. Việc đặt bài toán này rõ ràng giúp mô hình hóa các tình huống lựa chọn có sự ưu tiên rõ ràng, điển hình là trong công tác tuyển sinh đại học và phân bổ nguồn lực.

3.2. Thuật toán Gale Shapley Cơ chế tạo ra Ghép cặp ổn định

Thuật toán Gale-Shapley là giải pháp kinh điển cho bài toán hôn nhân bền vững, đảm bảo tìm ra một ghép cặp ổn định trong mọi trường hợp. Thuật toán này hoạt động theo một quy trình lặp, trong đó một bên (ví dụ: các trường đại học) lần lượt cầu hôn bên kia (thí sinh) theo danh sách ưu tiên của mình. Thí sinh sẽ tạm thời chấp nhận lời cầu hôn tốt nhất mà họ nhận được, và từ chối những lời cầu hôn kém hơn. Quá trình này tiếp tục cho đến khi tất cả các bên đều được ghép cặp hoặc không còn lời cầu hôn nào. Điểm đặc biệt của thuật toán Gale-Shapley là nó luôn tìm được một ghép cặp ổn định, và kết quả này tối ưu cho bên cầu hôn. Đây là một cơ chế mạnh mẽ để ứng dụng trong công tác tuyển sinh, đảm bảo sự công bằng và hiệu quả.

IV. Phân Tích Thực Tiễn Cách Luận văn Thạc sĩ Áp dụng Ghép cặp trong Tuyển sinh Đại học

Luận văn thạc sĩ bài toán ghép cặp và ứng dụng trong công tác tuyển sinh đã phân tích kỹ lưỡng cách thức chuyển đổi mô hình lý thuyết của bài toán hôn nhân bền vững vào môi trường thực tế của tuyển sinh đại học ở Việt Nam. Dù có những điểm tương đồng, bài toán tuyển sinh cũng mang những đặc thù riêng cần được cân nhắc. Ví dụ, trong khi bài toán hôn nhân bền vững thường chỉ xét ghép cặp một-một, bài toán tuyển sinh cho phép một trường đại học tiếp nhận nhiều thí sinh, và một thí sinh chỉ có thể nhập học một trường. Sự khác biệt này đòi hỏi các điều chỉnh và mở rộng trong việc triển khai thuật toán.

Một điểm quan trọng khác là tính bất đối xứng trong kết quả. Trong bài toán hôn nhân bền vững, luôn tồn tại kết quả tối ưu cho bên nam giới và tối ưu cho bên nữ giới, và hai kết quả này tương ứng với nhau. Tuy nhiên, trong tuyển sinh đại học, kết quả tối ưu cho trường đại học và tối ưu cho sinh viên thường không đối xứng. Các luận văn thạc sĩ thường nhấn mạnh rằng trong bối cảnh giáo dục, quyền lợi của thí sinh cần được xem xét nhiều hơn, vì các trường đại học tồn tại là để phục vụ sinh viên và tạo ra nguồn nhân lực chất lượng cao.

Việc triển khai thuật toán ghép cặp vào hệ thống tuyển sinh thực tế không chỉ dừng lại ở việc áp dụng công thức. Nó bao gồm quá trình thu thập và chuẩn hóa dữ liệu nguyện vọng, điểm số, chỉ tiêu, và các tiêu chí ưu tiên khác. Sau đó, thuật toán Gale-Shapley (hoặc biến thể của nó) sẽ được áp dụng để tìm kiếm ghép cặp ổn định. Kết quả đầu ra là danh sách phân bổ thí sinh vào các trường, đảm bảo tối ưu hóa sự hài lòng và giảm thiểu tình trạng không ổn định. Nghiên cứu thực nghiệm thường được thực hiện để đánh giá hiệu quả của mô hình so với các phương pháp truyền thống, khẳng định giá trị thực tiễn của giải pháp dựa trên khoa học máy tính này.

4.1. Khác biệt cốt lõi giữa Bài toán Hôn nhân bền vững và Tuyển sinh Đại học

Mặc dù bài toán hôn nhân bền vững cung cấp nền tảng lý thuyết vững chắc, bài toán tuyển sinh đại học lại có những đặc điểm riêng. Trong hôn nhân bền vững, mỗi người đàn ông chỉ kết hợp với một người phụ nữ. Ngược lại, trong tuyển sinh đại học, mỗi trường có thể tiếp nhận nhiều thí sinh, trong khi mỗi thí sinh chỉ có thể nhập học một trường duy nhất. Hơn nữa, tính ổn định tối ưu cho một bên (ví dụ, nhà trường) có thể không tối ưu cho bên còn lại (thí sinh). Các luận văn thạc sĩ cần điều chỉnh thuật toán Gale-Shapley để phù hợp với những đặc trưng này, thường là bằng cách cho phép các trường có 'dung lượng' nhất định, cho phép một trường được 'cầu hôn' nhiều thí sinh. Điều này giúp áp dụng thành công bài toán ghép cặp vào thực tiễn công tác tuyển sinh.

4.2. Triển khai thuật toán và những cân nhắc đặc biệt cho hệ thống giáo dục

Việc triển khai thuật toán ghép cặp trong công tác tuyển sinh đại học đòi hỏi sự cân nhắc kỹ lưỡng các yếu tố đặc thù của hệ thống giáo dục. Các trường đại học đóng vai trò là động lực tạo ra tri thức và nguồn nhân lực, do đó, quyền lợi và nguyện vọng của thí sinh cần được ưu tiên xem xét. Trong bài toán hôn nhân bền vững, kết quả ghép cặp ổn định tối ưu cho người cầu hôn và người được cầu hôn là tương đương, nhưng trong tuyển sinh, thí sinh thường là bên được hưởng lợi nhiều hơn từ kết quả tối ưu. Luận văn thạc sĩ phải đưa ra các điều chỉnh để thuật toán không chỉ tìm kiếm sự ổn định mà còn tối đa hóa lợi ích cho thí sinh, đồng thời vẫn đảm bảo chỉ tiêu và chất lượng của các trường. Việc này bao gồm việc thiết lập các danh sách ưu tiên một cách chính xác và minh bạch cho cả hai bên.

V. Giá Trị Thực Tế Lợi Ích và Tiềm Năng Phát Triển của Ghép cặp trong Tuyển sinh

Việc áp dụng bài toán ghép cặp thông qua các luận văn thạc sĩ vào công tác tuyển sinh đại học mang lại nhiều giá trị thực tế và tiềm năng phát triển to lớn. Đầu tiên và quan trọng nhất, nó giúp tối ưu hóa quá trình phân bổ thí sinh, đảm bảo mỗi thí sinh được xếp vào một trường phù hợp nhất với nguyện vọng và khả năng của mình. Điều này không chỉ nâng cao sự hài lòng cá nhân mà còn giảm thiểu tình trạng lãng phí nguồn lực xã hội do việc chọn sai ngành, sai trường. Hiệu quả của các thuật toán ghép cặp, đặc biệt là thuật toán hôn nhân bền vững, trong việc tạo ra các ghép cặp ổn định là một lợi thế không thể phủ nhận.

Thứ hai, giải pháp này tăng cường tính minh bạch và công bằng trong toàn bộ hệ thống tuyển sinh. Khi một quy trình được xây dựng trên nền tảng toán học và khoa học máy tính chặt chẽ, các quyết định phân bổ trở nên khách quan hơn, giảm thiểu sự can thiệp chủ quan và những tranh cãi không đáng có. Điều này củng cố niềm tin của công chúng vào hệ thống giáo dục. Các luận văn thạc sĩ không chỉ dừng lại ở việc chứng minh tính khả thi mà còn cung cấp các khung sườn để các cơ quan quản lý có thể triển khai thực tế.

Cuối cùng, tiềm năng phát triển của bài toán ghép cặp trong tuyển sinh đại học là rất lớn. Với sự tiến bộ của công nghệ thông tin, có thể tích hợp thêm nhiều yếu tố phức tạp hơn vào mô hình, chẳng hạn như nguyện vọng phụ, điều kiện ưu tiên đặc biệt, hoặc các ràng buộc về địa lý. Hướng nghiên cứu tương lai có thể bao gồm việc phát triển các thuật toán song song để xử lý lượng dữ liệu khổng lồ, hoặc kết hợp với trí tuệ nhân tạo để dự đoán xu hướng và đưa ra các khuyến nghị chiến lược cho cả thí sinh và trường học. Điều này hứa hẹn một tương lai nơi công tác tuyển sinh trở nên thông minh, hiệu quả và công bằng hơn bao giờ hết, góp phần vào sự phát triển bền vững của giáo dục quốc gia.

5.1. Hiệu quả tối ưu hóa nguyện vọng sinh viên và nguồn lực nhà trường

Việc áp dụng bài toán ghép cặp vào công tác tuyển sinh mang lại hiệu quả kép: tối ưu hóa nguyện vọng của sinh viên và sử dụng tối ưu nguồn lực của nhà trường. Đối với sinh viên, hệ thống đảm bảo họ có cơ hội cao nhất được vào trường và ngành mong muốn, dựa trên năng lực và ưu tiên đã đăng ký. Điều này tăng cường động lực học tập và sự gắn bó với cơ sở giáo dục. Đối với nhà trường, ghép cặp ổn định giúp tuyển được đúng số lượng và chất lượng sinh viên theo chỉ tiêu, tránh tình trạng thừa/thiếu cục bộ, tối ưu hóa việc sử dụng cơ sở vật chất và đội ngũ giảng viên. Từ đó, nâng cao chất lượng đào tạo và uy tín của trường đại học, đặc biệt khi luận văn thạc sĩ này tập trung vào các ứng dụng tuyển sinh đại học thực tiễn.

5.2. Hướng phát triển và thách thức của Bài toán ghép cặp trong tương lai

Tuy có nhiều lợi ích, việc triển khai bài toán ghép cặp vào công tác tuyển sinh vẫn đối mặt với một số thách thức. Đó là việc thu thập và chuẩn hóa dữ liệu nguyện vọng một cách chính xác, xử lý các trường hợp ngoại lệ hoặc điều kiện đặc biệt, và đảm bảo sự chấp nhận rộng rãi từ cộng đồng. Hướng phát triển trong tương lai bao gồm việc mở rộng bài toán ghép cặp để xử lý nhiều tiêu chí hơn, tích hợp các yếu tố động như sự thay đổi nguyện vọng, hoặc phát triển các giao diện thân thiện giúp người dùng dễ dàng tương tác. Việc nghiên cứu các biến thể của thuật toán Gale-Shapley hoặc kết hợp nó với các kỹ thuật học máy cũng là một hướng đi đầy hứa hẹn, giúp các luận văn thạc sĩ tiếp tục đóng góp vào việc cải thiện hệ thống tuyển sinh đại học.

Tóm tắt và mô tả trên trang này được tạo với sự hỗ trợ của AI. Nếu bạn thấy nội dung không chính xác hoặc có vấn đề, vui lòng Báo lỗi nội dung.

19/05/2026
Luận văn thạc sĩ bài toán ghép cặp và ứng dụng trong công tác tuyển sinh

Trích đoạn nội dung tài liệu

Chương 1: TỔNG QUAN MỘT SỐ VẤN ĐỀ VỀ ĐỒ THỊ VÀ ĐỒ THỊ HAI PHÍA 1. Các khái niệm cơ bản 1. Đồ thị Đồ thị vô hướng G = (V,E) gồm[4]: - V là tập hợp khác rỗng mà các phần tử của nó gọi là đỉnh (vertex) của G. - E là đa tập hợp gồm các cặp không sắp thứ tự của hai đỉnh.

Mỗi phần tử của E được gọi là một cạnh (edge) của G. Đồ thị vô hướng không có cạnh song song và không có khuyên gọi là đồ thị đơn vô hướng. Đồ thị hai phía Một đồ thị đơn vô hướng G:=(V,E) được gọi là hai phía nếu tồn tại một phân hoạch tập đỉnh V thành hai tập con X1 và X2 độc lập, rời nhau sao cho bất kì cạnh nào của đồ thị cũng nối một đỉnh thuộc X1 với một đỉnh thuộc X2. Khi đó người ta còn kí hiệu là: G:=(X1X2,E) với các phân hoạch X1, X2 và gọi một tập (chẳng hạn X1) là tập các đỉnh trái và tập còn lại (chẳng hạn X2) là tập Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.vn 12 các đỉnh phải của đồ thị hai phía G.

Các đỉnh thuộc X1 gọi là các X1_đỉnh, các đỉnh thuộc X2 gọi là các X2_đỉnh. Nếu |X1|=|X2| thì G được gọi là đồ thị hai phía cân bằng. Đồ thị hai phía không có chu trình Hình 3. Đồ thị hai phía có chu trình Hình 4.Đồ thị không phải đồ thị hai phía 1.

Đồ thị hai phía đầy đủ Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.vn 13 Cho G = (V,E) là một đồ thị vô hướng hai phía, một phân hoạch V thành hai tập con X1 và X2 (X1 ≠ ≠ X2 và X1  X2 = ), sao cho không có cạnh nối giữa 2 điểm trong cùng một tập con. Khi đó G được gọi là hai phía đầy đủ nếu: Với mọi cặp đỉnh (i,j) mà iX1 và j X2 thì có đúng một cạnh nối i và j, ij là một cạnh trong E. Một đồ thị hai phía đầy đủ với các phân chia kích thước |X1| = m, |X2| = n được kí hiệu là Km,n. Hai đồ thị mà có kí hiệu giống nhau thì chúng đẳng cấu.

- Đồ thị hai phía đầy đủ Km,n có: m+n đỉnh, m. - Các dạng đồ thị đầy đủ hai phía:  K1,n với đồ thị hình sao Hình 5.Đồ thị hai phía đầy đủ hình sao  K1,n với đồ thị hình vuốt cây Hình 6. Đồ thị hai phía đầy đủ hình vuốt cây Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.vn 14  Km,n với m≠n Hình 7. Đồ thị hai phía đầy đủ m≠n  Km,n với m = n Hình 8.

Đồ thị hai phía đầy đủ m=n 1. Bài toán ghép cặp không trọng 1. Bài toán Cho một đồ thị hai phía G = (X1X2,E) ở đây X1 là các tập đỉnh trái và X2 là tập các đỉnh phải của G. Một bộ ghép (matching) của G là một tập các cạnh của G đôi một không có đỉnh chung.

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.vn 15 Bài toán ghép cặp (matching problem) là tìm một bộ ghép lớn nhất (nghĩa là có số cạnh lớn nhất) của G. Xét một bộ ghép M của G. - Các đỉnh trong M gọi là các đỉnh đã ghép (matched vertices), các đỉnh khác là chưa ghép. - Các cạnh trong M gọi là các cạnh đã ghép, các cạnh khác là chưa ghép.

Nếu định hướng lại các cạnh của đồ thị thành cung, những cạnh chưa ghép được định hướng từ X1 sang X2, những cạnh đã ghép định hướng từ X2 về X1 .Trên đồ thị định hướng đó: Một đường đi xuất phát từ một X1_đỉnh chưa ghép gọi là đường pha (alternating path), một đường đi từ một X1_đỉnh chưa ghép tới một X2_đỉnh chưa ghép gọi là đường mở (augmenting path). Một cách dễ hiểu, có thể quan niệm như sau: - Một đường pha là một đường đi đơn trong G bắt đầu bằng một X1_đỉnh chưa ghép, đi theo một cạnh chưa ghép sang X2 , rồi đến một cạnh đã ghép về X1, rồi lại đến một cạnh chưa ghép sang X2… cứ xen kẽ nhau như vậy. - Một đường mở là một đường pha. Bắt đầu từ một X1_đỉnh chưa ghép kết thúc bằng một X2_đỉnh chưa ghép.

Ví dụ: Với đồ thị hai phía trong hình 9 và bộ ghép M ={(x1[1],x2[1]),(x1[2],x2[2])} x1[3] và x2[3] là những đỉnh chưa ghép, các đỉnh khác là đã ghép. Đường (x1[3], x2[3], x1[2], x2[1]) là đường pha. Đường (x1[3], x2[3], x1[2], x2[1], x1[1], x2[3]) là đường mở. Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.

Đồ thị hai phía và bộ ghép M 1. Thuật toán đường mở Thuật toán đường mở để tìm một bộ ghép lớn nhất cho bài toán ghép cặp phát biểu như sau: Bước 1: Bắt đầu từ một bộ ghép bất kỳ M (thông thường bộ ghép được khởi gán bằng bộ ghép rỗng hay được tìm bằng các thuật toán tham lam). Bước 2: Tìm một đường mở. Bước 3: Nếu bước 2 tìm được đường mở thì mở rộng bộ ghép M: Trên đường mở, loại bỏ những cạnh đã ghép khỏi M và thêm vào M những cạnh chưa ghép.

Sau đó lặp lại bước 2. Nếu bước 2 không tìm được đường mở thì thuật toán kết thúc. * Mã giả thuật toán: Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.vn 17 Input: Đồ thị hai phía G = (X1X2,E), X1={x1[1], x1[2],…, x1[m]}, X2={x2[1], x2[2],…, x2[n]}. Output: Một bộ ghép M lớn nhất của G.

Như ví dụ trên, với bộ ghép hai cạnh M ={(x1[1],x2[1]),(x1[2],x2[2])} và đường mở tìm được gồm các cạnh: (x1[3], x2[2])  M (x2[2], x1[2])  M (x1[2], x2[1])  M (x2[1], x1[1])  M (x1[1], x2[3])  M Vậy thì ta sẽ loại đi các cạnh (x2[2], x1[2]) và (x2[1], x1[1]) trong bộ ghép cũ và thêm vào đó các cạnh (x1[3], x2[2]), (x1[2], x2[1]), (x1[1], x2[3]) được bộ ghép 3 cạnh. Bài toán ghép cặp với trọng số cực tiểu 1. Bài toán Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.vn 18 Cho một đồ thị hai phía G = (X1X2,E). Được cho bởi ma trận vuông C cỡ kk, c[i, j] = trọng số cạnh nối đỉnh x1[i] với x2[j].

Giả thiết c[i, j]0 (i, j) Bài toán ghép cặp với trọng số cực tiểu là tìm một bộ ghép đầy đủ trọng số nhỏ nhất. Hai định lý sau đây tuy rất đơn giản nhưng là những định lý quan trọng tạo cơ sở cho thuật toán sẽ trình bày. Định lý 1: Loại bỏ khỏi G những cạnh trọng số lớn hơn 0. Nếu những cạnh trọng số 0 còn lại tạo ra bộ ghép k cạnh trong G thì đây là bộ ghép cần tìm.

Chứng minh: theo giả thiết, các cạnh của G mang trọng số không âm nên bấy kỳ bộ ghép nào trong G cũng có trọng số không âm, mà bộ ghép ở trên mang trọng số 0, nên tất nhiên đó là bộ ghép đầy đủ trọng số nhỏ nhất. Định lý 2: Với đỉnh x1[i], nếu ta cộng thêm một số  (dương hay âm) vào tất cả những cạnh liên thuộc với x1[i] (tương đương với việc cộng thêm  vào tất cả các phần tử thuộc hàng i của ma trận C) thì không ảnh hưởng tới bộ ghép đầy đủ trọng số nhỏ nhất. Chứng minh: Với một bộ ghép đầy đủ bất kỳ thì có một và chỉ một cạnh ghép với x1[i]. Nên việc cộng thêm  vào tất cả các cạnh liên thuộc với x1[i] sẽ làm tăng trọng số bộ ghép đó lên .

Vì vậy nếu như ban đầu, M là bộ ghép đầy đủ trọng số nhỏ nhất thì sau thao tác trên, M vẫn là bộ ghép đầy đủ trọng số nhỏ nhất. Các khái niệm Để cho gọn, ta gọi những cạnh trọng số 0 của G là những 0_cạnh. Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.vn 19 Xét một bộ ghép M chỉ gồm những 0_cạnh. - Những đỉnh  M gọi là những đỉnh đã ghép, những đỉnh còn lại gọi là những đỉnh chưa ghép.

- Những 0_cạnh  M gọi là những 0_cạnh đã ghép, những 0_cạnh còn lại là những 0_cạnh chưa ghép. Nếu ta định hướng lại các 0_cạnh theo cách: Những 0_cạnh chưa ghép cho hướng từ tập X1 sang tập X2, những 0_cạnh đã ghép cho hướng từ tập X2 về tập X1. Khi đó: - Đường pha là một đường đi cơ bản xuất phát từ một X1_ đỉnh chưa ghép đi theo các 0_cạnh đã định hướng ở trên. Như vậy dọc trên đường pha, các 0_cạnh chưa ghép và những 0_cạnh đã ghép xen kẽ nhau.

Vì đường pha chỉ là đường đi cơ bản trên đồ thị định hướng nên việc xác định những đỉnh nào có thể đến được từ x  X1 bằng một đường pha có thể sử dụng các thuật toán tìm kiếm trên đồ thị. Những đỉnh và những cạnh được duyệt qua tạo thành một cây pha gốc x. - Một đường mở là một đường pha đi từ một X1_ đỉnh chưa ghép tới một X2_đỉnh chưa ghép. Như vậy: - Đường đi trực tiếp từ một X1_đỉnh chưa ghép tới một X2_đỉnh chưa ghép qua một 0_cạnh chưa ghép cũng là một đường mở.

- Dọc trên đường mở, số 0_cạnh chưa ghép nhiều hơn số 0_cạnh đã ghép đúng 1 cạnh. Thuật toán Hungari Bước 1: Khởi tạo Một bộ ghép M := Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.vn 20 Bước 2: với mọi đỉnh x  X1, ta tìm cách ghép x: Bắt đầu từ đỉnh x, thử tìm đường mở bắt đầu ở x bằng thuật toán tìm kiếm trên đồ thị. Có hai khả năng có thể xảy ra: - Hoặc tìm được đường mở thì dọc theo đường mở, ta loại bỏ những cạnh đã ghép khỏi M và thêm vào M những cạnh chưa ghép, ta được một bộ ghép mới nhiều hơn bộ ghép cũ 1 cạnh và đỉnh x trở thành đã ghép. - Hoặc không tìm được đường mở thì có thể xác định được: VisitedX1= {Tập những X1_đỉnh có thể đến được từ x bằng một đường pha} VisitedX2= {Tập những X2_đỉnh có thể đến được từ x bằng một đường pha} Gọi  là trọng số nhỏ nhất của các cạnh nối giữa một đỉnh thuộc VisitedX1 với một đỉnh không thuộc VisitedX2.

Dễ thấy  >0 bởi nếu =0 thì tồn tại một 0_cạnh (x1, x2) với x1VisitedX1 và x2VisitedX2. Vì x đến được x1 bằng một đường pha và (x1, x2) là một 0_cạnh nên x cũng đến được x2 bằng một đường pha, dẫn tới x2  VisitedX2, điều này vô lý. Biến đổi đồ thị G: với x1 VisitedX1, trừ  vào trọng số những cạnh liên thuộc với x1, với  x2  VisitedX2, cộng  vào trọng số những cạnh liên thuộc với x2. Lặp lại thủ tục tìm kiếm trên đồ thị thử tìm đường mở xuất phát ở x cho tới khi tìm ra đường mở.

Bước 3: Sau bước 2 thì mọi X1_đỉnh đều được ghép, in kết quả về bộ ghép tìm được.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ