Tải bản đầy đủ (.pdf) (99 trang)

Một khung thức giải hệ phân cấp ràng buộc bằng tìm kiếm cục bộ ứng dụng vào bài tóan xếp thời khóa biểu trường phổ thông

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.09 MB, 99 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA TP. HỒ CHÍ MINH
KHOA CƠNG NGHỆ THÔNG TIN
WX

LƯU MINH TÙNG

MỘT KHUNG THỨC GIẢI HỆ PHÂN CẤP
RÀNG BUỘC BẰNG TÌM KIẾM CỤC BỘ ỨNG DỤNG VÀO BÀI TỐN XẾP THỜI KHĨA
BIỂU TRƯỜNG PHỔ THƠNG

CHUN NGÀNH:

KHOA HỌC MÁY TÍNH

MÃ SỐ NGÀNH:

01.02.10

LUẬN VĂN THẠC SĨ

– TP. HỒ CHÍ MINH, THÁNG 3 NĂM 2007 –


Luận văn tốt nghiệp

LỜI CẢM ƠN
.
Lời cảm chân thành xin gởi đến Ban giám hiệu, giáo viên trường Đại Học
Bách Khoa, Phòng Quản lý Khoa học sau Đại học, Khoa Công Nghệ Thông Tin đã
tạo điều kiện thuận lợi cho tơi học tập và nghiên cứu trong suốt q trình học cao
học.


Tôi xin chân thành cảm ơn các thầy cô hướng dẫn trong quá trình học cao học:
P.GS TS. Phan Thị Tươi, TS. Cao Hoàng Trụ, TS Phạm Tường Hải, TS. Dương
Tuấn Anh, TS. Nguyễn Văn Hiệp, TS. Lê Văn Trung, TS. Lê Ngọc Minh, Th.S
Nguyễn Trung Trực.
Tôi xin bày tỏ lòng biết ơn sâu sắc đến thầy TS. Dương Tuấn Anh người đã
tận tình hướng dẫn và giúp đỡ trực tiếp trong quá trình làm luận văn tốt nhiệp.

Tp. Hồ Chí Minh, Tháng 3 Năm 2007

Lưu Minh Tùng

Trang 2


Luận văn tốt nghiệp

TĨM TẮT
Tìm kiếm cục bộ là một kỹ thuật để giải các bài toán thỏa mãn ràng buộc đã
được nghiên cứu cách đây từ hơn bốn thập niên và các thành tựu trong lãnh vực
này đã cung cấp một phương pháp tiếp cận quan trọng để mô tả và giải các bài
toán trong thực tế. Năm 1992, Alan Borning đã đưa ra một cách tiếp cận mới cho
việc mơ tả bài tốn thỏa mãn ràng buộc trong đó các ràng buộc được phân cấp
thành các mức đi từ các mức ràng buộc quan trong nhất đến những ràng buộc yếu
nhất.
Năm 2004, tác giả Thân Văn Sử đề xuất một khung thức giải hệ phân cấp ràng
buộc trên miền trị hữu hạn bằng tìm kiếm cục bộ dựa trên giải thuật tìm kiếm với
bước đi ngẫu nhiên (WSAT) với hai bước: Đầu tiên tìm một lời giải ban đầu thỏa
mãn các ràng buộc cứng mức 0. Sau đó, tinh chế lời giải ban đầu để có được lời
giải chất lượng cao hơn với mức thỏa mãn của phân cấp được nâng cao dần nhưng
vẫn bảo tồn tính đơn vị của mỗi mức trong phân cấp.

Luận văn này, tiếp tục nghiên cứu và ứng dụng khung thức giải thuật đã được
đề xuất của tác giả Thân Văn Sử cho lớp bài toán xếp lịch nhằm xác định khả năng
áp dụng khung thức giải thuật trên cho các lớp bài tốn khác nhau đồng thời đánh
giá tính đúng đắn của khung thức trên.
Với khung thức đã được đề xuất như trên, nghiên cứu này xây dụng một bộ
giải hướng đối tượng cho hệ phân cấp ràng buộc trên miền trị hữu hạn bằng tìm
kiếm cục bộ và áp dụng bộ giải này vào bài toán cụ thể là xếp thời khóa biểu cho
trường phổ thơng.

Trang 3


Luận văn tốt nghiệp

MỤC LỤC
Chương 1 Giới thiệu .........................................................................................................7
1.1
Hệ phân cấp ràng buộc.........................................................................................7
1.2
Tìm kiếm cục bộ ..................................................................................................7
1.3
Phạm vi và mục tiêu của đề tài ............................................................................8
1.4
Đóng góp của luận văn ........................................................................................8
1.5
Tổ chức luận văn..................................................................................................9
Chương 2 Cơ sở lý thuyết ...............................................................................................10
2.1
Tìm kiếm cục bộ và những giải thuật ................................................................10
2.1.1

– Giải thuật tìm kiếm cục bộ cơ bản ..........................................................10
2.1.2
– Các vấn đề cơ bản của kỹ thuật tìm kiếm cục bộ....................................11
2.1.3
– Lời giải ban đầu ......................................................................................11
2.1.4
– Mô tả tập lời giải kế cận và cơ chế chọn bước chuyển. ..........................12
2.1.5
– Vấn đề ngưng lặp trong các giải thuật tìm kiếm cục bộ .........................13
2.1.6
– Các giải thuật tìm kiếm cục bộ ...............................................................13
2.2
Hệ phân cấp ràng buộc.......................................................................................19
2.2.1
Các khái niệm ............................................................................................19
2.2.2
Các cơng trình nghiên cứu liên quan đến hệ phân cấp ràng buộc..............23
- Các giải thuật giải hệ phân cấp ràng buộc bằng phương pháp chính xác................23
- Cơng trình của tác giả Lee Sheet Chong .................................................................25
- Cơng trình của tác giả Thân Văn Sử........................................................................26
2.3
Kết chương.........................................................................................................26
Chương 3 Khung thức giải hệ phân cấp ràng buộc bằng tìm kiếm cục bộ .....................27
3.1
Nhận xét chung về bài toán ràng buộc có phân cấp...........................................27
3.2
Một số vần đề khi giải hệ ràng buộc có phân cấp..............................................28
3.3
Khung thức giải thuật.........................................................................................29
3.4

Các bước chọn lựa .............................................................................................31
3.4.1
Cơ chế ràng buộc được cải thiện................................................................31
3.4.2
Cơ chế chọn bước chuyển và đa dạng hóa vùng tiềm kiếm.......................32
3.5
Tiêu chuẩn ngưng lặp.........................................................................................34
3.6
Sơ lược về bộ giải ..............................................................................................34
Chương 4 Ứng dụng bộ giải vào bài tốn xếp lịch trường phổ thơng ............................40
4.1
Bài tốn thời khóa biểu trường phổ thơng .........................................................40
4.1.1
Mơ tả ..........................................................................................................40
4.1.2
Các ràng buộc trong việc lập thời biểu: .....................................................40
4.1.3
Tổ chức trường học:...................................................................................42
4.1.4
Tính tương đối của lời giải:........................................................................42
4.1.5
Sắp thời khố biểu bằng tay:......................................................................43
4.2
Mã hóa bài tốn..................................................................................................43
4.2.1
Nhận diện biến, miền trị.............................................................................43
4.2.2
Cách xác định bước chuyển và heuristic....................................................45
4.2.3
Nhận diện và phân cấp ràng buộc ..............................................................47

4.3
Cơ sở dữ liệu bài toán xếp lịch ..........................................................................49
4.4
Cấu trúc dữ liệu hỗ trợ lập trình.........................................................................51
4.5
Xây dựng lời giải ban đầu..................................................................................63
4.6
Mơ hình cụ thể của bài tốn...............................................................................68
4.6.1
Thiết kế lớp cho bài tốn............................................................................68
4.6.2
Một số giải thuật chính sử dụng trong chương trình..................................75
4.7
Kết quả thực nghiệm ..........................................................................................81
Trang 4


Luận văn tốt nghiệp
4.8
Kết chương.........................................................................................................85
Chương 5 Kết luận..........................................................................................................86
Tài liệu tham khảo .............................................................................................................89
Phụ lục A: Giải thuật tô màu đồ thị...................................................................................91
1. Khái niệm đồ thị.....................................................................................................91
2. Bài tốn tơ màu đỉnh đồ thị....................................................................................91
3. Giải thuật tô màu đồ thị .........................................................................................92
Phụ lục B: Demo sử dụng chương trình ...........................................................................95
Bảng thuật ngữ Anh-Việt đối chiếu....................................................................................98

Trang 5



Luận văn tốt nghiệp

Danh mục bảng
Bảng 4.1 Kết quả tối ưu ràng buộc mềm……………………………………………..85
Bảng 4.2 Kết quả tối ưu ràng buộc mềm (nguồn [14])…………………………….85

Trang 6


Luận văn tốt nghiệp

Chương 1 Giới thiệu
Chương này giới thiệu chung về đề tài. Bao gồm nội dung nghiên cứu của đề
tài, phạm vi và giới hạn của đề tài, đóng góp của luận văn và cấu trúc của luận
văn.

1.1 Hệ phân cấp ràng buộc
Hệ phân cấp ràng buộc (constraint hierarchy) được là một nhóm tập hợp của các
ràng buộc đã được gán nhãn. Cho một phân cấp H, các tập H0, H1 , H2 … trong đó
H0 là tập chứa các ràng buộc cứng, tập Hi là tập chứa các ràng buộc có nhãn mức i.
Vì n là mức cuối nên hiển nhiên Hk = ∅ với k>n
Hệ phân cấp ràng buộc Borning và cộng sự đưa ra năm 1992 [2]. Đến nay đã có rất
nhiều bài tốn ở rất nhiều lĩnh vực cả ở mức lý thuyết cũng như mức ứng dụng đã
được nhiều tác giả nghiên cứu và áp dụng.
Hệ phân cấp ràng buộc rất tiện lợi cho việc giải các bài toán ràng buộc quá mức
(over-constrained), bên cạnh đó hướng tiếp cận PCSP (bài tốn thỏa mãn ràng
buộc riêng phần) để giải quyết cho bài toán ràng buộc q mức cũng được nhiều
cơng trình nghiên cứu.

Hệ phân cấp ràng buộc trên miền trị hữu hạn đã từng được giải bằng phương pháp
chính xác (tìm kiếm theo hệ thống) nhưng có rất ít cơng trình nghiên cứu giải
chúng bằng tìm kiếm cục bộ. Việc nghiên cứu và áp dụng chúng vào các bài toán
ứng dụng thực tế là rất cần thiết.

1.2 Tìm kiếm cục bộ
Tìm kiếm cục bộ (local search) là tên gọi được đặt cho một họ các kỹ thuật để giải
các bài tốn tìm kiếm và bài toán tối tưu, được phát triển từ đầu những năm 1960,
xuất phát từ những nghiên cứu trong các lĩnh vực lập trình máy tính, nghiên cứu
tác vụ, trí tuệ nhân tạo.

Trang 7


Luận văn tốt nghiệp

Các giải thuật tìm kiếm cục bộ là các giải thuật tìm kiếm khơng-hệ thống theo
nghĩa “khơng bảo đảm được lời giải tối ưu” và việc tìm kiếm sẽ kết thức khi phát
hiện một tiêu chuẩn thỏa mãn được định trước. Tìm kiếm cục bộ đặt biệt thích hợp
với các bài tốn quy mơ lớn, tập ràng buộc nhiều và phức tạp. Mặc dù tìm kiếm
cục bộ chỉ đưa lại lời giải cận tối ưu nhưng các kỹ thuật này vẫn thu hút nhà
nghiên cứu quan tâm vì tính hữu hiệu và khả năng áp dụng vào thực tế của chúng.

1.3 Phạm vi và mục tiêu của đề tài
Với mục đích phát triển và ứng dụng khung thức giải hệ phân cấp ràng buộc bằng
tìm kiếm cục bộ với các mục tiêu như sau:
1. Tìm hiểu hệ phân cấp ràng buộc.
2. Tìm hiểu kỹ thuật tìm kiếm cục bộ (cụ thể là giải thuật WSAT) để áp
dụng vào việc giải hệ phân cấp ràng buộc trên miền trị hữu hạn.
3. Tìm hiểu bài tốn xếp lịch trường phổ thông

4. Hiệu chỉnh khung thức giải thuật giải hệ phân cấp ràng buộc bằng tìm
kiếm cục bộ (Thân Văn Sử, 2004 [11]) để giải bài toán xếp lịch trường
phổ thơng.
5. Thực nghiệm bộ giải ứng dụng vào bài tốn xếp lịch trường phổ thông
nhằm đánh giá khả năng áp dụng và tính đúng đắn của khung thức giải
thuật đã đề xuất.

1.4 Đóng góp của luận văn
Từ những mục tiêu đưa ra qua quá trình nghiên cứu những kết quả chính của đề tài
bao gồm:
1. Đánh giá một số giải thuật giải hệ phân cấp ràng buộc, cũng như các giải
thuật tìm kiếm cục bộ.
2. Cải tiến khung thức giải thuật giải hệ phân cấp ràng buộc bằng tìm kiếm
cục bộ.
3. Hiện thực bộ giải hệ phân cấp ràng buộc, sử dụng môi trường VC++ .
4. Áp dụng thành công bộ giải vào việc giải bài toán xếp lịch trường phổ
thông với kết quả khả quan và thời gian chạy giải thuật tương đối nhanh
so với giải thuật tìm kiếm Tabu và giả thuật mô phỏng luyện kim.

Trang 8


Luận văn tốt nghiệp

5. Đánh giá khả năng áp dụng của khung thức giải thuật vào lớp bài toán
xếp lịch với các hạn chế và ưu điểm.

1.5 Tổ chức luận văn
Với các mục tiêu đề ra, luận văn được tổ chức bao gồm các chương sau:
Chương 2: Cơ sở lý thuyết: Trình bày các lý thuyết sơ sở sử dụng trong luận

văn bao gồm: các giải thuật tìm kiếm cục bộ và hệ phân cấp ràng buộc.
Chương 3: Đưa ra nhận xét và các yêu cầu của bộ giải hệ phân cấp ràng buộc
. Phân tích khung thức giải thuật giải hệ phân cấp ràng buộc bằng tìm kiếm cục bộ
trên miền trị hữu hạn (Thân Văn Sử, 2004 [11]) và đưa ra bộ giải phù hợp với bài
toán xếp lịch trường phổ thông
Chương 4: Ứng dụng bộ giải vào bài tốn xếp lịch trường phổ thơng.
Chương 5: Trình bày đánh giá, kết luận và hướng phát triển của đề tài

Trang 9


Luận văn tốt nghiệp

Chương 2 Cơ sở lý thuyết
Trong chương này trình bày nội dung cơ sở lý thuyết để giải quyết bài toán bao
gồm các khái niệm và các giải thuật tìm kiếm cục bộ cơ bản. Định nghĩa hệ phân
cấp ràng buộc, các giải giải thuật hệ phân cấp ràng buộc, phần cuối là các cơng
trình liên quan đến hệ phân cấp ràng buộc.

2.1 Tìm kiếm cục bộ và những giải thuật
2.1.1

– Giải thuật tìm kiếm cục bộ cơ bản

Ý tưởng của giải thuật tìm kiếm cục bộ có thể được mơ tả như sau: tìm lời
giải ban đầu s trên khơng gian tìm kiếm S (tác vụ InitSolution), rồi tiến hành lặp
tinh chỉnh chất lượng lời giải. Tại mỗi bước lặp, gọi M là tập tất cả các bước
chuyển từ lời giải hiện hành s, chọn một bước chuyển khả thi m trong tập con
M’ ⊆ M dựa vào hàm chi phí f và tập lời giải kế cận N rồi thực hiện bước chuyển m
để chuyển lời giải s thành lời giải s0. Hình 2.1.1 minh họa mã giả của giải thuật tìm

kiếm cục bộ tổng quát . Giải thuật thường được điều khiển bằng hai tham số: (1)
MaxCost: Chi phí lớn nhất có thể chấp nhận được và (2) MaxMoves: Số bước
chuyển lớn nhất cho phép.

Procedure LocalSearch (S,f,MaxCost,MaxMoves)
Đầu vào: khơng gian tìm kiếm S, hàm chi phí f,
Chi phí tối đa MaxCost, số bước chuyển tối đa MaxMoves
Đầu ra: Lời giải cận tối ưu
Begin
s:=InitialSolution(S);
TotalMoves:=0;
While (f(s)>MaxCost and TotalMovesBegin
M’Å GenerateLocalMoves(s,f,TotalMoves,MaxMoves);
If (M’ ≠ ∅ ) then MakeLocalMove(s,M’,TotalMoves)
End;
End;

Hình 2.1. Giải thuật tìm kiếm cục bộ cơ bản

Trang 10


Luận văn tốt nghiệp

Cơ chế xác định tập con M’ ⊆ M (thủ tục GenerateLocalMoves) và cơ chế
chọn bước chuyển m (thủ tục MakeLocalMove) sẽ ấn định phương pháp tìm kiếm
cục bộ cụ thể để có các tên gọi khác nhau như: Giải thuật leo đồi (Hill-Climbing),
giải thuật tìm kiếm Tabu (Tabu Search), giải thuật tìm kiếm với bước đi ngẫu nhiên
(Walk Search, WSAT),… Chi tiết về các giải thuật này sẽ được trình bày ở các

đoạn sau.
Trong giải thuật GenerateLocalMoves, các cơ chế khác nhau được dùng
nhằm đa dạng hố vùng tìm kiếm để tránh các trạng thái tối ưu cục bộ có thể rất
phức tạp.
Trong giải thuật MakeLocalMove, việc chọn một bước chuyển thường áp
dụng cách chọn ngẫu nhiên một bước chuyển trong tập các bước chuyển khả thi
(kết quả của thủ tục GenerateLocalMoves).
2.1.2 – Các vấn đề cơ bản của kỹ thuật tìm kiếm cục bộ

Một trong những vấn đề chính được quan tâm đối với các kỹ thuật tìm kiếm
cục bộ là cách thốt khỏi những tình huống tối ưu cục bộ (local optimal) của hàm
chi phí vì lời giải tốt nhất có thể khơng nằm trong vùng lân cận của lời giải đang
được xem xét. Tuy nhiên, ngay cả việc sử dụng các cơ chế đặc biệt nhất để thoát
khỏi chúng (như kỹ thuật giả lập luyện kim, kỹ thuật tìm kiếm Tabu,…) cũng
khơng đem lại kết quả tối ưu cho mọi bài toán. Do vậy các thủ tục tìm kiếm cần
phải dùngmột số chiến lược đa dạng hóa vùng tìm kiếm để khơng những chỉ cho
phép thốt khỏi tình huống tối ưu cục bộ, mà cịn có thể tránh xa sang vùng khác
nhằm tránh được các bẫy quanh trạng thái tối ưu cục bộ.
Các vấn đề cơ bản của kỹ thuật cơ bản mà giải thuật nào cũng phải xét đến
bao gồm:
(1) Phương pháp tìm lời giải ban đầu.
(2) Cơ chế xác định tập bước chuyển khả thi và cơ chế chọn bước chuyển.
(3) Điều kiện ngưng quá trình lặp tối ưu lời giải.
2.1.3 – Lời giải ban đầu

Lời giải ban đầu trong giải thuật tìm kiếm cục bộ đóng vai trị khởi tạo trị
ban đầu cho các biến để từ đó tinh chỉnh chất lượng lời giải. Tuy nhiên, chất lượng
của lời giải ban đầu có thể ảnh hưởng lên hiệu suất của một giải thuật tìm kiếm cục
Trang 11



Luận văn tốt nghiệp

bộ. Một lời giải ban đầu có chất lượng càng cao thì chi phí cho việc tinh chỉnh lời
giải càng thấp vì số bước chuyển cần thiết trên lời giải này sẽ nhỏ hơn. Tuy nhiên
chi phí cho việc tìm một lời giải ban đầu có chất lựơng khá tốt có thể q cao so
với chi phí chu của cả giải thuật. Do vậy, việc chọn giải thuật tìm lời giải bài tốn
là một yếu tố thường được cân nhắc cho mỗi bài tốn.
Các cách thơng dụng để tìm lời giải ban đầu:
1) Gán trị ngẫu nhiên cho các biến của bài toán.
2) Gán giá trị cho các biến theo một khuôn mẫu (pattern) phụ thuộc bài toán.
3) Dùng một giải thuật tham lam hay một giải thuật tìm kiếm có hệ thống để tạo
lời giải ban đầu.
2.1.4 – Mô tả tập lời giải kế cận và cơ chế chọn bước chuyển.

Từ lời giải s, tập lời giải “lân cận” N(s) của s là những lời giải trong đó gán
một vài biến vào các trị khác với trị đã được gán cho chúng trong s. Như thế, một
bước chuyển là khả năng gán lại một trị mới NewValue vào một biến xi sao cho lời
giải có chất lượng cao hơn (sai số nhỏ hơn lời giải trước ) và tập lời giải kế cận có
thể được mơ tả bằng:
N ( s ) = {< x1 , NewValue >| NewValue ∈ D( xi )
e(cθ | xi → NewValue) < e(cθ ), ∀c ∈ C}

Với định nghĩa cơ bản trên, N(s) có thể có kích thước rất lớn. Do vậy, trong nhiều
giải thuật đã được đề xuất, chỉ một tập tập con Var-Values(s) của N(s) được xem
xét tại mỗi bước lặp bằng hai bước:
Bước 1: Chọn trước một ràng buộc c đang bị xung đột có thể có kết hợp với các
yếu tố như: lấy ngẫu nhiên, xác suất, độ ưa thích, trọng số… Chính xác yếu tố
được xem xét này đóng vai trị tạo ra một khả năng đa dạng hóa vùng tìm kiếm và
tránh trạng thái tối ưu cục bộ.

Bước 2: Gọi Vars(c) là tập các biến bị ảnh hưởng bởi ràng buộc c. Chọn một cặp
<biến, trị> trong tập Var-Varlues(c) dựa trên hàm mục tiêu (ở đây mang ý nghĩa
sai số). Cách chọn cặp <biến, trị> thường được dùng là cơ chế ngẫu nhiên hoặc
phép so sánh dựa trên sai số.
Var − value(c) = {xi , NewValue >| xi ∈ Vars(c), NewValue ∈ D( xi ),
Trang 12


Luận văn tốt nghiệp
c chưa thoả mãn, e(s'| x i = NewValue) ≤ e( s)}

Để tránh những bước lặp lại trạng thái cũ, có thể cần đến một cấu trúc theo dõi
(historical list) để cấm những bước chuyển đã từng được thực hiện (giải thuật tìm
kiếm Tabu, giải thuật HSAT, giải thuật Novelty…)
2.1.5 – Vấn đề ngưng lặp trong các giải thuật tìm kiếm cục bộ

Chất lượng của lời giải cuối cùng tỉ lệ thuận với số bước lặp, rất khó xây
dựng một tiêu chuẩn ngưng lặp chung cho mọi bài toán. Do vậy tiêu chuẩn ngưng
lập thường là các tham số mang tính thực nghiệm phụ thuộc bài tốn. Tuy nhiên,
các tiêu chuẩn ngưng lặp thường được chọn là tổ hợp của các yếu tố sau:
(1) Ấn định trước chi phí của lời giải.
(2) Ấn định trước số bước lặp.
(3) Một trạng thái biết trước của bài toán hoặc một yêu cầu của người sử dụng.
Từ giải thuật tìm kiếm cục bộ cơ bản nêu trên, nhiều nghiên cứu đã được tiến
hành và một số họ giải thuật đã được đề xuất. Một số họ thông dụng được đề
cập ở mức cơ bản bao gồm:
Giải thuật leo đồi (Hill - Climbing)
Giải thuật tìm kiếm tabu (Tabu Search)
Giải thuật tìm kiếm với bước đi ngẫu nhiên (WSAT)
Giải thuật mô phỏng luyện kim (Simulated Annealing)

2.1.6 – Các giải thuật tìm kiếm cục bộ

2.1.6.1 Giải thuật leo đồi

Giải thuật leo đồi (Hill – Climbing algorithm) là giải thuật cơ bản nhất
trong các kỹ thuật tìm kiếm cục bộ dựa trên ý tưởng chỉ xem xét các bước chuyển
có cải thiện được hàm mục tiêu. Đây là một giải thuật đơn giản nhưng lại rất mạnh
và hiệu quả trong việc giải rất nhiều bài tốn thỏa mãn ràng buộc. Trong q trình
tinh chế lời giải, nếu khơng thể tìm được một bước chuyển có cải thiện được hàm
mục tiêu, giải thuật sẽ dừng dù lời giải hiện hành chưa phải là lời giải tối ưu tồn
cục. Hình 2.2 minh họa khung thức chung cho hai thủ tục chính của giải thuật leo
đồi với bước chuyển ngẫn nhiên, giải thuật cơ bản nhất của họ kỹ thuật này.
Trang 13


Luận văn tốt nghiệp

2.1.6.2 Giải thuật tìm kiếm Tabu

Chiến lược của kỹ thuật tìm kiếm Tabu là lưu trữ các bước chuyển đã đi qua
trong một danh sách và cấm không cho phép quay lại một bước chuyển cũ sau một
số bước chuyển cho trước được quyết định bởi kích thước của danh sách. Một
bước chuyển được chọn phải là một bước chuyển không bị cấm hoặc là một bước
chuyển bị cấm nhưng tại thời điểm đang xét lại tạo ra được một cải thiện đáng kể
trên hàm mục tiêu (tiêu chuẩn kỳ vọng). Hình 2.3 trình bày khung thức chung của
kỹ thuật này.
Sự khác biệt của kỹ thuật tìm kiếm Tabu so với giải thuật LocalSearch cơ
bản ở chỗ cần đến một danh sách tabu gọi là TabuList, danh sách này đựơc khởi
tạo ngay sau khi tìm được lời giải ban đầu.
Giải thuật tabu phản ứng (RTS – reactive tabu search)

Một nguyên tắc thường được đồng ý là: Nếu càng nhiều lần phải xem xét lại
cùng một lời giải thì càng cần đa dạng hố vùng tìm kiếm và nếu càng ít phải xem
xét lại một lời giải thì càng cần nhiều bước tìm kiếm tập trung để khơng bỏ sót lời
giải hứa hẹn. Dựa vào nguyên tắc này, giải thuật Tabu phản ứng sử dụng danh
sách Tabu có kích thước thay đổi động cùng với sự kết hợp của hai cơ chế tìm
kiếm.
(1) Tìm kiếm tập trung: Được áp dụng khi các bước chuyển cũ ít được
viếng, kích thước danh sách Tabu cần có trị nhỏ để giảm xác suất tìm kiếm rộng
(tăng xác suất tìm kiếm tập trung).
(2) Tìm kiếm rộng: Được áp dụng khi những bước chuyển cũ được viếng lại
nhiều lần, số bước chuyển bị cấm cần lớn để đa dạng hóa vùng tìm kiếm.
Điểm then chốt trong giải thuật Tabu phản ứng là cơ chế xác định lúc nào
cần tìm kiếm tập trung và lúc nào cần tìm kiếm rộng. Hertz và cơng cụ ([2]) đề
xuất cơ chế cập nhật động hàm mục tiêu để thưởng hoặc phạt tùy thuộc vào tần
suất một bước chuyển cũ được thực hiện lại, còn R. Battiti và G. Tecchiollli ([3])
lại quản lý cơ chế tìm kiếm bằng chu kỳ T thay đổi động theo số chứng cứ dựa trên
số bước chuyển cũ được sử dụng lại.

Trang 14


Luận văn tốt nghiệp

Procedure GenerateLocalMoves (s, f, Totalmoves, MaxMoves)
Đầu vào: Lời giải hiện hành s, , hàm chi phí f,
Tổng số bước chuyển hiện hành TotalMoves,
Số bước chuyển tối đa MaxMoves.
Đầu ra: Tập bước chuyển khả thi M’ từ s
Begin
M’←

bestCost ←f(s)
for all v V do
if v là biến đang gây xung đột
Begin
Dcur ← Miền trị hiện hành của v
dcur ←Trị hiện hành của biến v
for all d Dcur do if d ≠ dcur then
Begin
m←{vi,d}

if f(s m) ≤ BestCost then
Begin
if f(s m)< BestCost then
Begin
M’←

bestCost ← f(s m)
End
M←M’

{M}

End
End
End
if M’= then TotalMoves = MaxMoves
Return M’
End

Hình 2.2 Giải thuật leo đồi (Nguồn [1])


Trang 15


Luận văn tốt nghiệp

Procedure MakeLocalMove (s, M’, TotalMoves, TabuList)
Begin
M ←Bước chuyển ngẫu nhiên trong M’
S ← s m;
TotalMoves ← TotalMoves+1
Thêm m vào TabuList
End
Hình 2.3 Giải thuật tìm kiếm Tabu (Nguồn [1])

Trang 16


Luận văn tốt nghiệp
2.1.6.3 Giải thuật tìm kiếm với bước đi ngẫu nhiên.

Giải thuật tìm kiếm với bước đi ngẫu nhiên (WSAT) là một cải tiến của giải
thuật leo đồi dựa trên xác suất để chọn một biến hoặc xem xét tất cả các biến của
ràng buộc đang được cải thiện. Khung thức của giải thuật này (hình 2.4)

Hình 2.4 Giải thuật tìm kiếm với bước đi ngẫu nhiên (Nguồn [1])
Trang 17


Luận văn tốt nghiệp


2.1.6.4 Giải thuật mô phỏng luyện kim

Giải thuật giả lập luyện kim (SA, Simulated Annealing), đúng như tên gọi,
là một ánh xạ của kỹ thuật luyện kim vật lý thành một giải thuật tìm kiếm lời giải
tối ưu và các ý tưởng chính của giải thuật này đã được trình bày như Hình 2.5.

Procedure SimulatedAnnealing (S, f, T0, α, nrep)
Đầu vào: Khơng gian tìm kiếm S, nhiệt độ ban đầu T0, hệ số giảm nhiệt α hàm chi
phí f, tập lời giải kế cận N, số bước lặp nrep với T0 >0, 0< α <1, nrep>0
Đầu ra: Lời giải tối ưu cục bộ s0
Begin
s0 ← InitSolution (S)
T ← T0
Repeat
Count ← 0
s← Lời giải ngẫu nhiên trong N(S)
d ←f(s) –f(s0)
if d<0 then s0=s
else Begin
x ← Trị ngẫu nhiên thuộc [0,1]
if x < e-d/T then s0=s
End
Count ← Count +1
Until Count = nrep
T ← αT
Until T ≤ T0
Return s0
End


Hình 2.5 Giải thuật Mô phỏng luyện kim (Nguồn [1])

Trang 18


Luận văn tốt nghiệp

2.2 Hệ phân cấp ràng buộc
Hệ phân cấp ràng buộc được Borning giới thiệu với khái niệm chính sau:
2.2.1 Các khái niệm
– Định nghĩa ràng buộc

Một ràng buộc (constraint) là một quan hệ trên một số miền trị D nào đó.
Miền trị xác định tập ký hiệu vị từ ràng buộc Π D mà có chứa đựng kí hiệu =.
Một ràng buộc là một biểu thức có dạng p (t1,t2,…, tn) trong đó p là một ký hiệu nngôi (n-ary) trong tập Π D và mỗi ti là một toán hạng (term).
– Ràng buộc được gán nhãn

Ràng buộc được gán nhãn (labeled constraint) là một ràng buộc được gán
một gía trị mơ tả mức độ cần phải thỏa mãn, ký hiệu là sc (strength constraint).
Nhãn của ràng buộc thường được gán bằng một số nguyên 0,1,2 … theo thứ tự:
Nhãn càng bé, yêu cầu cần phải thỏa mãn càng cao. Một ràng buộc có nhãn i được
gọi là ràng buộc mức i. Bản chất của việc gán nhãn cho ràng buộc này là ấn định
mức độ ưu tiên cần thỏa mãn cho từng ràng buộc.
– Hệ phân cấp ràng buộc

Hệ phân cấp ràng buộc là một nhóm tập hợp của các ràng buộc đã được gán
nhãn. Cho một phân cấp H, các tập H0, H1 , H2 … trong đó H0 là tập chứa các ràng
buộc cứng, tập Hi là tập chứa các ràng buộc có nhãn mức i.
Vì n là mức cuối nên hiển nhiên Hk = ∅ với k>n
– Lời giải và tập lời giải của hệ phân cấp ràng buộc


- Lời giải trong phân cấp H là một phép gán trị cho các biến tự do trong
phân cấp H, nghĩa là ánh xạ các biến tự do trong H vào miền D.
Gọi S là tập các lời giải của H. Rõ ràng mỗi lời giải trong S sau khi được áp
dụng thì các ràng buộc cứng phải được thỏa và các ràng buộc mềm cũng cần được
thỏa mãn càng nhiều càng tốt theo mức ưu tiên đã định trước.
– Phép so sánh tốt hơn

Better (σ ,θ , H ) cho kết quả true nếu phép gán trị σ tốt hơn phép gán trị θ
trong phân cấp H .

Trang 19


Luận văn tốt nghiệp
– Tìm tập lời giải S

Gọi S0 là tập các lời giải để tập các ràng buộc H0 thỏa mãn. Sử dụng S0, định
nghĩa tập các lời giải có cải thiện S bằng cách loại bỏ tất cả các lời giải kém hơn
một số phép tính tốn khác nhờ vào vị trí từ better.
Hiển nhiên ta có S ⊆ S0.
Gọi c θ là một giá trị boolean chỉ thị khả năng được thỏa mãn của ràng
buộc c khi được áp dụng phép gán trị θ . Ta nói rằng “c θ thỏa mãn” nếu có
c θ =true.
S0={ θ | ∀c ∈ H 0 , cθ = true }
S = {θ θ ∈ S0 , ¬better (σ ,θ , H )}

Dễ dàng chứng minh được: vị từ better có tính khơng-phản xạ và có tính
truyền.
∀θ , ∀θ , ¬better (θ ,θ , H )

∀θ , σ ,τ , ∀H , better (θ , σ , H ) ∧ better (σ ,τ , H ) → better (θ ,τ , H )

Tuy nhiên, vị từ better không cung cấp một thứ tự tồn phần trong tập các
lời giải. Có thể tồn tại hai lời giải σ ,θ và chúng không tốt hơn so với nhau.
Vị từ better vẫn tôn trọng phân cấp, nghĩa là nếu một số lời giải trong S0
thỏa mãn hoàn toàn tất cả các ràng buộc trong Hk thì các lời giải trong S cũng thỏa
mãn hồn tồn các ràng buộc trong Hk. Hiển nhiên vì nếu có một lời giải trong S
khơng thỏa mãn một ràng buộc trong Hk thì lời giải này kém hơn các lời giải còn
lại và qua vị từ better, lời giải này đã bị loại ra khỏi S.
Neáu ∃θ ∈ S0 ∧ ∃k > 0 để ∀i ∈ 1,...,k ∀p ∈ H i , pθ = true
thì ∀σ ∈ S ∀i ∈1,..., k ∀p ∈ H i , pσ = true
– So sánh hai lời giải:

Với hai lời giải θ , và σ trên hệ phân cấp H, hiển nhiên lời giải θ tốt hơn
lời giải σ nếu mức thỏa mãn của θ cao hơn mức mà σ thỏa mãn hay số ràng
buộc mà θ thỏa mãn ở bước i nhiều hơn số ràng buộc mà σ thỏa mãn. Một tình
huống mà các chỉ số so sánh này bằng nhau thì làm sao so sánh chúng?
Giải pháp cho tình huống này là xây dựng sai số e(c θ ) trên ràng buộc c khi
áp dụng lời giải θ , Hàm sai số này trả về một số thực mô tả mức độ “gần
Trang 20


Luận văn tốt nghiệp

thỏa mãn” đối với ràng buộc c khi áp dụng lời giải θ . Hàm sai số này phải có tính
chất
e(c θ ) = 0 nếu và chỉ nếu c θ thỏa mãn
Với mọi miền D, chúng ta có thể sử dụng các hàm tính sai số thông dụng trả
trị 0 nếu ràng buộc được thỏa mãn và trả trị 1 nếu hàm không được thỏa mãn. Một
phép so sánh (comparator) sử dụng hàm sai số này gọi là phép so sánh vị từ

(predicate comparator).
Với miền D là một khơng gian đo (metric space), chúng ta có thể dùng
chính giá trị của khơng gian này để tính tốn sai số thay vì các hàm sai số thơng
thường. Thí dụ: Sai số cho ràng buộc X=Y chính là khoảng cách giữa X và Y,
<X,Y> là tọa độ trong khơng gian đo. với phép tính sai số này, ta gọi là phép so
sánh số đo (metric comparator).
– Định nghĩa lời giải tốt – hơn cục bộ

Một phép gán trị θ là tốt hơn cục bộ ( locally-better) so với phép gán trị σ
nếu:
(i)

Với mọi mức từ 1 đến k-1, sai số cho từng ràng buộc khi áp dụng lần
lượt hai phép gán trị này đều bằng nhau và

(ii)

Ở mức k, có ít nhất một ràng buộc q là cho e(q θ )< e(q σ ) và các ràng
buộc r còn lại trong mức này e( rθ ) ≤ e( rσ ) .
locally − better (θ , σ , H ) ≡ ∃k > 0, ∀i ∈ 1..k − 1, ∀p ∈ H i , e(p θ )=e(p σ )

∧∃q ∈ H k , e(qθ ) < e(qσ )
∧ ∀r ∈ H k , r ≠ q, e(rθ ) ≤ e(rσ )

Với vị từ này, hai lời giải được so sánh có nhìn trước một mức.
– Định nghĩa lời giải tốt hơn toàn cục

Sai số kết hợp trên một mức:
Sai số kết hợp trên mức g( θ ,Hi) là sự kết hợp sai số trên toàn bộ các ràng
buộc ở mức Hi khi áp dụng phép gán trị θ

Lời giải tốt hơn toàn cục:

Trang 21


Luận văn tốt nghiệp

Một phép gán trị θ là tốt hơn toàn cục (globally-better) so với phép gán trị
σ nếu:

(i)

Với mọi mức từ 1 đến k-1, sai số kết hợp cho từng mức khi áp dụng lần
lượt hai phép gán trị này đều bằng nhau và

(ii)

Ở mức k, sai số kết hợp khi áp dụng phép gán trị θ nhỏ hơn khi áp dụng
phép gán trị σ
globally − better (θ , σ , H , g ) ≡ ∃k > 0, ∀i ∈1..k − 1, g (θ , H i )
∧ g (θ , H k ) < g (σ , H k )

Với vị từ này, hai lời giải cũng được so sánh có nhìn trước một mức
– Một số áp dụng phép so sánh toàn cục:

Từ phép so sánh globally-better với các lựa chọn hàm lượng giá g cùng với
trọng số wp kết hợp với các ràng buộc p trong mức Hp có thể có các phép so sánh:
Phép so sánh tốt hơn dựa trên tổng trọng số:
weighted − sum − better (θ , σ , H ) ≡ globally − better (θ , σ , H , g )
Trong đó: g(τ ,H i ) ≡ ∑ p ( w p e( pτ )), p ∈ H i


Phép so sánh tốt hơn dựa trên trường hợp xấu nhất
worst − case − better (θ , σ , H ) ≡ globally − better (θ , σ , H , g )
Trong đó: g(τ ,H i ) ≡ max{wp e( pτ ) | p ∈ H i }

Phép so sánh tốt hơn dựa trên bình phương sai số cực tiểu:
least − squares − better (θ , σ , H ) ≡ globally − better (θ , σ , H , g )
Trong đó: g(τ ,H i ) ≡ ∑ p ( w p e( pτ ) 2 ), p ∈ H i

– Một số biến thể của các phép so sánh

Từ các hình thức của hàm sai số e(c θ ) ở trên, có thể sử dụng hàm dạng đơn
giảm (hàm sai số trả trị 0/1 ứng với phép so sánh vị từ) hoặc dùng dạng đo đạc
được của không gian đo (hàm sai số trả trị số thực ứng với phép so sánh số đo) để
có các biến thể của các phép so sánh:
locally-predicate-better

xuất phát từ locallly-better

locally-metric-better

xuất phát từ locallly-better
Trang 22


Luận văn tốt nghiệp

globally-predicate-better

xuất phát từ globally-better


globally-metric-better

xuất phát từ globally-better

weighted-sum-predicate-better

xuất phát từ globally-better

weighted-sum-metric-better

xuất phát từ globally-better

worst -case-predicate-better

xuất phát từ globally-better

worst -case-metric-better

xuất phát từ globally-better

least-squares-predicate-better

xuất phát từ globally-better

least-squares-metric-better

xuất phát từ globally-better

Phép so sánh unsatisfied-count better là một trường hợp đặc biệt của weightedsum-predicate-better khi chọn trọng số cho mỗi ràng buộc là 1. phép so sánh này

sẽ đi đếm số ràng buộc được thỏa mãn.
Các phiên bản vị từ của phép so sánh tồn cục đặc biệt khơng hữu ích vì worstcase-predicate-better có tính chất là được tất cả hoặc khơng gì hết (all-or-nothing)
khơng giúp ích tốt cho việc trích các lời giải như các vị từ khác và vị từ leasesquares-predicate-better ln cho cùng kết quả với weighted-sum-predicate-better
vì l2 = 1.
Ngồi ra, có thể định nghĩa phép so sánh locally-error-better xuất phát từ
locally-better nhưng dựa trên sai số dùng cho các hệ ràng buộc bất đẳng thức ([5]).

2.2.2 – Các cơng trình nghiên cứu liên quan đến hệ phân cấp ràng buộc
- Các giải thuật giải hệ phân cấp ràng buộc bằng phương pháp chính xác
+ Giải thuật Blue và DeltaBlue

Do Alan Borning cùng các cộng sự giới thiệu khi đưa ra lý thuyết về hệ
phân cấp ràng buộc ([2]) dùng để giải các phân cấp ràng buộc đẳng thức khơng
chu trình dựa trên kỹ thuật lan truyền cục bộ (local propagation) : Một ràng buộc
có thể được dùng để xác định trị cho một trong các biến bất cứ khi nào các biến
còn lại của ràng buộc đã được xác định. Điều này lại làm cho một số ràng buộc
khác xác định được trị cho các biến khác của hệ thống, và cứ như thế. Sự lan
truyền cục bộ tương tự như sự lan truyền trị thông qua một mạng luồng dữ liệu
(dataflow network). Điểm khác biệt giữa chúng là : Trong khi mạng dữ liệu có một
Trang 23


Luận văn tốt nghiệp

đường lan truyền riêng duy nhất thì một tập các ràng buộc đa chiều có nhiều
đường lan truyền (propagation paths). Vì vậy, bộ giải ràng buộc (constraint
solver) phải quyết định hướng lan truyền tốt nhất sẽ được dùng.
+ Nhóm giải thuật Orange

Cũng do Alan Borning và các cộng sự giới thiệu ([2]) dùng để giải hệ ràng

buộc đẳng thức và bất đẳng thức tuyến tính. Một bất lợi của các giải thuật lan
truyền cục bộ là : Chúng khơng tin cậy trong các trường hợp có ràng buộc vòng
trên đồ thị ràng buộc. Trong một số trường hợp, các giải thuật này tìm được lời
giải khơng có vịng đối với một đồ thị có vịng, nhưng lời giải này không đáng tin
cậy. Giải thuật thường treo với đồ thị vịng cùng với một thơng báo lỗi. Hơn nữa,
nếu các ràng buộc thực sự đồng thời thì giải thuật lan truyền cục bộ khơng thể tìm
ra lời giải. Do vậy, các tác giả thiết kế tập giải thuật khác có thể giải các phân cấp
ràng buộc trên khơng gian do (metric space) chứa một số lượng tùy ý các ràng
buộc đẳng thức và bất đẳng thức tuyến tính, sử dụng các phép so sánh weightedsum-metric-better, worst-case-metric-better, locally- metric-better. Các giải thuật
này thuộc nhóm giải thuật được đặt tên là Orange.
- Bộ giải gia tăng hệ ràng buộc có phân cấp

Francisco Menezes và các cộng sự ([8]) giới thiệu bộ giải hệ phân cấp ràng
buộc có tính gia tăng (IHCS-Incremental Hierarchical Constraint Solver) được viết
bằng ngôn ngữ C, cho phép tích hợp vào nhiều mơi trường lập trình khác nhau, đặc
biệt cho phép tích hợp vào ngữ lập trình logic Prolog để có được một ngơn ngữ lập
trình logic ràng buộc phân cấp (HCLP-Hierachical Constraint Logic Programming
Language). Bộ giải gia tăng này được các tác giả xây dựng với mục tiêu làm nhân
(kernel) cho các hệ hỗ trợ quyết định dựa trên phép so sánh tốt hơn cục bộ (locallypredicate-better) tiến hành với hai pha : Pha tới (forward phase) và pha lui
(backward phase) khi gặp xung đột. Có thể nói giải thuật mà tác giả đưa là chắc
chắn cho ra lời giải tối ưu. Tuy nhiên giải thuật này là giải thuật mang tính hệ
thống, khó hiểu và khá phức tạp để áp dụng.

Trang 24


Luận văn tốt nghiệp
- Giải thuật chuyển phân cấp ràng buộc hệ ràng buộc thông thường.

Armin Wolf ([12]) giới thiệu phương pháp chuyển một hệ phân cấp ràng

buộc thành một hệ ràng buộc thơng thường tương đương nhằm có thể áp dụng các
phương pháp giải đã biết, và có thể giải các hệ ràng buộc quá mức (overconstrained)- một hệ khơng có lời giải khi giải bằng lập trình logic có ràng buộc
(CLP-Constraint Logic Programming). Các ràng buộc quá mức thường do các ràng
buộc tương phản nhau như : (X100},
H1={S=100}). Phép so sánh được tác giả sử dụng để đánh giá các lời giải là phép
so sánh dựa trên sai số. Tuy nhiên, giải thuật chuyển đổi của tác giả đưa ra khá khó
hiểu và khó hiệu lực.
-Giải thuật tạo khung cho hệ phân cấp ràng buộc

Hiroshi Hosobe ([7]) và các cộng sự lại nghiên cứu khả năng lan truyền cục
bộ và tổng quát hóa thành một khung thức (framework) cho bộ giải hệ phân cấp
ràng buộc dạng đẳng thức nhiều biến (multi-way equality constraint). Các tác giả
giới thiệu giải thuật DETAIL với độ phức tạp đa thức sau đó mở rộng cho hệ ràng
buộc bất đẳng thức với độ phức tạp hàm mũ.
Giải thuật DETAIL ban đầu là giải thuật sử dụng kỹ thuật gia tăng để giải hệ
phân cấp ràng buộc nhiều biến dạng đẳng thức dựa trên lan truyền cục bộ có xét
đến khả năng thỏa mãn đồng thời cũng như nới lỏng đồng thời các ràng buộc dựa
trên cơ chế : Đóng khối các ràng buộc và biến lại với nhau (gọi là constraint cell),
khơng có biến dùng chung giữa các khối và xử lý chung theo từng khối. Mỗi khói
có các biến nhập và biến xuất, các khối được phân thứ tự (walkabout strengths) và
các biến xuất được truyền từ khối này sang khối khác theo thứ tự. Như vậy các
ràng buộc trong một khối cùng liên quan đến một biến có thể cùng được thu giảm
hoặc cùng nới lỏng.
- Cơng trình của tác giả Lee Sheet Chong

Năm 2001, Lua Seet Chong ([3]) trong luận văn thạc sĩ của mình đã áp
dụng lý thuyết về phân cấp ràng buộc kết hợp với tìm kiếm cục bộ WSAT để giải
hai bài toán tối ưu trên miền trị hữu hạn gồm bài toán cấp phát cổng của phi trường
(Gate Allocation Problem) và bài toán lập lịch thi đáu thể thao (Sports Scheduling
Trang 25



×