Dựa trên ý tƣởng của thuật toán tô mầu cho đồ thị tôi đã cài đặt thuật toán ứng dụng cho bài toán xếp lịch thi tự động.
Ý tƣởng của thuật toán nhƣ sau:
Khi tô màu một bản đồ, hai miền có chung biên giới đƣợc tô bằng hai màu tùy ý, miễn là khác nhau. Để đảm bảo chắc chắn hai miền kề nhau không bao giờ có màu trùng nhau, ta có thể tô mỗi miền bằng một màu khác nhau. Rõ ràng, điều này
Tác gỉa: Chu Thị Hồng Nhung Trang 52 là không cần thiết vì đối với nhiều bản đồ, ta có thể dùng số màu ít hơn số miền nhƣng vẫn đảm bảo hai miền kề nhau có màu khác nhau. Do đó bài toán đặt ra là
“Xác định số màu tối thiểu cần có để tô màu một bản đồ sao cho hai miền kề
nhau có màu khác nhau”.
Ví dụ: cho bản đồ nhƣ hình sau, trong đó các ký tự A, B, C đại diện cho tên các nƣớc:
Hình 3.1: Bản đồ các nƣớc
Qua đó các các nƣớc có biên giới với nhau đƣợc thống kê qua bảng sau:
Hình 3.2: Đồ thị hóa bản đồ
Thực hiện đồ thị hóa bản đồ trên với đỉnh tròn đại diện cho tên các nƣớc và cạnh nối hai đỉnh đại diện cho biên giới ta đƣợc:
Tác gỉa: Chu Thị Hồng Nhung Trang 53 Thực hiện tô màu lần thứ nhất: chọn nƣớc có bậc cao nhất để tô màu số 1 (giả sử chọn B – bậc 5). Do các nƣớc ACDFG có biên giới chung với B nên không thể tô màu số 1, ngƣợc lại F và H không có biên giới chung với B nên có thể tô màu số 1. Loại các nƣớc đã đƣợc tô ra khỏi danh sách cần tô màu.
Hình 3.3: Đồ thị sau lần tô thứ nhất
Thực hiện tô màu lần thứ hai : vẫn chọn các nƣớc có bậc cao nhất để tô màu số 2 (giả sử chọn D-bậc 3). Do các nƣớc A,E,G có biên giới chung với D nên không thể tô màu số 2, ngƣợc lại C không có chung biên giới với D nên có thể tô màu số 2. Loại các nƣớc đã đƣợc tô ra khỏi danh sách cần tô màu. Đồ thị lúc này còn 3 đỉnh A(bậc 0), E(bậc 1), G(bậc 1).
Thực hiện tô màu lần thứ ba: vẫn chọn các nƣớc có bậc cao nhất để tô màu số 3 (giả sử chọn E-bậc 1). Do các nƣớc G có biên giới chung với E nên không thể tô màu số 3, ngƣợc lại A không có chung biên giới với E nên có thể tô màu số 3. Loại các nƣớc đã đƣợc tô ra khỏi danh sách cần tô màu. Đồ thị lúc này còn duy nhất 1 đỉnh G.
Thực hiện tô màu lần thứ tƣ: Đồ thị lúc này còn duy nhất 1 đỉnh G tô màu số 4 cho đỉnh G, thuật toán kết thúc. Kết quả màu tô đƣợc phân bố nhƣ sau:
Tác gỉa: Chu Thị Hồng Nhung Trang 54 Hình 3.4: Đồ thị sau lần tô thứ hai, thứ 3
Hình 3.5: Đồ thị kết quả
Có thể giải bài toán lập lịch thi bằng mô hình đồ thị, với các đỉnh là các môn thi, có một cạnh nối hai đỉnh nếu có sinh viên thi cả hai môn đƣợc biểu diễn bằng hai đỉnh này. Thời điểm thi (tạm gọi là đợt thi) của mỗi môn đƣợc biểu thị bằng các màu khác nhau. Nhƣ vậy việc lập lịch thi sẽ tƣơng ứng với việc tô màu đồ thị[10].