1. Trang chủ
  2. » Luận Văn - Báo Cáo

Kết hợp thuật giải di truyền phân nhóm và tìm kiếm cục bộ cho bài toán xếp thời khóa biểu

22 769 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Kết Hợp Thuật Giải Di Truyền Phân Nhóm Và Tìm Kiếm Cục Bộ Cho Bài Toán Xếp Thời Khóa Biểu
Tác giả Trương Văn Hiếu
Người hướng dẫn PGS. TS Trần Đình Quế
Trường học Học Viện Công Nghệ Bưu Chính Viễn Thông
Chuyên ngành Truyền Dữ Liệu Và Mạng Máy Tính
Thể loại Luận Văn Thạc Sĩ Kỹ Thuật
Năm xuất bản 2010
Thành phố Hà Nội
Định dạng
Số trang 22
Dung lượng 2,06 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG --- TRƯƠNG VĂN HIẾU KẾT HỢP THUẬT GIẢI DI TRUYỀN PHÂN NHÓM VÀ TÌM KIẾM CỤC BỘ CHO BÀI TOÁN XẾP THỜI KHÓA BIỂU NGÀNH: TRUYỀN DỮ LIỆU VÀ MẠNG M

Trang 1

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

-

TRƯƠNG VĂN HIẾU

KẾT HỢP THUẬT GIẢI DI TRUYỀN PHÂN NHÓM

VÀ TÌM KIẾM CỤC BỘ CHO BÀI TOÁN

XẾP THỜI KHÓA BIỂU

NGÀNH: TRUYỀN DỮ LIỆU VÀ MẠNG MÁY TÍNH

Trang 3

MỞ ĐẦU

1 Cơ sở khoa học và thực tiễn của đề tài:

Bài toán lập thời khóa biểu luôn là một bài toán cổ điển thuộc lớp bài toán tối ưu ràng buộc, khó Từ lâu đã thu hút được sự quan tâm, nghiên cứu và phát triển của nhiều tổ chức giáo dục, các nhà khoa học bởi tính ứng dụng cao và độ phức tạp của nó Các bài toán lập thời khóa biểu thường rất phong phú, đa dạng bởi các ràng buộc và yêu cẩu của từng tổ chức

Trong nhiều thập niên qua đã có rất nhiều các phương pháp giải được đưa ra Tuy nhiên, tính hiệu quả của lời giải cho lớp bài toán vẫn còn nhiều bàn cãi Trong khi các thuật toán truyền thống tỏ ra kém hiệu quả thì các thuật toán mô phỏng tự nhiên lại tỏ ra là phương pháp hữu hiệu nhất để giải các bài toán này Những năm gần đây, đã có nhiều các phát triển phong phú của Thuật giải di truyền cổ điển về kiểu gen, kỹ thuật kết hợp tìm kiếm cục bộ và thuật toán di truyền Chúng đem lại những Thuật giải mới khá mạnh và linh hoạt để giải quyết các vấn đề mang tính tổ hợp Với đề tài ”Kết hợp Thuật giải di truyền phân nhóm và tìm kiếm cục bộ cho bài toán xếp thời khóa biểu”, khóa luận mạnh dạn nghiên cứu và giới thiệu một phương pháp mới cho việc giải các bài toán xếp thời khóa biểu trong trường đại học

2 Mục tiêu của luận văn

Bài toán xếp Thời khóa biểu đã từ lâu trở thành một bài toán nổi tiếng và thu hút được sự quan tâm của rất nhiều nhà nghiên cứu, nhiều chuyên gia trong các lĩnh vực liên quan Sự "nổi tiếng" của bài toán này không chỉ được đo bởi độ phức tạp của vấn đề, mà còn ở tính thực tiễn, khả năng áp dụng rất cao trên thực

tế Do đó mục tiêu của luận văn là: Nghiên cứu kỹ thuật kết hợp thuật toán di truyền phân nhóm và tìm kiếm cục bộ cho bài toán sắp xếp thời khoá biểu Luận văn sẽ xem xét áp dụng kỹ thuật này vào việc xây dựng chương trình xếp thời khóa biểu cho trường đại học

Trang 4

CHƯƠNG 1 TỔNG QUAN VỀ BÀI TOÁN XẾP THỜI KHÓA BIỂU VÀ

CÁC CÁCH TIẾP CẬN HIỆN NAY

Bài toán xếp Thời khóa biểu luôn là một bài toán khó, mang tính khoa học đồng thời tính thực tiễn cũng rất cao Riêng đối với môi trường Việt Nam, từ lâu việc xếp thời khóa biểu đã trở thành một vấn đề có tính thời sự, một bài toán gây được sự chú ý, quan tâm của nhiều người

Bài toán lập thời khóa biểu là một trường hợp riêng của bài toán lập lịch trong đó đưa ra một chuỗi các sự kiện (thông thường là các môn học, bài giảng hoặc các môn thi) và bao gồm các giáo viên và học viên trong một khoảng thời gian định trước và thỏa mãn một tập hợp các ràng buộc của từng loại thời khóa biểu khác nhau Nói chung bài toán lập thời khóa biểu được chia làm 3 dạng chung được mô tả khác nhau: Bài toán lập thời khóa biểu cho trường phổ thông, bài toán lập thời khóa biểu cho trường đại học, bài toán xếp lịch thi

1.1 Bài toán lập thời khóa biểu cho trường phổ thông

Bài toán lập thời khóa biểu cho trường phổ thông hay bài toán phân chia giáo viên, lớp học trong một tuần đối với tất cả các môn học của một trường học Với ba tập hợp cho trước là tập giáo viên, tập lớp học và tập tiết học và một ma trận ràng buộc số bài giảng một giáo viên được phân công dạy một lớp Bài toán yêu cầu phân chia các bài giảng vào các tiết sao cho không giáo viên hay lớp học nào có cùng một bài giảng trong cùng một thời gian và mỗi giáo viên đều có một số lượng nhất định các bài giảng với mỗi lớp học

1.2 Bài toán lập thời khóa biểu cho trường đại học ( University timetabling )

Bài toán lập thời khóa biểu cho trường đại học là bài toán lập lịch cho các bài giảng (lectures) vào từng khóa học với một số lượng phòng học và tiết học cho trước Điểm khác biệt chính với bài toán lập thời khóa biểu trường phổ thông là đặc trưng của các khóa học ở trường đại học, các sinh viên tham dự khóa học, trong khi các lớp học ở trường phổ thông được tạo bởi tập hợp các học sinh và có thể coi như là một thực thể đơn Ở các trường đại học, hai khóa học khác nhau có thể có trùng sinh viên tham dự và điều đó có thể tạo ra xung đột và sẽ không thể lập lịch được trong cùng một tiết học Thêm vào đó, các giáo viên ở trường phổ thông luôn dạy nhiều hơn một lớp trong khi ở trường đại học

Trang 5

một giáo sư thường chỉ dạy một khóa học hay một môn học trong một kỳ Cuối cùng, với bài toán trường đại học kích cỡ các phòng học chiếm một vai trò quan trọng trong khi với bài toán trường phổ thông vấn đề này là không quan trọng bởi

vì trong hầu hết các trường phổ thông mỗi lớp có một phòng học riêng

1.3 Bài toán xếp lịch thi (Examination timetabling)

Bài toán lập lịch thi tương tự như bài toán lập thời khóa biểu cho trường đại học nhưng ta cần phân biệt sự khác nhau giữa hai bài toán này Bài toán lập lịch thi có những đặc điểm khác sau đây :

 Chỉ có một kỳ thi cho mỗi một môn thi

 Các điều kiện xung đột nói chung là hạn chế Thực tế, chúng ta có thể chấp nhận một sinh viên có thể bỏ qua một bài giảng do sự chồng chéo các môn học nhưng không có sinh viên nào được phép bỏ qua một kỳ thi

 Và một số ràng buộc khác nhau ví dụ hầu hết một sinh viên sẽ chỉ có một

kỳ thi trong một ngày và không có nhiều quá các kỳ thi liên tiếp nhau với một sinh viên

 Số tiết của kỳ thi có thể khác nhau, ngược lại với bài toán lập thời khóa biểu cho trường đại học cái đó là cố định

 Có thể có nhiều hơn một kỳ thi trong một phòng nhưng lại không thể có nhiều bài giảng được diễn ra trong một phòng tại một thời điểm

1.4 Các cách tiếp cận hiện nay

Bài toán thời khóa biểu nói riêng và các bài toán tối ưu tổ hợp nói chung là rất khó giải Sự khó khăn của chúng được thể hiện ở độ phức tạp tính toán và với những bài toán thuộc lớp NP-khó như vậy thời gian để giải thường tăng theo hàm mũ của kích thước bài toán

Như chúng ta đã biết, trong thuật toán “vét cạn” (tìm kiếm theo bề rộng hoặc theo độ sâu), về mặt nguyên tắc các phương pháp tìm được nghiệm của bài toán nếu bài toán có nghiệm, song trên thực tế những bài toán NP-khó không thể áp dụng được phương pháp này, vì ta phải phát triển một không gian trạng thái rất lớn, trước khi đi tới trạng thái đích, do những hạn chế về thời gian tính toán và dung lượng bộ nhớ, không cho phép chúng ta làm được điều đó Trong những năm gần đây việc kết hợp tìm kiếm cục bộ và thuật giải di truyền phân nhóm là một trong số các cách tiếp cận mới nhất Trong chương 3 chúng ta sẽ tìm hiểu chi tiết thuật toán di truyền phân nhóm cho bài toán UCTP

Trang 6

CHƯƠNG 2 TỔNG QUAN VỀ CÁC PHƯƠNG PHÁP TÌM KIẾM CỤC

BỘ, THUẬT GIẢI DI TRUYỀN

2.1 Tìm kiếm cục bộ

Tìm kiếm cục bộ dựa vào một ý tưởng tổng quát và đơn giản Gọi P là một bài toán tối ưu tổ hợp cần giải, và s là lời giải hiện hành giả sử là một lời giải khả thi của P, và có hàm chi phí f(s) Miền lân cận N(s) được định nghĩa cho s,

là tập những lời giải láng giềng khả thi s’ của s sao cho từ s ta có thể đạt tới s’ nhờ vào một bước chuyển m Bước chuyển có tác dụng biến đổi s thành ra một lời giải láng giềng Thao tác biến đổi này được lặp cho đến khi hội tụ về một lời giải tốt Lời giải này là lời giải cận tối ưu, mà trong một số bài toán thực tế, không sai biệt gì nhiều với lời giải tối ưu

2.1.1 Xung đột tối thiểu (Min-conflict)

Thuật giải xung đột tối thiểu, viết tắt là MC đã được dùng khá phổ biến để giải hệ ràng buộc quá mức Thuật giải MC chọn ngẫu nhiên một biến nào đó dính líu đến một ràng buộc bị vi phạm và rồi chọn một trị từ miền trị của biến này sao cho tối thiểu hoá số lượng những vị phạm ràng buộc có thể xảy ra Vì Thuật giải MC thuần túy có thể không thoát ra được điểm tối ưu cục bộ, Thuật giải thường kết hợp với một chiến lược bước ra ngẫu nhiên (random walk) Với một biến nào đó được chọn, chiến lược bước ra ngẫu nhiên lấy ngẫu nhiên một trị từ miền trị của biến này với xác xuất p, và áp dụng theo Thuật giải MC với xác xuất 1- p Giá trị của thông số p có ảnh hưởng lên hiệu quả của Thuật giải Thuật giải này được gọi là MCRW

2.1.2 Thuật giải mô phỏng luyện kim (simulated annealing)

Mô phỏng luyện kim(SA) là một kỹ thuật tìm kiếm ngẫu nhiên (stochastic search) mà tỏ ra rất hữu hiệu cho những bài toán tối ưu hóa qui mô lớn Trong

kỹ thuật này, nhiệt độ là biến được khởi tạo ở một giá trị cao và dần dần giảm dần xuống trong quá trình tìm kiếm Tại những trị nhiệt độ cao, các bước chuyển được chấp nhận một cách ngẫu nhiên bất luận chúng là bước chuyển có cải thiện hàm chi phí của lời giải hay không Khi nhiệt độ được giảm xuống, xác xuất để chấp nhận một lời giải có cải thiện sẽ tăng lên và xác xuất để chấp nhận một lời giải không cải thiện sẽ giảm xuống Có một số cách thức giảm

Trang 7

nhiệt độ dần xuống được dùng trong một Thuật giải SA, được gọi là lịch biểu

làm nguội (cooling schedule)

2.1.3 Thuật giải leo đồi (Hill-climbing)

Thuật giải leo đồi chính là nền tảng cơ sở của các kỹ thuật tìm kiếm cục bộ Mặc dù đây là Thuật giải đơn giản nhưng lại nó lại rất mạnh và hiệu quả trong việc giải quyết các bài toán CSP lớn Thuật ngữ “leo đồi” (hill-climbing) xuất phát từ cơ chế “tu chỉnh lập”: ở mỗi bước của việc tìm kiếm, chúng ta sẽ chọn một bước chuyển mà nó cải thiện giá trị hàm mục tiêu để thực hiện

Trong Thuật giải leo đồi, chỉ những bước chuyển cải thiện được hàm chi phí hoặc không làm cho hàm chi phí thay đổi mới được chọn vì vậy việc tìm kiếm

sẽ liên tục bước lên vị trí cao hơn cho đến khi nó gặp điều kiện dừng

2.1.4 Tìm kiếm Tabu (Tabu search)

Tìm kiếm Tabu được đề xuất bởi Glover năm 1986 ([10]) Phương pháp dò tìm

trong không gian lời giải bằng cách di chuyển từ một lời giải s tại lượt lặp t về một lời giải tốt nhất s’ trong tập con N* của miền lân cận N(s) Vì s’ không nhất thiết cải thiện chi phí của s, một cơ chế được đặt ra để ngăn chặn quá trình khỏi

lặp vòng trên một chuỗi các lời giải Một cách để tránh sự lặp vòng là cấm quá trình tìm kiếm

quay về những lời giải đã gặp rồi, nhưng làm như vậy đòi hỏi phải lưu trữ khá nhiều thông tin Thay vì làm thế, chỉ một vài thuộc tính của những lời giải đã

gặp sẽ được lưu trong danh sách tabu (tabu list) và bất kỳ lời giải nào sở hữu

những thuộc tính này sẽ không được xét đến trong θ? lần lặp Cơ chế này

thường được gọi là bộ nhớ ngắn hạn và θ? được gọi là kỳ hạn tabu Tìm kiếm

tabu được phát triển thành nhiều

dạng cải tiến như tìm kiếm tabu thích nghi (reactive tabu search) ([1]) và tìm

kiếm tabu với hai danh sách tabu: bộ nhớ ngắn hạn và bộ nhớ dài hạn ([32])

2.1.5 Thuật giải di truyền (genetic algorithm)

Thuật giải di truyền (GA) (Goldberg, 1989 [6]) đã tỏ ra khá thành công trong một số những áp dụng GA mượn ý tưởng trong quá trình tiến hóa của sinh vật

Ý tưởng chính của Thuật giải là duy trì một quần thể các lời giải ứng viên Các lời giải ứng viên này sẽ được cho cơ hội riêng lẻ để sản sinh ra con cái tùy

thuộc vào độ thích nghi (fitness) của chúng Độ thích nghi được đo bằng một

Trang 8

hàm mục tiêu Thuật giải GA đã được áp dụng vào việc giải hệ ràng buộc ([3]) Việc dùng Thuật giải GA vào các bài toán tối ưu hóa có ràng buộc làm phát sinh nhiều vấn đề mà các nhà nghiên cứu phải quan tâm giải quyết Một trong những vấn đề quan trọng là làm thế nào để đưa các ràng buộc vào các hàm thích nghi (fitness function) để điều khiển quá trình tìm kiếm một cách đóng đắn

2.1.6 Kết luận

Sự thành công của bất kỳ Thuật giải tìmkiếm cục bộ nào nêu trên cũng tùy thuộc vào các đặc điểm thi công, tức là tùy thuộc vào các tham số kỹ thuật đặc thù mà người sử dụng phải xác định khi áp dụng Thuật giải tìm kiếm cục bộ đó vào bài toán cụ thể Quá trình thực nghiệm để xác định các thông số kỹ thuật của một Thuật giải tìm kiếm cục bộ nào đó khi áp dụng vào một bài toán cụ thể

được gọi là quá trình điều chỉnh thông số (parametertuning)

Trang 9

2.2 Thuật giải di truyền

2.2.1 Các đặc điểm đặc trưng

Giải thuật di truyền đã mô phỏng sự chọn lọc tự nhiên và di truyền Trong tự nhiên, các cá thể khỏe, có khả năng thích nghi với môi trường tốt sẽ được tồn tại và phát triển ở các thế hệ sau Mỗi cá thể có cấu trúc gen đặc trưng cho tính chất của cá thể đó Trong quá trình sinh sản, các cá thể con có thể thừa hưởng các phẩm chất của cha mẹ, cấu trúc gen của nó mang một phần cấu trúc gen của cha mẹ Ngoài ra, trong quá trình tiến hóa, có thể xảy ra hiện tượng đột biến, cấu trúc gen của cá thể con có thể chứa các gen mà cả cha mẹ đều không có Trong giải thuật di truyền, mỗi cá thể được mã hóa bởi một cấu trúc dữ liệu mô

tả cấu trúc gen của cá thể đó, ta gọi nó là nhiễm sắc thể Mỗi nhiễm sắc thể được tạo thành từ các đơn vị được gọi là gen Giải thuật di truyền sẽ làm việc trên các quần thể gồm nhiều cá thể Một quần thể ứng với một giai đoạn phát triển gọi là một thế hệ Từ một thế hệ được tạo ra, giải thuật di truyền bắt chước sự chọn lọc tự nhiên và di truyền để biến đổi các thế hệ

2.2.2 Các thành phần của giải thuật di truyền

2.2.2.1 Khởi tạo quần thể ban đầu

Tạo quần thể đầu tiên trong giải thuật, là nơi xuất phát quá trình tiến hóa, bao gồm tất cả các giá trị thô ban đầu Tùy theo vấn đề của bài toán mà có cách khởi tạo khác nhau

N (N là số nhiễm sắc thể trong quần thể)

- Chọn lọc cạnh tranh (Tournament Selection)

 Chọn lọc cạnh tranh 2 (2-tournament selection)

Trang 10

Hai nhiễm sắc thể khác nhau được chọn ngẫu nhiên và được so sánh với nhiễm sắc thể tồn tại Nếu nhiễm sắc thể I1 không tốt hơn nhiễm sắc thể I2 nghĩa là: f(I1) ≤ f(I2), thì nhiễm sắc thể I1 chết đi và bị loại ra khỏi quần thể Quá trình này lặp lại đến hết N nhiễm sắc thể còn lại

 Chọn lọc cạnh tranh 3 (3-tournament selection)

Giống như trên, ba nhiễm sắc thể khác nhau được chọn ngẫu nhiên và được so sánh Nếu chúng ta có f(I1) ≤ f(I2) và f(I1) ≤ f(I3), thì nhiễm sắc thể I1 chết đi

và bị loại ra khỏi quần thể Quá trình này lặp lại đến hết N nhiễm sắc thể còn lại

2.2.2.3 Toán tử lai ghép:

Toán tử lai ghép có trật tự bao gồm các bước sau:

- Chọn ngẫu nhiên một chuỗi con từ một cá thể cha mẹ (parent)

- Đưa ra một proto-child bằng cách sao chép chuỗi con vào những vị trí tương

ứng như trong cá thể cha mẹ

- Xoá tất cả các ký hiệu từ cá thể cha mẹ thứ hai, lúc này đã có trong chuỗi

con Chuỗi còn lại chứa các ký hiệu mà proto-child cần

- Đặt các ký hiệu vào những vị trí không cố định của proto-child từ trái sang

phải theo trật tự của chuỗi để tạo ra cá thể con

2.2.2.4 Toán tử đột biến:

- Đột biến đảo ngược(Inversion Mutation)

Chọn hai vị trí ngẫu nhiên trong một nhiễm sắc thể và sau đó, nghịch đảo chuỗi giữa hai vị trí này

- Đột biến thay thế (Displacement Mutation)

Chọn ngẫu nhiên một chuỗi con và chèn nó vào một vị trí ngẫu nhiên

Đột biến chèn có thể được xem như trường hợp đặc biệt của đột biến thay, trong

đó, chuỗi con chỉ chứa một gen

- Đột biến tương hỗ (Reciprocal Exchange Mutation)

Chọn ngẫu nhiên hai vị trí và sau đó hoán vị gen trên những vị trí này

2.2.2.5 Đột biến chuyển dịch (Shift Mutation)

Trước tiên, chọn ngẫu nhiên một gen, sau đó, dịch chuyển nó đến một vị trí ngẫu nhiên bên phải hoặc bên trái vị trí của gen

Trang 11

CHƯƠNG 3 KẾT HỢP THUẬT GIẢI DI TRUYỀN PHÂN NHÓM VÀ

TÌM KIẾM CỤC BỘ CHO BÀI TOÁN UCTP

3.1 Thuật giải di truyền phân nhóm

Thuật toán GGA, có thể được coi là một dạng đặc biệt của thuật toán di truyền chuyên dùng cho các vấn đề phân nhóm Falkenauer[2] định nghĩa bài toán phân nhóm là bài toán có nhiệm vụ phân chia một tập hợp các đối tượng U thành một tập hợp các tập hợp con (nhóm) ui của U thỏa mãn:

3.1.1 Mã hóa

Cấu tạo của đoạn mã GGA gồm 2 phần : phần 1 là đối tượng, phần 2 là nhóm Mỗi đối tượng có một đoạn gen

Hình 1: Mã hóa gen trong Thuật giải di truyền phân nhóm

Ví dụ [1,2,3,4,1,1,1,1,1] : [1,2,3,4] ta có thể mã hóa theo cách khác như sau:

{{1, 5, 6, 7, 8, 9},{2},{3},{4}}

Đối tượng 0 ở Nhóm A

Đối tượng 1 ở Nhóm A

Đối tượng 2 ở Nhóm B Đối tượng 3 ở Nhóm C AABC:BAC

Đối tượng Phân cách Nhóm

Ngày đăng: 13/02/2014, 12:54

HÌNH ẢNH LIÊN QUAN

Hình 1: Mã hóa gen trong Thuật giải di truyền phân nhóm - Kết hợp thuật giải di truyền phân nhóm và tìm kiếm cục bộ cho bài toán xếp thời khóa biểu
Hình 1 Mã hóa gen trong Thuật giải di truyền phân nhóm (Trang 11)
Hình 2: Lai ghép - Kết hợp thuật giải di truyền phân nhóm và tìm kiếm cục bộ cho bài toán xếp thời khóa biểu
Hình 2 Lai ghép (Trang 12)
Hình 6: Quá trình tái kết hợp - Kết hợp thuật giải di truyền phân nhóm và tìm kiếm cục bộ cho bài toán xếp thời khóa biểu
Hình 6 Quá trình tái kết hợp (Trang 16)
Hình 8: Minh họa chương trình xếp thời khóa biểu sử dụng thuật toán GGA - Kết hợp thuật giải di truyền phân nhóm và tìm kiếm cục bộ cho bài toán xếp thời khóa biểu
Hình 8 Minh họa chương trình xếp thời khóa biểu sử dụng thuật toán GGA (Trang 20)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w