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

Xếp lịch thi học kì bằng cách kết hợp lập trình ràng buộc và giải thuật mô phỏng luyện kim

105 99 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

Định dạng
Số trang 105
Dung lượng 566,5 KB

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

Nội dung

Ngoài ra luận văn còn nghiên cứu vận dụng một số kỹ thuật tăng độ hữu hiệu của giải thuật mô phỏng luyện kim như cơ chế “Kempe chain” để tìm lời giải láng giềng, cơ chế xác định nhiệt độ

Trang 1

Đại Học Quốc Gia Tp Hồ Chí Minh TRƯỜNG ĐẠI HỌC BÁCH KHOA

-

LÂM KIM HÒA

XẾP LỊCH THI HỌC KỲ BẰNG CÁCH KẾT HỢP LẬP TRÌNH RÀNG BUỘC VÀ GIẢI THUẬT MÔ PHỎNG LUYỆN KIM

(Generating University Examination Timetables by Combining

Constraint Programming and Simulated Annealing)

Chuyên ngành : Công nghệ thông tin Mã số ngành : 01.02.10

LUẬN VĂN THẠC SĨ

Trang 2

Mục Lục

Lời cảm ơn i

Tóm tắt ii

Mục lục iv

Danh mục hình vi

Danh mục bảng viii

Chương 1 - Giới Thiệu 1.1 - Mục Tiêu Nghiên Cứu 1

1.2 - Giới Thiệu Nhiệm Vụ Của Bài Toán 1

1.2.1 Mục Đích Của Chương Trình Xếp Lịch Thi 2

1.2.2 Các Yêu Cầu Đặt Ra 2

1.3 - Những Kết Quả Chính của Luận văn 4

1.4 - Sơ Lược Cấu Trúc Luận Văn 4

Chương 2 - Các Công Trình Liên Quan 2.1 - Các Nghiên Cứu Liên Quan 6

2.1.1 Phương Pháp Xây Dựng Tuần Tự 6

2.1.2 Lập Trình Ràng Buộc 7

2.1.3 Tìm Kiếm Cục Bộ 7

2.2 - Các Công Trình Liên Quan Về Giải Thuật Mô phỏng luyện kim 8

2.3 - Phương Hướng Giải Quyết Bài Toán 11

Chương 3 - Cơ Sở Lý Thuyết và Phương Pháp 3.1 - Giới Thiệu 13

3.2 - Lập Trình Ràng Buộc 13

3.2.1 Các Ưùng Dụng của Lập Trình Ràng Buộc 16

3.2.2 Phân Loại Các Bài Toán Giải Hệ Ràng Buộc 16

3.2.3 Các Tiêu Chuẩn để Phân Loại Ràng Buộc 17

3.2.4 Một Số Giải Thuật giải Bài Toán Hệ Ràng Buộc 18

3.3 - Mô Phỏng Luyện Kim 23

3.3.1 Giới Thiệu 13

3.3.2 So Sánh Mô Phỏng Luyện Kim và Hill-Climbing 23

3.3.3 Tiêu Chuẩn Để Chấp Nhận 24

Trang 3

3.3.8 Aùp Dụng 33

3.3.9 Điều Kiện Dừng 34

3.3.10 Hàm Thu Giảm Nhiệt Độ 35

3.2.11 Kỹ Thuật Xác Định Trước Thời Gian Chạy 37

3.2.12 Số Lần Lặp Lại Ơû Mỗi Nhiệt Độ 38

3.2.13 Các Vấn Đề Chuyên Biệt Khác 40

3.4 - Kết Luận 42

Chương 4 - Xây Dựng Chương Trình Giải Quyết Bài Toán Xếp Lịch

Thi 4.1 - Giới Thiệu 43

4.2 - Mô Tả Bài Toán 43

4.2.1 Nhiệm Vu ï Của Chương Trình Xếp Lịch Thi 44

4.2.2 Các Đặc Điểm của Trường và Các Yêu Cầu của Bài Toánï 44

4.3 - Hiện Thực Chương Trình 46

4.3.1 Tìm Lời Giải Khả Thi Ban Đầu 46

4.3.2 D ùng Giải Thuật Mô Phỏng Luyện Kim để Cải Tiến Lời Giải 60

4.3.3 Xác Định Nhiệt Độ ban Đầu 63

4.3.4 Hàm Chi Phí 66

4.3.5 Hàm Delta 69

4.3.6 Kết Quả Thực Nghiệm 71

4.4 - Kết Luận 76

Chương 5 - Kết Luận Và Hướng Phát Triển 5.1 - Các Kết Luận 77

5.2 - Hướng Phát Triển 79

Thư Mục Tham Khảo 81

Phụ Lục A A1

Phụ Lục B B1

Phụ Lục C C1

Trang 4

Danh Mục Bảng

Bảng 3.1 : Bảng thử nghiệm nhiệt độ cuối cùng 35 Bảng 3.2 : Bảng thống kê các kết quả với các giá trị khác nhau của số lần lặp 39 Bảng 4.1 : Bảng quy định điểm phạt 66 Bảng 4.2 : Bảng kết quả thử nghiệm thời gian chạy kiếm lời giải ban đầu 71 Bảng 4.3 : Bảng kết quả thử nghiệm giải thuật SA 72

Trang 5

Danh Mục Hình

Hình 3.1 : Ví dụ về bài toán CSP 15

Hình 3.2 : Bài toán tô màu bản đồ 16

Hình 3.3 : Giải thuật Backtracking căn bản 20

Hình 3.4 : Giải thuật Backtracking có kiểm tra hướng tới 22

Hình 3.5 : Giải thuật mô phỏng luyện kim cho tối thiểu hoá 26

Hình 3.6 : Giải thuật mô phỏng luyện kim với nhiệt độ ước lượng 31

Hình 3.7 : Các hàm sử dụng trong mô phỏng luyện kim với nhiệt độ ước lượng 32

Hình 3.8 : Mối quan hệ giữa nhiệt độ và số bước di chuyển SA 36

Hình 4.1 : Giải thuật Backtracking có kiểm tra hướng tới 47

Hình 4.2 : Bảng truy vấn LayKhoa 50

Hình 4.3 : Một mẫu tin từ bảng DataSource 50

Hình 4.4 : Bảng dữ liệu phòng học 51

Hình 4.5 : Lưu đồ giải thuật Backtracking-Kiểm tra hướng tới 53

Hình 4.6 : Cấu trúc dữ liệu dùng để lưu trạng thái miền trị của môn 54

Hình 4.7 : Bảng đụng độ 55

Hình 4.8 : Bảng truy vấn BangDungDoQuery 56

Hình 4.9 : Bảng đụng độ dùng ma trận 56

Hình 4.10 : Bảng DungDoQuery 57

Hình 4.11 : Giải thuật tạo ma trận đụng độä 57

Hình 4.12 : Giải thuật xếp phòng cho một môn thi 59

Hình 4.13 : Giải thuật mô phỏng luyện kim áp dụng cho chương trình 60

Hình 4.14 : Lưu đồ giải thuật SA 61

Hình 4.15 : Giải thuật tìm lời giải láng giềng 62

Hình 4.16 : Giải thuật xác định nhiệt độ đầu tiên 64

Hình 4.17 : Lưu đồ xác định nhiệt độ ban đầu 65

Hình 4.18 : Giải thuật của hàm chi phí 67

Hình 4.19 : Lưu đồ của Hàm chi phí 68

Trang 6

Hình 4.20 : Giải thuật tính Delta 69 Hình 4.21 : Đồ thị biểu diễn mối quan hệ giữa chi phí nghiệm với số bước SA tương

ứng (từ 0 đến 70000 bước SA) 73 Hình 4.22 : Đồ thị biểu diễn mối quan hệ giữa chi phí nghiệm với số bước SA tương

ứng (từ 0 đến 30000 bước SA) 74 Hình 4.23 : Đồ thị biểu diễn mối quan hệ giữa chi phí nghiệm với số bước SA tương

ứng (từ 0 đến 1000 bước SA) 75

Trang 7

Lời Cảm Ơn

Xin cảm ơn hai Thầy TS Nguyễn Văn Hiệp và Thầy TS Dương Tuấn Anh đã hướng dẫn em hoàn thành luận văn này

Luận văn này không thể hoàn thành tốt nếu không có sự tận tình hướng dẫn và sự giúp đỡ hết sức quý báu của Thầy TS Nguyễn Văn Hiệp và Thầy TS Dương Tuấn Anh

Trong suốt quá trình hoàn thành luận văn, các Thầy không những truyền đạt về kiến thức chuyên môn mà còn để lại trong tôi nhiều bài học về phong cách sống và làm việc của các Thầy Xin cho phép tôi được bày tỏ lòng biết ơn sâu sắc nhất đến hai Thầy

Xin được cảm ơn tập thể các Thầy Cô nơi đào tạo đã giảng dạy và truyền đạt nhiều kiến thức quý báu cho tôi trong quá trình học tập ở trường

Xin cám ơn Phòng Quản lý sau Đại học về sự hỗ trợ và tạo mọi điều kiện thuận lợi cho tôi trong suốt quá trình đào tạo

Cuối cùng, xin cảm ơn gia đình, những người thân, bạn bè và đồng nghiệp đã động viên, giúp đỡ tôi trong quá trình làm luận văn này

Tp Hồ Chí Minh, tháng 9 năm 2003

Lâm Kim Hòa

Trang 8

Tóm Tắt

Xếp lịch thi học kỳ là một bài toán tối ưu tổ hợp Luận văn này trình bày một phương pháp lai tạo mới, kết hợp thế mạnh của cả hai cách tiếp cận lập trình ràng buộc và tìm kiếm cục bộ để tìm một lịch biểu thi tối ưu Phương pháp này gồm hai giai đoạn: giai đoạn một dùng lập trình ràng buộc để tạo ra lời giải ban đầu thỏa mãn được tất cả những ràng buộc cứng nhưng chưa tính đến các ràng buộc mềm, giai đoạn hai dùng giải thuật mô phỏng luyện kim, để cải thiện lời giải khả thi thành lời giải có chất lượng cao, tức là lời giải có tính đến các ràng buộc mềm

Trong giai đoạn một, luận văn trình bày các cơ sở lý thuyết và các giải thuật của lập trình ràng buộc trong việc tìm lời giải khả thi, giai đoạn hai luận văn trình bày cách ứng dụng giải thuật mô phỏng luyện kim trong việc tìm lời giải tối ưu Ngoài ra luận văn còn nghiên cứu vận dụng một số kỹ thuật tăng độ hữu hiệu của giải thuật mô phỏng luyện kim như cơ chế “Kempe chain” để tìm lời giải láng giềng, cơ chế xác định nhiệt độ khởi đầu dựa trên xác suất chấp nhận ban đầu và kỹ thuật định trước thời gian chạy của giải thuật mô phỏng luyện kim được công bố gần đây vào việc giải quyết bài toán xếp lịch thi Cuối cùng ngôn ngữ Visual C++ được dùng để viết một chương trình xếp lịch thi cho trường Đại học Bách Khoa T.p Hồ Chí Minh

Trang 9

Abstract

Examination timetabling is a well – studied combinatorial optimization problem In a thesis, we’d like to present a new hybrid algorithm that combines the strengths of a constraint programming and a local search to find the best solution It consists of two phases : the constraint programming phase and the simulated annealing one

In the former phase, we use the constraint programming to produce an initial solution that satisfies all hard constraints without taking the soft ones into account

In the latter phase, we use the simulated annealing that bases on the soft constraints to improve the quality of solution Further, in the thesis, we not only present the application of simulated annealing searching the near optimum solution but also apply some specific techniques to increase its efficiency such as the current Kempe Chain neighborhood, starting temperature selection based on initial acceptance, and time - predefined local search approach Finally, we use the Visual C++ language to implement examination timetabling program for HCMC University of Technology

Trang 10

Chương 1

Giới thiệu

1.1 - Mục Tiêu Nghiên Cứu

Trường Đại Học Bách Khoa Tp HCM, cũng như nhiều trường đại học khác trong thành phố, trong những năm gần đây đã liên tục phát triển về số lượng các khoa cũng như số lượng sinh viên vào học Vấn đề xếp lịch thi học kỳ ngày càng trở nên phức tạp Các chương trình phần mềm hiện đang tạm sử dụng còn tuỳ thuộc khá nặng nề vào thao tác thủ công của nhân viên phòng giáo vụ Do đó cần có một chương trình xếp lịch thi hoàn toàn tự động, chạy nhanh, ổn định và đồng thời có khả năng mở rộng, dễ thêm/bớt những ràng buộc do các thay đổi trong cấu trúc quản lý học vụ của nhà trường

Xếp lịch thi học kỳ là vốn một bài toán tối ưu tổ hợp (combinatorical optimization) thuộc loại khó Đã có tồn tại nhiều phương pháp khác nhau trên thế giới để giải quyết bài toán này Mỗi phương pháp đều có những ưu khuyết điểm khác nhau

Mục đích của luận văn này là nghiên cứu một phương pháp xếp lịch thi mới mà là sự kết hợp của hai cách tiếp cận lớn để giải quyết các hệ ràng

buộc: lập trình ràng buộc (constraint programming) và tìm kiếm cục bộ (local

Trang 11

Annealing), sẽ cải thiện lời giải khả thi thành lời giải có chất lượng cao, tức là lời giải có tính đến các ràng buộc mềm Phương pháp mới này có chủ ý sử dụng thế mạnh của cả hai cách tiếp cận lập trình ràng buộc và tìm kiếm cục bộ Đề tài này còn có nhiệm vụ nghiên cứu vận dụng một số kỹ thuật tăng độ hữu hiệu của giải thuật mô phỏng luyện kim (Simulated Annealing) được công bố gần đây vào việc giải quyết bài toán xếp lịch thi

1.2 - Giới Thiệu Nhiệm Vụ của Bài Toán

Những đặc điểm của một bài toán xếp lịch thi học kỳ thường thay đổi theo từng trường đại học/cao đẳng Riêng đề tài nghiên cứu này chủ yếu dựa vào những đặc trưng riêng của việc xếp lịch thi học kỳ ở trường Đại học Bách Khoa thành phố Hồ Chí Minh

1.2.1 Mục Đích của Chương Trình Xếp Lịch Thi

Chương trình xếp lịch thi có nhiệm vụ xếp lịch thi cho tất cả các môn học mở trong học kì – năm học và cung cấp các công cụ linh hoạt để hổ trợ cho người dùng trong việc lựa chọn các chiến lược phù hợp

1.2.2 Các Yêu Cầu Đặt Ra

Chương trình xếp lịch thi phải đáp ứng được các yêu cầu sau: (một số yêu cầu là ràng buộc cứng được ký hiệu là C, các ràng buộc mềm được ký hiệu là M)

Thời gian thi

• Sinh viên không thể tham dự nhiều môn thi ở cùng một thời điểm (C)

• Ngày bắt đầu thi và ngày kết thúc thi có thể xác định trước (M)

Trang 12

• Thời gian thi của một môn thi bất kỳ phải được xếp trọn trong cùng một buổi (C)

Phòng thi và sức chứa

• Khi có nhiều nhóm sinh viên thi cùng một môn , các phòng thi cho môn đó nên được sắp xếp gần nhau (M)

• Không có 2 môn thi được xếp trong cùng một phòng trong cùng một thời gian thi (C)

• Các phòng được dùng cho các môn thi nên được tận dụng tối đa , sao cho tối thiểu hóa số phòng trống (M)

• Tổng số sinh viên tham dự tất cả các môn thi trong cùng một buổi phải nhỏ hơn tổng sức chứa của các phòng được sắp xếp thi trong buổi đó (C)

• Tổng các sinh viên tham dự tất cả các môn thi trong cùng một buổi, trong cùng một phòng phải nhỏ hơn sức chứa của phòng đó (C)

Khoảng cách giữa các buổi thi

• Khoảng cách giữa các buổi thi là cực kỳ quan trọng đối với người thi Khoảng cách giữa các môn thi của cùng một sinh viên không nên quá sát nhau, trong một buổi mỗi sinh viên chỉ nên thi tối đa một môn (M) Tóm lại bài toán xếp lịch thi bao gồm nhiều dạng ràng buộc khác nhau mà chương trình phải cố gắng thỏa mãn Đối với các ràng buộc cứng, đây là bài toán thoả mãn ràng buộc (constraint satisfaction problem) và đối với các ràng buộc mềm, đây là bài toán tối ưu hoá (optimization problem)

Dữ liệu mẫu đã có của bài toán xếp lịch thi học kỳ gồm 324 môn thi, dựa vào khoảng 64000 đăng ký môn học

Trang 13

1.3 - Những Kết Quả Chính của Luận Văn

1 Lựa chọn và áp dụng được các giải thuật thích hợp của lập trình ràng buộc cho việc tìm kiếm lịch thi khả thi ban đầu

2 Aùp dụng được kỹ thuật định trước thời gian chạy cho giải thuật Mô phỏng luyện kim trong bài toán xếp lịch thi học kỳ Giúp người sử dụng có thể xác định trước thời gian chạy của chương trình

3 Xác định được không gian lời giải láng giềng trong bài toán xếp lịch thi, dẫn tới việc xây dựng được giải thuật xác định nhiệt độ ban đầu tương đối chính xác trong việc áp dụng giải thuật Mô phỏng luyện kim

4 Xây dựng được hàm chi phí, bảng các điểm phạt để đo lường chất lượng của các lời giải

5 Aùp dụng thành công giải thuật Mô phỏng luyện kim trong việc tìm lịch biểu thi tối ưu cho trường Đại học Bách Khoa Tp Hồ Chí Minh với tốc độ thực thi chấp nhận được

6 Kết hợp được lập trình ràng buộc và giải thuật Mô phỏng luyện kim tạo thành một phương pháp lai cho các bài toán tìm lịch biểu tối ưu

1.4 - Sơ Lược Cấu Trúc Luận Văn

Luận văn này được chia thành 5 chương và một phụ lục Sau chương 1, các chương còn lại được tổ chức như sau :

Chương 2 trình bày Các công trình liên quan Trong mục 2.1 sẽ điểm qua các phương pháp và giải thuật quan trọng được dùng trong các nghiên cứu giải bài toán xếp lịch thi đã có Tổng kết các bài toán về các phương pháp xếp lịch thi khác nhau trên thế giới Trong mục 2.2 trình bày các công trình có liên quan về giải thuật mô phỏng luyện kim Trong mục 2.3 sẽ nêu ra phương hướng giải quyết bài toán xếp lịch thi

Chương 3 trình bày các cơ sở lý thuyết, một số các giải thuật quan trọng để làm cơ sở cho việc xây dựng một chương trình tìm lời giải tối ưu cho bài

Trang 14

toán xếp lịch thi Phần mục 3.1 Lập trình ràng buộc sẽ giới thiệu các khái niệm cơ bản nhất của lý thuyết giải hệ ràng buộc, nêu ra các giải thuật quan trọng và các heuristic đi kèm với các giải thuật để tìm ra lời giải thõa mãn các ràng buộc Mục tiếp theo 3.2 là Mô phỏng luyện kim sẽ trình bày các đặc trưng của giải thuật, các đặc trưng và phương pháp áp dụng giải thuật vào các bài toán tìm lời giải tối ưu

Chương 4 trình bày cách xây dựng chương trình giải quyết bài toán xếp lịch thi Chương này gồm các phần sau : phần mục 4.2 sẽ mô tả bài toán, nhiệm vụ của chương trình và các đặc điểm của trường Đại học Bách Khoa Tp.Hồ Chí MInh cùng với các yêu cầu của bài toán xếp lịch thi, phần mục 4.3 sẽ trình bày các chi tiết hiện thực và giải thuật của chương trình Phần mục cuối cùng 4.3 sẽ trình bày các kết quả thực nghiệm đạt được của chương trình xếp lịch thi

Mỗi chương, từ chương 2 đến chương 4 có một phần giới thiệu và một phần kết luận chương Chương 5 gồm có hai phần là các kết luận và hướng phát triển, nghiên cứu trong tương lai Phần phụ lục trình bày giao diện và các hàm thực hiện của chương trình xếp lịch thi

Trang 15

Chương 2

Các Công Trình Liên Quan

2.1 - Các Nghiên Cứu Liên Quan

Phần này điểm qua các phương pháp và giải thuật quan trọng từng được dùng trong các nghiên cứu giải bài toán xếp lịch thi đã có Các bài toán tổng kết về các phương pháp xếp lịch thi khác nhau trên thế giới đã được viết bởi Carter, 1986 ([9]) và Carter et al., 1996 ([10]) Carter et al ([10]) tóm tắt thành ba loại phương pháp chính: (a) heuristic xây dựng tuần tự (sequential construction heuristic), (b) lập trình ràng buộc và (c) tìm kiếm cục bộ (local search)

2.1.1 Phương Pháp Xây Dựng Tuần Tự

Nhóm phương pháp này là các phương pháp ra đời sớm nhất để giải quyết bài toán xếp lịch trong trường học Theo những phương pháp này, các môn thi được gán tiết thi tuần tự từng môn một Tiêu biểu của nhóm này là giải

thuật tô màu đồ thị (graph vertex coloring) để giải bài toán xếp lịch thi Mỗi

môn thi tương ứng với một đỉnh của đồ thị và mỗi cạnh giữa hai đỉnh nếu những môn thi tương ứng có chung ít nhất một sinh viên Các giải thuật tô màu đồ thị thường được dùng đi kèm với một số heuristic đặc biệt để có thể giải quyết vấn đề một cách hữu hiệu hơn Carter ([9]), Brelaz ([4]) đã tổng kết có

so sánh về các heuristic này Một heuristic thông thường là chọn môn thi mà xung đột với nhiều môn thi khác nhất để xếp trước

Trang 16

Nhược điểm chính của việc dùng giải thuật tô màu đồ thị để giải bài toán xếp lịch thi là giải thuật này khó thích ứng với lớp bài toán có khá nhiều ràng buộc

2.1.2 Lập Trình Ràng Buộc

Dùng lập trình ràng buộc, thông qua ngôn ngữ lập trình logic-có-ràng buộc (Constraint Logic Programing) hay dựa vào các giải thuật giải hệ ràng buộc ([13]) có thể giải được bài toán xếp lịch thi Có thể kể đến công trình của Boizumault và các đồng sự, 1996 ([5]) xếp lịch thi cho trường đại học Catholique de l’Ouest ở Angers, Pháp Công trình này sử dụng ngôn ngữ lập trình logic-có-ràng buộc trên miền trị hữu hạn CHIP Nó có hai ưu điểm chính là thời gian phát triển chương trình khá nhanh, và dễ thích ứng với bài toán có nhiều ràng buộc Nhược điểm chính là nó không thể giải quyết hữu hiệu đồng thời ràng buộc cứng và ràng buộc mềm, tức là trường hợp tập ràng buộc là một hệ phân cấp có nhiều mức ràng buộc với những độ ưu tiên khác nhau

P David, 1997 ([16]) đã sử dụng giải thuật giải hệ ràng buộc với kỹ thuật tu chỉnh lặp (iterative repair) cho bài toán sắp lịch thi vấn đáp cho kỳ thi tuyển vào trường Eùcole des Miné de Nantes, Pháp Đây là một giải thụât không hoàn bị, có thể làm mất một số lời giải, nhưng giải thuật đáp ứng rất nhanh, thích hợp với những ứng dụng phải sinh ra thời biểu một cách trực tuyến

2.1.3 Tìm Kiếm Cục Bộ

Nhóm phương pháp này bao gồm: giải thuật di truyền, tìm kiếm tabu và mô phỏng luyện kim (Simulated Annealing)

Burke, Newall và Weare, 1996 xây dựng một giải thuật di truyền cho bài

toán xếp lịch thi học kỳ mà họ gọi là giải thuật memetic ([8]) Trong giải thuật

này, một tập các thời biểu ban đầu được tạo ra nhờ một kỹ thuật ngẫu nhiên Rồi các thời biểu được chọn một cách ngẫu nhiên từ tập này, chúng được gắn

trọng số bởi giá trị mục tiêu của chúng, và quá trình đột biến được tiến hành

bằng cách sắp xếp lại các môn thi được chọn một cách ngẫu nhiên hoặc tất cả môn thi trong một tiết được chọn một cách ngẫu nhiên Cuối cùng một giai

Trang 17

Tìm kiếm tabu là một giải thuật tương tự như giải thuật mô phỏng luyện kim (simulated annealing) trong cách sử dụng các bước chuyển lân cận để

thoát ra khỏi điểm tối ưu cục bộ Tuy nhiên, thay vì chọn một cách ngẫu nhiên,

phương pháp duy trì một danh sách những bước chuyển tabu Những bước

chuyển này diễn tả những lời giải mà đã từng xem xét trước đó, và giải thuật bị bắt buộc phải quay sang các lời giải ngoài danh sách đó Do ràng buộc này, giải thuật tìm kiếm những bước đi cải thiện nhiều nhất mà nó có thể tìm thấy Bước chuyển mới sẽ được chấp nhận ngay cả khi nó dẫn tới một lời giải tệ hơn Di Gaspero & Schaerf, 2000 đã dùng tìm kiếm tabu vào bài toán xếp lịch thi ([12]) Boufflet & Negre, 1996 ([6]) đã áp dụng tìm kiếm tabu để giải bài toán xếp lịch thi cho trường Đại Học kỹ thuật Compiègne ở Pháp

Mô phỏng luyện kim cũng là một giải thuật được dùng nhiều trong việc giải bài toán xếp lịch thi Thompson & Dowsland, 1996 ([15] ) dùng giải thuật mô phỏng luyện kim vào bài toán xếp lịch thi tại trường Đại Học Swansea, ở Anh Thompson & Dowsland dùng một cách tiếp cận gồm hai giai đoạn Trong giai đoạn 1, họ chỉ xét những ràng buộc quan trọng Giả sử có một lời giải khả thi tìm thấy, họ sẽ dựa vào các ràng buộc thứ yếu để tối ưu hoá lời giải khả thi thành lời giải tối ưu Họ sử dụng các “Kempe chain” bao gồm hai tập con các

môn thi tại các tiết i và j mà tại đây hai tập gán có thể hoán đổi cho nhau một

cách hợp lệ Burke và các đồng sự, 2001, ([7]) đã đưa ra một giải thuật mô phỏng luyện kim để dùng cho bài toán xếp lịch thi mà trong đó thời gian tìm kiếm lời giải có thể được đưa vào như là một thông số nhập Họ gọi giải thuật

này là giải thuật mô phỏng luyện kim định trước thời gian chạy (time

pre-defined simulated annealing)

Ưu điểm chung của nhóm phương pháp tìm kiếm cục bộ này là nếu chạy đủ lâu, giải thuật có thể đem lại lời giải tối ưu, nhưng nhược điểm chung của nhóm là chúng tốn thời gian chạy và kết qủa thường tùy thuộc vào việc chọn những lời giải khởi đầu

2.2 - Các Công Trình Liên Quan về Giải Thuật Mô Phỏng Luyện Kim

Trong những năm gần đây, giải thuật mô phỏng luyện kim được áp dụng trong rất nhiều lĩnh vực khác Sau đây là một số công trình có dùng giải thuật mô phỏng luyện kim để giải quyết bài toán trong từng lĩnh vực của mình

Trang 18

Bài toán xếp lịch bay tối ưu do Danuta Sosnowska và Geneva trình bày

trong công trình “Fleet Scheduling Optimization: A Simulated Annealing

Approach” [17] : trong đó lời giải ban đầu được tìm bằng phương pháp đơn

giản first-in/first-out (FIFO) , các lời giải láng giềng được tìm bằng kỹ thuật tráo đổi (swap), lời giải tối ưu được tìm bằng giải thuật SA Nhiệt độ ban đầu được sử dụng trong giải thuật mô phỏng luyện kim là 5x106 Các hàm thu giảm nhiệt độ được thử là :

Bài toán Xây dựng thời khóa biểu trường học do Abramson D trình bày

trong bài “Constructing School Timetables using Simulated Annealing:

Sequential and Parallel Algorithms “ [1] trong đó kết hợp giải thuật SA với các

giải thuật song song để cải tiến tốc độ của chương trình Giải thuật có thể cho lời giải nhanh hơn các giải thuật tuần tự khác Giải thuật song song được thi

hành trên một bộ nhớ dùng chung có nhiều bộ xử lý, lịch biểu (timetable) được giữ trong bộ nhớ chung cùng với các “ lock variable ” Một khi lịch biểu được khởi tạo , tiến trình chính (master process) có thể sinh ra các tiến trình con (child process) trong một chừng mực cần thiết nào đó Mỗi tiến trình con hoán

vị lịch biểu cho đến khi hệ thống bị đóng băng hoặc lịch biểu được tìm ra

Công trình Simulated Annealing with estimated temperature [20] do

Poupaert, E., và Deville, Y., trình bày về cách xác định nhiệt độ theo xác suất chấp nhận và không gian lời giải láng giềng, trong đó nhiệt độ không còn là một thông số điều khiển trực tiếp của giải thuật mô phỏng luyện kim, lịch biểu nhiệt độ được dẫn xuất từ một lịch biểu xác suất chấp nhận lời giải láng giềng Xác suất chấp nhận lời giải láng giềng được định nghĩa như sau:

Trang 19

với δ = f(s’) - f(s)

f(s) là hàm chi phí của lời giải s

s là lời giải hiện hành

s’ là lời giải láng giềng của s

thông thường theo các giải thuật mô phỏng luyện kim thì ứng với một nhiệt độ

ta xác định được một xác suất chấp nhận, trong công trình này thì xác suất chấp nhận được ấn định trước và nhiệt độ T được xác định theo xác suất này

Độ thu giảm của xác suất chấp nhận qua mỗi bước di chuyển của giải thuật mô phỏng luyện kim được thể hiện qua công thức

χ = 2-s/hl

trong đó

χ là xác suất chấp nhận

s là số bước thứ tự của giải thuật mô phỏng luyện kim

hl (haft-life) là số bước sao cho xác suất chấp nhận bị chia cho 2, hl một

hằng số

Công trình General Cooling Schedules for a Simulated Annealing Based

Timetabling System [15] do Thompson, J and Dowsland, K A., trình bày một

số dạng lịch biểu làm nguội trong giải thuật mô phỏng luyện kim và các ý kiến về các lịch biểu đó cũng như các thử nghiệm thu được Công trình được áp dụng trong việc xếp lịch thi và có thể được xem là một trong các công trình cơ sở nhất của giải thuật mô phỏng luyện kim

Ngoài ra giải thuật SA còn được áp dụng trong nhiều lĩnh vực khác nhau như việc tìm lời giải tối ưu trong các bài toán tổ hợp, các bài toán tìm đường đi v.v…

Các vấn đề đặc trưng của giải thuật mô phỏng luyện kim vẫn còn đang được nghiên cứu và còn nhiều ý kiến khác nhau như số lần lặp lại ở mỗi nhiệt độ, là hằng số hay thay đổi theo các điểm nhiệt độ khác nhau và nếu thay đổi thì thay đổi theo tiêu chuẩn nào Số lần lặp ở mỗi nhiệt độ lúc nào là dư thừa, lúc nào là thiếu, cách xác định nhiệt độ ở mỗi bước SA

Trang 20

Xu Hướng Mới

Ngoài ba nhóm phương pháp nói trên, một khuyng hướng gần đây là

việc lai ghép nhiều phương pháp khác nhau để giải bài toán xếp lịch Thí dụ

như sự kếp hợp giữa lập trình ràng buộc và tìm kiếm tabu ( Di Gaspero & Schaef [12]) hay sự kết hợp giữa tô màu đồ thị với mô phỏng luyện kim, hay giữa lập trình ràng buộc với mô phỏng luyện kim (Merlot et al.,2002 [14]) Trong công trình của Merlot và các cộng sự, họ dùng một phần mềm thương mại ILOG chuyên dụng cho lập trình ràng buộc để tạo ra lời giải khả thi khởi đầu và rồi sử dụng giải thuật mô phỏng luyện kim để hòan thiện lời giải khả thi thành lời giải xấp xỉ tối ưu Giải thuật mô phỏng luyện kim của công trình này bám sát các cách thức được cho bởi Thompson & Dowsland, 1996 [15] Khuynh hướng lai ghép này là nhằm kết hợp được thế mạnh của hai phương pháp khác nhau để có thể đối phó với cả hai loại ràng buộc cứng và mềm, và qua thực nghiệm cho thấy có thể đem lại lời giải xấp xỉ tối ưu với một độ hữu hiệu tính toán khá tốt

Đề tài nghiên cứu của đề cương này cũng dự định đề xuất một giải thuật thuộc về nhóm lai ghép này

2.3 - Phương Hướng Giải Quyết Bài Toán

Phương hướng giải quyết bài toán xếp lịch thi học kỳ là sự phối hợp lập

trình ràng buộc với giải thuật mô phỏng luyện kim Sự phối hợp là nhằm phát

huy thế mạnh của mỗi phương pháp Công tác xếp lịch thi sẽ được chia làm hai giai đoạn:

1 Dùng lập trình ràng buộc (cụ thể là giải thuật Backtracking có kiểm tra hướng tới) để tạo ra một lịch biểu khả thi

2 Dùng giải thuật mô phỏng luyện kim để cải thiện chất lượng của lịch biểu khả thi để đạt đến một lịch biểu xấp xỉ tối ưu

Giai đoạn 1 của phương pháp này là nhằm đạt được một lịch biểu ban đầu, thoả mãn tất cả những ràng buộc bắt buộc Trong một số trường hợp, lịch biểu này còn để lại một vài môn thi chưa được gán tiết

Trang 21

này chính là kỹ thuật tối ưu hoá, mà nhằm tối ưu hóa dựa vào những mục tiêu thứ cấp Các mục tiêu thứ cấp được thể hiện bằng một hàm mục tiêu (Đề tài này còn có nhiệm vụ nghiên cứu vận dụng một số kỹ thuật tăng độ hữu hiệu của giải thuật mô phỏng luyện kim được công bố gần đây, thí dụ như kỹ thuật

mô phỏng luyện kim định trước thời gian chạy – time predefined Simulated

Annealing, đề xuất bởi Burke et al., 2001 [7])

Ghi chú: Chúng ta cũng có thể chỉ dùng đơn thuần giải thuật mô phỏng luyện kim để giải quyết bài toán xếp lịch thi, bằng cách áp dụng kỹ thuật này lên một lịch biểu ban đầu được chọn ra một cách ngẫu nhiên Nhưng thực nghiệm cho thấy rằng làm như vậy không hữu hiệu vì việc tìm ra một lịch biểu khả thi trong nhiều trường hợp sẽ rất khó khăn, và tốn rất nhiều nỗ lực tìm kiếm

Trang 22

Phần lập trình ràng buộc giới thiệu các khái niệm cơ bản nhất của lý thuyết giải hệ ràng buộc, nêu ra các giải thuật quan trọng và các heuristic đi kèm với các giải thuật để tìm ra lời giải thõa mãn các ràng buộc

Phần tiếp theo là mô phỏng luyện kim trình bày các đặc trưng của giải thuật mô phỏng luyện kim và các phương pháp áp dụng giải thuật vào các bài toán tìm lời giải tối ưu

3.2 - Lập Trình Ràng Buộc ([19])

Giống như lập trình logic, lập trình ràng buộc thuộc về phương thức lập trình mô tả (declarative programming)

Trang 23

bài toán ứng dụng bằng các phát biểu những ràng buộc của bài toán và sau đó, tìm kiếm lời giải thoả mãn một phần hoặc tất cả những ràng buộc đó

So sánh với các phương pháp cổ điển hơn, lập trình ràng buộc có những

ưu điểm:

− thời gian phát triển phần mềm nhanh

− mềm dẻo, linh hoạt, dễ thích ứng với những thay đổi

− dễ đưa vào những tương tác với người sử dụng

Những ưu điểm trên được tạo ra mà không hề giảm suy giảm tính hữu hiệu của chương trình

Lập trình ràng buộc có liên quan đến một lãnh vực của AI là lãnh vực giải

các hệ ràng buộc (constraint satisfaction problems)

Một bài toán giải hệ ràng buộc (Constraint Satisfaction Problem - CSP)

bao gồm một bộ ba P = (V, D, C), trong đó:

− V = {V1, V2, …, Vn}, là một tập các biến

− D = {Dv1, DV2,…,DVn}, là tập hợp các miền trị của các biến

− C = {C1, C2,…, Cm}, là tập hợp các ràng buộc trên các biến, nó giới hạn khả năng lựa chọn giá trị cho biến

Biến là đại lượng cần được gán giá trị, trong bài toán này mỗi môn là 1

biến và trị của môn học là thời điểm thi của môn học (tiết bắt đầu thi của môn học)

Miền trị là tập hợp các giá trị có thể gán được cho một biến, ví dụ như tập

các tiết trong thời gian thi

Nếu các miền trị là những tập trị hữu hạn và rời thì bài toán giải hệ ràng buộc sẽ được gọi là bài toán giải hệ ràng buộc trên miền trị hữu hạn

Ràng buộc là điều kiện mà một hay nhiều biến cần phải thỏa, ví dụ hai

môn học của cùng một sinh viên không được xếp thi cùng một buổi

Lời giải của bài toán giải hệ ràng buộc là một bộ các giá trị của các biến sao cho nó thõa mãn tất cả các ràng buộc (xem [23], [26], [28], [30],[31], [32])

Các ví dụ về bài toán giải hệ ràng buộc (xem [19])

Trang 24

Ví dụ 1: Bài toán có 3 biến : C, D, E có các giá trị nằm trong tập trị {1, 2, 3, 4} Tìm các giá trị thõa mãn các ràng buộc : C < D, C < E và D < E

Trong bài toán này :

Tập biến là: {C, D, E}

Ví dụ 2: Bài toán tô màu bản đồ: các vùng giáp nhau phải có màu khác nhau ([19])

Có 4 vùng được tô bằng 3 màu đỏ, xanh, và vàng, sao cho các vùng giáp nhau phải được tô bằng các màu khác nhau Bài toán này tương đương

Trang 25

3.2.1 Các Ứng Dụng của Lập Trình Ràng Buộc :

Một số lớn các bài toán trong AI và một số lĩnh vực của khoa học máy tính có thể được xem như là các trường hợp riêng biệt của bài toán giải hệ ràng buộc

Ví dụ như :

ƒ Các bài toán tìm đường, bán hàng …

ƒ Các bài toán xếp lịch như xếp lịch công tác, thời khóa biểu, lịch thi, lịch bay

ƒ Các bài toán phân phối như phân phối tài nguyên cho các chương trình trong một hệ điều hành đa chương trình

ƒ Các bài toán tô màu như tô màu bản đồ

ƒ Máy ảo

ƒ Temporal reasoning (Suy luận thời gian)

ƒ Xử lý ngôn ngữ

ƒ Chẩn đoán mạch điện tử

ƒ Lập kế hoạch tài chính

ƒ Thiết kế các ràng buộc kỹ thuật

(Xem [26], [33])

3.2.2 Phân Loại Các Bài Toán Giải Hệ Ràng Buộc ([19])

Các bài toán hệ ràng buộc có thể chia làm hai loại chính:

• Bài toán thỏa mãn ràng buộc (Satisfiability problems)

V1{đỏ, xanh, vàng}

{đỏ, xanh, vàng}

{đỏ, xanh, vàng}

Trang 26

Là tìm một phép gán các giá trị cho các biến sao cho phép gán đó thỏa mãn tất cả các ràng buộc

• Bài toán tối ưu (Optimization problems):

Mỗi phép gán các giá trị cho các biến đều có một giá chi phí hay giá trị mục tiêu Mục đích của bài toán là tìm ra lời giải có giá chi phí thấp nhất hoặc giá trị mục tiêu lớn nhất

3.2.3 Các Tiêu Chuẩn để Phân Loại Các Ràng Buộc ([32])

Có nhiều tiêu chuẩn để phân loại các ràng buộc :

Theo sự quan trọng của ràng buộc :

• Ràng buộc cứng (hard-constraint): là loại ràng buộc tuyệt đối không được vi phạm

Ví dụ : Một sinh viên không được tham dự nhiều môn thi trong cùng một thời điểm

• Ràng buộc mềm (soft-constraint): là loại ràng buộc có thể được vi phạm, nhưng vi phạm càng ít càng tốt Lý tưởng là không nên vi phạm

Ví dụ : lịch thi không được quá dày đối với các sinh viên, mỗi sinh viên chỉ nên thi tối đa một môn trong một buổi

Nhận xét : Nếu ràng buộc quá cứng, bài toán có thể không giải được, để bài

toán có thể có lời giải cần phải nới lỏng ràng buộc bằng các cách sau:

- Bỏ bớt ràng buộc

- Bỏ bớt biến

- Mở rộng miền trị của các biến

Theo không gian miền trị:

• Miền trị hữu hạn, ví dụ : A là số tự nhiên, có giá trị từ 1 đến 9

• Miền trị vô hạn, ví dụ : B là số thực

Bài toán xếp lịch thi thuộc loại miền trị hữu hạn, các môn là các biến, miền trị của các môn là tập các tiết thi

Trang 27

Theo số ràng buộc:

• Ràng buộc đơn biến, ví dụ : A>0

• Ràng buộc song biến, ví du ï: A>B

• Ràng buộc n biến, ví dụ : hệ phương trình n biến

Nhận xét : mọi ràng buộc n biến đều có thể chuyển thành các ràng buộc song

biến Do đó ràng buộc song biến được nghiên cứu và sử dụng nhiều nhất

Theo số biến:

• Số biến thay đổi, ví dụ : Bài toán tìm đường có số biến không xác định trước

• Số biến cố định, ví dụ : Bài toán xếp lịch thi có số biến cố định là số môn cần phải xếp lịch thi

3.2.4 Một Số Giải Thuật giải Bài Toán Hệ Ràng Buộc

Một bài toán hệ ràng buộc có thể được giải bằng một trong hai hướng sau: ([30], [32])

• Tìm kiếm có hệ thống (systematic search): là lần lượt gán từng giá trị cho từng biến sao cho tất cả các biến đều có giá trị và tất cả ràng buộc đều được thõa mãn Mục đích của phương pháp này là tìm cách gán tất cả các giá trị có thể cho các biến

• Tìm kiếm bất hệ thống (non-systematic search): từ một lời giải ban đầu, giải thuật tìm đến một lời giải láng giềng tốt hơn, hoặc một lời giải láng giềng có thể chấp nhận được, việc tìm kiếm tiếp tục cho đến khi đạt được lời giải tối ưu hoặc gặp một điều kiện dừng nào đó

Giải thuật vét cạn (Generate-and-test) ([19])

Mọi bài toán hệ ràng buộc theo lý thuyết đều có thể được giải quyết bằng giải thuật vét cạn (generate-and-test)

Các đặc điểm của giải thuật:

• Mọi tổ hợp sinh ra sẽ lần lượt được rà soát xem có thoả mãn tất cả các ràng buộc hay không Tổ hợp thỏa mãn tất cả ràng buộc là lời giải của bài toán

• Không gian tìm kiếm bằng tích kích thước miền trị của tất cả các biến

Trang 28

Ví dụ: Xếp lịch thi cho 4 môn A, B, C, D Miền trị của mỗi môn là tập

Nhận xét : giải thuật đơn giản, dễ thực hiện nhất, rất thích hợp với những bài

toán có không gian tìm kiếm rất nhỏ Đối với những bài toán có không gian tương đối lớn, do không có sự nhìn trước trong việc gán trị cho biến , giải thuật dễ gặp hiện tượng bùng nổ tổ hợp hoặc bị tràn bộ nhớ

Giải thuật Backtracking Căn Bản

Một giải thuật căn bản để giải các CSP trên miền trị hữu hạn là giải

thuật backtracking hay còn gọi là giải thuật tree search Điểm căn bản của giải

thuật này là các biến được sắp theo một thứ tự nào đấy, sau đó lần lượt được gán trị Trong qúa trình này, mỗi biến được kiểm tra xem có vi phạm ràng buộc với những biến đã gán hay không Nếu một ràng buộc nào đó không thỏa mãn, ta phải chọn trị khác cho biến hiện hành Nếu tất cả các giá trị trong miền trị của biến hiện hành đều vi phạm ràng buộc, giải thuật gặp phải một tình huống bế tắc (dead-end) phải backtrack về biến trước đó Giải thuật backtracking căn bản được cho ở hình 3.3

Trang 29

procedure BACKTRACKING

/* from Decter & Frost ([11]) */

i := 1

Di’ := Di /* Di’ là miền trị hiện hành của biến i,

Di là miền trị ban đầu của biến i */

while 1 ≤ i ≤ n

vi := SELECTVALUE /* Chọn trị cho biến i */

if vi là null then

while Di’ không rỗng

chọn một trị tùy ý a ∈ Di’ và gỡ bỏ a ra khỏi Di’

if trị a cho vi là tương thích với <a1, ,ai> then

return a

end while

return null

end procedure

Hình 3.3 Giải thuật Backtracking căn bản

Giải thuật Backtracking có kiểm tra hướng tới (forward checking)

Giải thuật backtracking căn bản có một nhược điểm chính là bị thrashing ([11], [11]), tức là dò tìm trên những nhánh khác nhau của không gian tìm kiếm thì có thể lặp lại cùng một số thất bại cũ Do vậy nhiều nỗ lực để cải thiện giải thuật backtracking đã được đề ra

Trang 30

Theo Decter và Frost, 2002 ([11]), các kỹ thuật để cải tiến giải thuật backtracking căn bản bao gồm hai loại:

- các kỹ thuật nhìn tới (look-ahead)

- các kỹ thuật nhìn lui (look-back)

Các kỹ thuật nhìn tới được dùng khi giải thuật backtracking chuẩn bị gán trị cho biến kế tiếp Các kỹ thuật nhìn lui được dùng khi giải thuật backtracking

gặp phải một tình huống bế tắc (dead end) phải quay lui lại biến trước đó

Các kỹ thuật nhìn-tới thường được ưa chuộng hơn các giải thuật nhìn-lui

vì dễ kết hợp với các heuristic sắp thứ tự biến và sắp thứ tự trị Các giải thuật nhìn tới thường phối hợp giải thuật backtracking với một kỹ thuật tương thích (consistency technique) hay còn gọi là kỹ thuật lọc (filtering) để tiền xử lý các miền trị dựa vào sự lan truyền ràng buộc

Có nhiều cách phối hợp giữa backtracking với kỹ thuật tương thích Một

giải thuật căn bản trong nhóm này được gọi là backtracking với kiểm tra hướng

tới (backtracking with forward checking) Giải thuật này có thể được coi như là

ta bổ sung vào giải thuật backtracking căn bản động tác loại ra khỏi miền trị của các biến chưa được gán trị tất cả những trị nào không tương thích với sự gán trị hiện hành

Giải thuật backtracking với kiểm tra hướng tới được cho trong hình 3.4

Trang 31

procedure BACKTRACKING-WITH-LOOK-AHEAD

/* from Decter & Frost ([11] ) */

D i ’ := D i for 1 ≤ i ≤ n /* Di’ là miền trị hiện hành của biến i,

D i là miền trị ban đầu của biến i, n là số biến */

i := 1

while 1 ≤ i ≤ n

v i := SELECTVALUE-FORWARD-CHECING /* Chọn trị cho biến i */

if vi là null then

while Di ’ không rỗng

chọn một trị a tùy ý ∈ D i ’ và gỡ bỏ a ra khỏi D i ’

miền_trị_rỗng := false

for tất cả k, với i <k ≤ n

for tất cả các trị b trong Dk ’

if trị b cho vk là không tương thích với <a 1 , ,a i-1 > và v i = a then

gỡ bỏ b ra khỏi Dk ’

Trang 32

Giải thuật này sẽ được chọn sử dụng trong giai đoạn 1 của quá trình xếp lịch thi để tạo ra một lời giải khả thi (tức là lời giải thoả mọi ràng buộc bắt buộc của bài toán)

Tóm lại, trong phần lập trình ràng buộc một số khái niệm cơ bản nhất

của bài toán giải hệ ràng buộc đã được giới thiệu Một số giải thuật cũng được trình bày để làm cơ sở cho việc tìm lời giải của các bài toán CSP, trong các giải thuật đó thì giải thuật Bachtracking có kiểm tra hướng tới sẽ được sử dụng để tìm lời giải khả thi cho bài toán xếp lịch thi Sau đó, lời giải này sẽ được chọn làm lời giải khởi đầu cho giải thuật mô phỏng luyện kim trong quá trình tìm lịch biểu thi tối ưu

3.3 - Mô Phỏng Luyện Kim (Simulated Annealing)

3.3.1 Giới Thiệu

Mô phỏng luyện kim là một kỹ thuật tối ưu hoá được đề xuất bởi S

Kirkpatrick và các đồng sự năm 1983 Kỹ thuật này là một dạng của phương

pháp tìm kiếm cục bộ (local search) cho phép ta tạo ra những bước chuyển

trạng thái tốt hơn theo một kiểu cách có kiểm soát

Kỹ thuật này mô phỏng việc nung nóng kim loại trong một lò nhiệt rồi làm nguội đi Trong ngành kỹ thuật luyện kim, quá trình này còn được gọi là quá trình u, tôi hoặc thấu (annealing) Kim loại sau khi trải qua quá trình này sẽ có được các tính chất tốt hơn như sắt sau khi được tôi sẽ thành thép cứng hơn nhưng độ giòn lại thấp hơn sắt ban đấu rất nhiều

Thực chất của quá trình luyện kim là nung nóng kim loại vượt qua điểm ngưỡng nhiệt độ của nó (mỗi kim loại có một ngưỡng nhiệt độ khác nhau), rồi làm nguội nó dần dần cho đến môt trạng thái ổn định Tốc độ làm nguội kim loại sẽ quyết định rất lớn đến các tính chất của kim loại sau này Aùp dụng vào bài toán tối ưu hoá, giải thuật mô phỏng luyện kim sẽ tìm kiếm những lời giải khả thi và rồi hội tụ về lời giải tối ưu

3.3.2 So Sánh Mô Phỏng Luyện Kim và Hill-Climbing

Trang 33

sẽ chọn một bước chuyển ngẫu nhiên Nếu bước chuyển này có hàm chi phí tốt hơn so với trạng thái hiện hành, thì giải thuật luôn luôn chọn nó Nếu bước chuyển có hàm chi phí dở hơn thì bước chuyển này có thể được chấp nhận với một xác suất nào đó

3.3.3 Tiêu Chuẩn để Chấp Nhận

Luật của nhiệt động học phát biểu rằng tại nhiệt độ t, xác suất cho một sự gia tăng về mức năng lượng là:

trong đó k là hằng số Boltzmann

Sự mô phỏng trong giải thuật SA tính một mức năng lượng mới cho hệ thống Nếu năng lượng đã giảm thì hệ thống đi vào trạng thái năng lượng đó Nếu năng lượng đã gia tăng thì trạng thái mới được chấp nhận bằng cách dùng một xác suất cho ở công thức trên

Một số bước lặp sẽ được thực hiện ở mỗi giá trị nhiệt độ và rồi thì nhiệt độ được giảm đi Điều này sẽ được lặp nhiều lần cho đến khi hệ thống ngưng tụ vào một trạng thái ổn định

Phương trình (1) được dùng trực tiếp trong giải thuật SA, mặc dù hằng số k thường được bỏ đi Do đó xác suất để chấp nhận một trạng thái dở hơn được cho bởi phương trình:

trong đó

c = mức thay đổi trong hàm chi phí

t = nhiệt độ hiện thời

r = một số ngẫu nhiên trong khoảng giữa 0 và 1

ta thấy xác suất chấp nhận một trạng thái dở hơn là hàm của nhiệt độ của hệ thống và mức thay đổi trong hàm chi phí

Từ biểu thức (3.2) ta rút ra một nhận xét sau : khi nhiệt độ giảm thì xác suất chấp nhận một trạng thái dở hơn cũng bị giảm, khi nhiệt độ bằng 0 thì xác suất chấp nhận một trạng thái dở hơn cũng bằng 0, khi đó chỉ có các

Trang 34

trạng thái tốt hơn mới được chấp nhận, giải thuật mô phỏng luyện kim lúc đó hành động giống như giải thuật Hilll Climbing

3.3.4 Mối liên hệ giữa Luyện Kim Thực Sự và Mô Phỏng Luyện Kim

Mối liên hệ giữa luyện kim thực sự và giải thuật mô phỏng luyện kim như là một phương pháp giải bài toán tối ưu tổ hợp được cho trong bảng sau đây :

Mô phỏng nhiệt động học Tối ưu tổ hợp

-

Các trạng thái của hệ thống Các lời giải khả thi

Chuyển trạng thái Các lời giải lân cận

Dùng ánh xạ này, bất cứ bài toán tối ưu tổ hợp nào cũng có thể chuyển thành giải thuật SA

3.3.5 Giải Thuật Mô Phỏng Luyện Kim (SA)

Để có thể áp dụng được giải thuật SA, ta phải diễn tả bài toán trong khung thức của sự tìm kiếm cục bộ, bằng cách định nghĩa:

- một không gian giải bài toán (solution space)

- một cơ cấu xác định vùng lân cận (neighbourhood structure)

- một hàm chi phí (cost function)

Định nghĩa này sẽ xác định một quang cảnh lời giải mà có thể dò tìm

bằng cách di chuyển từ lời giải hiện hành sang lời giải lân cận Hình 3.5 trình

bày cấu trúc tổng quát của giải thuật căn bản của SA (from Thompson & Dowsland [15]):

Trang 35

Chọn lời giải ban đầu s0;

Chọn nhiệt độ khỏi đầu t0 > 0;

Chọn hàm thu giảm nhiệt độ α;

repeat

repeat

Chọn ngẫu nhiên s ∈ N(s0); /* s là lời giải láng giềng của s0 */

δ = f(s) – f(s0); /* tính sự thay đổi của hàm chi phí */

until điều_kiện_dừng = true

/* cuối cùng s0 là một lời giải gần như là lời giải tối ưu */

Hình 3.5 Giải thuật mô phỏng luyện kim cho tối thiểu hoá

Các bước di chuyển dự tuyển được chọn một cách ngẫu nhiên và tất cả những bước di chuyển có cải thiện đều được chấp nhận một cách tự động

Còn các bước di chuyển khác được chấp nhận với một xác suất exp(-δ/t), với δlà mức thay đổi ở hàm chi phí và t là một thông số điều khiển

3.3.6 Lịch Biểu Làm Nguội (The Cooling Schedule)

Chú ý rằng chất lượng của các lời giải thì nhạy cảm đối với cách thức

thông số nhiệt độ t được điều chỉnh – còn được gọi là lịch biểu làm nguội

(cooling schedule) Lịch biểu làm nguội được định nghĩa bằng:

- một nhiệt độ khởi đầu t0,

- các điều kiện dừng,

- hàm giảm thiểu α và

- số lần lặp tại mỗi nhiệt độ, nrep

Trang 36

Tất cả những giá trị trên tùy thuộc vào từng bài toán ứng dụng vì chúng phải được chọn theo dạng của không gian lời giải ([1], [2], [15])

Chọn lịch biểu làm nguội tương ứng cho bài toán xếp lịch thi học kỳ là

một vấn đề không đơn giản, phải nghiên cứu, trước khi ta có thể dùng kỹ thuật

SA ở giai đoạn 2 nhằm hoàn thiện một lời giải khả thi

3.3.7 Xác Định Nhiệt Độ Khởi Đầu t 0

với f là hàm chi phí, s là lời giải hiện hành, s’ là lời giải láng giềng của s

Khi δ < 0 xác suất chấp nhận lời giải mới là 1, khi δ > 0 xác suất chấp nhận

lời giải mới dựa vào biểu thức Boltzmann:

trong đó t là nhiệt độ hiện hành của hệ thống

Biểu thức (3.4) có giá trị tăng khi t tăng, ngược lại có giá trị giảm khi δtăng Từ biểu thức (3.4) trên ta thấy :

Để cho phép hệ thống di chuyển tới được hầu hết các trạng thái láng giềng bất kỳ nào thì nhiệt độ ban đầu phải đủ nóng Nếu nhiệt độ ban đầu quá thấp thì lời giải cuối cùng có thể sẽ giống như lời giải ban đầu hoặc giải thuật

SA sẽ hành động giống như giải thuật leo đồi Nhưng nếu nhiệt độ ban đầu quá cao thì sự chuyển dịch lời giải quá ngẫu nhiên, không theo một định hướng nào nhất định dễ dẫn tới việc tốn quá nhiều thời gian vô ích trong giai đoạn đầu của giải thuật SA

Từ những nhận xét trên ta thấy giải thuật mô phỏng luyện kim chỉ hoạt động hiệu quả trong một khoảng nhiệt độ nào đó thôi, khoảng nhiệt độ không cao quá cũng không thấp quá

Vậy vấn đề ở đây là xác định chính xác nhiệt độ bắt đầu Hiện nay,

Trang 37

ban đầu Để có thể xác định nhiệt độ ban đầu chúng ta cần phải tham khảo các ý kiến khác nhau

Phương pháp dự đoán (theo Ray Woard-Simth, 1996), là bắt đầu với một

nhiệt độ cao và sau đó làm nguội nhanh nó cho đến khi khoảng 60% các lời giải dở hơn được chấp nhận Nhiệt độ khi đó sẽ được chọn làm nhiệt độ bắt đầu và sau đó nhiệt độ sẽ được làm nguội một cách chậm hơn

Một ý kiến tương tự khác (Dowsland, 1995), là nung nóng nhanh hệ

thống cho đến một tỷ lệ nào đó của các lời giải dở hơn được chấp nhận và quá trình làm nguội bắt đầu Điều này dường như tương tự quá trình nung vật lý Trong đó vật liệu được nung nóng đến một nhiệt độ giới hạn nào đó thì quá trình làm nguội mới bắt đầu

Ngoài ra nếu chúng ta biết chính xác khoảng cách lớn nhất (sự khác nhau của hàm chi phi) giữa một lời giải láng giềng này với một lời giải láng giềng khác thì dựa vào thông tin đó ta có thể tính được nhiệt độ khởi đầu

Nhưng những cách trên, nếu muốn có một nhiệt độ bắt đầu tốt, thì phải kết hợp với quá trình thử nghiệm

Trong các công trình có liên quan đến giải thuật SA (như đã nêu ở mục 2.2) thì hầu hết các nhiệt độ ban đầu đều được xác định bằng số và là một hằng số cố định, như bài toán xếp lịch bay tối ưu do Danuta Sosnowska và

Geneva trình bày trong công trình “Fleet Scheduling Optimization: A Simulated

hoặc trong bài toán xếp lịch thi cho trường Đại học Melbourne do Liam T.G

Merlot cùng các đồng sự trình bày trong công trình “ A Hybrid Algorithm for the

Examination Timetabling Problem” [25] thì nhiệt độ ban đầu là 30000

Đối với những lời giải khả thi ban đầu được kiếm bằng những giải thuật đơn giản như trong bài toán xếp lịch bay tối ưu [17] : trong đó lời giải ban đầu được tìm bằng phương pháp first-in/first-out (FIFO), lời giải ban đầu đạt đựoc thì khả thi nhưng chất lượng không được tốt lắm, do đó khi áp dụng giải thuật mô phỏng luyện kim tác giả có thể chấp nhận tiêu tốn thời gian ban đầu để xác suất chấp nhận các lời giải bằng 1 bằng cách nâng nhiệt độ lên rất cao tới

5000000 (5x106), chấp nhận hao phí thời gian nhưng bù lại được một lịch biểu

Trang 38

bay tối ưu (đối với các hãng hàng không thì các hao phí về thời gian chạy chương trình để đạt được lịch bay tối ưu thật là không đáng kể)

Nhiệt độ thử nghiệm ban đầu là một hằng số (30000) trong bài toán xếp lịch thi cho trường Đại học Melbourne được áp dụng cho các lần xếp lịch thi của trường Chúng ta biết rằng mỗi lần xếp lịch thi là mỗi lần tạo nên các lịch biểu thi khác nhau, số môn thi và thời gian thi cũng khác nhau, các ràng buộc về ngày thi, tiết thi và phòng thi cũng khác nhau nên nhiệt độ ban đầu là một hằng số (30000) được áp dụng cho tất cả các lần xếp lịch thi không thể là một nhiệt độ ban đầu chính xác hoặc gần chính xác trong mọi trường hợp, 30000 là một nhiệt độ rất cao hoặc tương đối cao trong một số trường hợp, có thể các tác giả cũng chấp nhận hao phí thời gian ban đầu để đạt được một lịch thi tối

ưu hoặc gần như tối ưu trong hầu hết các lần xếp lịch thi (một học kỳ chỉ xếp lịch thi chừng vài lần)

Đối với việc tìm lời giải tối ưu cho những bài toán tối ưu tổ hợp bằng cách kết hợp lập trình ràng buộc với giải thuật mô phỏng luyện kim Nếu trong giai đoạn đầu ta dùng các giải thuật của lập trình ràng buộc kết hợp với các heuristic để tìm được lời giải khả thi ban đầu có chất lương tương đối tốt Sang giai đoạn mô phỏng luyện kim ta dùng nhiệt độ ban đầu rất cao để có thể tìm được lời giải tối ưu trong hầu hết các trường hợp, chấp nhận hao phí thời gian ban đầu và cả chất lượng tương đối tốt của lời giải ban đầu đạt được nhờ các các heuristic kết hợp với giải thuật lập trình ràng buộc thì thật là lãng phí Đối với những bài toán có không gian tương đối nhỏ hoặc đủ thời gian để chạy thì còn chấp nhận được, đối với các bài toán có không gian rất lớn hoặc đòi hỏi sự cấp thiết về mặt thời gian thì sự hao phí trên là không chấp nhận được

Bài toán xếp lịch thi không phải là một bài toán có yêu cầu cao về mặt thời gian, nhưng thông qua bài toán xếp lịch thi bằng cách kết hợp giữa lập trình ràng buộc và mô phỏng luyện kim để đề một phương pháp lai tạo mới, có thể áp dụng cho các bài toán xếp lịch khác

Mục đích của việc xác định nhiệt độ ban đầu là để xác định xác suất chấp nhận ban đầu cho phù hợp với chất lượng của lời giải ban đầu và không

bị mất quá nhiều thời gian cho những di chuyển quá ngẫu nhiên (do nhiệt độ ban đầu quá cao) Một hướng xác dịnh nhiệt độ ban đầu tương đối chính xác

Trang 39

Trong công trình Simulated Annealing with estimated temperature [20] do Poupaert, E., và Deville, Y., “Mô phỏng luyện kim với nhiệt độ đã ước lượng”

có trình bày về cách xác định nhiệt độ theo xác suất chấp nhận và không gian lời giải láng giềng

Xác suất chấp nhận theo E Poupaert [20] được định nghĩa như sau:

với δ = f(s’) - f(s)

f(s) là hàm chi phí của lời giải s

s là lời giải hiện hành

s’ là lời giải láng giềng của s

Cũng theo E Poupaert [20], ở một nhiệt độ T, xác suất trung bình để

chấp nhận một lời giải láng giềng là :

với δi = f(s i ) – f(s)

s i là lời giải láng giềng thứ i của s

s là lời giải hiện hành

δi > 0 và i ∈ {1, , n}

δj = f(s j ) – f(s)

δj 0 và j ∈ {n+1, , m}

m ở đây là kích thước của không gian lời giải láng giềng

Trong công trình Simulated Annealing with estimated temperature [20] giải

thuật mô phỏng luyện kim với nhiệt độ đã ước lượng được trình bày trong hình 3.6 :

Algorithm SA with estimated temperature

= +

−+

i

i m

n n

m

n m T m

T

1 1

1, ,δ ,δ , ,δ , 1 exp( δ )

δ

Trang 40

algorithm final = SAET(initial)

If χ L stop ½ then T=0 (dòng 9): khi xác suất χ quá thấp thì T bằng 0, lúc

đó giải thuật sẽ hoạt động như giải thuật leo đồi

Ngày đăng: 18/02/2021, 08:04

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