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

Kỹ thuật quy hoạch ràng buộc tìm kiếm cục bộ dựa trên ràng buộc và phân cụm cân bằng trong việc giải các bài toán tối ưu tổ hợp

106 58 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 106
Dung lượng 4,17 MB

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

Nội dung

Sau đó, chúng tôi sẽ tiến hành triển khai các phương pháp nêu trên vào mô hình hóa và thiết kế giải thuật cho bài toán xếp lịch bảo vệ cao học Master thesis defense timetabling, với đề x

Trang 1

KỸ THUẬT QUY HOẠCH RÀNG BUỘC, TÌM KIẾM CỤC

BỘ DỰA TRÊN RÀNG BUỘC VÀ PHÂN CỤM CÂN BẰNG TRONG VIỆC GIẢI CÁC BÀI TOÁN TỐI ƯU TỔ HỢP

LUẬN VĂN THẠC SĨ KHOA HỌC

Trang 2

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

-

Huỳnh Thành Trung

KỸ THUẬT QUY HOẠCH RÀNG BUỘC, TÌM KIẾM CỤC BỘ DỰA TRÊN RÀNG BUỘC VÀ PHÂN CỤM CÂN BẰNG TRONG VIỆC GIẢI

CÁC BÀI TOÁN TỐI ƯU TỔ HỢP

Chuyên ngành : Hệ thống thông tin

Trang 3

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

Độc lập – Tự do – Hạnh phúc

BẢN XÁC NHẬN CHỈNH SỬA LUẬN VĂN THẠC SĨ

Họ và tên tác giả luận văn: Huỳnh Thành Trung

Đề tài luận văn: Kỹ thuật quy hoạch ràng buộc, tìm kiếm cục bộ dựa trên ràng buộc và phân cụm cân bằng trong việc giải các bài toán tối ưu tổ hợp

Chuyên ngành: Hệ thống thông tin

Mã số SV: CBC16001

Tác giả, Người hướng dẫn khoa học và Hội đồng chấm luận văn xác nhận tác giả đã sửa chữa, bổ sung luận văn theo biên bản họp Hội đồng ngày 24/03/2017 với các nội dung sau:

- Cấu trúc lại luận văn thành 4 chương (từ 7 chương trong bản luận văn ban

đầu) Cấu trúc của luận văn sau chỉnh sửa như sau:

Chương 1: Giới thiệu đề tài Giới thiệu đề tài thực hiện Chương 2: Cơ sở lý thuyết Nêu lên các cơ sở lý thuyết về bài toán tối

ưu hóa tổ hợp, bài toán xếp lịch bảo vệ cao học, các hướng tiếp cận giải bài toán tối ưu tổ hợp như tìm kiếm cục bộ, quy hoạch ràng buộc, tìm kiếm cục bộ dựa trên ràng buộc và các kỹ thuật bổ trợ như Loại

bỏ đối xứng, Phân rã bài toán, Phân cụm

Chương 3: Đề xuất thuật toán giải bài toán xếp lịch bảo vệ cao học

Trình bày thuật toán đề xuất với các phương pháp sử dụng để cải thiện

mô hình hóa bài toán và các phương pháp sử dụng để tìm kiếm lời giải cho bài toán, sau đó là thực nghiệm đánh giá so sánh kết quả của thuật toán đề xuất

Trang 4

Chương 4: Kết luận và các hướng phát triển Tổng hợp các công việc

đã làm được và các hướng phát triển trong tương lai

- Đánh số các trang bắt đầu từ phần nội dung chính của luận văn (thay vì từ phần mục lục)

- Chỉnh sửa lại lỗi văn bản hình vẽ và tên hình vẽ bị nhảy (hình 20)

- Chỉnh sửa lại văn phong khoa học hơn (phần 2.3.2.1)

- Chỉnh sửa lại cách đánh số các định nghĩa cho không còn trùng lặp (phần 2.1.1 và 3.1.2.1)

- Chỉnh sửa lại phần tài liệu tham khảo cho thống nhất và chuẩn xác hơn

Ngày 29 tháng 03 năm 2017

CHỦ TỊCH HỘI ĐỒNG

Trang 5

LỜI CẢM ƠN

Để hoàn thành luận văn tốt nghiệp này, lời đầu tiên tôi xin chân thành cảm ơn các thầy giáo, cô giáo của Viện Công nghệ thông tin và Truyền thông Trường Đại học Bách Khoa Hà Nội, những người đã dạy dỗ, trang bị những kíến thức bổ ích trong những năm học vừa qua

Tôi xin bày tỏ lòng biết ơn sâu sắc nhất tới thầy giáo Phạm Quang Dũng, người

đã tận tình hướng dẫn, chỉ bảo trong suốt thời gian học tập, thực tập và làm luận văn Tôi xin bày tỏ lòng biết ơn sâu sắc nhất tới giáo sư Katsumi Inoue cùng hai nghiên cứu sinh Maxime Clement và Emir Demirovic, những người đã tận tình giúp đỡ trong suốt thời gian thực tập nghiên cứu và làm luận văn tại National Institute of Infomatics, Tokyo

Nhân dịp này tôi xin gửi lời cảm ơn chân thành tới gia đình, bạn bè, những người thân đã cổ vũ, động viên tiếp thêm cho em nghị lực để tôi hoàn thành luận văn tốt nghiệp

Tôi xin chân thành cảm ơn!

Hà Nội, ngày 12 tháng 03 năm 2017 Học viên

Huỳnh Thành Trung

Trang 6

Danh mục các bảng biểu sử dụng trong đồ án

Bảng 1: Một số API tiêu biểu của thư viện OpenCBLS 40 Bảng 2: Bảng so sánh hiệu năng mô hình nQueen sử dụng Symmetry Breaking

Trang 7

Danh mục các hình vẽ sử dụng trong đồ án

Hình 1: Minh họa cho bài toán TSP với 4 thành phố 11

Hình 2: Ví dụ về chu trình con của bài toán TSP 12

Hình 3: Minh họa Local search với bài toán 4-queen 20

Hình 4: Minh họa lời giải cực trị địa phương trong LS 21

Hình 5: Minh họa Backtracking Search với bài toán 4-queen 30

Hình 6: Tổng quan kiến trúc Constraint-based Local Search [7] 32

Hình 7: Minh họa sự họat động của Dependency Graph 35

Hình 8: Minh họa Symmetry Breaking với bài toán N-queens 42

Hình 9: Sơ đồ khối thuật toán phân cụm K-means 47

Hình 10: Ví dụ minh họa bài toán ghép cặp cực đại 51

Hình 11: Ví dụ về ma trận biểu diễn hàm độ đo W 51

Hình 12: Sơ đồ khối của thuật toán K-means balanced clustering 56

Hình 13: Minh họa trường hợp không bảo toàn nghiệm khi phân rã kíp thời gian 59

Hình 14: Minh họa đối xứng giữa các cụm hội đồng – phòng 61

Hình 15: Minh họa đối xứng giữa chủ tịch – thư ký 63

Hình 16: Mô hình pha 1-1 của bài toán MTDT 67

Hình 17: Minh họa ghép cặp cực đại các hội đồng vào các cụm 69

Hình 18: Ví dụ minh họa trường hợp kết quả phân cụm không sử dụng được70 Hình 19: Ví dụ minh họa thuật toán hậu xử lý kết quả phân cụm 72

Hình 20: Mô hình pha 1-2 của bài toán 78

Hình 21: Minh họa phân hoạch láng giềng trong tìm kiếm cục bộ 85

Trang 8

Danh mục các từ ngữ viết tắt và thuật ngữ

Chữ viết tắt Tên đầy đủ Ý nghĩa

Trang 9

MỤC LỤC

MỤC LỤC

Chương 1: Giới thiệu đề tài 1

1.1 Giới thiệu chung 1

1.2 Ngữ cảnh và lý do thực hiện 1

1.2.1 Bài toán tối ưu tổ hợp: tính cần thiết và các khó khăn 1

1.2.2 Các phương pháp giải quyết 2

1.2.3 Bài toán xếp lịch bảo vệ cao học 4

1.2.4 Lý do thực hiện 4

1.3 Nội dung luận văn 5

Chương 2: Cơ sở lý thuyết 6

2.1 Bài toán tối ưu hóa tổ hợp 6

2.1.1 Một số khái niệm 6

2.1.2 Phương pháp tổng trọng số trong bài toán tối ưu hóa tổ hợp đa mục tiêu 9

2.1.3 Ví dụ - Bài toán người du lịch (TSP) 10

2.2 Bài toán xếp lịch bảo vệ cao học (MTDT) 13

2.2.1 Mô tả bài toán 13

2.2.2 Mô hình toán học của bài toán 14

2.2.3 Ví dụ minh họa 16

2.3 Các hướng tiếp cận giải bài toán tối ưu tổ hợp 19

2.3.1 Tìm kiếm cục bộ 19

2.3.2 Quy hoạch ràng buộc 25

Trang 10

2.3.3 Tìm kiếm cục bộ dựa trên ràng buộc 31

2.3.4 Các kỹ thuật bổ trợ 40

Chương 3: Đề xuất thuật toán giải bài toán xếp lịch bảo vệ cao học 57

3.1 Các phương pháp sử dụng cải thiện mô hình bài toán 57

3.1.1 Kỹ thuật phân rã thu gọn bài toán 57

3.1.2 Kỹ thuật loại bỏ đối xứng 60

3.1.3 Đánh giá hiệu quả 64

3.2 Các phương pháp sử dụng để tìm kiếm lời giải cho bài toán 65

3.2.1 Heuristic phân cụm cân bằng 65

3.2.2 Tìm kiếm cục bộ sử dụng lời giải từng phần 76

Chương 4: Thực nghiệm đánh giá kết quả 89

4.1 Thực nghiệm 89

4.2 Đánh giá kết quả 90

Chương 5: Kết luận và các hướng phát triển 92

5.1 Kết luận 92

5.2 Các hướng phát triển 93

CÔNG TRÌNH NGHIÊN CỨU CỦA TÁC GIẢ 94

TÀI LIỆU THAM KHẢO 95

Trang 11

Chương 1: Giới thiệu đề tài

1.1 Giới thiệu chung

Tên đề tài luận văn: Quy hoạch ràng buộc, tìm kiếm cục bộ dựa trên ràng buộc

và phân cụm cân bằng trong việc giải các bài toán tối ưu tổ hợp

Sơ lược: Trong luận văn này, chúng tôi sẽ tìm hiểu chi tiết nền tảng kiến thức

về quy hoạch ràng buộc (constraint programming), tìm kiếm cục bộ dựa trên ràng buộc (constraint-based local search) trong việc giải các bài toán tối ưu tổ hợp Sau

đó, chúng tôi sẽ tiến hành triển khai các phương pháp nêu trên vào mô hình hóa và thiết kế giải thuật cho bài toán xếp lịch bảo vệ cao học (Master thesis defense timetabling), với đề xuất nổi bật là sử dụng phân cụm cân bằng (K-means balance clustering) để phân rã bài toán thành các bài toán con để song song tìm các lời giải tối ưu từng phần, giúp giảm thiểu đáng kể thời gian tính toán trong khi vẫn đảm bảo được những phương án lịch đưa ra đạt chất lượng cao cho người quyết định (giáo vụ)

1.2 Ngữ cảnh và lý do thực hiện

1.2.1 Bài toán tối ưu tổ hợp: tính cần thiết và các khó khăn

Bài toán tối ưu tổ hợp là lớp bài toán trong đó chúng ta phải đưa ra lời giải quyết định thỏa mãn một số những ràng buộc và đồng thời tối ưu hóa một hoặc nhiều những mục tiêu có tính mâu thuẫn với nhau (ví dụ: trong bài toán lên kế hoạch sản xuất, chất lượng sản phẩm, tốc độ sản xuất, hiệu quả sản xuất và chi phí sản xuất là những mục tiêu có tính mâu thuẫn với nhau)

Trên thực tế hiện nay, các bài toán tối ưu hóa tổ hợp xuất hiện rất phổ biến trên mọi khía cạnh của cuộc sống, từ sản xuất, năng lượng, vận chuyển hậu cần, giao thông, tổ chức hành chính, y tế, etc … Việc giải quyết tốt các bài toán như vậy là rất quan trọng, bởi chất lượng của các phương án đưa ra liên quan trực tiếp đến chất

Trang 12

lượng của cuộc sống chúng ta: công việc sản xuất được tối ưu hơn giúp đưa ra các sản phẩm có chất lượng tốt mà giá thành hợp lý; năng lượng được sử dụng tối ưu nên tiết kiệm hơn mà vẫn đảm bảo được hiệu năng; việc xếp lịch được tối ưu giúp cho mọi người làm việc hiệu quả hơn và tránh được những rắc rối không mong muốn (trùng thời gian, không cân đối, v.v…) Có rất, rất nhiều những ví dụ tương tự như vậy, qua đó thể hiện mức độ phổ biến và nhu cầu giải quyết của các bài toán tối ưu hóa tổ hợp trong cuộc sống là rất lớn

Tuy rất phổ biến và cần thiết như vậy, việc giải các bài toán tối ưu hóa tổ hợp nhìn chung gặp nhiều khó khăn Các bài toán này thuộc lớp NP-đầy đủ, trong đó chúng ta có thể kiểm chứng nhanh chóng bất kỳ một lời giải nào có phải là lời giải thỏa mãn cho bài toán hay không (trong thời gian đa thức), nhưng hiện chưa có cách nào tìm ra lời giải thỏa mãn một cách hiệu quả (độ phức tạp thuật toán vẫn là độ phức tạp lũy thừa) [2, 6] Nói cách khác, thời gian thực thi của tất cả các thuật toán hiện tại cho những bài toán này đều tăng rất nhanh theo kích thước bài toán

1.2.2 Các phương pháp giải quyết

Mặc dù các bài toán tối ưu hóa tổ hợp rất khó để giải quyết, các nhà nghiên cứu về tối ưu hóa trong những năm qua vẫn cố gắng nghiên cứu tìm ra các phương pháp để giải các bài toán này một cách tốt nhất có thể được Có thể chia các phương pháp thành hai dạng chính:

- Các phương pháp giải đúng: tiêu biểu có thể kể đến

o Constraint programming (Quy hoạch ràng buộc): là khuôn mẫu lập trình trong đó mối quan hệ của các biến quyết định được biểu diễn bằng các ràng buộc Người dùng có thể sử dụng các ràng buộc và các biến quyết định để mô hình hóa bài toán cần giải, sau đó sử dụng các phương pháp cắt tỉa không gian tìm kiếm dựa vào sự lan truyền của các ràng

Trang 13

được lời giải tốt nhất nhờ vào việc tìm kiếm quay lui, không gian lời giải được vét cạn Ưu điểm của quy hoạch ràng buộc là người dùng có thể sử dụng các ràng buộc được định nghĩa trước hoặc tự mình định nghĩa để mô hình hóa bài toán, các ràng buộc này khá tự nhiên với cách hiểu của con người và linh hoạt cho việc mô hình hóa

o Integer Linear Programming (Quy hoạch nguyên): là khuôn mẫu lập trình trong đó sử dụng các biến nguyên và sử dụng các quan hệ tuyến tính để biểu diễn mô hình bài toán cần giải, sau đó sử dụng các phương pháp như cắt tỉa, đơn hình, v.v… để tìm ra lời giải của bài toán

o Logic Programming (Quy hoạch logic): là khuôn mẫu lập trình trong

đó sử dụng các vị từ (có thể hiểu là các biến boolean, nhận giá trị true hoặc false) để mô hình hóa bài toán thông qua các mệnh đề, sau đó sử dụng các giải thuật để tìm kiếm lời giải của bài toán, phổ biến nhất là tìm kiếm quay lui (backtracking search)

- Các phương pháp xấp xỉ: sử dụng các metaheuristic, có thể chia thành 2 loại

o Local search (Tìm kiếm cục bộ): là thuật toán xấp xỉ trong đó đòi hỏi chúng ta phải mô hình hóa được không gian lời giải của bài toán và mối quan hệ láng giềng giữa các lời giải Trong quá trình tìm kiếm, giải thuật sẽ di chuyển lần lượt qua các lời giải lân cận với lời giải hiện tại tại mỗi bước với mong muốn tìm được lời giải tối ưu Ưu điểm của tìm kiếm cục bộ là có thể làm việc trong thời gian tùy ý, do đó có ích khi giải quyết các bài toán tối ưu tổ hợp cần đưa ra một lời giải tốt trong thời gian bị hạn chế Tuy nhiên nhược điểm của tìm kiếm cục bộ là lời giải tìm được có thể là không tối ưu nhất mà bị kẹt ở một tối ưu cục bộ Các metaheuristic là local search tiêu biểu có thể kể đến là hill-climbing, tabu search, simulated annealing, v.v…

Trang 14

o Global search (Tìm kiếm toàn cục): trái với local search – thực hiện việc tìm kiếm lời giải tối ưu thông qua thông tin cục bộ của một lời giải với các lời giải láng giềng của nó, tìm kiếm toàn cục thường dựa vào thông tin của một quần thể các lời giải để tìm kiếm lời giải tối ưu Các metaheuristic là global search tiêu biểu có thể kể đến là genetic algorithm, ant colony optimization, evolutionary computation, v.v…

1.2.3 Bài toán xếp lịch bảo vệ cao học

Bài toán xếp lịch cao học là một bài toán tối ưu hóa tổ hợp xuất hiện ở các trường đại học của Việt Nam hiện nay Tại trường Bách Khoa Hà Nội nói riêng và các trường đại học nói chung, nghiệp vụ quản lý xếp lịch bảo vệ của trường vẫn được thực hiện một cách thủ công, bằng công sức và kinh nghiệm của con người Phương pháp này có nhiều nhược điểm, bởi nghiệp vụ xếp lịch bảo vệ cao học là một nghiệp

vụ phức tạp bởi nhiều các ràng buộc (các giáo viên của một hội đồng không trùng nhau, các giáo viên không trùng kíp, các hội đồng không trùng kíp phòng, yêu cầu giảng viên trong/ngoài trường cho các vị trí thành viên trong hội đồng, v.v…) mà người xếp lịch thủ công rất khó khăn trong việc theo dõi và kiểm soát Hơn nữa, kể

cả khi những ràng buộc chặt này được thỏa mãn, thì lịch bảo vệ được xếp bởi con người khó lòng đạt được sự tối ưu với tổ hợp các mục tiêu phức tạp như: mức độ phù hợp của các phản biện với đề tài, một giáo viên không ngồi quá nhiều hội đồng, v.v…

Do đó việc giải quyết bài toán xếp lịch cao học tự động bằng thuật toán là nhu cầu cần thiết

1.2.4 Lý do thực hiện

Xuất phát từ nhu cầu thực tiễn của các bài toán tối ưu hóa tổ hợp nói chung (phần 1.2.1) và bài toán xếp lịch bảo vệ cao học nói riêng (phần 1.2.3), chúng tôi:

Trang 15

- Tìm hiểu việc sử dụng quy hoạch ràng buộc và tìm kiếm cục bộ trong việc giải quyết các bài toán tối ưu hóa tổ hợp với mong muốn có nền tảng kiến thức vững chắc trong việc giải quyết các bài toán này

- Đề xuất một thuật toán hiệu quả giải quyết bài toán xếp lịch bảo vệ cao học,

sử dụng quy hoạch ràng buộc, tìm kiếm cục bộ dựa trên ràng buộc Ngoài ra, thuật toán đề xuất còn sử dụng phân cụm cân bằng để phân rã bài toán thành các bài toán con và xử lý song song Với thuật toán đề xuất, chúng tôi mong muốn đây sẽ là một giải pháp được áp dụng vào thực tế để giảm thiểu công sức của các giáo vụ và tăng chất lượng tối ưu của các lịch được xếp

1.3 Nội dung luận văn

Luận văn gồm có 5 chương chính:

Chương 1: Giới thiệu đề tài Giới thiệu đề tài thực hiện

Chương 2: Cơ sở lý thuyết Nêu lên các cơ sở lý thuyết về bài toán tối ưu hóa tổ hợp,

bài toán xếp lịch bảo vệ cao học, các hướng tiếp cận giải bài toán tối ưu tổ hợp như tìm kiếm cục bộ, quy hoạch ràng buộc, tìm kiếm cục bộ dựa trên ràng buộc và các kỹ thuật bổ trợ như Loại bỏ đối xứng, Phân rã bài toán, Phân cụm

Chương 3: Đề xuất thuật toán giải bài toán xếp lịch bảo vệ cao học Trình bày thuật

toán đề xuất với các phương pháp sử dụng để cải thiện mô hình hóa bài toán và các phương pháp sử dụng để tìm kiếm lời giải cho bài toán, sau đó là thực nghiệm đánh giá so sánh kết quả của thuật toán đề xuất

Chương 4: Kết luận và các hướng phát triển Tổng hợp các công việc đã làm được

và các hướng phát triển trong tương lai

Trang 16

Chương 2: Cơ sở lý thuyết

2.1 Bài toán tối ưu hóa tổ hợp

2.1.1 Một số khái niệm

Như phần 1.2.1 đã giới thiệu, bài toán tối ưu hóa tổ hợp là lớp bài toán trong

đó chúng ta phải đưa ra lời giải/ quyết định thỏa mãn một số những ràng buộc/ giới hạn và đồng thời tối ưu hóa một hoặc nhiều những mục tiêu có tính mâu thuẫn với nhau Đây là những bài toán xuất hiện và có vai trò quan trọng trên mọi lĩnh vực của cuộc sống, từ năng lượng, giao thông vận tải, tổ chức hành chính, sản xuất, v.v… Sau đây là định nghĩa cụ thể hơn cho các khái niệm liên quan và cho bài toán tối ưu hóa

tổ hợp

Định nghĩa 2.1: Biến quyết định của bài toán (Decision variable)

Biến quyết định của bài toán tối ưu hóa tổ hợp là một biến nằm trong mô hình

của bài toán mà người ra quyết định có thể kiểm soát được giá trị của biến đó và cần xác định giá trị cho biến đó

Biến quyết định có thể coi như những tế bào xây dựng nên bài toán tối ưu hóa tổ hợp Đó không phải là những biến ngẫu nhiên, người ra quyết định hoàn toàn có thể kiểm soát và quyết định được giá trị của nó Ví dụ: số lượng những chiếc xe sẽ được sản xuất, giá thành của một chiếc xe, v.v… Biến quyết định của bài toán thường

được ký hiệu là x, và tập hợp các biến quyết định của bài toán là X

Định nghĩa 2.2: Miền xác định của biến quyết định (Domain)

Miền giá trị của biến quyết định là tập hợp các giá trị có thể gán tới các biến đó

Miền quyết định của biến có thể là một tập hữu hạn hoặc vô hạn các giá trị, miền

đó có thể là liên tục và rời rạc Trong khuôn khổ của luận văn, chúng tôi chỉ xét các bài toán tối ưu hóa tổ hợp rời rạc, trong đó miền của tất cả các biến quyết định cấu

Trang 17

thành nên bài toán là hữu hạn và rời rạc Miền xác định của biến quyết định x thường

được ký hiệu là 𝐷𝑥

Định nghĩa 2.3: Ràng buộc (Constraint)

Một ràng buộc của bài toán tối ưu hóa tổ hợp là một điều kiện mà một tập các

biến quyết định của bài toán cần thỏa mãn

Ví dụ: 𝑥1+ 𝑥2 < 3, 𝑥3 ≥ 𝑥4, 𝑣 𝑣 …

Một ràng buộc được định nghĩa trên các biến quyết định của bài toán Trong thực tế, ràng buộc là điều chúng ta rất thường gặp, ví dụ: ngân sách chi tiêu không vượt quá một con số nhất định, giá bán của chiếc xe không được thấp hơn tổng chi

phí sản xuất ra nó, v.v… Ràng buộc của bài toán thường được ký hiệu là c, tập các ràng buộc của bài toán thường được ký hiệu là C

Định nghĩa 2.4: Hàm mục tiêu của bài toán (Objective function)

Hàm mục tiêu của bài toán tối ưu hóa tổ hợp là một hàm được định nghĩa trên

một tập các biến quyết định và cần được tối ưu hóa (cực đại hóa hoặc cực tiểu hóa)

Ví dụ: 𝑓 = 𝑥1× 𝑥2 với:

- 𝑥1 là biến quyết định thể hiện giá thành sản phẩm

- 𝑥2 là biến quyết định thể hiện số lượng của sản phẩm bán ra

- f là hàm mục tiêu thể hiện doanh thu từ việc bán sản phẩm, cần được cực đại hóa

Hàm mục tiêu cũng là khái niệm chúng ta rất thường gặp trong cuộc sống, như cực đại hóa doanh thu, cực tiểu hóa chi phí, v.v… Hàm mục tiêu thường được ký hiệu

là f, tập hợp các hàm mục tiêu của bài toán ký hiệu là F

Định nghĩa 2.5: Lời giải của bài toán (Solution)

Một lời giải của bài toán tối ưu hóa tổ hợp là một bộ giá trị xác định gán cho

tập các biến quyết định của bài toán: s = {<𝑥𝑖, 𝑣𝑖>, 𝑥𝑖 ∊ X, 𝑣𝑖 ∊ 𝐷𝑥𝑖}

Trang 18

Việc giải bài toán tối ưu tổ hợp thực chất là đi tìm lời giải tối ưu cho bài toán,

do đó các thuật toán tìm kiếm như Tìm kiếm cục bộ có thể áp dụng được vào cho việc

giải các bài toán dạng này Lời giải của bài toán thường được ký hiệu là s

Định nghĩa 2.6: Lời giải chấp nhận được của bài toán (Feasible Solution)

Một lời giải chấp nhận được của bài toán tối ưu hóa tổ hợp là một lời giải thỏa mãn mọi ràng buộc c trong tập ràng buộc C của bài toán

Định nghĩa 2.7: Không gian lời giải của bài toán (Solution space)

Không gian lời giải của bài toán tối ưu hóa tổ hợp là tập tất cả các lời giải có thể của bài toán

Vì chúng ta đang chỉ xét các bài toán tối ưu hóa tổ hợp rời rạc, với miền giá trị của các biến là rời rạc và hữu hạn, do đó không gian lời giải của bài toán là hữu hạn Tuy vậy, không gian lời giải của bài toán tối ưu hóa tổ hợp thường có kích thước vô cùng lớn, tăng với tốc độ hàm mũ theo kích thước của tập các biến quyết định, do đó việc xét hết toàn bộ lời giải trong không gian là không thể, đòi hỏi phải có những chiến lược tìm kiếm phù hợp Không gian lời giải của bài toán thường được ký hiệu

là S

Định nghĩa 2.8: Bài toán tối ưu hóa tổ hợp

Một bài toán tối ưu hóa tổ hợp là một bộ ba (X, C, F), với:

- X: tập hợp các biến quyết định của bài toán

- C: tập hợp các ràng buộc của bài toán

- F: tập hợp các hàm mục tiêu của bài toán

Nhiệm vụ của việc giải bài toán tối ưu hóa tổ hợp là tìm ra lời giải s, thỏa mãn mọi ràng buộc c ∊ C và tối ưu hóa đồng thời các hàm mục tiêu 𝑓 ∊ F

Trong bài toán tối ưu hóa tổ hợp đa mục tiêu, việc một lời giải tối ưu hóa tuyệt đối toàn bộ các hàm mục tiêu là rất hiếm khi xảy ra, do đó các khái niệm trội Pareto (Pareto dominance) và biên Pareto (Pareto front) được định nghĩa

Trang 19

Định nghĩa 2.9: Trội Pareto (Pareto dominance)

Xét 2 vector 𝐹1 = [𝑓11, 𝑓21,…𝑓𝑛1] và 𝐹2 = [𝑓12, 𝑓22, … 𝑓𝑛2] là 2 vector n chiều, khi đó ta nói vector 𝐹1 trội Pareto hơn 𝐹2 nếu 𝑓𝑖1 ≥ 𝑓𝑖2 với mọi i và tồn tại ít nhất 1

số k sao cho 𝑓𝑘1 > 𝑓𝑘2 , ký hiệu là 𝐹1 ≻ 𝐹2

Ví dụ: 𝐹1 = [3, 4], 𝐹2 = [3, 3] , ta có 𝐹1 ≻ 𝐹2

Trong bài toán tổng quát, có thể coi bài toán tối ưu hóa đa mục tiêu cần cực tiểu

hóa tất cả các hàm mục tiêu Khi đó, nếu ta có 2 lời giải 𝑠1 và 𝑠2 đều là lời giải chấp nhận được các ràng buộc và ứng với 2 vector giá trị các hàm mục tiêu 𝐹1 và 𝐹2, nếu

ta có 𝐹1 ≻ 𝐹2 thì chắc chắn lời giải 𝑠2 sẽ tốt hơn lời giải 𝑠1

Định nghĩa 2.10: Biên Pareto (Pareto frontier)

Biên Pareto của bài toán tối ưu hóa tổ hợp là tập hợp P các lời giải chấp nhận

được s thuộc không gian các lời giải S sao cho với bất kỳ lời giải s nào thuộc P, không tồn tại bất kỳ lời giải chấp nhận được s’ nào khác thuộc S mà có vector hàm mục tiêu của s trội Pareto so với vector hàm mục tiêu của s’

Trong các bài toán tối ưu hóa tổ hợp đa mục tiêu, một hướng tiếp cận là xác định được biên Pareto và chọn ra những lời giải trong đó để đưa cho người ra quyết định (decision maker)

Ngoài ra, chuyển bài toán đa mục tiêu thành bài toán tối ưu hóa đơn mục tiêu với phương pháp tổng trọng số chấp nhận cũng là một hướng tiếp cận được sử dụng phổ biến

2.1.2 Phương pháp tổng trọng số trong bài toán tối ưu hóa tổ hợp đa mục tiêu

Phương pháp tổng trọng số (weighted-sum) là một trong nhưng phương pháp đơn giản nhưng hiệu quả để giải các bài toán tối ưu hóa tổ hợp đa mục tiêu Ý tưởng của phương pháp là sử dụng một vector các trọng số để chuyển hóa bài toán tối ưu hóa

đa mục tiêu trở thành một bài toán tối ưu hóa tổ hợp đơn mục tiêu Cụ thể, dựa trên

Trang 20

đánh giá mức độ quan trọng của các hàm mục tiêu, người dùng có thể đưa ra một véc

tơ trọng số như sau:

𝑊 = [𝑤1, 𝑤2, … , 𝑤𝑛 ] với n là số các hàm mục tiêu của bài toán Khi đó, chúng ta có thể định nghĩa được hàm tổng trọng số các hàm mục tiêu sau:

𝑓𝑤𝑒𝑖𝑔ℎ𝑡𝑒𝑑−𝑠𝑢𝑚 = ∑ 𝑓𝑖× 𝑤𝑖

𝑓𝑖∈𝐹

và sau đó, bài toán tối ưu hóa đa mục tiêu được chuyển hóa thành bài toán tối ưu hóa đơn mục tiêu hàm mục tiêu này Ưu điểm của phương pháp này là đơn giản nhưng hiệu quả, tuy nhiên nhược điểm là người dùng cần ước lượng và xác định bộ trọng

số

2.1.3 Ví dụ - Bài toán người du lịch (TSP)

Để minh họa cho bài toán tối ưu hóa tổ hợp, chúng tôi chọn bài toán “Người du lịch” (Traveling salesman problem – viết tắt TSP), bởi đây là bài toán rất nổi tiếng,

có nguồn gốc từ lâu đời (năm 1930), có ứng dụng rộng rãi trong nhiều lĩnh vực như lên kế hoạch, hậu cần, sản xuất microchip, v,v… [2]

Bài toán TSP có thể được phát biểu như sau: Một nguời du lịch muốn tham quan

n thành phố 𝑇1, , 𝑇𝑛 Xuất phát từ một thành phố nào đó, người du lịch muốn đến tất

cả các thành phố còn lại, mỗi thành phố đi qua đúng 1 lần rồi quay trở lại thành phố xuất phát Gọi 𝑑𝑖𝑗 là chi phí đi từ thành phố 𝑇𝑖 đến thành phố 𝑇𝑗 Hãy tìm một hành trình thỏa yêu cầu bài toán sao cho chi phí là nhỏ nhất

Dưới dạng đồ thị, bài toán có thể được mô hình hóa như một đồ thị vô hướng

có trọng số, trong đó mỗi thành phố là một đỉnh của đồ thị, khoảng cách giữa 2 thành

Trang 21

toán là tìm một chu trình đi lần lượt qua các đỉnh của đồ thị, cuối cùng quay về điểm xuất phát, sao cho tổng độ dài của chu trình là nhỏ nhất

Hình 1: Minh họa cho bài toán TSP với 4 thành phố

Mô hình hóa bài toán: có nhiều cách để mô hình hóa bài toán, sau đây chúng tôi giới thiệu 2 mô hình khác nhau của bài toán

Biến quyết định (Decision variables):

- x[1 n]: mảng n biến quyết định, x[i] = j thể hiện rằng trên chu trình, du khách

sẽ đi đến thành phố j sau khi ở thành phố i Miền xác định: 𝐷𝑥[𝑖] = {1 𝑛}, ∀𝑖 ∈{1 𝑛}

Ràng buộc (Constraints):

- circuit(x): constraint định nghĩa trên mảng biến quyết định x, ràng buộc rằng mảng x sẽ hình thành 1 chu trình với x[i] = j thể hiện rằng j là điểm đến tiếp theo từ i

Trang 22

Hàm mục tiêu (Objective functions):

- minimize ∑ 𝑑[𝑖][𝑥[𝑖]]: Cực tiểu hóa đường đi của chu trình

Biến quyết định (Decision variables):

- x[1 n][1 n]: mảng 𝑛2 biến quyết định, x[i][j] = 1 thể hiện rằng đường đi từ thành phố i đến thành phố j nằm trong chu trình và ngược lại, x[i][j] = 0 thể hiện đường đi từ thành phố i đến thành phố j không nằm trong chu trình Miền

xác định: 𝐷𝑥[𝑖][𝑗] = {0,1}, ∀𝑖, 𝑗 ∈ {1 𝑛}

Ràng buộc (Constraints):

- ∑𝑛𝑗=1𝑥[𝑖][𝑗]= 2, ∀𝑖 ∈ {1 𝑛}: ràng buộc thể hiện rằng với mọi thành phố (đỉnh) có đúng duy nhất 2 đường đi (cạnh) với một đầu là thành phố đó, đảm bảo mỗi thành phố có một đường vào và một đường ra

- ∑𝑖,𝑗 ∈{1 𝑛},𝑖≠𝑗𝑥[𝑖][𝑗] ≤ |𝑆| − 1, ∀ 𝑆 ∁ 𝑉, 𝑆 ≠ ∅: ràng buộc ngăn cản không có một chu trình nào được hình thành Nếu không có ràng buộc này, n thành phố

có thể bị chia ra thành nhiều chu trình con

Trang 23

Hàm mục tiêu (Objective functions):

- minimize ∑ 𝑑[𝑖][𝑗] × 𝑥[𝑖][𝑗]: Cực tiểu hóa đường đi của chu trình

2.2 Bài toán xếp lịch bảo vệ cao học (MTDT)

Như đã giới thiệu ở phần 1.2.3, bài toán xếp lịch bảo vệ cao học (Master Thesis Defense Timetabling – MTDT) là một bài toán tối ưu hóa tổ hợp xuất hiện ở các trường đại học của Việt Nam hiện nay Đây là một nghiệp vụ phức tạp với các ràng buộc và mục tiêu mà người xếp lịch rất khó khăn trong việc theo dõi và kiểm soát, do

đó nhu cầu giải bài toán xếp lịch tự động là cần thiết

2.2.1 Mô tả bài toán

Bài toán xếp lịch bảo vệ cao học được phát biểu như sau:

Có n học viên, mỗi học viên có một đề tài bảo vệ do một giảng viên hướng dẫn,

đề tài đó thuộc 1 hướng nghiên cứu Mỗi giảng viên có một só các hướng nghiên cứu chuyên sâu được thể hiện bởi 1 danh sách các từ khóa chuyên ngành Ở mỗi đợt bảo

vệ, các giảng viên trong trường và ngoài trường tham gia vào đợt bảo vệ, thời gian các kíp và phòng được chọn trước Bài toán đặt ra là xếp các giảng viên vào các hội đồng bảo vệ của các học viên và phân kíp phòng cho các hội đồng Mỗi một hội đồng gồm năm giảng viên: chủ tịch hội đồng, phản biện 1, phản biện 2, thư ký và ủy viên , mỗi 1 hội đồng diễn ra tại 1 phòng vào 1 kíp thời gian Các giảng viên, kíp, phòng được phân phải thỏa mãn các ràng buộc sau:

- Năm giảng viên phân vào hội đồng phải khác nhau và khác giáo viên hướng dẫn của học viên

- Chủ tịch hội đồng, phản biện 1, thư ký là các giảng viên trong trường, phản biện 2 và ủy viên là các thành viên ngoài trường

- Các giảng viên chỉ được tham gia tối đa 1 hội đồng trong 1 kíp thời gian

- Trong 1 kíp thời gian ở 1 phòng, có tối đa 1 hội đồng

- Một giảng viên không thể ngồi phản biện ở quá nhiều hội đồng

Trang 24

Ngoài ra việc xếp lịch còn hướng đến việc tối ưu hóa mục tiêu:

- Sự cân bằng trong việc ngồi hội đồng của các giáo viên

- Mức độ phù hợp cho phản biện 1 và phản biện 2 với hướng đề tài của học viên trong các hội đồng là lớn nhất

2.2.2 Mô hình toán học của bài toán

Từ bài toán đã phát biểu ở trên, ta có thể lên mô hình toán học cho bài toán như sau:

- Dữ liệu đầu vào (Inputs):

+ S = {0,1, , 𝑛 − 1}: Tập n đề tài bảo vệ trong hội đồng, sup(i) là giảng viên hướng dẫn của để tài thứ i

+ IP = {0,1, , 𝑝 − 1}: Tập p giảng viên trong trường

+ EP = {𝑝, 𝑝 + 1, , 𝑝 + 𝑞 − 1}: Tập q giảng viên ngoài trường

+ P = IP ∪ EP: Tập p+q giảng viên tham gia vào đợt bảo vệ

+ l(p): Học hảm học vị của giảng viên p, 𝑝 ∈ 𝑃 (0 cho GS.TS, 1 cho PGS, )

+ T = {0,1, … 𝑡 − 1}: Tập t kíp thời gian dùng cho đợt bảo vệ

- Các biến (Variables):

Trang 25

+ xp(𝑠, 𝑖) : giảng viên được phân vào vị trí thứ i của hội đồng có đề tài 𝑠 ∈ 𝑆, với:

o 𝑥𝑝(𝑠, 1): giảng viên ngoài trường được phân làm phản biện 1 của hội đồng, 𝑥𝑝(𝑠, 1) ∈ 𝐸𝑃

o 𝑥𝑝(𝑠, 2): giảng viên trong trường được phân làm phản biện 2 của hội đồng, 𝑥𝑝(𝑠, 2) ∈ 𝐼𝑃

o 𝑥𝑝(𝑠, 3): giảng viên trong trường được phân làm chủ tịch của hội đồng, 𝑥𝑝(𝑠, 3) ∈ 𝐼𝑃

o 𝑥𝑝(𝑠, 4): giảng viên trong trường được phân làm thư ký của hội đồng, 𝑥𝑝(𝑠, 4) ∈ 𝐼𝑃

o 𝑥𝑝(𝑠, 5): giảng viên ngoài trường được phân làm ủy viên của hội đồng, 𝑥𝑝(𝑠, 5) ∈ 𝐸𝑃

+ 𝑥𝑡(𝑠): kíp thời gian được phân cho hội đồng có đề tài 𝑠 ∈ 𝑆 , 𝑥𝑡(𝑠) ∈ 𝑇 + 𝑥𝑟(𝑠): phòng được phân cho hội đồng có đề tài 𝑠 ∈ 𝑆 , 𝑥𝑟(𝑠) ∈ 𝑅

- Các đại lượng phụ thuộc biến (Invariants):

+ 𝑜(𝑝) = #{𝑥𝑝(𝑠, 𝑖) | (𝑖 ∈{1, … , 5}) ˄ (𝑠 ∈ 𝑆) ˄ (𝑥𝑝(𝑠, 𝑖) = 𝑝)}, ∀ 𝑝 ∈ 𝑃 : số hội đồng mà giảng viên p tham dự

+ 𝑒(𝑝) = #{𝑥𝑝(𝑠, 𝑖) | (𝑖 ∈ {1,2}) ˄ (𝑠 ∈ 𝑆) ˄ (𝑥𝑝(𝑠, 𝑖)= 𝑝)}, ∀ 𝑝 ∈ 𝑃 : số hội đồng mà giảng viên p làm phản biện

+ 𝑚𝑖𝑛𝑂 = 𝑚𝑖𝑛𝑝 ∈𝑃{𝑜(𝑝)} : số hội đồng của giảng viên ngồi hội đồng ít nhất tham dự

+ 𝑚𝑎𝑥𝑂 = 𝑚𝑎𝑥𝑝 ∈𝑃{𝑜(𝑝)} : số hội đồng của giảng viên ngồi hội đồng nhiều nhất tham dự

- Các ràng buộc (Constraints):

+𝑥𝑝(𝑠, 𝑖) ≠ 𝑠𝑢𝑝(𝑠), ∀ 1 ≤ 𝑖 ≤ 5 , 𝑠 ∈ 𝑆 : thành viên của một (0)

Trang 26

hội đồng phải khác giáo viên hướng dẫn của hội đồng đó

+𝑥𝑝(𝑠, 𝑖) ≠ 𝑥𝑝(𝑠, 𝑗), ∀ 1 ≤ 𝑖 ≤ 𝑗 ≤ 5 , 𝑠 ∈ 𝑆 : hai thành viên của một (1) hội đồng phải đôi một khác nhau

+(𝑥𝑝(𝑠1, 𝑖) = 𝑥𝑝(𝑠2, 𝑗) => (𝑥𝑡(𝑠1) ≠ 𝑥𝑡(𝑠2)), ∀ 𝑖, 𝑗 ∈ {1, … , 5}), ∀ 𝑠1 (2)

≠ 𝑠2 ∈ 𝑆 : không tồn tại một giảng viên ngồi hai hội đồng được phân vào

cùng một kíp thời gian

+(𝑥𝑟(𝑠1) = 𝑥𝑟(𝑠2)) => (𝑥𝑡(𝑠1) ≠ 𝑥𝑡(𝑠2)), ∀ 𝑠1 ≠ 𝑠2 ∈ 𝑆 : không (3) tồn tại hai hội đồng được phân cùng phòng tại một kíp thời gian

+e(𝑝) < 𝜆, ∀ 𝑝 ∈ 𝑃 : các giảng viên không thể tham gia phản biện (4) quá nhiều hội đồng

Để minh họa cho bài toán xếp lịch bảo vệ cao học, chúng tôi xin lấy ví dụ từ

bộ dữ liệu jury6 của đợt bảo vệ cao học tháng 4/2015 của khoa CNPM, ĐHBKHN

Trang 27

- Ban đầu, lịch chưa được xếp, các thông tin đầu vào của bài toán được cho

trước (học viên, đề tài, từ khóa hướng nghiên cứu của đề tài, các giảng viên được phân công tham gia đợt bảo vệ, v.v… )

- Trước khi được đưa vào module thuật toán, các thông tin (giảng viên, phòng,

kíp, đề tài) sẽ được tiền xử lý bằng các cách đánh chỉ số (indexing); ánh xạ giữa thông tin và chỉ số sẽ được lưu giữ để phục hồi sau khi thu được kết quả

- Sau đó module thuật toán sẽ giải bài toán và đưa ra kết quả tối ưu hóa hai hàm mục tiêu và thỏa mãn các ràng buộc Như trong ví dụ cụ thể này, thuật toán trả về lịch tối ưu được xếp thỏa mãn các ràng buộc, giá trị của 2 hàm mục tiêu

Trang 28

là obj1 = 0 (đảm bảo cân bằng tuyệt đối giữa các thành viên trong hội đồng)

và obj2 = 17

- Cuối cùng, sử dụng từ điển lưu giữ để khôi phục các thông tin từ dạng các chỉ

sổ trong lịch kết quả

Trang 29

2.3 Các hướng tiếp cận giải bài toán tối ưu tổ hợp

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

2.3.1.1 Ý tưởng phương pháp

Tìm kiếm cục bộ (Local Search – viết tắt LS) là một phương pháp giải xấp xỉ được sử dụng phổ biến trong việc giải các bài toán tối ưu hóa tổ hợp Phương pháp này có thể áp dụng trong các bài toán mà chúng ta có thể mô hình hóa được không gian các lời giải, quan hệ lân cận của hai lời giải; cần tìm ra lời giải tối ưu hóa các tiêu chí đặt ra Ý tưởng của phương pháp là xuất phát từ một lời giải được khởi tạo ban đầu, lần lượt đi qua các lời giải lân cận trong không gian các lời giải với cố gắng tìm ra một lời giải tốt Tại mỗi bước, thuật toán đang dừng ở một lời giải và cần chọn một lời giải trong tập các lời giải lân cận của lời giải này để di chuyển đến, dựa vào hàm đánh giá

Ví dụ dưới đây minh họa cách tìm kiếm cục bộ tìm một lời giải cho bài toán Queens Khác với phương pháp tìm kiếm quay lui đã được giới thiệu ở phần trước, điểm xuất phát của thuật toán ở đây là một lời giải với giá trị các biến đã được khởi tạo (các con hậu đều đã được đặt vào bàn cờ) Tại mỗi bước, LS sẽ xét các lời giải láng giềng, chọn ra lời giải láng giềng tiềm năng nhất dựa trên hàm đánh giá để di chuyển đến Ở đây, lời giải lân cận được định nghĩa là lời giải thu được bằng cách thay đổi vị trí của một con hậu so với lời giải hiện tại; hàm đánh giá là số các vi phạm Sau một số bước di chuyển, LS đã tìm ra một lời giải hợp lệ cho bài toán

Trang 30

n-Hình 3: Minh họa Local search với bài toán 4-queen Nguồn: docs.jboss.org/drools/release/6.2.0.Beta2/optaplanner-docs/html/localSearch.html

Vấn đề lớn nhất cản trở LS tìm ra lời giải tối ưu cho bài toán là các lời giải cực trị địa phương Lời giải cực trị địa phương là một lời giải tốt hơn các lời giải láng giềng của nó (dựa trên hàm đánh giá) Do chỉ dùng thông tin cục bộ từ các lời giải láng giềng, quá trình tìm kiếm cục bộ sẽ có xu hướng bị kẹt lại ở những lời giải tối

ưu cục bộ này và do đó, khảo sát được rất ít vùng trên không gian tìm kiếm Mặt khác, thông thường một bài toán tối ưu hóa tổ hợp có rất nhiều các lời giải cực trị địa phương, do đó lời giải cực trị địa phương tìm được không đảm bảo là lời giải tốt nhất hay thậm chí là một lời giải tốt cho bài toán Hình vẽ dưới đây sẽ minh họa rõ cho điều này

Trang 31

Hình 4: Minh họa lời giải cực trị địa phương trong LS

Nguồn: http://web.maths.unsw.edu.au/~rsw/lgopt.pdf

Nhìn chung, ưu điểm lớn nhất của tìm kiếm cục bộ là đảm bảo làm việc trong khoảng thời gian bị giới hạn, quá trình tìm kiếm có thể dừng bất cứ lúc nào Tuy nhiên nhược điểm của LS là không đảm bảo luôn tìm ra được lời giải tối ưu do không gian tìm kiếm không được xem xét toàn bộ

2.3.1.2 Metaheuristic

2.3.1.2.1 Metaheuristic là gì?

Như đã trình bày ở phần trước, một trong những vấn đề lớn nhất của tìm kiếm cục bộ là đưa quá trình tìm kiếm thoát khỏi các điểm cực trị địa phương, và các metaheuristic thường được sử dụng để thực hiện điều này Metaheuristic là các chiến lược giúp định hướng quá trình tìm kiếm, giúp cho quá trình trở nên hiệu quả và tìm được các lời giải tốt trong không gian tìm kiếm Các metaheuristic thường mang tỉnh tổng quát thay vì đặc thù cho riêng từng bài toán cụ thể Các thuật toán metaheuristic rất đa dạng, từ các thuật toán đơn giản như hill climbing cho đến các thuật toán học phức tạp, với các metaheuristic tiêu biểu và được sử dụng rộng rãi có thể kể đến như stimulated-annealing, tabu search, etc…[7] Sau đây chúng ta cùng xem xét cụ thể Tabu Search – một metaheuristic tiêu biểu để hiểu rõ hơn cơ chế cũng như vai trò của metaheuristic trong việc định hướng quá trình tìm kiếm

Trang 32

2.3.1.2.2 Ví dụ minh họa - Tabu Search

Tabu search là một trong những các metaheuristic được sử dụng phổ biến và tính hiệu quả của nó đã được chứng minh qua nhiều các bài toán tối ưu hóa tổ hợp [8] Ý tưởng chính của Tabu Search là sử dụng một bộ nhớ thích nghi và phản hồi liên tục với quá trình tìm kiếm, qua đó cung cấp nhiều thông tin hơn cho quá trình này, giúp tránh việc bị kẹt lại tại một điểm cực trị địa phương Có hai khái niệm chính trong Tabu Search là: cấu trúc bộ nhớ và chiến lược tìm kiếm

a Cấu trúc bộ nhớ

Tabu Search cúng giống như các metaheuristic khác trong LS, bắt đầu quá trình tìm kiếm xuất phát từ một lời giải khởi tạo ban đầu, sau đó liên tiếp thực hiện các

phép di chuyển qua các lời giải chọn ra từ tập các lời giải láng giềng N với mong

muốn tìm kiếm được một lời giải tốt hơn cho bái toán Trong quá trình tìm kiếm, Tabu Search cho phép di chuyển đến một lời giải láng giềng làm tồi đi giá trị của hàm mục tiêu so với lời giải hiện tại, tuy nhiên lời giải láng giềng này được chọn từ một tập láng giềng 𝑁∗ đã được thay đổi so với tập láng giềng ban đầu N Sự thay đổi này

có được nhờ vào cấu trúc bộ nhớ mà Tabu Search lưu giữ trong quá trình tìm kiếm

Bộ nhớ này sẽ lưu giữ những đặc tính cấm (tabu) mà nhờ vào đó giúp loại bỏ bớt các

lời giải trong tập láng giềng N hiện tại để thu được 𝑁∗ Một cấu trúc bộ nhớ rất thường

gặp là danh sách lưu giữ các lời giải đã được thăm gần đây trong các bước di chuyển

trước đó

Một lời giải trong các bài toán tối ưu tổ hợp phức tạp thường có kích thước không nhỏ, và việc lưu giữ một danh sách toàn bộ các lời giải như vậy sẽ gây khó khăn về mặt kích thước vùng nhớ cũng như tốc độ truy vấn thông tin các đặc tính cấm để loại bỏ bớt các lời giải tại mỗi bước Do đó, Tabu Search thường chỉ lưu giữ

phần đặc tính của các lời giải đã được thay đổi trong quá trình tìm kiếm Ví dụ,

Trang 33

chu trình, chúng ta có thể lưu giữ 2 chỉ số i,j của cạnh, thay vì lưu giữ trạng thái của toàn bộ các cạnh, qua đó làm giảm đáng kể kích thước của bộ nhớ Phần đặc tính bị

cấm này thường được gọi là tabu-active, đại diện cho một move được thực hiện gần đây trong quá trình tìm kiếm Các lời giải chứa các phần đặc tính bị cấm sẽ bị loại bỏ

ra khỏi tập láng giềng N trong các move tiếp theo, qua đó đảm bảo các lời giải này sẽ

không bị thăm lại

Cấu trúc bộ nhớ của Tabu Search thường có độ dài cố định l, độ dài này được

gọi là độ dài tabu (tabu length) Song song với quá trình sử dụng bộ nhớ để lọc bỏ

những lời giải cấm trong tập láng giềng N, bộ nhớ được cập nhật liên tục: những phần

đặc tính cấm tương ứng với bước di chuyển cục bộ (local move) vừa thực hiện sẽ được cập nhật vào bộ nhớ, và phần đặc tính cấm tương ứng với bước di chuyển cục

bộ thực hiện ở l bước trước đó sẽ được loại bỏ khỏi bộ nhớ Bằng cơ chế cập nhật và

hủy bỏ như vậy, cấu trúc bộ nhớ của Tabu Search luôn đảm bảo lưu giữ thông tin

cấm của l bước di chuyển gần nhất, phản hồi và cập nhật liên tục với quá trình tìm

kiếm

b Chiến lược tìm kiếm

Khi quá trình tìm kiếm bị kẹt tại một điểm hoặc một vùng cực trị địa phương,

nó sẽ thực hiện lặp lại liên tục cùng một chuỗi các bước di chuyển, thăm lại cùng một tập các lời giải Do đó, nhờ vào việc lưu giữ một bộ nhớ có cấu trúc như đã mô tả ở phần trên, Tabu Search lái quá trình tìm kiếm thoát ra khỏi chu trình lặp đó Song song với việc sử dụng bộ nhớ, chiến lược tìm kiếm của Tabu Search cho phép di chuyển đến một lời giải có độ đo hàm mục tiêu tồi hơn so với lời giải hiện tại, qua đó cân bằng hai yếu tố cho tìm kiếm: cố gắng hướng đến lời giải có chất lượng tốt và cố gắng tìm kiếm các vùng không gian khác nhau của không gian tìm kiếm Đoạn mã giả trong đoạn code 5 sau đây trình bày một phiên bản chiến lược tìm kiếm đơn giản nhưng thường gặp của Tabu Search:

Trang 34

Code 1: Minh họa chiến lược tìm kiếm trong Tabu Search [8]

- Dòng 1-2 mô tả việc khởi tạo lời giải ban đầu là một lời giải chọn trước (có

thể chọn ngẫu nhiên hoặc dựa trên một số tiêu chí từ không gian các lời giải)

và bộ nhớ (ban đầu là một danh sách rỗng)

- Dòng 3-20 thực hiện một vòng lặp tìm kiếm, chỉ dừng lại khi đạt được trạng

thái dừng (có thể là số vòng lặp giới hạn, thời gian giới hạn, ngưỡng của hàm đánh giá, v.v ) Phía trong vòng lặp thực thi chiến lược tìm kiếm của Tabu Search

o Dòng 5 khởi tạo một danh sách rỗng các lời giải ứng cử viên Dòng

6-11 tìm kiếm lời giải tốt nhất trong tập các lời giải láng giềng N và

không nằm trong bộ nhớ tabu (tương đương với việc tìm kiếm lời giải tốt nhất trong tập láng giềng 𝑁∗)

o Dòng 13-15 thực hiện kiểm tra xem lời giải vừa tìm được có tốt hơn lời giải tốt nhất đá tìm được cho bài toán hay không, nếu có thì tiến hành cập nhật Sau đó, tiến hành di chuyển đến lời giải vừa tìm được

đó, bất kể lời giải đó có tốt hơn lời giải tốt nhất hay không

Trang 35

o Dòng 16-19 thực thi cơ chế cập nhật bộ nhớ song song với quá trình tìm kiếm Cụ thể, lời giải vừa được thăm sẽ được đưa vào bộ nhớ tabu

Bộ nhớ này có chiều dài tối đa là độ dài tabuLength l, do đó khi đã

đầy, song song với việc lưu trữ lời giải mới, bộ nhớ sẽ tiến hành “quên”

đi lời giải cũ nhất (cơ chế First In First Out), tức lời giải đã được thăm

ở l vòng lặp trước đó Lời giải vừa cập nhật vào bộ nhớ sẽ được đảm bảo không bị thăm lại ở l vòng lặp kế tiếp

- Cuối cùng, khi thực hiện xong quá trình tìm kiếm, lời giải tốt nhất tìm được sẽ

được trả về cho người quyết định

2.3.2 Quy hoạch ràng buộc

2.3.2.1 Quy hoạch ràng buộc là gì?

Quy hoạch ràng buộc (Constraint programming – viết tắt CP) là một hướng tiếp cận khác trong việc giải các bài toán tối ưu hóa tổ hợp Quy hoạch ràng buộc thực chất là một mô hình lập trình trong đó mối quan hệ giữa các biến được mô hình dưới dạng các ràng buộc Quy hoạch ràng buộc thuộc loại mô hình lập trình khai báo (Declarative programming – loại mô hình lập trình trong đó mã nguồn viết ra chỉ khai báo logic của chương trình, không biểu đạt luồng thực thi của chương trình), thể hiện

ở việc các ràng buộc không mô tả các bước thực hiện của chương trình mà chỉ biểu đạt các logic, thuộc tính mà lời giải cần phải có Do đó, quy hoạch ràng buộc thừa hưởng đầy đủ các ưu việt của loại mô hình lập trình này [2]:

- Hạn chế sự thay đổi: Do mã nguồn không biểu đạt luồng thực thi của chương trình nên dữ liệu trong chương trình sẽ rất ít khi bị thay đổi, người lập trình ít phải quan tâm đến dữ liệu bị thay đổi ở những hàm nào, luồng nào

- Giảm thiểu ảnh hưởng của các biến trạng thái: Do không cần biểu đạt luồng thực thi nên CP có thể hạn chế được các biến lưu trạng thái, do đó hạn chế được sự ảnh hưởng của các biến này lên các hàm khác nhau nếu lỗi xảy ra (VD: nếu một biến trạng thái bị lỗi và được gọi đến bởi nhiều hàm khác nhau,

Trang 36

các hàm đó sẽ đều xảy ra lỗi và người lập trình phải mất công sức hơn rất nhiều

2.3.2.2 Mô hình hóa (Modeling)

Trong phần mô hình hóa bài toán, các biến quyết định, các ràng buộc sẽ được sử dụng để mô hình hóa bài toán cần giải Một bài toán tối ưu hóa tổ hợp có thể có nhiều cách để mô hình hóa, như chúng ta đã thấy trong ví dụ về mô hình hóa bài toán TSP

ở phần 2.1.3 Tính chính xác và hiệu quả của việc mô hình hóa bài toán ảnh hưởng lớn đến tính chính xác và tốc độ trong việc tìm kiếm lời giải cho bài toán

Các ràng buộc chính là linh hồn của CP; việc lựa chọn các ràng buộc để mô hình hóa bài toán có tính chất vô cùng quan trọng đến hiệu quả của mô hình và chi phối các yếu tố khác như biến quyết định, miền quyết định Như phần 2.1.1 đã định nghĩa, một ràng buộc (constraint) là một điều kiện mà một tập hữu hạn các biến quyết định của bài toán phải thỏa mãn Trong CP, một ràng buộc có thể được coi như một phương thức (procedure), với việc một ràng buộc có thể là sự tổng hợp từ nhiều ràng buộc con khác (sub-constraint) Nhờ vào đó, một người lập trình có thể dễ dàng làm quen với quy hoạch ràng buộc, và có thể dễ dàng tự định nghĩa các ràng buộc phù hợp cho bài toán của mình Ví dụ sau đây sẽ minh họa rõ hơn về việc sử dụng các ràng buộc trong CP để mô hình hóa bài toán TSP

Trang 37

Code 2: TSP model in CP

Trong ví dụ trên, chúng tôi sử dụng minizinc (ngôn ngử sử dụng CP phổ biến và mạnh nhất hiện nay [3]) để minh họa mô hình hóa bài toán TSP theo cách mô hình hóa đầu tiên trong phần 2.1.3

- Dòng 1-3 khai báo đầu vào của bài toán, bao gồm số thành phố và mảng trọng

số khoảng cách giữa 2 thành phố

- Dòng 4 khai báo biến quyết định của bài toán (mảng succ[1 n] với succ[i] thể hiện thành phố tiếp theo trong chu trình sau thành phố i) và miền giá trị của biến

- Dòng 5 khai báo ràng buộc circuit định nghĩa trên toàn bộ mảng biến quyết

định của bài toán, thể hiện ràng buộc rằng mảng biến này phải hình thành nên

1 chu trình

- Dòng 6,7 thể hiện cách sử dụng ràng buộc để khai báo hàm mục tiêu của bài

toán (khai báo biến total và ràng buộc total bằng tổng các khoảng cách trong

chu trình)

- Dòng 8 thể hiện mục tiêu của bài toán là tìm lời giải chấp nhận được các ràng

buộc và cực tiểu hóa hàm mục tiêu (tổng khoảng cách total)

Ví dụ trên minh họa hai điều: cách sử dụng các ràng buộc như các phương thức

để định nghĩa các ràng buộc, các hàm mục tiêu khác; và cách gọi đến các ràng

buộc trừu tượng như ràng buộc circuit Các ràng buộc trừu tượng như vậy được

gọi là ràng buộc toàn cục (Global Constraint) Các ràng buộc trừu tượng này được

Trang 38

mô hình hóa từ các ràng buộc đơn giản, định nghĩa trên tập các biến quyết định

của bài toán Dưới đây là minh họa mô hình hóa ràng buộc circuit

Code 3: Ràng buôc toàn cục Circuit Ràng buộc toàn cục là một khái niệm rất quan trọng trong CP, bởi nhờ vào đó ta

có thể:

- Tái sử dụng được các ràng buộc quan trọng và phức tạp

- Giúp việc mô hình hóa bài toán dễ dàng hơn, việc đọc hiểu, mở rộng mô hình cũng trở nên đơn giản hơn

- Tối ưu mô hình hóa dễ dàng hơn (nhờ việc đảm bảo các global constraint đã được mô hình hóa tối ưu)

Có rất nhiều ràng buộc toàn cục phổ biến, được mô hình hóa trong các thư viện của các ngôn ngữ lập trình CP như minizinc, tiêu biểu có thể kể đến: alldifferent( x[1 n]) khai báo rằng các biến x[1], x[2], …, x[n] phải đôi một khác nhau, atmost(k, x[1 n], v) khai báo rằng có tối đa k biến trong mảng x[1 n] nhận giá trị v, cardinality(k, x[1 n], v) thể hiện rằng có đúng k biến trong mảng x[1 n] nhận giá trị

v, v.v…

Trang 39

2.3.2.3 Tìm kiếm (Search)

Sau khi đã mô hình hóa bài toán, người dùng có thể phát triển phần tìm kiếm lời giải cho bài toán một cách độc lập, không cần thiết phải sửa đổi hay tác động đến mô hình của bài toán Có rất nhiều phương pháp có thể áp dụng trong pha search, nhưng tựu chung lại các phương pháp này đều sử dụng việc lan truyền tổ hợp (propagation) khi giá trị của biến bị thay đổi, giúp thu được thông tin của các ràng buộc ở trạng thái hiện tại Những thông tin đó giúp chúng ta có thể lọc (filter) những miền của những biến ràng buộc còn lại chưa được gán giá trị, đánh giá hiệu quả của bước di chuyển trong tìm kiếm cục bộ, v.v… Có hai loại phương pháp chính trong Search: Phương pháp giải đúng (Complete method) và phương pháp giải xấp xỉ (Incomplete method)

2.2.3.1 Phương pháp giải đúng

Phương pháp giải đúng đảm bảo tìm được lời giải tối ưu cho bài toán Nhờ vào các ràng buộc, CP lan truyền tổ hợp (propagation) xuất phát từ một/một số biến được khởi tạo, sử dụng các ràng buộc để cắt tỉa miền của các biến Trong khuôn khổ của luận văn, chúng tôi xin giới thiệu phương pháp tìm kiếm quay lui (backtracking search) Đây là phương pháp cơ bản nhưng mạnh mẽ, được sử dụng rất phổ biến trong các search solver của CP

Tìm kiếm quay lui có thể xem như thực hiện một tìm kiếm theo chiều sâu trên cây tìm kiếm Tại một nút trên cây tìm kiếm, một biến chưa được khởi tạo sẽ được lựa chọn giá trị trong miền của biến đó để gán giá trị; mỗi lựa chọn này sẽ được đại diện bởi một nhánh rẽ từ nút để mở rộng cây tìm kiếm Ví dụ dưới đây với bài toán n-Queens sẽ minh họa cây tìm kiếm, các nút và cách thuật toán rẽ nhánh Cụ thể, tại mỗi nút, thuật toán sẽ chọn con hậu ở cột tiếp theo chưa được xếp để xếp vào bàn cờ, mỗi cách xếp là một nhánh mới của cây Sau một số bước tìm kiếm, lời giải chấp nhận được được tìm thấy

Trang 40

Hình 5: Minh họa Backtracking Search với bài toán 4-queen

Nguồn: http://ktiml.mff.cuni.cz/~bartak/constraints/propagation.html

Có nhiều cách để rẽ nhánh từ một nút, được gọi là chiến lược rẽ nhánh, ví dụ:

first fail là chiến lược ưu tiên chọn biến có kích thước miền giá trị nhỏ nhất để khởi

tạo, indomain median là chiến lược ưu tiên chọn giá trị nằm giữa trong miền của biến

để khởi tạo, etc… Lựa chọn chiến lược rẽ nhánh phù hợp có thể làm tăng hiệu quả rất lớn cho thuật toán tìm kiếm

Trong quá trình rẽ nhánh, trạng thái của các ràng buộc được lan truyền theo sự lan truyền giá trị của các biến quyết định, được gọi là lan truyền ràng buộc (constraint propagation) Có hai lợi ích lớn mà lan truyền ràng buộc đem lại Một là, trạng thái của các ràng buộc sẽ được sử dụng để kiểm tra liệu một nút trên cây tìm kiếm có thể dẫn tới được một lời giải hợp lệ hay không, nếu không thì toàn bộ cây con xuất phát

từ nút đó sẽ bị cắt bỏ khỏi quá trình tìm kiếm, nhờ đó giảm đáng kể kích thước của không gian cần tìm kiếm Hai là, nhờ vào thông tin của các ràng buộc hiện tại, các chiến lược rẽ nhánh sử dụng heuristic có thể chọn được nhánh rẽ tốt

Khi quá trình tìm kiếm gặp phải một ngõ cụt (một nút lời giải hợp lệ hoặc một

Ngày đăng: 27/02/2021, 23:57

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[10]. Mikko I. Malinen, Pasi Frọnti. Balanced K-Means for Clustering. Structural, Syntactic, and Statistical Pattern Recognition, Volume 8621 of the series Lecture Notes in Computer Science, Pages 32-41, 2014 Sách, tạp chí
Tiêu đề: K
[15]. Aloise, D.; Deshpande, A.; Hansen, P.; Popat, P. NP-hardness of Euclidean sum-of- squares clustering. Machine Learning. Pages 245–249, 2009 Sách, tạp chí
Tiêu đề: Machine Learning
[1]. Laurent Michel, Pascal Van Hentenryck. Constraint-Based Local Search. The MIT Press, 2005 Khác
[2]. Alexander Bockmayr, John N.Hooker. Constraint Programming, 2003 Khác
[6]. F.Rossi, P.VanBeek, and T.Walsh. Handbook of Constraint Programming. Elsevier, 2006 Khác
[7]. Laurent Michel, Pascal Van Hentenryck. A constraint-based architecture for local search. OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object- oriented programming, systems, languages, and applications, Pages 83-100, 2002 Khác
[8]. Fred Glover, Manuel Laguna, Rafael Marti. Principles of Tabu Search. Pages 23-1 – 23- 12, 2007 Khác
[13]. Bradley, Paul S.; Fayyad, Usama M. Refining Initial Points for K-Means Clustering. Proceedings of the Fifteenth International Conference on Machine Learning, 1998 Khác
[14]. Arthur, D.; Vassilvitskii, S. K-means++: the advantages of careful seeding. Proceedings of the eighteenth annual ACM-SIAM symposium on Discrete algorithms, Society for Industrial and Applied Mathematics Philadelphia, PA, USA.Pages 1027–1035, 2007 Khác
[16]. Lloyd, S. P. Least squares quantization in PCM. IEEE Transactions on Information Theory. Pages 129–137, 1982 Khác
[17]. Bahman Bahmani et al. Scalable K-Means++. PVLDB 5(7): 622-633, 2012 Khác
[18]. Burkhard, R., Dell’Amico, M., Martello, S. Assignment Problems (Revised reprint). SIAM, 2012 Khác

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