CÁC GIẢI THUẬT XẾP  CÁC GIẢI THUẬT XẾP  LỊCHLỊCH

Trình bày : Nguyễn Đức Khánh Trình bày : Nguyễn Đức Khánh

11

Kế hoạch trình bày Kế hoạch trình bày

 Tìm kiếm địa phương Tìm kiếm địa phương  Các bài toán kinh điển Các bài toán kinh điển  Tabu, Generic, simulated anealing, graph  Tabu, Generic, simulated anealing, graph  coloring. coloring.  Mô hình hóa Mô hình hóa  Bài toán tín chỉ Bài toán tín chỉ  Hỏi và trả lời Hỏi và trả lời

22

Tìm kiếm địa phương Tìm kiếm địa phương

 Bài toán xếp lịch thuộc lớp các bài toàn  Bài toán xếp lịch thuộc lớp các bài toàn  NP­complete. Không thể tìm kết quả tối  NP­complete. Không thể tìm kết quả tối  ưu.ưu.  Hàm mục tiêu Hàm mục tiêu  Ràng buộc Ràng buộc một tập hợp các biến số  – một tập hợp các biến số  thỏa mãn phương trình, bất phương trình. – thỏa mãn phương trình, bất phương trình.  Tìm kiếm địa phương (Local Search) Tìm kiếm địa phương (Local Search)

33

Các bài toán kinh điển Các bài toán kinh điển

 Bài toán 8 con hậu (n hậu) Bài toán 8 con hậu (n hậu)  Tô màu bản đồ (graph coloring) Tô màu bản đồ (graph coloring)  SEND MORE MONEY SEND MORE MONEY  Sodoku Sodoku  Xếp lịch Xếp lịch TKB  – TKB  Làm việc  – Làm việc  Máy bay – Máy bay – ……

44

Simulated annealing Simulated annealing

 Process annealing Process annealing Mục tiêu dựng thanh đao đúng hình dạng đủ bền  – Mục tiêu dựng thanh đao đúng hình dạng đủ bền  vững vững Phương pháp: nung nóng chảy, và tôi thép thành hình  – Phương pháp: nung nóng chảy, và tôi thép thành hình  thanh đao, rồi làm nguội = nước. thanh đao, rồi làm nguội = nước. Khi tôi 1 lần thanh đao sẽ rất giòn, nếu quá trình tôi  – Khi tôi 1 lần thanh đao sẽ rất giòn, nếu quá trình tôi  thực hiện nhiều lần (nung nóng, tôi hình, làm nguội)  thực hiện nhiều lần (nung nóng, tôi hình, làm nguội)  thanh đao sẽ thỏa mãn các ràng buộc thanh đao sẽ thỏa mãn các ràng buộc Các kết quả sau tốt hơn các kết quả trước, nhiệt độ  – Các kết quả sau tốt hơn các kết quả trước, nhiệt độ  nung của các lần sau sẽ giảm dần. nung của các lần sau sẽ giảm dần.

55

Thuật toán di truyền Thuật toán di truyền

 Dựa trên lý thuyết di truyền của Darwin Dựa trên lý thuyết di truyền của Darwin  Cá thể mạnh tồn tại, cá thể yếu chết Cá thể mạnh tồn tại, cá thể yếu chết  Mama và papa gặp nhau (2 cá thể mạnh gặp nhau) Mama và papa gặp nhau (2 cá thể mạnh gặp nhau)  Chung sống với nhau và sinh ra 1 cá thể con mới (có bộ  Chung sống với nhau và sinh ra 1 cá thể con mới (có bộ  gen khỏe = gen papa + gen mama) đồng thời chết đi 1  gen khỏe = gen papa + gen mama) đồng thời chết đi 1  cá thể yếu. cá thể yếu.  Do 1 sinh 1 mất nên tổng số cá thể bảo toàn trong mỗi  Do 1 sinh 1 mất nên tổng số cá thể bảo toàn trong mỗi  chu kỳ sinh nở. chu kỳ sinh nở.  Sau nhiều chu kỳ sinh nở các cá thể còn tồn tại là các cá  Sau nhiều chu kỳ sinh nở các cá thể còn tồn tại là các cá  thể có bộ gen rất mạnh (kết quả rất tối ưu thỏa mãn các  thể có bộ gen rất mạnh (kết quả rất tối ưu thỏa mãn các  ràng buộc) ràng buộc)

66

Tô màu đồ thị Tô màu đồ thị

 Bài toán: mỗi nước trên bản đồ thế giới tô  Bài toán: mỗi nước trên bản đồ thế giới tô  = 1 màu, các nước gần nhau có màu #  = 1 màu, các nước gần nhau có màu #  nhau. nhau.  Áp dụng tốt nhất cho TKB Áp dụng tốt nhất cho TKB  Mỗi màu là một sự kiện Mỗi màu là một sự kiện  Tô màu vào bảng thời gian mỗi người sao  Tô màu vào bảng thời gian mỗi người sao  cho các sự kiện (màu) chỉ suất hiện 1 lần cho các sự kiện (màu) chỉ suất hiện 1 lần

77

Tabu Search Tabu Search

 Ý tưởng chính là tạo một bộ khóa. Ý tưởng chính là tạo một bộ khóa.  Trong quá trình tìm kiếm kết quả chúng ta  Trong quá trình tìm kiếm kết quả chúng ta  thường gặp tình huống kết quả lần trước  thường gặp tình huống kết quả lần trước  và lần sau là giống nhau.  và lần sau là giống nhau.   Chương trình tìm kiếm sẽ rơi vào vòng lặp  Chương trình tìm kiếm sẽ rơi vào vòng lặp  vô hạn.  vô hạn.   Để tránh vòng lặp vô hạn và có kết quả tốt  Để tránh vòng lặp vô hạn và có kết quả tốt  hơn chúng ta sử dụng Tabu hơn chúng ta sử dụng Tabu

88

Mô hình hóa Mô hình hóa

 Sự kiện là một nhóm sinh viên học một  Sự kiện là một nhóm sinh viên học một  môn học duới sự giảng dạy của một giáo  môn học duới sự giảng dạy của một giáo  viên tại một phòng viên tại một phòng  Nếu coi bảng thời gian của giáo viên,  Nếu coi bảng thời gian của giáo viên,  phòng, lớp, sinh viên là các bảng 2 chiều  phòng, lớp, sinh viên là các bảng 2 chiều  mxn.mxn.  Xếp lịch là hành động xếp các sự kiện vào  Xếp lịch là hành động xếp các sự kiện vào  các ô trống thời gian, đảm bảo các ràng  các ô trống thời gian, đảm bảo các ràng  buộc buộc

99

Bài toán TKB Bài toán TKB

 Không giáo viên, phòng, sinh viên .. Cùng  Không giáo viên, phòng, sinh viên .. Cùng  thời gian có 2 sự kiện. thời gian có 2 sự kiện.  Độ khó của bài toán phụ thuộc vào các  Độ khó của bài toán phụ thuộc vào các  chiều giáo viên, phòng học, sinh viên, lớp  chiều giáo viên, phòng học, sinh viên, lớp  ……

1010

Giải pháp chung Giải pháp chung

 Tìm kiếm phương án khởi tạo Init Tìm kiếm phương án khởi tạo Init  Từ phương án khởi tạo, tìm các kết quả  Từ phương án khởi tạo, tìm các kết quả  mới tốt hơn dựa trên các thuật toán có sẵn  mới tốt hơn dựa trên các thuật toán có sẵn  hoặc lai ghép các thuật toán. hoặc lai ghép các thuật toán.  Tìm kiếm địa phương sử dụng phương  Tìm kiếm địa phương sử dụng phương  pháp tính trước hậu quả để dự đoán kết  pháp tính trước hậu quả để dự đoán kết  quả sau có tốt hơn không? quả sau có tốt hơn không?

1111

Tín chỉ Tín chỉ

 Bài toán 1 : xếp lịch học tín chỉ trước, sau đó xếp  Bài toán 1 : xếp lịch học tín chỉ trước, sau đó xếp  SV vào các lớp.  SV vào các lớp.  Đơn giản dễ viết ít ràng buộc – Đơn giản dễ viết ít ràng buộc Một số SV không được chấp nhận lựa chọn của mình  – Một số SV không được chấp nhận lựa chọn của mình  vì không còn lớp vì không còn lớp

 Bài toán 2 : Xếp lịch học sau khi SV đăng ký Bài toán 2 : Xếp lịch học sau khi SV đăng ký Khó phức tạp vì nhiều ràng buộc – Khó phức tạp vì nhiều ràng buộc Có thể nảy sinh trường hợp không tìm ra kết quả – Có thể nảy sinh trường hợp không tìm ra kết quả

1212

Câu hỏi? Câu hỏi?

1313