Một bài toán là NP-đầy đủ nếu nó có 2 tính chất:
- Tồn tại một thuật toán đa thức không đơn định để giải nó (tức là chỉ ra nó thuộc lớp NP).
- Có một bài toán NP-đầy đủ có thể quy dẫn về nó.
Thông thuờng việc chứng minh tính chất 1 đối với nhiều bài toán là rất khó khăn, thế nhƣng việc chứng minh nó có tính chất 2 lại đơn giản hơn. Những bài toán thỏa mãn tính chất 2 vể mặt độ phức tạp là khó tƣơng đƣơng. Vì vậy nguời ta gọi những bài toán nhu vậy là NP-khó.
Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn 28 Vậy, bài toán ∏ là NP-khó nếu sự tồn tại một thuật toán có thời gian đa thức để giải nó kéo theo sự tồn tại thuật toán đa thức để giải mọi bài toán trong lớp NP. Nói cách khác, nếu có thể giải một bài toán NP-khó nào đo một cách nhanh chóng, thì cũng có thể nhanh chóng giải quyết bất kỳ một bài toán nào khác. Bài toán NP- khó ít nhất là khó bằng bất cứ một bài toán nào trong NP. NP-đầy đủ là những bài toán khó nhất trong NP. Hình 11 biểu diễn cách phân lớp tạm thời các bài toán.
Hình 11: Phân lớp tạm thời các bài toán
Bài toán “Hỗ trợ xếp thời khóa biểu” thuộc vào lớp NP-khó, vì vậy không thể giải nó một cách chính xác khi kích thuớc dữ liệu đầu vào lớn. Luận văn này sẽ không huớng vào tìm kiếm lời giải chính xác tốt nhất cho bài toán mà chuyển sang tìm kiếm lời giải xấp xỉ. Trong truờng hợp lý tuởng, lời giải xấp xỉ này sẽ rất gần với lời giải tốt nhất và chỉ mất một thời gian nhất định để tìm đƣợc lời giải xấp xỉ này.
Một trong những phƣơng pháp hay đƣợc sử dụng để tìm lời giải xấp xỉ cho bài toán NP-khó là sử dụng giải thuật di truyền.
2.1.3 Tối ưu hóa đa mục tiêu
Bài toán tối ƣu hóa đa mục tiêu (Multi-objective Optimization problem - MOOP) thƣờng có nhiều mục tiêu mà trong đó các mục tiêu thƣờng đƣợc cực tiểu hóa hoặc cực đại hóa và các lời giải thƣờng đƣợc ràng buộc bởi các điều kiện. Cụ thể, bài toán tối ƣu hóa đa mục tiêu đƣợc phát biểu tổng quát nhƣ sau:
Tìm cực đại / cực tiểu của fm (x) , m = 1, 2, …, M Điều kiện gj (x) ≥ 0, j = 1,2,…, J
Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn 29 hk (x) = 0, k = 1,2,…, K xi (L) ≤ xi ≤ xi(U) i = 1,2,…, n
Một phƣơng án x là một véc tơ n biến quyết định x = (x1, x2, …, xn)T . Điều kiện cuối là điều kiện ràng buộc của xi, giá trị của xi phải thuộc miền giá trị [ xi(L), xi(U)]. Khoảng giá trị tạo thành không gian biến quyết định D hay không gian quyết định. Ngoài ra trong điều kiện của bài toán có J bất đẳng thức và K đẳng thức. Các hàm gi(x), hk(x) đƣợc gọi là các hàm ràng buộc.Tuy bất đẳng thức trên là bất đẳng thức dạng lớn hơn hoặc bằng nhƣng điều kiện ràng buộc dạng bé hơn hoặc bằng cũng đƣợc xét bằng cách nhân 2 vế với -1 (Deb, 1995). Nếu một lời giải thỏa mãn
(J+K) điều kiện ràng buộc và 2N giá trị ràng buộc lời giải thì lời giải đƣợc gọi là chấp nhận đƣợc. Với (J+K) ràng buộc, không gian quyết định D sẽ đƣợc thu hẹp thành không gian tìm kiếm S.
Các yêu cầu của tối ưu hóa đa mục tiêu:
Thông thƣờng MOOP thƣờng tìm ra một bộ các lời giải tùy vào các mục tiêu. Vì thế, có thể nhận thấy hai yêu cầu của MOOP là:
- Tìm đƣợc bộ lời giải càng gần đƣờng Pareto tối ƣu càng tốt. - Bộ lời giải tìm đƣợc càng đa dạng càng tốt.
Yêu cầu đầu tiên của MOOP là khá rõ ràng và nó cũng giống với mục đích của tối ƣu hóa đơn mục tiêu (Single objective optimization problem - SOP). Tuy nhiên mục đích thứ hai thì lại khá đặc trƣng cho MOOP. Để đảm bảo đƣợc mục đích thứ nhất, thì các lời giải phải đa dạng trong không gian tối ƣu Pareto. Vì MOOP có hai không gian (không gian biến quyết định, không gian mục tiêu) nên độ đa dạng của hai lời giải đƣợc hiểu là độ đa dạng của hai lời giải trong cả hai không gian này.
2.2. Bài toán lập thời khóa biểu
Bài toán lập thời khóa biểu liên quan đến sự phân chia, phụ thuộc vào các ràng buộc, các tài nguyên của đối tƣợng trong không gian và thời gian sao cho thỏa
Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn 30 mãn đƣợc nhiều nhất các mong ƣớc của tập mục tiêu, hay nói cách khác là ra đƣợc kết quả tốt nhất, gần nhất với mục tiêu. Bài toán lập thời khóa biểu được biết đến là bài toán dạng NP đầy đủ, do đó các kết quả đƣa ra chỉ bảo đảm một thời khóa biểu tối ƣu.
Trƣớc đây, bài toán này đã có một số hƣớng giải quyết, phƣơng pháp đầu tiên là bằng bài toán tô màu đồ thị. Phƣơng pháp này không đạt đƣợc hiệu quả và cho đến nay không đƣợc dùng nữa [1].
Một hƣớng tiếp cận khác là công thức hóa các vấn đề bằng chƣơng trình các số nguyên, nhƣng do số lƣợng các biến ngày càng lớn nên cũng không thực hiện đƣợc [1] . Một số khác lại sử dụng lập trình logic có ràng buộc kết hợp với một số phƣơng pháp khác để giải quyết vấn đề nhƣng cũng không thành công [1].
Để giải quyết bài toán thời khóa biểu, ngƣời ta đã sử dụng nhiều phƣơng pháp hữu hiệu, trong đó phải kể đến:
1. Thuật toán “leo đồi” sử dụng kỹ thuật “nâng cấp lặp”, kỹ thuật này áp dụng cho một điểm đơn (điểm hiện tại) trong không gian tìm kiếm. Trong một lần nâng cấp, một điểm mới đƣợc chọn trong số các điểm lân cận của điểm hiện hành nếu điểm đó cho kết quả tốt hơn của hàm mục tiêu. Việc tìm kiếm sẽ kết thúc khi không thể nâng cấp thêm đƣợc nữa. Rõ ràng thuật toán leo đồi chỉ cho kết quả tối ƣu cục bộ, kết quả này phụ thuộc vào sự lựa chọn của điểm xuất phát, mặt khác ta không đƣợc thông tin sai số về kết quả tìm đƣợc so với kết quả tối ƣu toàn cục.
Để khắc phục nhƣợc điểm trên, thuật toán leo đồi đã đƣợc cải tiến bằng tăng số lƣợng các điểm xuất phát (điểm xuất phát cho mỗi lần chạy có thể đƣợc lựa chọn tùy theo kết quả của lần chạy trƣớc). Sự thành công hay thất bại của mỗi lần chạy (cho ta kết quả tối ƣu toàn cục hay cục bộ), phụ thuộc và sự lựa chọn điểm xuất phát và hình dáng của “mặt cong” của hàm đánh giá. Nếu mặt cong chỉ có một số ít cực trị địa phƣơng thì tối ƣu toàn cục đƣợc tìm ra rất nhanh. Nhƣng ngƣợc lại, nếu số cực đại địa phƣơng nhiều thì khả năng tìm tối ƣu toàn cục là rất nhỏ. Chính vì vậy mà kể cả sau khi đã đƣợc cải tiến thì thuật toán vẫn chƣa tốt.
Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn 31 2. Trong thuật toán luyện kim, ngƣời ta dùng kỹ thuật thay đổi Entropy của hệ. Ở phƣơng pháp này ngƣời ta đã điều khiển tốc độ hội tụ của quần thể bằng cách biến đổi nhiệt động học với một tham số nhiệt độ T toàn cục. Để hạn chế việc tối ƣu cục bộ và tăng khả năng khám phá không gian tìm kiếm, ngƣời ta đã dùng thủ thuật giảm nhiệt độ T từng bƣớc (đến một mức nào đó). Tuy nhiên, vì T chỉ giảm đến một mức nhất định, vì vậy phƣơng pháp này cũng không tránh khỏi hạn chế trong việc khám phá không gian tìm kiếm mới và sự hội tụ địa phƣơng.
3. Phƣơng pháp tối ƣu đàn kiến (ACO – Ant Clony Optimization) do Dorigo đề xuất là một trong số các cách tiếp cận mới nhất. Một thành phần ngẫu nhiên trong ACO cho phép các con kiến xây dựng đƣợc một lực lƣợng lớn các lời giải khác nhau và từ đó tìm kiếm đƣợc các lời giải hứa hẹn. Quan trọng hơn, kinh nghiệm tìm kiếm của con kiến đƣợc sử dụng để học tăng cƣờng trong quá trình lặp xây dựng thuật toán. Thêm vào đó, việc sử dụng đàn kiến sẽ làm cho các thuật toán ứng dụng ACO phức tạp có thể thêm một vài tập hợp các tác nhân hiệu quả để giải quyết bài toán. Hiệu quả của nó đƣợc chứng minh bằng thực nghiệm và cho thấy kết quả nổi trội hơn so với các thuật toán mô phỏng tự nhiên khác nhƣ: luyện kim, di truyền, tính toán tiến hóa.
Đánh giá chung về các phương pháp trên:
Các giải thuật leo đồi và luyện kim có rất nhiều nhƣợc điểm và thƣờng không trả về kết quả nhƣ mong đợi. Các giải thuật di truyền và tối ƣu đàn kiến có nhiều ƣu điểm hơn vì thế hiện nay hai phƣơng pháp này đƣợc sử dụng nhiều nhất để giải quyết các bài toán tối ƣu trong đó có bài toán xếp thời khóa biểu. Xét về thời gian thực hiện chi phí thực hiện thì giải thuật tối ƣu đàn kiến tốt hơn nhƣng cũng phức tạp hơn so với giải thuật di truyền.
Đề giải quyết bài toán lập thời khóa biểu trọn vẹn hơn, ngƣời ta đã nghiên cứu sử dụng phƣơng pháp giải thuật di truyền và tính toán tiến hóa trên cơ sở những đặc tính nổi trội của nó.
Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn 32 Giải thuật di truyền học có cơ chế tìm kiếm ngẫu nhiên dựa trên cơ chế tự chọn lọc tự nhiên và di truyền học. Một giải thuật di truyền tiêu biểu bắt đầu với một tập các cách giải quyết ban đầu gọi là quần thể. Một nhiễm sắc thể có thể hiểu theo các cách thông thƣờng nhƣng không nhất thiết phải hiểu nhƣ vậy, nó là một chuỗi nhị phân biểu diễn một cách giải quyết vấn đề. Các nhiễm sắc thể có thể tồn tại qua các lần lặp đi lặp lại thì đƣợc gọi là thế hệ. Trong thời gian của mỗi thế hệ các nhiễm sắc thể có thể đƣợc ƣớc lƣợng bằng một vài đơn vị đo lƣờng thích hợp. Khi tạo một thế hệ tiếp theo, các nhiễm sắc thể mới đƣợc gọi là con cái đƣợc hình thành từ việc kết hợp hai nhiễm sắc thể hiện thời bằng phƣơng pháp tƣơng giao chéo hoặc đột biến. Một thế hệ mới đƣợc hình thành bằng:
a. Chọn lọc theo các giá trị thích hợp từ một vài nhiễm sắc thể bố, mẹ hoặc con cái. b. Chọn lọc bằng cách loại bỏ nhiễm sắc thể khác để số lƣợng nhiễm sắc thể khác để số lƣợng nhiễm sắc thể trong quần thể không thay đổi.
Sau một vài thế hệ, giải thuật hội tụ tới nhiễm sắc thể tốt nhất, mà hy vọng nó đại diện sự tối ƣu hoặc giải pháp gần tối ƣu để giải quyết vấn đề.
Giải thuật di truyền trở thành kỹ thuật thông dụng để xử lý các vấn đề tối ƣu hóa chủ yếu dựa trên 3 lợi thế sau:
- Giải thuật di truyền không kéo theo các vấn đề toán học phức tạp.
- Tính tuần hoàn của các toán tử di truyền làm cho giải thuật di truyền có ảnh hƣởng lớn đến việc tìm kiếm trên toàn cầu.
- Giải thuật di truyền rất mềm dẻo, chúng dễ dàng kết hợp với các lĩnh vực dựa trên kinh nghiệm, điều đó có thể dẫn đến một kết quả tốt hơn cho việc tìm kiếm trong các vấn đề đặc biệt.
Mô tả bài toán lập lịch học:
Cho một danh sách giảng viên đã biết giảng viên nào dạy môn nào của chƣơng trình, một danh sách các môn học với số tiết học trên tuần của từng môn và một danh sách các phòng học. Yêu cầu đƣa ra một thời khóa biểu thỏa mãn các ràng buộc và mục tiêu sau:
Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn 33 Ràng buộc:
1. Một giảng viên không thể dạy 2 lớp học cùng một thời điểm.
2. Một phòng tại một thời điểm không thể có 2 lớp học (trừ phòng học chung), và số lƣợng sinh viên không thể vƣợt quá sức chứa của phòng.
3. Một lớp không thể học 2 môn cùng một thời điểm. 4. Một thầy không dậy liền 12 tiết một ngày.
5. Một lớp học tiết 6 của buổi sáng thì không học tiết 1của buổi chiều. 6. Môn thể dục sẽ không vào tiết 5-6 của buổi sáng hoặc tiết 1-2 của buổi chiều. 7. Một lớp học thể dục xong sẽ không học tiết liền sau đó.
Mục tiêu:
1. Thỏa mãn tất cả các ràng buộc trên.
2. Tối thiểu thời gian trống của các lớp sinh viên. 3. Tối thiểu số phòng sử dụng.
Các nghiên cứu liên quan:
Công việc lập lịch trong trƣờng đại học đã đƣợc công nhận là khó cả về phƣơng diện lý thuyết cũng nhƣ thực tế. Một vài mô hình lập lịch đã đƣợc mô tả trong thực tế, bao gồm từ lập lịch học của một trƣờng đại học, lập lịch thi, hoặc một vài sự kiện trong trƣờng đại học [2]. Các bài toán này đƣợc xem là bài toán lập lịch mà đƣợc định nghĩa nhƣ là các bài toán gán một số sự kiện nhƣ kì thi, khóa học với các khoảng thời gian và phòng thỏa mãn các ràng buộc [3, 4].
Trong 20 năm trở lại đây, các cách tiếp cận heuristic đã đƣợc áp dụng thành công cho các bài toán lập lịch.
2.2.1 Một số khái niệm cơ sở
Tiết trống của giảng viên:
Tiết trống của một giảng viên là tiết nghỉ giữa hai lần dậy gần nhau nhất trong một buổi dạy của giảng viên đó. Tiết trống chỉ tính trong 1 buổi dậy.
Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn 34 Ví dụ: Sáng thứ 2 giảng viên A dạy tiết 1-2 và tiết 5-6 thì tiết trống của giảng viên đó là tiết 3 và tiết 4.
Tiết trống của lớp sinh viên:
Tiết trống của một lớp sinh viên là tiết nghỉ giữa hai lần học gần nhau nhất trong một buổi học của lớp sinh viên đó. Tiết trống chỉ tính trong 1 buổi học.
Ví dụ: Sáng thứ 2 lớp sinh viên K55-A học tiết 1-2 và tiết 4-5 thì tiết trống của lớp sinh viên đó là tiết 3.
2.2.2 Mô hình bài toán
2.2.2.1 Các chỉ số và các biến
a/ Các chỉ số
Chỉ số Ý nghĩa Miền giá trị
g Chỉ số giảng viên 1≤g≤G n Chỉ số ngày 2≤n≤6
t Chỉ số tiết trong ngày 1≤t≤12 m Chỉ số môn học 1≤m≤M
l Chỉ số lớp học 1≤l≤L p Chỉ số phòng học 1≤p≤P
Bảng 9: Bảng chỉ số
Trong đó: G là tổng số giảng viên M là tổng số môn học L là tổng số lớp học P là tổng số phòng học b/ Các biến
Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn 35 D(n,t,l,p) = E(n,t,l,m) = F(n,t,g) = G(n,t,l) = H(n,g) = K(n,g) = X(n,l) = Y(n,l) = Z(n,p) =
Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn 36
2.2.2.2 Công thức cho các hàm ràng buộc
Một giảng viên không dạy hai lớp cùng một thời điểm:
F1 = với mọi n,t,g
Một phòng tại một thời điểm không thể có 2 lớp học:
F2 = với mọi n,t,p
Một lớp không thể học 2 môn cùng một thời điểm:
F3 = với mọi n,t,l
Một giảng viên không dạy liền 12 tiết một ngày:
F4 = với mọi n,g
Một lớp học tiết 6 buổi sang không học tiết 1 buổi chiều: F5 = Nếu G(n,6,l) = 1 thì G(n,7,l) = 0 với mọi n,l
Môn thể dục không học vào tiết 5-6 buổi sang và tiết 1-2 buổi chiều: Gọi
m0là chỉ số của môn thể dục. F6 = Khi đó: E(n,t,l,m0) =0 nếu t = 5,6,7,8 với mọi n,l
Một lớp học thể dục xong sẽ không học tiết liền ngay sau đó:
F7 = Nếu E(n,t-1,l,m0) = E(n,t,l,m0) =1 thì E(n,t+1,l,m0) = 0 với mọi n,l
2.2.2.3 Công thức cho các hàm mục tiêu
Tối thiểu thời gian trống của lớp sinh viên:
Fit1 = Min ( ) với mọi l
Tối thiểu số phòng sử dụng
Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn 37
Chương 3. XÂY DỰNG BÀI TOÁN THỜI KHOÁ BIỂU DỰA TRÊN GIẢI THUẬT DI TRUYỀN
3.1 Bài toán lập thời khóa biểu ở trường Cao đẳng Công nghệ và Kinh tế Hà Nội
3.1.1 Giới thiệu
Bài toán sắp xếp thời khóa biểu ở các trƣờng học là một bài toán khó, sự phức tạp của bài toán này không chỉ ở vấn đề tìm ra một thời khóa biểu cho học