i
®¹i häc th¸i nguyªn
Tr-êng ®¹i häc C¤NG NGHÖ TH¤NG TIN Vµ TRUYÒN TH¤NG
NGUYỄ NGUYỄN HỮU HỮU ĐÔNG
NGHIÊN CỨ CỨ U THUẬ THUẬT TOÁN TABU SEARCH VÀ Ứ NG NG DỤNG DỤNG VÀO BÀI TOÁN NGƢỜ I DU LỊ LỊCH
LUẬN LUẬN VĂN THẠC SĨ KHOA HỌ HỌC MÁY TÍNH
th¸i nguyªn - n¨m 2014
ố hóa S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
ii
LỜ I CẢM CẢM ƠN Để hoàn thành luận văn tốt nghiệp “ Nghiên cứ u thuật toán Tabu Search và ứ ng ng d ụng ụng
vào bài toán ngườ i du l ịch” lời đầu tiên tôi xin g ửi cám ơn sâu
sắc nhất tới GS.TS. Vũ Đức Thi đã hƣớ ng ng dẫn và chỉ bảo tôi tận tình trong suốt thờ i gian làm khóa luận. Tôi xin chân thành cảm ơn các thầy cô giáo Trƣờng Đại học Công nghệ thông tin và Truyền thông Thái Nguyên, các giảng viên đã truyền đạt những kiến thức, k ỹ năng, kinh nghiệm nghề nghiệ p..
Tôi xin chân thành cám ơn Ban giám hiệ u, tậ p thể giáo viên khoa Điện tử - Tin học Trƣờng Cao đẳng nghề Cơ điện Phú Thọ, gia đình cùng các bạ n trong lớ p cao học Khoa học máy tính khóa 2012-2014 đã tạo mọi điều kiện
giúp đỡ, động viên, chia sẻ để tôi hoàn thành bản luận văn này. Bản luận văn chắc còn nhiều thiết sót, r ất ất mong đƣợ c các thầy cô giáo trong hội đồng chấm luận văn xem xét, góp ý kiến để luận văn đƣợ c hoàn thiện hơn. Tôi xin chân thành cảm ơn!
Thái Nguyên, tháng 9 năm 2014 HỌC VIÊN
Nguyễ Nguyễn Hữu Hữu Đông
ố hóa S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
ii
LỜ I CẢM CẢM ƠN Để hoàn thành luận văn tốt nghiệp “ Nghiên cứ u thuật toán Tabu Search và ứ ng ng d ụng ụng
vào bài toán ngườ i du l ịch” lời đầu tiên tôi xin g ửi cám ơn sâu
sắc nhất tới GS.TS. Vũ Đức Thi đã hƣớ ng ng dẫn và chỉ bảo tôi tận tình trong suốt thờ i gian làm khóa luận. Tôi xin chân thành cảm ơn các thầy cô giáo Trƣờng Đại học Công nghệ thông tin và Truyền thông Thái Nguyên, các giảng viên đã truyền đạt những kiến thức, k ỹ năng, kinh nghiệm nghề nghiệ p..
Tôi xin chân thành cám ơn Ban giám hiệ u, tậ p thể giáo viên khoa Điện tử - Tin học Trƣờng Cao đẳng nghề Cơ điện Phú Thọ, gia đình cùng các bạ n trong lớ p cao học Khoa học máy tính khóa 2012-2014 đã tạo mọi điều kiện
giúp đỡ, động viên, chia sẻ để tôi hoàn thành bản luận văn này. Bản luận văn chắc còn nhiều thiết sót, r ất ất mong đƣợ c các thầy cô giáo trong hội đồng chấm luận văn xem xét, góp ý kiến để luận văn đƣợ c hoàn thiện hơn. Tôi xin chân thành cảm ơn!
Thái Nguyên, tháng 9 năm 2014 HỌC VIÊN
Nguyễ Nguyễn Hữu Hữu Đông
ố hóa S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
iii
LỜI CAM ĐOAN Vớ i mục đích học tậ p, nghiên cứu để nâng cao trình độ chuyên môn
nên tôi đã làm luận văn này một cách nghiêm túc và hoàn toàn trung thực. Trong luận văn, tôi có sử dụng tài liệu tham khảo của một số tác giả, tôi cuối luận văn. đã nêu trong phần tài liệu tham khảo ở cu Tôi xin cam đoan và chịu trách nhiệm về n ội dung, sự trung thực trong luận văn tốt nghiệ p Thạc sĩ của mình.
Thái Nguyên, tháng 09 năm 2014 HỌC VIÊN
Nguyễ Nguyễn Hữu Hữu Đông
ố hóa S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
iv
MỤC LỤC LỜI CẢM ƠN ............................................................................................................. i LỜI CAM ĐOAN ..................................................................................................... iii MỤC LỤC ................................................................................................................. iv DANH MỤC CÁC KÝ HIỆU, CÁC TỪ VIẾT TẮT ............................................... vi DANH MỤC CÁC BẢ NG....................................................................................... vii DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ ................................................................. viii MỞ ĐẦU .....................................................................................................................1 1. Lý do chọn đề tài .................................................................................................1 2. Mục tiêu nghiên cứu ............................................................................................1
3. Đối tƣợ ng và phạm vi nghiên cứu .......................................................................2 4. Hƣớ ng nghiên cứu của đề tài ...............................................................................2 5. Ý nghĩa khoa họ c của đề tài .................................................................................2 6. Phƣơng pháp nghiên cứ u .....................................................................................2 CHƢƠNG1: TỔ NG QUAN VỀ TÌM KIẾM ..............................................................3 1.1. Giải quyết vấn đề bằng tìm kiếm ......................................................................3 1.2. Bài toán tìm kiếm trong không gian tr ạng thái .................................................4
1.3. Các kĩ thuậ t tìm kiếm cơ bả n ............................................................................5 1.3.1. Tìm kiếm không có thông tin .....................................................................7 1.3.2. Tìm kiếm có thông tin ..............................................................................10 1.4. Bài toán tối ƣu hóa tổ hợ p ..............................................................................11 1.5. Giải thuật tìm kiếm cục bộ ..............................................................................12 1.6. Một số thuật toán tìm kiếm cục bộ cơ bản......................................................13 1.6.1. Thuật toán Leo đồ i ...................................................................................13 1.6.2. Thuật toán Luyện thép ..............................................................................17 1.6.3. Một số thuật toán tìm kiếm cục bộ khác ..................................................19
CHƢƠNG 2: TÌM KIẾM TABU ..............................................................................24 2.1. Nguyên lý chung của tìm kiếm Tabu..............................................................24 2.2. Cách sử dụng bộ nhớ ......................................................................................24 S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
v 2.3. Lậ p trình vớ i bộ nhớ thích nghi ......................................................................27 2.4. Làm việc vớ i bộ nhớ dài hạn ..........................................................................28 2.5. Tiế p cận dựa trên tần số ..................................................................................29 2.6. Chiến lƣợc Tăng cƣờ ng và chiến lƣợc Đa dạng .............................................33 2.6.1. Các chiến lƣợc tăng cƣờ ng .......................................................................34 2.6.2. Các chiến lƣợc đa dạng ............................................................................36
2.7. Dao động chiến lƣợ c .......................................................................................41 2.8. Nối lại đƣờ ng ..................................................................................................49 2.8.1. Vai trò của tăng cƣờng và đa dạ ng hóa ....................................................54 2.8.2. K ết hợ p các lờ i giải liên quan ...................................................................55
CHƢƠNG 3: Ứ NG DỤ NG THUẬT TOÁN TABU SEARCH ...............................56 VÀO BÀI TOÁN NGƢỜI DU LỊCH .......................................................................56 3.1. Lịch sử bài toán ngƣờ i du lịch ........................................................................56 3.2. Phân tích bài toán ............................................................................................58 3.3. Xây dựng ứng dụng giải quyết bài toán ..........................................................59 3.3.1. Cấu trúc dữ liệu đầu vào...........................................................................59 3.3.2. Cấu trúc chƣơng trình và mố i quan hệ giữa các lớ p chính ......................60 3.3.3. K ết quả khi chạy chƣơng trình .................................................................62
3.4. Đánh giá hiệ u quả của giải thuật tìm kiếm Tabu Search ................................65 K ẾT LUẬ N ...............................................................................................................68 1. K ết quả đạt đƣợ c của đề tài ..............................................................................68 2. Hạn chế của đề tài ..............................................................................................68
3. Hƣớ ng phát triển của đề tài................................................................................69 TÀI LIỆU THAM KHẢO .........................................................................................70
S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
vi
DANH MỤC CÁC KÝ HIỆU, CÁC TỪ VIẾT TẮT Từ viết tắt
Từ đầy đủ
Giải thích
AI
Artificial Intelligent
Trí tuệ nhân tạo
BFS
Breadth First Search
Tìm kiếm theo chiều r ộng
DFS
Depth First Search
Tìm kiếm theo chiều sâu
CNTT
Công nghệ Thông tin
Công nghệ Thông tin
CNPM
Công nghệ Phần mềm
Công nghệ Phần mềm
GA
Genetic Algorithms
Giải thuật Di truyền
LNS
Large Neighborhood Search
Tìm kiếm Lân cận lớ n
LS
Local Search
Tìm kiếm Cục bộ
LTM
Long Term Memory
Bộ nhớ dài hạn
SA
Simulated Annealing
Luyện thép
STM
Short Term Memory
Bộ nhớ ngắn hạn
TS
Tabu Search
Tìm kiếm Tabu
TTNT
Trí tuệ Nhân tạo
Trí tuệ Nhân tạo
TSP
Travelling Salesman Problem
Bài toán ngƣờ i du lịch
OR
O peration R esarch
Nghiên cứu tối ƣu
S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
vii
DANH MỤC CÁC BẢNG Bảng 2.1: Ví dụ về độ đo tần số ................................................................................31 Bảng 2.2: Bài toán sắ p công việc ..............................................................................39 Bảng 2.3 : Khởi động lại bài toán sắ p việc ...............................................................40 Bảng 2.4 : Các quyết định dao động chiến lƣợ c .......................................................42 Bảng 3.1. K ết quả tính toán bằng giải thuật quay lui ................................................65 Bảng 3.2. K ết quả tính toán bằng giải thuật Luyện thép ........................................... 65 Bảng 3.3. K ết quả tính toán bằng giải thuật Tìm kiếm Tabu ....................................65 Bảng 3.4. Tổng hợ p k ết quả tính toán của ba giải thuật............................................66
S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
viii
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ Hình 1.1. Bài toán tìm ki ếm cục bộ vớ i không gian tr ạng thái và hàm mục tiêu ..... 13 Hình 2.1: Cấu trúc bộ nhớ tìm kiếm Tabu ................................................................25 Hình 2.2: Minh họa bài toán cây tối ƣu ....................................................................27
Hình 2.3: Tăng cƣờng và đa dạng .............................................................................34 Hình 2.4: Dao động chiến lƣợc đơn giản ..................................................................44 Hình 2.5: Dao động mẫu (tăng cƣờ ng) .....................................................................44 Hình 2.6: Dao động mẫu (biến thể tăng cƣờ ng) ........................................................45
Hình 2.7: Dao động mẫu (biến thể tăng cƣờ ng) ........................................................45 Hình 2.8: Tỉ lệ mục tiêu của sự thay đổi ...................................................................48 Hình 2.9: Nối lại đƣờ ng trong không gian các lờ i giải liên quan .............................52 Hình 2.10: Nối lại đƣờ ng bằng thuộc tính thu hút ....................................................53 Hình 2.11: Ví dụ nối lại đƣờ ng .................................................................................54 Hình 3.1. Biểu diễn ma tr ận khoảng cách .................................................................60 Hình 3.2. Cấu trúc lớp chƣơng trình Tabu ................................................................61 Hình 3.3. Cấu trúc lớp chƣơng trình giải thuật Luyện thép ......................................62 Hình 3.4. Cấu trúc lớp chƣơng trình giải thuật Quay lui ..........................................62 Hình 3.5. K ết quả chƣơng trình bằng giải thuật Tabu vớ i 30 thành phố khở i tạo ngẫu nhiên ..........................................................................................................................63 Hình 3.6. K ết quả chƣơng trình bằng giải thuật Tabu vớ i 50 thành phố đọc dữ liệu từ tệ p ..........................................................................................................................64 Hình 3.7. K ết quả chƣơng trình bằng giải thuật Luyện thép vớ i 15 thành phố đọc dữ liệu từ tệ p ...................................................................................................................64
Hình 3.8. Đồ thị biểu diễn thờ i gian chạy của 3 giải thuật .......................................67
S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
1
MỞ ĐẦU 1. Lý do chọn đề tài Lớ p các bài toán t ối ƣu hóa tổ hợ p xuất hiện trong nhiều lĩnh vực quan tr ọng trong cuộc s ống: Tin học, tài chính, lậ p l ịch, sản xu ất...và lớ p bài toán có nhiều ứng dụng trên thực tế, một số bài toán kinh điển trong các bài toán
này: Bài toán ngƣờ i du lịch, bài toán n – queens, bài toán tô màu đồ thị, bài toán xế p lịch tr ực y tá, bài toán tìm tậ p phủ đỉnh của đồ thị..... Lớ p các bài toán t ối ƣu tổ hợp thƣờ ng các tậ p không gian tr ạng thái lớ n mà không thể sử dụng các phƣơng pháp tìm kiếm thông thƣờng để xem xét tất cả không gian tr ạng thái. Tìm kiếm cục bộ đƣợ c thiết k ế cho bài toán tìm kiếm vớ i không gian tr ạng thái r ất l ớ n và cho phép tìm kiếm tr ạng thái tƣơng
đối tốt vớ i thờ i gian tìm ki ếm chấ p nhận đƣợ c. Tuy nhiên phƣơng pháp tìm kiếm cục bộ vẫn còn một số nhƣợc điểm: Thờ i gian giải quyết các bài toán có thể v ẫn còn dài, thuật toán có thể không tìm ra l ờ i gi ải t ốt nh ất trong một l ần chạy... Thuật toán tìm ki ếm Tabu đƣợ c cải tiến từ phƣơng pháp tìm kiếm c ục bộ. Bằng k ết quả thực nghiệm đã cho thấy k ỹ thuật tìm kiếm Tabu có thể giải quyết hiệu quả các bài toán tối ƣu. Trong khuôn khổ của khóa luận, đề tài tậ p trung tìm hiểu các nguyên lý chung và nền tảng của tìm kiến Tabu, áp dụng giải thuận này để giải quyết
bài toán ngƣờ i du lịch, từ đó đánh giá hiệu qu ả c ủa gi ải thuật này so vớ i một số giải thuật khác.
2. Mục tiêu nghiên cứ u Tìm hiểu các giải thuật tìm kiếm cục bộ cho các bài toán tối ƣu hóa tổ hợ p S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
2
Nghiên cứu giải thuật tìm kiếm Tabu: Nguyên lý chung của tìm kiếm Tabu, cách sử dụng bộ nhớ , nền tảng của tìm kiếm Tabu. Sử dụng phƣơng pháp tìm kiếm Tabu để giải quyết bài toán ngƣờ i du lịch, đánh giá đƣợ c hiệu quả của giải thuật này so vớ i một số giải thuật tìm kiếm khác
3. Đối tƣợ ng và phạm vi nghiên cứ u Nghiêm cứu tìm hiểu lý thuyết và thuật toán Tabu Search từ đó sử dụng thuật toán này để giải quyết bài toán ngƣờ i du lịch, sau đó đánh giá đƣợ c hiệu quả của thuật toán này đem lại so vớ i một số thuật toán tìm kiếm khác.
4. Hƣớ ng nghiên cứ u của đề tài Tìm hiểu các thuật toán tìm kiếm cục bộ cho các bài toán tối ƣu hóa tổ hợ p Nghiên cứu thuật toán Tabu Search: Nguyên lý chung của tìm kiếm Tabu, cách sử dụng bộ nhớ , nền tảng của tìm kiếm Tabu. Sử dụng phƣơng pháp tìm kiếm Tabu để giải quyết bài toán ngƣờ i du lịch, đánh giá đƣợ c hiệu quả của thuật toán này so vớ i một số thuật toán tìm kiếm khác.
5. Ý nghĩa khoa học của đề tài Nghiên cứu thuật toán tìm kiếm Tabu: Nguyên lý chung của tìm kiếm Tabu, cách sử dụng bộ nhớ, nền tảng của tìm kiếm Tabu. ngƣời du lịch. 6. Phƣơng pháp nghiên cứ u Nghiên cứu tài liệu khoa học về tổng quan các thuật toán tìm kiếm cục bộ. Nghiên cứu tài liệu khoa học về các phƣơng pháp tìm kiếm cục bộ. Nghiên cứu lý thuyết về thuật toán tìm kiếm Tabu. S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
3
Sử dụng thuật toán tìm kiếm Tabu cài đặt cho bài toán ngƣờ i du lịch.
Đánh giá hiệu quả của thuật toán này so vớ i một số thuật toán khác. CHƢƠNG1: TỔNG QUAN VỀ TÌM KIẾM 1.1. Giải quyết vấn đề bằng tìm kiếm Tìm kiếm là một trong những hƣớ ng nghiên cứu quan tr ọng trong CNTT. Trong thực tế, nhiều bài toán có thể đƣa về bài toán tìm kiếm, ví dụ:
+ Trò chơi: Nhiều trò chơi, ví dụ cờ vua, thực chất là quá trình tìm kiếm nƣớc đi của các bên trong số những nƣớ c mà luật chơi cho phép, để giành lấy ƣu thế cho mình. + L ậ p th ờ i khóa biểu: L ậ p th ờ i khóa biểu là lựa chọn th ứ t ự, thờ i gian,
tài nguyên (máy móc, địa điểm, con ngƣờ i) thỏa mãn một tiêu chí nào đó. Nhƣ vậ y, lậ p thờ i khóa biểu có thể coi nhƣ quá trình tìm tiế m trong số tổ hợ p phƣơng án sắ p xếp phƣơng án đáp ứng yêu cầu đề ra. + Tìm đƣờng đi: Trong số những đƣờng đi, lựa chọn đƣờng đi tới đích, có thể thỏa mãn một số tiêu chí nào đó nhƣ tiêu chí tối ƣu về độ dài, thờ i gian,
giá thành…. + L ậ p k ế ho ạch: Là lựa ch ọn chuỗi hành động cơ sở cho phép đạt mục
tiêu đề ra đồng thờ i thỏa mãn các yêu cầu phụ. Sự ph ổ bi ến của các vấn đề có tích chất tìm kiếm d ẫn t ớ i yêu cầu phát biểu bài toán tìm kiếm một cách tổng quát, đồng thờ i xây dựng phƣơng pháp giải bài toán tìm kiếm sao cho hiệu quả, thuận lợ i. Do vậy, tìm kiếm đã đƣợ c nghiên cứu trong khuôn khổ toán r ời r ạc, lý thuyết thuật toán. Trong TTNT, tìm kiếm đƣợc đặc biệt quan tâm từ khía cạnh xây dựng phƣơng pháp cho
S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
4
phép tìm ra k ết qu ả trong trƣờ ng h ợ p không gian tìm kiếm có kích thƣớ c l ớ n khiến cho những phƣơng pháp truyền thống gặp khó khăn.
1.2. Bài toán tìm kiếm trong không gian trạng thái Một bài toán có thể giải quyết thông qua tìm ki ếm b ằng cách xác định tậ p hợ p t ất c ả các phƣơng án, đối tƣợ ng hay tr ạng thái liên quan gọi chung là không gian tr ạng thái. Thủ tục tìm kiếm sau đó sẽ khảo sát không gian tr ạng thái theo một cách nào đó để tìm ra l ờ i giải cho vấn đề. Tùy vào cách thức khảo sát không gian tr ạng thái cụ th ể, ta sẽ có những phƣơng pháp tìm kiếm khác nhau.
Để có thể khảo sát không gian tr ạng thái, thuật toán tìm kiếm bắt đầu từ một tr ạng thái xuất phát nào đó, sau đó sử dụng những phép biến đổi tr ạng
thái để nh ận biết và chuyển sang tr ạng thái khác. Quá trình tìm kiếm k ết thúc khi tìm ra lờ i giải, tức là khi đạt tớ i tr ạng thái đích. Bài toán tìm kiếm về cơ bản có thể phát biểu thông qua năm thành phầ n chính sau [2]: + Tậ p các tr ạng thái Q đây chính là không gian trạng thái của bài toán. + Tậ p (không r ỗng) các tr ạng thái xuất phát S (S Q). Thuật toán tìm ki ếm sẽ xuất phát từ một trong những tr ạng thái này để khảo sát không gian tìm ki ếm. + Tậ p (không r ỗng) các tr ạng thái đích G (G Q). Tr ạng thái đích có thể đƣợ c cho một cách tƣờ ng minh, tức là chỉ ra cụ thể đó là trạng thái nào hoặc không
tƣờng minh. Trong trƣờ ng hợ p sau, thay về tr ạng thái cụ thể bài toán sẽ quy định một số điều kiện mà tr ạng thái đích cần thỏa mãn. Ví dụ, khi chơi cờ vua, thay vì chỉ ra v ị trí cụ thể quân cờ , ta chỉ ra quy tắc cho biết tr ạng thái chiếu hết.
S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
5
+ Các toán tử còn gọi là hành động hay chuyển động, thực chất đây là ánh xạ P: Q
Q,
cho phép chuyển từ tr ạng thái hiện thờ i sang các tr ạng thái khác.
Vớ i mỗi tr ạng thái n, P(n) là tậ p các tr ạng thái đƣợ c sinh ra khi áp dụng toán tử hay chuyển động P . + Giá thành c: Q x Q
R.
Trong một s ố trƣờ ng hợ p, quá trình tìm ki ếm cần
quan tâm tới giá thành đƣờng đi. Giá thành để di chuyển từ nút x tớ i nút hàng xóm y đƣợc cho dƣớ i dạng số dƣơng c(x,y). Hiệu quả của việc tìm kiếm thể hiện qua việc đánh giá theo 4 tiêu chuẩn:
+ Độ phức tạp tính toán: Đƣợc xác định bằng khối lƣợ ng tính toán cần thực hiện để tìm ra lớ i giải. Thông thƣờ ng, khối lƣợng tính toán đƣợc xác định bằng số lƣợ ng tr ạng thái cần xem xét trong suốt quá trình tìm ra l ờ i giải. + Bộ nhớ: Đƣợc xác định bằng số lƣợ ng tr ạng thái cần lƣu trữ khi thực hiện thuật toán.
+ Tính đầy đủ: Nếu bài toán có lờ i giải thì thuật toán có khả năng tìm ra lờ i giải đó không? Nếu có, ta nói r ằng thuật toán có tính đầy đủ, trong trƣờ ng hợ p
ngƣợ c lại ta nói thuật toán không có tính đầy đủ. + Tính tối ƣu: Nếu bài toán có nhiều lờ i giải thì thuật toán có cho phép tìm ra lờ i giải tốt nhất không? Nếu không, ta nói lờ i giải đảm bảo tính tối ƣu.
1.3. Các kĩ thuật tìm kiếm cơ bản Ý tƣở ng của thuật toán tìm ki ếm: Xem xét tr ạng thái, sử d ụng các hàm biến đổi tr ạng thái để di chuyển trong không gian tr ạng thái cho tới khi đạt
đến tr ạng thái mong muốn. Thuật toán tìm kiếm t ổng phát sinh ra một cây tìm ki ếm, trong đó mỗi tr ạng thái tƣơng ứng vớ i một nút trên cây. Tr ạng thái xuất phát tƣơng ứng vớ i gốc cây, những tr ạng thái đƣợ c mở r ộng tạo thành các nút thế hệ tiế p theo. S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
6
Trên thực tế, việc di chuyển trong không gian tr ạng thái sẽ dẫn tớ i những nút đã duyệt qua và tạo thành vòng lặp. Trong trƣờ ng hợp nhƣ vậy, cây tìm kiếm có thể là vô tận và cần có cách kiểm tra để không xem xét lại nút đã duyệt. Các k ỹ thuật tìm ki ếm đƣợ c áp dụng r ộng rãi hiện nay: Tìm kiếm không có thông tin Tìm kiếm có thông tin
S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
7
1.3.1. Tìm ki ế m không có thông tin
Tìm kiếm không có thông tin (hay tìm kiếm mù) là tìm ki ếm không có hiểu biết gì về các đối tƣợng để hƣớ ng dẫn tìm kiếm, không có sự hƣớ ng dẫn nào cho tìm kiếm, chỉ phát triển các tr ạng thái từ tr ạng thái ban đầu cho tớ i khi gặ p một tr ạng thái đích nào đó, nhƣợc điể m của các giải thuật này là phần l ớ n các không gian tìm kiếm có kích thƣớ c cực kì lớ n và một quá trình tìm kiếm (đặc biệt tìm kiếm theo cây) sẽ cần một khoảng thời gian đáng kể cho các ví dụ nh ỏ. Một s ố d ạng tìm kiếm không có thông tin nổi b ật ứng v ớ i các cách tổ chức dữ liệu:
1.3.1.1. Tìm kiếm trên danh sách Các giải thuật tìm kiếm trên danh sách [1] là loại giải thuật tìm kiếm
cơ bản nhất. Mục đích là tìm trong mộ t tậ p hợ p một phần tử chứa một khóa nào đó. Các giải thuật tìm kiếm tiêu biểu nhất trên danh sách là: Tìm ki ếm tuần tự (hay tìm kiếm tuyến tính), tìm kiếm nhị phân.
Tìm kiếm tuần tự kiểm tra từng phần tử trong danh sách theo thứ tự của danh sách đó. Nó có thờ i gian chạy khá lớ n: O(n), trong đó n là số phần tử
trong danh sách, nhƣng có thể sử dụng cho một danh sách bất k ỳ mà không cần tiền xử lý.
Tìm kiếm nhị phân là một thuật toán cao cấp hơn so vớ i thuật toán tìm kiếm tuần tự vớ i thờ i gian chạy là O(logn). Đối vớ i các danh sách lớ n, thuật toán này tốt hơn hẳn tìm kiếm tuyến tính nhƣng nó đòi hỏi danh sách phải đƣợ c sắ p xế p từ trƣớ c và đòi hỏi khả năng truy cậ p ngẫu nhiên. Thuật toán tìm kiếm nội suy tốt hơn so vớ i thuật toán tìm ki ếm nhị phân đối vớ i danh sách r ất lớ n và phân bổ gần đều.
S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
8
Ngoài ra bảng băm (Hash Table) cũng đƣợ c dùng cho tìm kiếm trên
danh sách. Nó đòi hỏi thờ i gian hằng số trong trƣờ ng hợp trung bình, nhƣng lại cần nhiều chi phí về không gian bộ nhớ và thờ i gian chạy O(n) cho trƣờ ng hợ p xấu nhất. M ột phƣơng pháp tìm kiếm khác dựa trên các cấu trúc dữ liệu chuyên biệt sử dụng cây tìm kiếm nhị phân cân bằng và đòi hỏi thờ i gian chạy O(log n).
Các giải thuật lo ại này có thể coi là mở r ộng c ủa tƣ tƣở ng chính về
tìm kiếm nhị phân để cho phép chèn và xóa nhanh.
1.3.1.2 Tìm kiếm trên cây Tìm kiếm trên cây [1] là trung tâm các k ỹ thuật tìm kiếm. Các k ỹ thuật này tìm kiếm trên các cây gồm các nút, cây này có th ể là cây tƣờ ng minh hoặc đƣợ c xây dựng dần trong quá trình tìm kiếm.
Nguyên lý cơ bản là: Một nút đƣợ c lấy ra từ một cấu trúc dữ liệu, các nút con của nó đƣợ c xem xét và bổ sung vào cấu trúc dƣc liệu đó . Bằng cách thao tác trên cấu trúc dữ liệu này, cây tìm kiếm đƣợ c duyệt theo các thứ tự khác nhau, chẳng hạn theo từng mức (tìm kiếm theo chiều r ộng) hoặc đi tớ i một nút lá trƣớ c r ồi quay lui (tìm ki ếm theo chiều sâu).
Tìm kiếm theo chiều rộng (BFS) Tìm kiếm theo chiều r ộng mang hình ảnh của vết dầu loang. Từ tr ạng
thái ban đầu, ta xây dựng tậ p hợ p S bao gồm các tr ạng thái k ế tiế p (mà từ tr ạng thái ban đầu có thể biến đổi thành) sau đó ứng vớ i mỗi tr ạng thái T k trong tậ p S , ta xây dựng tậ p S k bao gồm các tr ạng thái k ế tiế p của Tk r ồi lần
lƣợ t bổ sung các S k vào S . Quá trình này cứ lặ p lại cho đến lúc S có chứa tr ạng thái k ết thúc hoặc S không thay đổi sau khi đã bổ sung tất cả S k.
Tìm kiếm theo chiều sâu
S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
9
Trong tìm kiếm theo chiều sâu, tại tr ạng thái (đỉnh) hiện hành, ta cho chọn một tr ạng thái k ế tiế p (trong t ậ p các tr ạng thái có thể biến đổi thành từ tr ạng thái hiện hành) làm tr ạng thái hiện hành cho đến lúc tr ạng thái hiện hành là tr ạng thái đích. Trong trƣờ ng hợ p tr ạng thái hiện hành ta không thể biến đổi thành tr ạng thái k ế ti ế p thì ta quay lui (Backtracking) l ại tr ạng thái hiện hành (tr ạng thái biến đổi thành tr ạng thái hiện hành) để chọn đƣờ ng khác. Nếu ở tr ạng thái trƣớc này mà cũng không thể biến đổi đƣợ c nữa thì ta quay lui lại tr ạng thái trƣớ c nữa và cứ thế. Nếu ta quay lui đến tr ạng thái khởi đầu mà vẫn thất bại thì k ết luận là không có lờ i giải. Tìm kiếm theo chiều sâu và tìm ki ếm theo chiều r ộng đều là các
phƣơng pháp tìm kiếm có hệ thống và chắc chắn tìm ra lờ i giải. Tuy nhiên, do bản chất là vét cạn nên vớ i những bài toán có không gian lớ n thì ta không thể dùng hai chiến lƣợc này đƣợ c. Hơn nữa, hai chiến lƣợc này đều có tính chất
“mù” vì chúng không chú ý đến những thông tin (tri th ức) ở tr ạng thái hiện thờ i và thông tin về đích cần đạt tớ i cùng mối quan hệ giữa chúng. Các tri thức này vô cùng quan tr ọng và r ất có ý nghĩa để thi ết k ế các giải thuật hi ệu quả hơn. Do đó, hai chiến lƣợc trên đƣợ c cải tiến thành một số thuật toán tìm kiếm mớ i trên cây bao gồm: Tìm kiếm lặ p sâu dần, tìm kiếm chiều sâu giớ i hạn, tìm kiếm hai chiều và tìm kiếm chi phí đều.
1.3.1.3. Tìm kiếm trên đồ thị Nhiều dạng bài toán tìm kiếm cụ thể trên đồ thị nhƣ: Tìm đƣờ ng ngắn nhất, tìm cây bao trùm nh ỏ nhất, tìm bao đóng bắc cầu,… Tuy nhiên ứng vớ i mỗi d ạng bài toán có một số giải thuật tìm kiếm thích hợp để giải quyết. Chẳng hạn thuật toán Dijkstra, thu ật toán Kruskal, giải thuật láng giềng gần nhất và giải thuật Prim [1]. Các thuật toán này có thể đƣợ c coi là các mở r ộng S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
10
của các thuật toán tìm kiếm trên cây: Tìm kiếm theo chiều sâu, tìm kiếm theo chiều r ộng.
Thuật toán Dijkstra: Là một thuật toán giải quyết bài toán đƣờng đi ngắn nhất nu ồn đơn trong một đồ th ị có hƣớ ng không có cạnh mang tr ọng số âm. Thuật toán này có thể tính toán tất cả các đƣờng đi ngắn nhất từ một đỉnh xuất phát cho trƣớ c tớ i mọi đỉnh khác mà không làm tăng thờ i gian chạy.
Thuật toán Kruskal: Là thuật toán xây dựng cây bao trùm ngắn nhất bằng cách chọn thêm dần các cung vào cây.
Thuật toán Prim: Là thuật toán nhằm xây dựng cây bao trùm ngắn nhất. Tƣ tƣở ng của thuật giải Prim là chọn đƣa dần vào cây T các đỉnh k ề “tốt nhất” trong số các đỉnh còn lại. Thờ i gian thực hiện giải thuật Prim là O(n2 ). 1.3.2. Tìm ki ế m có thông tin
Các k ỹ thuật tìm kiếm không có thông tin trong một số trƣờ ng hợ p r ất kém hiệu quả và thậm chí không áp dụng đƣợc. Để tăng tốc độ của các quá trình tìm kiếm ta có thể dùng các giải thuật tìm kiếm có thông tin. Một số chiến lƣợ c tìm kiếm có thông tin hay còn gọi là chiến lƣợ c tìm kiếm Heuristic (Tìm kiếm kinh nghiệm), đó là các phƣơng pháp sử dụng hàm đánh giá để
hƣớ ng dẫn sự tìm kiếm. Trong nhiều vấn đề, ta có thể sử dụng kinh nghiệm, tri thức của chúng ta về v ấn đề để đánh giá các trạng thái của vấn đề. Vớ i mỗi tr ạng thái u ta xác
định một giá tr ị s ố h(u), số này đánh giá “sự g ần đích” của tr ạng thái u. Hàm h(u)
đƣợ c gọi là hàm đánh giá. Trong tìm kiếm có thông tin ngƣờ i ta sử dụng
hàm đánh giá này nhƣ một đánh giá Heuristic đặc thù cho bài toán cần giải quyết với vai trò hƣớ ng dẫn cho quá trình tìm kiếm. Một cách đánh giá Heuristic
tốt sẽ làm cho quá trình tìm kiếm thông tin hoạt động hiệu quả hơn
S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
11
hẳn một phƣơng pháp tìm kiế m không có thông tin bất k ỳ. Trong quá trình tìm kiếm, t ại mỗi bƣớ c ta sẽ chọn tr ạng thái có giá tr ị hàm đánh giá là nhỏ nhất, tr ạng thái này đƣợ c xem là tr ạng thái có nhiều hứa hẹn nhất hƣớ ng tới đích. Các k ỹ thuật tìm kiếm sử dụng hàm đánh giá để hƣớ ng dẫn sự tìm kiếm đƣợ c gọi chung là các k ỹ thuật tìm kiếm có thông tin hay tìm kiếm kinh nghiệm (tìm kiếm Heuristic). Các giai đoạn cơ bản để giải quyết v ần đề b ằng tìm kiếm Heuristic nhƣ sau:
Tìm biểu diễn thích hợ p mô tả các tr ạng thái và các toán tử hay phép chuyển của vấn đề.
Xây dựng hàm đánh giá.
Thiết k ế chiến lƣợ c chọn tr ạng thái để phát triển ở mỗi bƣớ c.
1.4. Bài toán tối ƣu hóa tổ hợ p Bài toán tối ƣu hóa tổ h ợp (Combinatorial Optimizatoin) liên quan đế n việc tìm giá tr ị cho các biến số r ờ i r ạc nhƣ lờ i giải tối ƣu mà có lƣu ý tớ i hàm
đánh giá cho trƣớ c. Bài toán có thể là bài toán tìm c ực đại ho ặc tìm cực ti ểu. Một cách thông thƣờ ng, bài toán tối ƣu hóa tổ hợp đƣợc cho dƣớ i dạng bộ ba (S,f, ). Trong đó:
S là tậ p các lờ i giải ứng cử viên.
F là hàm đánh giá (hàm này gán giá trị f(s) sao cho mỗi lờ i giải ứng viên s S ).
là tậ p các ràng buộc của bài toán. Các lờ i giải thuộc tậ p S * S thỏa mãn các ràng buộc
gọi là lờ i giải
khả thi. Mục tiêu bài toán là tìm ra một lờ i giải s* vớ i giá nhỏ nhất, nghĩa là *
f(s ) ≤
f(s) v ớ i mọi l ờ i g ải s
S .
S ố hóa b ở i Trung tâm H ọc liệu
Ngƣợ c l ại bài toán tối ƣu hóa cực đại là tìm
http://www.lrc-tnu.edu.vn/
12
lờ i giải s* vớ i giá lớ n nhất, nghĩa là f(s* ) ≥ f(s) vớ i mọi lờ i giải s
S . Bài toán
tối ƣu hóa tổ hợ p có thể chia hai loại: Bài toán tĩnh và bài toán độ ng.
Bài toán tối ƣu hóa tổ hợp tĩnh (Static Combinatorial Optimization) Là bài toán tối ƣu hóa tổ hợ p trong đó cấu trúc (Topology) và giá
(Cost) không thay đổi khi bài toán đang đƣợ c giải quyết. Ví dụ bài toán ngƣờ i du l ịch (TSP). Khi thực hi ện thuật toán để gi ải quyết bài toán vị trí các thành phố, khoảng cách giữa các thành phố là không thay đổi.
Bài toán tối ƣu hóa tổ hợp động (Dynamic Combinatorial Optimization) Là bài toán tối ƣu hóa tổ hợp trong đó cấu trúc và giá có thể thay đổi
khi bài toán đang đƣợ c giải quyết. Ví dụ bài toán định hƣớ ng trong mạng viễn thông, trong đó mô hình mạng và dung lƣợ ng yêu cầu luôn thay đổi. Lớ p bài toán tối ƣu hóa tổ hợ p có những đặc điểm sau:
Tìm tr ạng thái tối ƣu hóa cực đại hóa hoặc c ực ti ểu hóa hàm mục tiêu. Không quan tâm tới đƣờng đi.
Không gian tr ạng thái lớ n.
Không thể sử dụng các phƣơng pháp tìm kiếm thông thƣờng để xem xét tất cả không gian tr ạng thái.
Thuật toán cho phép tìm lờ i giải tốt nhất với độ phức tạ p tính toán nhỏ. Thuật toán cũng chấ p nhận lờ i giải tƣơng đối tốt.
Tối ƣu hóa tổ h ợ p là l ớ p bài toán có nhiều ứng dụng trên thực t ế, một số bài
toán kinh điển trong lớp bài toán này là: Bài toán ngƣờ i du lịch, bàn toán n – queens, bài toán tô màu đồ thị, bài toán xế p lịch y tá… 1.5. Giải thuật tìm kiếm cục bộ Giải thuật tìm kiếm cục bộ là giải pháp Metaheuristic [11] cho việc giải các bài toán tối ƣu hóa tổ hợ p hoặc tối ƣu hóa rờ i r ạc trên máy tính, tức là S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
13
những bài toán trong đó cần tìm tr ạng thái tối ƣu hoặc tổ hợ p tối ƣu trong không gian r ời r ạc các tr ạng thái và không quan tâm tới đƣờng đi dẫn tớ i tr ạng
thái đó. Gi ải thuật này có thể áp d ụng cho các bài toán tìm kiếm l ờ i giải g ần đúng tối ƣu trong một loạt các lờ i giải ứng viên. Phƣơng pháp tìm kiếm sẽ duyệt qua các lờ i giải trong không gian tìm kiếm cho đến khi tìm ra lờ i giải
đƣợ c cho là tối ƣu hoặc vƣợ t quá thờ i gian tìm kiếm cho phép. Tìm kiếm cục bộ đƣợ c thiết k ế cho bài toán tìm kiếm vớ i không gian tr ạng thái r ất l ớ n và cho phép tìm kiếm tr ạng thái tƣơng đối t ốt v ớ i th ờ i gian tìm kiếm chấ p nhận đƣợ c.
Ý tƣở ng chung của tìm kiếm cục bộ: Chỉ quan tâm đến tr ạng thái đích, không quan tâm đến đƣờng đi.
Hình 1.1. Bài toán tìm ki ế m cục bộ vớ i không gian tr ạng thái và hàm mục tiêu
1.6. Một số thuật toán tìm kiếm cục bộ cơ bản 1.6.1. Thu ật toán Leo đồi
Leo đồi ( Hill climbing ) [2] là tên chung để chỉ một họ các thuật toán. Thuật toán thực hiện bằng cách tạo ra lân cận cho tr ạng thái hiện thờ i và di chuyển sang lân cận có hàm mục tiêu tốt hơn, tức là di chuyển lên cao đối vớ i S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
14
trƣờ ng hợ p cần cực đại hóa hàm mục tiêu. Thuật toán dựng lại khi đạt tớ i một đỉnh c ủa đồ thị hàm mục tiêu, tƣơng ứng v ớ i tr ạng thái không có lân cận nào tốt hơn. Đỉnh này có thể là đỉnh cao nhất hoặc cũng là đỉnh thấp hơn (Hình 1.1). Trong trƣờ ng hợ p thấ p nhất, thuật toán tìm đƣợ c giá tr ị cực tr ị, trong
trƣờ ng hợ p thứ hai thuật toán chỉ tìm đƣợ c cực tr ị địa phƣơng. Thuật toán Leo đồi không lƣu lại những tr ạng thái đã qua, đồ ng thời không nhìn xa hơn lân cận của tr ạng thái hiện thờ i.
1.6.1.1. Di chuyển sang trạng thái tốt nhất Có nhiều phiên bản khác nhau của thuật toán Leo đồ i. Một trong những phiên bản thông dụng nhất có tên là Leo đồ i di chuyển sang tr ạng thái tốt nhất ( Best Improvement Hill climbing ). Phiên bản này của Leo đồi lựa chọn trong số lân cận hiện thờ i lân cận có hàm mục tiêu tốt nhất. Nếu lân cận
đó tốt hơn trạng thái hiện thờ i thì di chuyển sang lân cận đó. Nếu ngƣợ c lại thì k ết thúc và tr ả về tr ạng thái hiện thờ i. Thuật toán đầy đủ đƣợ c thể hiện ở dƣớ i:
Đầu vào: Bài toán tối ƣu hóa Đầu ra: Tr ạng thái vớ i hàm mục tiêu lớ n nhất (hoặc cực đại địa phƣơng) Mỗi tr ạng thái tƣơng ứng vớ i một lờ i giải (chƣa tối ƣu)
cải thiện dần
bằng cách chỉ quan tâm tớ i một tr ạng thái hiện th ời, sau đó xem xét để di chuyển sang tr ạng thái lân cận của tr ạng thái hiện thời (thƣờ ng là tr ạng thái có hàm mục tiêu tốt hơn).
Thay đổi tr ạng thái bằng cách thực hiện các chuyển động (tr ạng thái nhận đƣợ c từ tr ạng thái n bằng cách thực hiện các chuyển động đƣợ c gọi là lân cận của n) Do tìm kiếm cục bộ chỉ quan tâm tớ i tr ạng thái hiện thờ i và lân cận nên cần ít bộ nhớ hơn nhiều so với các phƣơng pháp tìm kiếm thông thƣờ ng. Tìm S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
15
kiếm cục bộ thƣờng cho phép tìm đƣợ c l ờ i gi ải ch ấ p nh ận đƣợ c k ể c ả khi bài toán lớn đến mức không dùng đƣợ c những phƣơng pháp tìm kiế m thông
thƣờ ng. Phát biểu bài toán: Bài toán tìm ki ếm cục bộ [2] đƣợ c cho bở i những thành phần sau: Không gian tr ạng thái X. Tậ p chuyển động để sinh ra lân c ận. Hàm mục tiêu Obj: X
R.
Yêu cầu: Tìm tr ạng thái X * sao cho Obj (X * ) là min hoặc max. Có thể minh họa bài toán tìm kiếm cục bộ nhƣ Hình 1.1. Tr ục hoành trên hình vẽ thể hiện không gian các tr ạng thái (để cho đơn giản, không gian tr ạng thái ở đây đƣợ c thể hiện trong không gian một chiều dƣớ i dạng các điểm trên tr ục hoành). Tr ục tung là độ lớ n của hàm mục tiêu. Yêu cầu bài toán tối ƣu hóa tổ hợ p là tìm đƣợ c tr ạng thái (điểm trên tr ục hoành) có hàm mục tiêu lớ n nh ất. Hình vẽ minh họa trƣờ ng h ợ p c ần tìm tr ạng thái vớ i hàm mục tiêu lớ n nhất, tuy nhiên trong một số bài toán khác có thể yêu cầu tìm tr ạng thái vớ i hàm mục tiêu nhỏ nhất. 1. Chọn ngẫu nhiên tr ạng thái x 2. Gọi Y là tậ p các tr ạng thái lân cận của x 3. Nếu
yi
Y: Obj(yi)< Obj(x) thì k ết thúc và tr ả lại x là k ết quả
1. x yi, trong đó i = argmaxi (Obj(yi)) 2. Chuyển tới bƣớ c 2
Đặc điểm của leo đồi: S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
16
Đơn giản, dễ lậ p trình, không tốn bộ nhớ do không phải lƣu lại bất k ỳ thứ gì, chỉ lƣu lại tr ạng thái tạm thờ i và các lân cận. Dễ bị lờ i giải tối ƣu cục bộ (cực tr ị địa phƣơng) tƣơng ứng với đỉnh các
“đồi” thấ p trong hình 1.1. Để khắc phục vấn đề này, thuật toán đƣợ c thực hiện nhiều lần, mỗi lần sử dụng một tr ạng thái xuất phát sinh ngẫu nhiên khác vớ i tr ạng thái xuất phát trong những lần trƣớc đó. Khi thiết k ế thuật toán leo đồi, việc lựa chọn chuyển động r ất quan tr ọng. Nếu nhiều chuyển động sẽ sinh ra nhiều lân cận do vậy việc chọn ra lân cận tốt nhất đòi hỏi nhiều thờ i gian do phải tính hàm mục tiêu cho tất cả lân cận. Ngƣợ c lại, nếu sinh ra tậ p lân cận nhỏ sẽ dễ dẫn tớ i cực tr ị địa phƣơng do
không vƣợt qua đƣợ c những “hố” nhỏ trên đƣờng đi. 1.6.1.2. Leo đồi ngẫu nhiên Leo đồi ngẫu nhiên (Stochastic Hill Climbing ) là một phiên bản khác của leo đồi. Thay vì tìm ra lân c ận tốt nhất, phiên bản này lựa chọn ngẫu nhiên một lân cận. Nếu lân cận đó tốt hơn trạng thái hiện thờ i, lân cận đó sẽ
đƣợ c chọn làm tr ạng thái hiện thờ i và thuật toán lặ p lại. Ngƣợ c lại, nếu lân cận đƣợ c chọn không tốt hơn, thuật toán sẽ chọn ngẫu nhiên một lân cận khác và so sánh. Thuật toán k ết thúc và tr ả lại tr ạng thái hiện thời khi đã quá thờ i
gian. Thông thƣờ ng, quá thời gian đƣợ c cho bằng s ố lƣợ ng t ối đa lân cận mà thuật toán xem xét trong mỗi bƣớ c lặ p hoặc trong toàn bộ thuật toán.
Đầu vào: Bài toán tối ƣu hóa Đầu ra: Tr ạng thái vớ i hàm mục tiêu lớ n nhất (hoặc cực đại địa phƣơng) 1. Chọn ngẫu nhiên tr ạng thái x 2. Chọn Y là tậ p các tr ạng thái lân cận của x S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
17
3. Chọn ngẫu nhiên yi
Y
4. Nếu Obj (yi)>Obj(x) thì x
yi
5. Chuyển tới bƣớ c 2 nếu chƣa hết kiên nhẫn Các nghiên cứu cho thấy, trong một số trƣờ ng hợp leo đồi ngẫu nhiên cho k ết quả nhanh hơn và có thể tránh đƣợ c một số cực tr ị địa phƣơng. 1.6.2. Thu ật toán L uy p ện thé
Một vấn đề lớ n vớ i thuật toán leo đồi là thuật toán không có khả
năng „„đi xuống‟‟ do vậy không thoát khỏi đƣợ c cực tr ị địa phƣơng khi đã rơi vào. Ngƣợ c lại, cách di chuyển hoàn toàn ngẫu nhiên ( Random walk ) có thể khảo sát toàn bộ không gian tr ạng thái nhƣng hiệu quả. Thuật toán Luyện thép (Simulated Annealing ) [2] là một phƣơng pháp tìm kiế m cục bộ cho phép giải quyết phần nào vấn đề cực tr ị địa phƣơng một cách tƣơng đối hiệu quả. Có thể coi Luyện thép là phiên bản của thuật toán leo đồi ngẫu nhiên,
trong đó thuật toán chấ p nhận cả những tr ạng thái kém hơn trạng thái hiện thờ i vớ i một xác suất p nào đó. Cụ thể là khi lựa chọn ngẫu nhiên một lân cận, nếu lân cận đó kém hơn trạng thái hiện thờ i, thuật toán có thể quyết định di chuyển sang đó vớ i một xác suất p. Theo thờ i gian, giá tr ị của p phải giảm dần. Ý nghĩa của việc giảm p theo thờ i gian là do mớ i b ắt đầu, thuật toán chƣa ở vào vùng tr ạng thái tốt và do vậy chấ p nhận thay đổi lớ n. Theo thờ i gian, thuật toán sẽ chuyển sang tr ạng thái tốt hơn và do vậy cần hạn chế thay đổi. Vấn đề quan tr ọng vớ i thuật toán là lựa chọn xác suất p thế nào. Nguyên tắc chung là không chọn p cố định, giá tr ị của p đƣợc xác định dựa trên hai yếu tố sau: S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
18
Nếu tr ạng thái mới kém hơn nhiều so vớ i tr ạng thái hiện thờ i thì p phải giảm đi. Có nghĩa là xác suấ t chấ p nhận tr ạng thái tỷ lệ nghịch với độ kém của tr ạng thái đó. Gọi (x,y) = Obj(y) trong đó x là tr ạng thái hiện thờ i, ta cần chọn p tỷ lệ nghịch vớ i (x,y). Theo thờ i gian, giá tr ị của p phải giảm dần. Ý nghĩa của việc giảm p theo thờ i gian là do khi mớ i b ắt đầu, thuật toán chƣa ở vào vùng tr ạng thái tốt và do vậy chấ p nhận thay đổi lớ n. Theo thờ i gian, thuật toán sẽ chuyển sang vùng tr ạng thái tốt hơn và do vậy cần hạn chế thay đổi. SA(X, Obj, N, m, x, C) //Obj càng nh ỏ càng tốt
Đầu vào : Số bƣớ c lặ p m Tr ạng thái bắt đầu x (chọn ngẫu nhiên)
Sơ đồ làm lạnh C Đầu ra : Tr ạng thái tốt nhất x* Khở i tạo : x* = x For i = 1 to m 1. Chọn ngẫu nhiên y
N(x)
(x,y) = Obj(y) – Obj(x) If (x,y)<0 then p = 1 Else p = e - (x,y)/T If rand[0,1] < p then x y If Obj(x) < Obj(x*) then x* x 2. Giảm T theo sơ đồ C Return x* // x* là tr ạng thái tốt nhất trong số những tr ạng thái đã xem xét Thuật toán Luyện thép vừa trình bày dựa trên một hiện tƣợng cơ học là quá trình làm lạnh kim loại để tạo ra cấu trúc tinh thể bền vững. Hàm mục S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
19
tiêu khi đó đƣợc đo bằng độ vững chắc của cấu trúc tinh thể. Khi còn nóng, mức năng lƣợ ng trong kim loại cao, các nguyên tử kim loại có khả năng di chuyển linh động hơn. Khi nhiệt độ giảm xuống, tinh thể dần chuyển tớ i tr ạng thái ổn định và tạo ra mạng tinh thể. Bằng cách thay đổi nhiệt độ hợ p lý, có thể tạo ra những mạng tinh thể r ất r ắn chắc. Chính vì sự tƣơng tự vớ i cách tôi kim loại nhƣ vậy nên thuật toán xác suất p giảm theo thờ i gian dựa vào một công thức gọi là sơ đồ làm lạnh C. Có nhiều dạng sơ đồ làm lạnh khác nhau. Sau đây là ví dụ một sơ đồ làm lạnh: t*k
Tt+1=T0*
Trong đó: T0 > 0,
thuộc (0,1), 1
t càng tăng Khi T
càng nhỏ
: p = 1 vớ i (x,y)
T càng nhỏ
tƣơng đƣơng vớ i chuyển động ngẫu nhiên
Khi T 0 : p = 0 vớ i (x,y) đƣa về trƣờ ng hợp leo đồi ngẫu nhiên Việc lựa chọn các tham số cho sơ đồ làm lạnh thƣờng đƣợ c thực hiện bằng phƣơng pháp thực nghiệm vớ i từng bài toán cụ thể.
ố thu ật toán tìm ki ế m c ục b ộ khác 1.6.3. M ột s 1.6.3.1. Giải thuật tìm kiếm Lân cận lớ n Giải thuật tìm kiếm Lân cận lớ n ( Large Neighborhood Search - LNS ) là một giải thuật tìm kiếm cục bộ thuộc nhóm các giải thuật Very Large Scale Neighborhood Search (gọi tắt là VLSN – các giải thuật tìm kiếm c ục bộ vớ i các miền lân cận có kích thƣớ c r ất lớ n và biến động). Vớ i các giải thuật VLSN, các miền láng giềng đƣợ c xem tại mỗi bƣớ c lặp thƣờ ng có kích thƣớ c r ất lớn, điều này sẽ giúp quá trình tìm ki ếm có thể vƣợ t ra khỏi những điểm tối ƣu cục bộ, nhờ đó có thể tìm ra những lờ i giải gần vớ i tối ƣu toàn cục. Tuy S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
20
nhiên, chính vì kích thƣớ c miền láng giềng lớ n mà các giải thuật VLSN khi chạy thƣờ ng tốt r ất nhiều thờ i gian. Nhiều kĩ thuật đã đƣợc đề nghị để khắc phục vấn đề này, từ đó tạo nên nhiều biến thể VLSN khác nhau. Giải thuật LNS chính là một trong những biến thể này. Trong giải thuật LNS, việc duyệt miền láng giềng của lờ i giải hiện tại đƣợ c hiện thông qua hai bƣớ c chính :
Bƣớ c phá hủ y (Destroy) và bƣớ c chỉ nh sử a (Repair). Tại bƣớ c phá hủy, một số phần tử của lờ i giải hiện tại sẽ bị loại ra tạo nên một thành phần chưa đầ y
đủ (Partial Solution), sau đó tại bƣớ c chỉnh sửa, các phần tử vừa bị loại sẽ lần lƣợt đƣợ c thêm tr ở lại vào lờ i gi ải thành phần của bƣớc trƣớc, để t ạo lại một lờ i gi ải hoàn chỉnh. Nhƣ vậy, miền lân cận tại mỗi bƣớ c l ặ p chính là t ậ p các lờ i gi ải đầy đủ mới thu đƣợ c sau khi áp dụng hai bƣớ c phá hủy và chỉnh s ửa lên lờ i giải hiện tại. Phƣơng pháp cụ thể đƣợ c chọn để thực hiện bƣớ c phá hủy
và bƣớ c chỉnh sửa sẽ quyết định lƣợ ng thờ i gian cần tiêu tốn cho một bƣớ c lặp. Phƣơng pháp đơn giản nh ất là chọn ngẫu nhiên tại bƣớ c phá hủy và thực hiện thêm các phần t ử vào bƣớ c chỉnh s ửa bằng một gi ải thuật tham lam đơn giản. Input: Giải thuật khả thi x x b = x;
Repeat xt = r (d(x));
if accept(xt,x) then x=xt
end if if c(xt)
http://www.lrc-tnu.edu.vn/
21
until khi gặp điều kiện dừng return x b; Trong mã giả của giải thuật LNS ở trên, đầu vào của giải thuật là một l ờ i gi ải h ợ p l ệ (Feasible Solution) x, nghĩa là một l ờ i giải thỏa tất c ả các ràng
buộc cứng, xb là l ời giải t ốt nhấ t hiện t ại, d( .) là hàm phá hủy, r( . ) là hàm chỉnh sửa. Ở đây, tại mỗi bƣớ c lặ p, thay vì quét toàn bộ miền láng giềng và chọn ra lờ i gi ải t ốt nh ất gi ải thuật ch ỉ ch ọn một l ờ i giải duy nhất x’ thu ộc t ậ p láng giềng N(x) (có thể phát sinh ngẫu nhiên hoặc chọn lờ i giải tốt nhất thuộc một tậ p con r ất nhỏ của tậ p láng giềng N(x)). Tiêu chuẩn accept (x’, x) sẽ quyết định xem có chọn lờ i giải x’ thay thế cho lờ i giải hiện tại hay không, hai tiêu chuẩn accept (x’, x) phổ biến nhất là: Chỉ chấ p nhận các lờ i giải tốt hơn lờ i giải hiện tại: Nếu x‟
(x’, x) = true, ngƣợ c lại accept (x’, x)=false. Chấ p nhận theo tiêu chuẩn của giải thuật Luyện thép: Nếu r< e c( x' )
T
c( x)
thì accept (x’, x)=true, ngƣợ c lại accept (x’, x)= false,
vớ i r là một số ngẫu nhiên thuộc đoạn [0,1]. Việc chọn phƣơng pháp phá hủy và phƣơng pháp chỉnh sửa sao cho hợ p lý và các vấn đề r ất quan tr ọng, quyết định tính hiệu quả của giải thuật LNS. Quá trình phá hủy: Việc chọn kích thƣớ c tậ p các phần tử bị loại ra khỏi lờ i giải hiện tại r ất quan tr ọng, nếu con số này quá nhỏ, quá trình tìm kiếm sẽ khó thoát ra khỏi tối ƣu cục bộ, nhƣng nếu con số này quá lớ n, việc tìm kiếm sẽ mất r ất nhiều thời gian. Hơn nữa, chiến lƣợ c chọn tậ p các phần tử bị loại cũng phải
đƣợ c chọn sao cho quá trình tìm kiếm có thể bao quát hết không gian lờ i gi ải hoặc hƣớng đƣợc đến nhiều vùng không gian lờ i giải có khả năng chứa tối ƣu S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
22
toàn cục, tránh việc “lẩn quẩn” quanh một miền không gian con duy nhất. Do
đó, các chiến lƣợ c phá hủy thƣờ ng có chứa yếu tố mang tính xác suất. Quá trình chỉnh sửa: Quá trình chỉnh sửa có thể thực hiện bằng phƣơng pháp heuristic hoặc b ằng một thuật toán chính xác. Nếu s ử d ụng các phƣơng
pháp chính xác để giải, trong một số trƣờ ng hợ p sẽ giúp đạt đến tối ƣu toàn cục nhanh hơn, tuy nhiên trong một số trƣờ ng hợ p có thể làm giảm tính đa dạng hóa (diversification) của quá trình tìm ki ếm. Do đó, cần cân nhắc và chọn lựa phƣơng pháp giải quyết phù hợ p tùy từng trƣờ ng hợ p cụ thể.
1.6.3.2. Giải thuật tìm kiếm Tabu Giải thuật tìm kiếm Tabu (Tabu Search - TS) đƣợc đƣa ra đầu tiên bở i
Glover vào năm 1986. Ý tƣởng này cũng đƣợc đề nghị bở i Hansen (1986), sau đó đã có nhiều nghiên cứu đề ra các k ỹ thuật thêm vào để mang lại hiệu quả cao hơn cho tìm kiếm Tabu: Werra và Hertz (1989), Glover (1989,1990),
Fox (1993)… Hiện nay, bằng k ết quả thực nghiệm cho thấy k ỹ thuật tìm kiếm Tabu có thể giải quyết hiệu quả các bài toán tối ƣu.
Ý tƣở ng chính của k ỹ thuật tìm kiếm Tabu là sử dụng một danh sách lƣu tr ữ các lờ i giải đã đi qua để đảm b ảo r ằng chúng ta sẽ không viếng thăm một l ời giải hai l ần.
Trong giải thuật tìm kiếm Tabu, những bƣớ c chuyển có
chi phí thấp hơn vớ i lờ i giải hiện tại cũng vẫn đƣợ c chấ p nhận chỉ cần nó
không có trong “danh sách cấm” (Tabu List ), là danh sách các lờ i giải đã đƣợ c viếng thăm. So vớ i giải thuật leo đồi, giải thuật tìm kiếm Tabu tiế p tục tìm kiếm trong trƣờ ng h ợ p không thể tìm ra đƣợ c l ờ i gi ải t ốt hơn lờ i gi ải hi ện t ại vớ i hi vọng sẽ vƣợt qua đƣợ c những lờ i giải tối ƣu cục bộ. Trong giải thuật tìm ki ếm Tabu, kích thƣớ c của Tabu List hết sức quan tr ọng. Chiều dài Tabu List phải đủ lớn để đảm bảo thoát ra khỏi đƣợ c vùng tối S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
23
ƣu cục bộ nhƣng cũng phải đủ ngắn để tránh bỏ qua các lờ i giải có khả năng. Đây là tham số ảnh hƣởng đến hiệu quả của việc tìm kiếm và đƣợ c thiết lậ p bởi ngƣờ i lậ p trình, vì vậy đối vớ i mỗi bài toán cụ thể chúng ta cần tr ải qua thực nghiệm mớ i có thể đƣa ra thông số tốt nhất cho giải thuật.
S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
24
CHƢƠNG 2: TÌM KIẾM TABU 2.1. Nguyên lý chung của tìm kiếm Tabu Tabu đƣợ c viết lại từ chữ Taboo, Taboo mang ý nghĩa chỉ sự cấm k ỵ trong tiếng Anh. Ý tưở ng chính của k ỹ thuật tìm kiế m Tabu là sử d ụng một danh sách l ưu tr ữ các l ời giải đã đi qua (Tabu List) để đảm b ảo r ằn g chúng ta s ẽ không viếng thăm một l ời giải hai l ần. Trong giải thuật tìm ki ếm Tabu, những bƣớ c chuyển có chi phí thấp hơn vớ i lờ i giải hiện tại cũng vẫn chấ p nhận ch ỉ cần nó không có trong “danh sách cấm” là danh sách các lờ i gi ải đã đƣợ c viếng thăm. So vớ i gi ải thuật leo đồi, giải thuật tìm kiếm Tabu tiế p tục tìm kiếm trong trƣờ ng hợ p không thể tìm ra đƣợ c lờ i giải tốt hơn lờ i giải hiện tại vớ i hi vọng sẽ vƣợt qua đƣợ c những lờ i giải tối ƣu cục bộ. Tìm kiếm Tabu dựa trên giả thuyết vấn đề đã đƣợ c giải, k ết hợ p chặt chẽ bộ nhớ thích nghi và thăm dò phản ứ ng (Responsve Exploration). Giống nhƣ việc leo núi, ngƣờ i leo núi phải nhớ có chọn lọc các thành phần của quãng đƣờng đi qua (sử d ụng Adaptive Memory) và lậ p ra các lựa chọn chiến lƣợc trên đƣờ ng (sử dụng Responsve Exploration ). Bộ nhớ thích nghi này cho phép việc tìm kiếm trong không gian lờ i giải một cách tiết kiệm và hiệu quả. Việc nhấn mạnh vào đặc điểm thăm dò phản ứ ng của tìm kiếm Tabu đƣợ c hiểu r ằng, dù một lựa chọn chiến lƣợ c kém thì vẫn cung cấ p nhiều thông tin hơn một l ựa chọn ngẫu nhiên tốt (trong hệ thống s ử dụng bộ nhớ , một l ựa chọn kém nhƣng dựa trên chiến lƣợ c có thể cung cấ p nhiều thông tin hơn về cách mà chiến lƣợc đã thay đổi thuận lợi nhƣ thế nào). Thăm dò phản ứ ng tích hợp các nguyên lý cơ bản của tìm kiế m thông minh (khai thác những đặc điểm lờ i giải tốt trong khi vẫn tìm kiếm những vùng có tiềm năng khác). Tìm kiếm Tabu đƣợ c phối hợ p vớ i việc tìm kiếm những con đƣờ ng mớ i và hiệu quả hơn trong việc k ết hợ p những điểm mạnh của những k ỹ thuật có liên quan đến cả bộ nhớ thích nghi và thăm dò phản ứ ng . 2.2. Cách sử dụng bộ nhớ S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
25
Cấu trúc bộ nhớ trong TS[5] hoạt động bằng việc tham khảo bốn chiều chính sau: Tính chất mớ i xẩ y ra (Recency). Tính chất thườ ng xuyên (Frequency). Tính chất chất lượ ng (Quality). Tính chất ảnh hưở ng (Infuence).
Hình 2.1: C ấu trúc bộ nhớ tìm kiế m Tabu
Bộ nhớ Recency – based và Frequency – based hỗ tr ợ lẫn nhau. Chiều chất lượ ng thể hiện khả năng phân biệt chất lƣợ ng của các lờ i giải đƣợ c tìm thấy trong quá trình tìm kiếm. Trong ngữ cảnh này, bộ nhớ có thể sử dụng để nhận d ạng các thành phần hoặc các con đƣờ ng dẫn t ớ i l ờ i giải tốt. Tính chất lƣợng hƣớ ng tớ i việc tạo ra các thành phần khích l ệ để cung cấ p các hƣớ ng dẫn đến lờ i giải tốt và các thành phần vi phạm (Penalty) để ngăn chặn các hƣớ ng dẫn đến lờ i giải kém. Khái niệm chất lƣợng đƣợ c sử dụng trong tìm kiếm Tabu r ộng hơn so với cái đƣợ c sử dụng trong phƣơng pháp tối ƣu chuẩn. Chiều thứ tƣ là tính ảnh hƣở ng xem việc ảnh hƣở ng của các lựa chọn đƣợ c tạo trong quá trình tìm kiếm không nhƣng trên chất lƣợ ng mà còn trên cấu trúc (có thể xem tính chất chất lƣợ ng là một dạng đặc biệt của tính chất ảnh hƣở ng). S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
26
Bộ nhớ sử dụng trong tìm kiếm Tabu là bộ nhớ hiện (Explicit Memory) và bộ nh ớ thu ộc tính (Attributive Memory). B ộ nhớ hiện ghi nhận toàn bộ l ờ i giải, thƣờ ng là chứa các lờ i giải tốt trong quá trình tìm ki ếm. Những lờ i giải tốt đã ghi nhận sẽ đƣợc dùng để mở r ộng tìm kiếm c ục bộ. Nh ững ứng d ụng của loại bộ nhớ này giớ i hạn ở chỗ, vì cần phải thiết k ế cấu trúc dữ liệu để không tốn quá nhiều bộ nhớ. Thay vào đó, tìm kiế m Tabu sử dụng bộ nhớ thuộc tính. Loại bộ nhớ này lƣu lại thông tin về các thuộc tính của lờ i giải khi có thay đổi từ lớ i giải này sang lờ i giải khác. Ví dụ, trong đồ thị hay mạng, các thuộc tính có thể bao gồm các nút hoặc các cung đƣợ c thêm vào hoặc bớ t đi bở i phép chuyển. ụ minh h ọa: Víd Đây là một minh họa cho thấy các thuộc tính có thể đƣợ c s ử d ụng nhƣ thế nào trong cấu trúc bộ nhớ Recency – based . Xem một vấn đề tìm cây tối ƣu trên đồ th ị v ới các nút đƣợc đánh số t ừ 1 đến 7. Và ba đồ th ị th ể hi ện cho đồ thị ở bƣớ c k, k+1, k+2 trong quá trình tạo ra các tr ạng thái để tìm lờ i giải. Với quy định là khi một phép chuyển đƣợ c thực hiện sẽ bao gồm một cạnh đƣợ c lấy ra và một cạnh đƣợc thêm vào để giữ nguyên cây. 1
2
1
2
5 3
5
4
3
4
Bƣớ c k 6
7
6
1
7
Bƣớ c k+1
2 5
3
4
Bƣớ c k+2 6 S ố hóa b ở i Trung tâm H ọc liệu
7 http://www.lrc-tnu.edu.vn/
27
Hình 2.2: Minh họa bài toán cây t ối ưu
Phép chuyển áp dụng ở bƣớ c k để t ạo ra một cây ở bƣớ c k+1 bao gồm việc g ỡ c ạnh (1,3) và thêm vào cạnh (4,6). Đƣợ c thể hi ện ở hình 2.2, là cạnh
đƣợc đánh dấu và cạnh đứt nét. Ở bƣớ c k , cạnh (1,3) và cạnh ảo (4,6) trong cây đƣợ c xem là hai thuộc tính lờ i giải (Solution attribute) khác nhau và cạnh đƣợ c gọi là (1,3) trong và cạnh (4,6) ngoài. Các thuộc tính này đƣợ c xem là Tabu – active,
đƣợc dùng để định nghĩa ra trạng thái Tabu (Tabu status) của
các phép chuyển ở các bƣớ c tiế p theo. Ví d ụ trong bộ nh ớ Recency – based ta có th ể chọn cạnh (1,3) trong là Tabu – active
trong 3 bƣớc, để gi ữ cho cạnh (1,3) không bị thêm lại vào cây
hiện tại trong những bƣớc này. Do đó cạnh (1,3) chỉ có thể thêm vào cây ở
bƣớ c gần nhất là bƣớ c k+4. Tƣơng tự, nếu cạnh (4,6) ngoài Tabu – active, trong 1 bƣớc để giữ cho cạnh (4,6) khỏi bị gỡ ra trong 1 bƣớ c. Những điều kiện này giúp cho việc thực hiện các phép chuyển tránh lặ p lại những lần chuyển ở những bƣớc trƣớ c. Số bƣớ c mà một cạnh trong tr ạng thái Tabu – active đƣợ c g ọi là Tabu tenure.
Nếu giá tr ị Tabu tenure quá lớ n sẽ làm cho chất lƣợ ng của lờ i giải
không đƣợ c cải thiện. Nhƣng nếu Tabu tenure quá nhỏ sẽ làm cho hàm mục tiêu lặ p lại theo chu k ỳ. Trong ví vụ trên, khi bộ nhớ hiện mở r ộng các lờ i giải lân cận trong khi tìm kiếm cục bộ (bằng cách nhớ các lờ i giải tốt) thì bộ nhớ thuộc tính làm giảm các lờ i giải đó (bằng cách giữ hoặc cấm các phép chuyển có chọn lọc).
2.3. Lập trình vớ i bộ nhớ thích nghi Thực tế tìm kiếm Tabu có hai phiên bản: Đơn giản và Phứ c t ạ p.
Phƣơng pháp đơn giản k ết hợ p chặt chẽ các phần giớ i hạn của thiết k ế tìm S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
28
kiếm Tabu và đôi khi sử dụng trong các phân tích sơ bộ để kiểm tra hiệu suất của các thành phần của một tậ p con giớ i hạn và thƣờ ng chỉ sử dụng bộ nhớ ng ắn hạn.
Phƣơng pháp phức tạ p sử dụng bộ nhớ dài hạn cùng vớ i các chiến lƣợ c tăng cƣờ ng, đa dạng liên quan. Cách tiế p cận này chú tr ọng vào việc khai thác tậ p hợ p của các thành phần trong bộ nhớ, và đôi khi đƣợ c gọi là l ậ p trình vớ i bộ nhớ thích nghi (Adaptive Memory Programming).
Bộ nhớ thích nghi dựa trên thuộc tính và phụ thuộc vào bốn nhân tố: Vừa x ẩy ra, thƣờ ng xuyên, chất lƣợ ng và ảnh hƣở ng. Bốn nhân tố này che đi các khả năng đầy bất ngờ , mà sẽ lộ rõ ra khi chúng đƣợ c k ết hợ p và phân biệt cho các lớ p thuộc tính qua các loại khác nhau và các thời điểm khác nhau.
2.4. Làm việc vớ i bộ nhớ dài hạn Trong nhiều ứng dụng, các thành phần bộ nhớ ngắn hạn của tìm kiếm
Tabu cũng đủ để tạo ra các lờ i giải có chất lƣợ ng r ất cao. Tuy nhiên, tìm ki ếm Tabu sẽ tr ở trên mạng mẽ hơn bằng việc bao gồm cả bộ nhớ dài hạn và những chiến lƣợ c có liên quan của bộ nhớ này. Trong các chiến lƣợ c tìm kiếm Tabu dàn hạn, tậ p lờ i giải có liên quan đƣợ c tạo ra bằng tìm kiếm Tabu có thể chứa các lờ i giải không có trong tậ p gốc và thƣờ ng bao gồm cả các lờ i giải tốt đƣợ c chọn (tối ƣu cục bộ chất lƣợng cao) đã g ặ p tại các thời điểm khác nhau trong quá trình tìm kiếm lờ i giải. Các lờ i giải tốt này đƣợc xác định nhƣ các phầ n tử của một vùng cục bộ trong chiến lược tăng cườ ng (Intensification Strategy)
và nhƣ các phần tử của các vùng khác nhau trong chiến lược đa dạng (DiversificationStrategy).
Không cần phải chạy một lờ i giải lớn để thấy đƣợ c hiệu quả của bộ nhớ dàn hạn. Thƣờ ng hiệu quả của bộ nhớ này bắt đầu tr ở nên rõ ràng trong một S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
29
khoảng thờ i gian vừa phải và có thể cho phép việc tìm lờ i giải có thể k ết thúc trong khoảng thờ i gian giớ i hạn, d ựa trên việc tìm kiếm các lờ i gi ải v ớ i ch ất
lƣợ ng r ất cao trong một khoảng thờ i gian vừa phải. Nói cách khác, việc có cơ hội tìm ra đƣợ c các giải pháp tốt hơn trong thờ i gian tiế p theo – khi chƣa tìm thấy lờ i giải tối ƣu – đƣợc tăng cƣờ ng bằng việc sử dụng bộ nhớ dài hạn ngoài việc chỉ sử dụng bộ nhớ ngắn hạn.
2.5. Tiếp cận dự a trên tần số Bộ nh ớ t ần số (Frequency - based)cung cấ p một lo ại thông tin b ổ sung cho các thông tin do bộ nhớ Recency based cung cấ p, mở r ộng cơ sở đối v ớ i việc chọn ra những phép chuyển mong muốn. Cũng nhƣ tính vừa mớ i xảy ra,
tính thƣờng xuyên thƣờng đƣợc đánh trọ ng hay phân ra thành các lớ p con bằng việc ghi nhận các chiều của chất lƣợ ng lờ i giải và độ ảnh hƣở ng của phép chuyển. Ngoài ra, tính thƣờ ng xuyên có thể đƣợ c tích hợ p vớ i tính vừa xảy ra để xây dựng một cấu trúc tổng hợ p cho việc tạo ra vi phạm và khích lệ
dùng để điều chỉnh các ƣớc lƣợ ng phép. Ta xem tần số gồm các tỉ lệ, trong đó: Tử số đại diện bằng hai loại độ đo: o
o
Độ đo chuyển đổ i (Transition Measure): S ố lƣợng bƣớ c mà một thuộc tính thay đổi (đƣợc đƣa vào hay gõ ra khỏ i) lờ i giải đƣợ c tìm đến trên đƣờ ng tìm kiếm. Độ đo cư trú (Residence Measure): Số lƣợng bƣớ c mà một thuộc tính thuộc về các lờ i giải đã đến thăm trên một con đƣờ ng tìm kiếm cụ thể hoặc là số lần mà một thuộc tính xuất hiện trong các lờ i giải thuộc một tậ p con cụ thể.
Mẫu số thể hiện bằng một trong ba loại số lƣợ ng: S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
30
o
(1) Số lƣợ ng tổng cộng các biến cố của tất cả các sự kiện đƣợ c thể hiện bở i tử số (nhƣ số lƣợng bƣớ c có liên quan).
o
(2) Tổng cộng (hoặc trung bình cộng) của các tử số.
o
(3) Giá tr ị tử số lớ n nhất. Trong trƣờ ng hợ p mà tử số thể hiện tr ọng số, vài tử số trong số đó có thể bị âm, thì mẫu số loại (3) thể hiện bằng giá tr ị tuyệt đối và mẫu số loại (2) thể hiện bằng tổng các giá tr ị tuyệt đối (có khă năng cộ ng thêm một hằng số nhỏ vào để tránh trƣờ ng hợ p mẫu số bằng 0).
Các tỉ lệ tạo ra t ần số chuyển đổ i, t ần số cư trú để theo dõi độ thƣờ ng xuyên mà các thuộc tính là thành phần của các lờ i gi ải đƣợ c tạo ra. Ngoài ra,
liên quan đến các tần s ố này, các ngƣỡ ng d ựa trên các tử s ố có thể h ữu d ụng cho việc định ra khi nào các pha của việc đa dạng hóa l ớn hơn (Greater Diversification) là
thích hợp (ngƣỡ ng của các thuộc tính có thể dịch chuyển
sau khi một pha đa dạng hóa ( Diversification Phase) đƣợ c thực hiện). Tần số cƣ trú và tần số chuyển đổi đôi khi chứa các thông tin có liên
quan đến nhau, nhƣng nói chung, chúng mang các ngụ ý khác nhau. Sự khác biệt quan tr ọng là đại lƣợng cƣ trú, ngƣợ c lại với đại lƣợ ng chuyển đổi, không liên quan đến các tính chất của thuộc tính lờ i gi ải c ụ th ể hoặc nó có là thuộc tính mà thay đổi trong việc chuyển t ừ một l ờ i gi ải này sang lờ i gi ải khác hay không. Ví dụ trong bài toán Cây – k t ối tiể u (Min k - Tree), đại lƣợng cƣ trú có thể đếm số lần cạnh (i,j) tham gia vào lƣờ i giải trong khi đại lƣợ ng chuyển
đổi có thể đếm số l ần cạnh (i,j) đƣợ c thêm vào lờ i giải cũng có nhiều lo ại đại lƣợ ng phức tạp hơn, nhƣ là số lần cạnh (i,j) hợ p vào lờ i gi ải bằng cạnh (k,l), hoặc xóa khỏi l ờ i giải vì cạnh (k,l) đƣợ c thêm vào lờ i giải, cũng có thể đƣợ c tạo ra một cách chọn lọc. Nhƣng tấn s ố này liên hệ đến các vấn đề t ạo ra các thuộc tính phức tạp hơn từ các loại đơn giản. S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
31
Một t ần số cƣ trú cao có thể chỉ ra r ằng một thuộc tính r ất h ấ p d ẫn nếu
vùng đó chứa các lờ i giải tốt hoặc ngƣợ c lại nếu vùng đó chứa các lờ i giải xấu. Nói cách khác, tần số cƣ trú cao (hoặc thấ p) khi vùng đƣợ c chọn để l ấy cả lờ i giải tốt lẫn xấu có thể dẫn đến một thuộc tính bị giữ k ỹ (hoặc bị loại tr ừ) gây ra việc không gian tìm kiếm bị giớ i hạn và cần phải đƣợ c bỏ đi (hoặc
thêm vào) để làm độ đa dạng cao hơn. Ví dụ , một thuộc tính bị giữ k ỹ có thể là một công việc đƣợ c phân vào vùng vị trí trong một loạt các bƣớ c mà bao gồm cả giá tr ị ƣớc lƣợ ng chất lƣợ ng tốt và xấu của hàm mục tiêu. Một tần số chuyển đổi cao, ngƣợ c vớ i tần số cƣ trú cao, có thể chỉ ra thuộc tính có liên quan là một thuộc tính đầ y (Crack Filler), là loại thuộc tính chuyển vào và chuyển ra khỏi lờ i giải để thực hiện một ch ức năng điều chỉnh tốt. Trong ngữ cảnh nhƣ vậy thì tần số chuyển đổi đƣợ c xem nhƣ là đại lƣợ ng của sự không ổn định. Vài tậ p con của những phần tử này cũng có thể là một phần của lờ i giải tối ƣu. Tậ p con này có thể đƣợc xác định mà ít nhất khó khăn hơn khi các phần tử khác cũng ở trong vùng. Nói cách khác, một lờ i giải (đầy đủ hoặc một phần) có thể chứa các thuộc tính l ấp đầ y thật nhƣng lại đƣa ra đầu mối để xác
định các thuộc tính còn lại có thể chuyển lờ i giải thành lờ i giải tối ƣu. Bảng 2.1: Ví d ụ về độ đo tần số Độ đo cƣ trú
Bài toán
Độ đo tần số
Số lƣợ ng công việc j giữ Số lần công việc i thay vị trí (j) Sắ p công việc
đổi vị trí việc j
Tổng cộng thờ i gian làm Số lần công việc j đƣợ c việc của công việc j khi chuyển t ớ i v ị trí trƣớc đó công việc này giữ vị trí
trong dãy
(j) S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
32
Số lần cạnh (i,j) tham gia Số lần cạnh (i,j) bị gỡ vào lờ i giải hiện tại. Cây – k tối tiểu
khỏi lờ i giải hiện tại khi cạnh (k,l) đƣợ c thêm vào.
Tổng tr ọng số khi cạnh Số lần cạnh (i,j) đƣợ c (i,j) tham gia vào lờ i giải.
thêm vào trong quá trình phát triển lờ i giải
Các thuộc tính có độ đo tần số cao thì cũng là những thuộc tính có độ
đo vừa xảy ra cao (có nghĩa là xảy ra trong những lờ i giải hoặc các phép chuyển gần vớ i hiện tại), có thể l ật (Trigger) một luật đánh Tabu nếu những thuộc tính đó dựa trên nhiều lờ i giải liên tiế p nhau và k ết thúc bằng lờ i giải hiện tại. Tuy nhiên, bộ nhớ Frequency – based thƣờ ng sử dụng trong chiến
lƣợ c bộ nhớ dài hạn (Longer Term Strategy), nó tận dụng việc khuyến khích cũng nhƣ giớ i hạn để quyết định những phép chuyển nào đƣợ c lựa chọn. Trong chiến lƣợ c này, luật đánh Tabu đƣợ c chuyển thành ƣớc lƣợ ng vi phạm và khích lệ tr ở thành ƣớc lƣợng tăng cƣờng, để thay đổi nền tảng cho việc
đánh giá phép chuyển là hấ p dẫn hay không. Để mô t ả việc này, một thuộc tính nhƣ là công việc j v ớ i một t ần số cƣ trú cao trong vị trí (j) có thể đƣợ c gán một khích lệ mạnh để xem nhƣ là một thuộc tính hoán chuyển, do đó kết quả là trong lựa chọn của một phép chuyển cung cấ p một dãy mớ i
‟
vớ i ’ (j) (j). Khích lệ này đặc biệt liên quan trong
trƣờ ng hợ p giá tr ị TabuEnd của công việc j nhỏ hơn so với bƣớ c hiện tại, vì giá tr ị này cho biết bƣớ c cuối cùng mà công việc j là một thuộc tính hoán chuyể n (swap attribute). Và do đó cho thấy công việc j nằm ở vị trí (j) trong
các lờ i giải từ đó trở đi.
S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
33
Do đó bộ nhớ Frequency – based thƣờng đƣợ c áp dụng bằng việc đƣa ra các tr ạng thái Tabu đã đƣợc đánh dấu nhƣ là cơ sở cho việc định nghĩa giá tr ị vi phạm và khích lệ để điều chỉnh các ƣớc lƣợ ng của phép chuyển. Nếu Tenure
của một thuộc tính trong bộ nhớ Recency – based đƣợ c hình thành
nhƣ là ngƣỡng điều kiện cho việc áp dụng vi phạm lớn, sau đó phân loạ i Tabu đƣợ c tạo ra từ bộ nhớ này có thể đƣợ c chuyển thành k ết quả của việc ƣớ c lƣợ ng mà tr ở thành cạnh r ất kém khi vi phạm đƣợ c kích hoạt. Ngƣỡng điều kiện cũng có liên quan trong việc quyết định giá tr ị của vi phạm và khích lệ trong các chiến lƣợ c dài hạn. Tuy nhiên hầu hết các ứng dụng hiện giờ đều sử dụng một tuyến tính đa (Linear Multiple) của độ đo tần số đơn giản để t ạo ra cân bằng giữa vi phạm hay khích lệ và hệ s ố chi phí (hay thuận l ợ i) c ủa hàm mục tiêu.
2.6. Chiến lƣợc Tăng cƣờ ng và chiến lƣợc Đa dạng Hai thành phần r ất quan tr ọng của tìm kiếm Tabu là chiến lƣợ c Tăng
cườ ng (Intensication) và chiến lƣợ c Đa dạng (Diversication). Chiến lƣợc tăng cƣờ ng dựa trên việc thay đổi các luật lựa chọn để tăng cƣờ ng việc k ết hợ p các phép chuyển và các đặc tính của lờ i gi ải t ốt trong quá trình tìm ki ếm. Vì các lờ i giải tốt đƣợ c ghi nhận lại để đánh giá các lân cận k ề chúng, nên bộ nhớ hiện có liên hệ đến các cài đặt cho chiến lƣợc tăng cƣờ ng này.
S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
34
Hình 2.3: Tăng cường và đa dạng
Khác biệt chính giữa chiến lƣợc tăng cƣờng và đa dạng là trong chiến
lƣợc tăng cƣờ ng, việc tìm kiếm chú tr ọng đến việc đánh giá lân cận của các lờ i gi ải t ốt. Ngƣợ c lại, chiến lƣợc đa dạng, thúc đẩ y quá trình tìm kiếm khảo sát các vùng chƣa đƣợc đến thăm và tạ o ra các lờ i gi ải khác nhau bằng nhiều cách khác nhau từ những lờ i giải đã có từ trƣớ c.
Ở đây từ lân cận mang ý nghĩa rộng hơn là trong ngữ cảnh thƣờ ng dùng của từ tìm kiế m lân cận. Có nghĩa là, ngoài xem các lờ i giải gần vớ i các lờ i giải tốt b ằng những phƣơng thức chuyển bình thƣờ ng thì chiến lƣợc tăng
cƣờ ng còn tạo ra các lân cận b ằng cách ghép các thành phần của các lờ i gi ải tốt ho ặc b ằng cách sử d ụng các ƣớc lƣợ ng đề nghị các thành phần t ốt cho lờ i giải hiện tại. 2.6.1. Các ch i ế n lược tăng cườ n g
Các chiến lƣợc tăng cƣờng đƣợ c dựa trên việc thay đổi các luật để khuyến khích việc k ết h ợ p các phép chuyển và đặc tính lờ i gi ải t ốt trong quá trình tìm kiếm. Các chiến lƣợ c này có thể khở i tạo một sự đáp lại đến các vùng hấ p hẫn để tìm kiếm các lờ i giải đó kỹ hơn. S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
35
Các biến thể của chiến lƣợc này đã chứng minh đƣợ c là khá thành công. Một loại đƣa ra độ đo đa dạng để đảm bảo r ằng các lờ i giải đƣợ c ghi nhận khác vớ i những cái khác bằng một độ mong muốn, và sau đó xóa tất cả bộ nhớ ngắn hạn trƣớ c khi tr ở l ại từ l ờ i giải tốt nhất c ủa các lờ i giải đã ghi nhận. Độ đo đa dạng có thể liên hệ tớ i số lƣợ ng các phép chuyển cần thiết để chuyển từ lờ i giải này sang lờ i giải khác. Hoặc độ đo này có thể đƣợc định nghĩa độc lậ p vớ i k ỹ thuật chuyển. Ví dụ, trong bài toán sắ p việc, hai lờ i giải có thể đƣợc xem là đa dạng nếu số lƣợng hoán đổi cần chuyển từ lờ i giải này sang lờ i giải khác là lớ n.
Nói cách khác, độ đo đa dạng có thể là số lƣợ ng công việc giữa các vị trí khác nhau trong hai dãy công việc đƣợ c so sánh (điều này cũng cho thấy việc đa dạng và tăng cƣờng thƣờ ng hoạt động chung vớ i nhau). Loại biến thể thứ hai cũng đã đƣợ c chứng minh là hiệu quả. Loại này giữ một danh sách vớ i chiều dài giớ i h ạn, danh sách này sẽ thêm vào lờ i giải mớ i nếu lờ i giải đó tốt hơn các lờ i giải trƣớc đó. Lờ i giải hiện tại cuối cùng trong danh sách luôn luôn là lờ i giải đƣợ c chọn (và bị xóa khỏi danh sách) khi bắt đầu lại quá trình tìm ki ếm. Tuy nhiên trong tìm kiếm Tabu thì bộ nhớ ngắn hạn thực hiện lờ i giải này đƣợ c giữ nguyên và phép chuyển đầu tiên nếu là phép chuyển trƣớc đó của lờ i giải này sẽ bị cấm, do đó một con đƣờng đi tìm lờ i giải ti ế p theo sẽ hoàn thành mớ i. M ột phiên bản đơn giản của lo ại hai của chiến lƣợc tăng cƣờ ng thể hiện ở dƣớ i. Áp dụng một chiến lƣợ c lựa chọn các lờ i giải tốt
Do Chọn ra một trong tậ p các lờ i giải tốt Chạy lại TS từ lờ i giải đƣợ c chọn Thêm các lờ i giải tốt khác vào danh sách các lờ i giải tốt nếu có thể. S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
36
While ((các bƣớ c < giớ i hạn) và (danh sách không r ỗng)) Và các biến thể thứ ba của tiế p cận này có liên quan đến chiến lƣợ c khở i động l ại quá trình tìm ki ế m t ừ các l ờ i giải có liên quan nhưng chưa đượ c
xét đế n (Unvisited Neighbors) của các lờ i giải đƣợ c tạo ra trƣớc đó. Chiến lƣợ c này theo dõi chất lƣợ ng của những lờ i giải liên quan này để chọn ra một tậ p các lờ i giải tốt, và giớ i hạn chú tr ọng vào các lờ i giải cụ thể nào đó, nhƣ là các lờ i giải liên quan của tối ƣu cục bộ, hoặc là các lờ i giải liên quan của các lờ i gi ải đã đƣợ c xét lại những bƣớ c k ề cận trƣớc khi đạt đƣợ c tối ƣu cục bộ. loại chiến lƣợ c của các l ời giải chưa xét này ít khi đƣợ c thực hiện. Tuy nhiên hiệu quả của nó mang lại không bằng hai loại biến thể trƣớ c. 2.6.2. Các ch i ến lược đa dạng
Các phƣơng thức tìm kiếm d ựa trên tối ƣu cục bộ thƣờ ng d ựa trên các chiến lƣợc đa dạng để tăng độ hiệu quả trong việc khám phá không gian lờ i giải đƣợc định nghĩa bằng một vấn đề t ối ưu tổ hợ p. Các chiến lƣợ c này đƣợ c thiết k ế vớ i mục đích chính là ngăn việc tìm kiếm bị l ặ p, nghĩa là thự c hiện cùng một dãy các phép chuyển giống nhau (hoặc tổng quát hơn, là ngăn ngừa việc xem xét lại cùng một tậ p các lờ i giải). Các chiến lƣợc khác thì gia tăng khả năng cho quy trình tìm kiếm. Giải thuật Di truyền sử dụng ngẫu nhiên trong các tiến trình thành phần nhƣ là việc k ết hợ p các thành phần quần thể và áp dụng lai ghép (cũng nhƣ đột biến), do đó tạo ra một hiệu ứng đa dạng thích hợ p. Giải thuật Luyện thép cũng giống nhƣ việc k ết hợ p ngẫu nhiên để tạo
cho đa dạng một hàm của nhiệt độ, hàm này giảm dần dần các biến đổi có hƣớ ng trong con đƣờ ng làm việc mục tiêu của các lờ i giải đƣợ c chọn. Trong tìm kiếm Tabu, độ đa dạng đƣợ c tạo ra cho vài thứ mở r ộng bằng các chức năng của bộ nhớ ngắn hạn, nhƣng đƣợ c củng cố cụ thể bằng các thể S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
37
của bộ nhớ dài hạn. Các chiến lƣợ c tìm kiếm Tabu đa dạng hóa, đƣợ c thiết k ế
để hƣớ ng quy trình tìm ki ếm và các vùng tìm kiếm mới. Thƣờ ng thì chúng dựa vào việc điều chỉnh các luật lựa chọn để đem các thuộc tính ít khi đƣợ c dùng vào lờ i giải. Ngoài ra, các chiến lƣợ c này có thể đƣa ra các thuộc tính bằng việc áp dụng các phƣơng thức mà gộ p các tậ p con của các thuộc tính này một cách định k ỳ vào các giải pháp ứng cửa để tiế p tục việc tìm kiếm.
2.6.2.1. Thay đổi các luật lự a chọn Xem xét giải thuật tìm kiếm Tabu để giải quyết bài toán Phân vùng đồ thị (Graph Partitioning) sử dụng phép hoán chuyển toàn phần và một phần để tìm kiếm các lờ i gi ải c ục b ộ có liên quan. Mục đích của bài toán này là phân vùng các nút của đồ thị thành các phần bằng nhau để tổng tr ọng số của các cạnh đƣợ c tạo từ các nút của phần này và các nút của phần kia là nhỏ nhất. Phép hoán chuyển toàn phần chuyển hai nút nằm trong hai phần khác nhau. Phép hoán chuyển một phần chỉ chuyển một nút từ phần này sang phần khác.
Do đó hoán chuyển toàn phần không làm thay đổi s ố nút trong hai phần con. Do đó, một tiế p c ận để ứng dụng tính đa dạng là không cho phép sử dụng các phép hoán chuyển toàn phần không hiệu quả trong một bƣớc đƣợ c chọn. Các phép chuyển một phần tất nhiên phải đƣợ c k ết hợp để cho phép tính khả thi
đƣợ c hồi phục sau khi đạt đƣợ c các cấp độ của việc không thể thực hiện đƣợ c. Đƣợc cài đặt một cách thích hợ p, chiến lƣợ c này có hiệu quả trong việc xáo tr ộn thông minh lờ i giải hi ện t ại, trong khi thoát khỏi gi ớ i h ạn c ục bộ, để mở r ộng quy trình tìm kiếm sang các vùng khác chƣa đƣợ c biết đến. Thực tế đã chứng minh, chiến lƣợ c này hoạt động khá hiệu quả.
S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
38
Việc k ết hợ p các phép hoán chuyển một phần trong các phép hoán chuyển toàn phần trong ví dụ ở trên có thể đƣợc điều chỉnh bằng cách sử dụng
hàm đánh giá vi phạm: MoveValue’ = MoveValue+d*Penalty Loại tiế p cận đánh vi phạm này thƣờng đƣợ c sử dụng trong tìm kiếm
Tabu, trong đó giá trị Penalty thƣờ ng là một hàm của đại lƣợ ng tần số và d là một tham số độ đa dạng có thể chuyển đổi đƣợ c. Giá tr ị d lớ n thể hiện cho việc mong muốn đa dạng hơn (có nghĩa là các nút thay đổi các tậ p hợ p bị
đánh vi phạm thƣờng xuyên hơn và nặng hơn để khuyến khích chọn ra các phép chuyển có liên quan đến các nút khác. Đánh vi phạ m âm hay khích lệ, có thể đƣợ c sử dụng để thúc đẩy các thành phần kém thƣờ ng xuyên). Vi phạm có thể áp dụng cho các loại phép hoán chuyển cũng nhƣ là các thuộ c tính của phép chuyển. Do đó, trong một pha có các phép hoán chuyển toàn phần đã bị loại kh ỏi l ờ i giải, t ất c ả các phép chuyển này bị đánh một giá tr ị vi phạm lớ n (vớ i một giá tr ị d là vô cực). Trong nhiều ứng dụng d đƣợc dùng để hạn chế các cạnh có khả năng bị lặ p các phép chuyển. Giá tr ị tham số nhỏ thì cũng cho việc ràng buộc vi phạm, giá tr ị tham số lớ n cho phép tìm kiếm qua các vùng không thể làm
đƣợ c. Tham số này có thể đƣợc dùng để điều khiển lƣợ ng ngẫu nhiên trong các phiên bản xác suất của tìm kiếm Tabu.
S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
39
2.6.2.2. Khởi động lại Thông tin tần số có thể đƣợ c sử dụng trong nhiều cách để thiết k ế k ỹ thuật kh ởi động lại trong tìm ki ếm Tabu. Ví dụ trong bài toán sắ p công việc, tần số chung của các công việc chiến các vị trí có thể đƣợ c sử sụng để tạo một quy trình tìm kiếm và tạo ra điểm khở i tạo mớ i. Giả sử luật ngày phải hoàn thành công việc sớ m nhất đƣợ c sử dụng để khở i tạo một lờ i giải ban đầu. Luật
này gán độ ƣu tiên cao nhất cho công việc có ngày phải hoàn thành sớ m nhất. Ví dụ ta có các công việc vớ i thời điểm phải hoàn thành và thờ i gian thực hiện việc các công việc nhƣ sau: Bảng 2.2: Bài toán sắ p công việc
Nội dung
Dãy
Công việc
(1, 2, 3, 4, 5, 6)
Thờ i gian thực hiện
(6, 4, 8, 2, 10, 3)
Ngày phải hoàn thành
(9, 12, 15, 8, 20, 22)
Lờ i giải ban đầu là (4, 1, 2, 3,5, 6). Một dãy công việc khởi động lại có thể đƣợ c tạo ra bằng việc sử dụng thông tin tần số để điều chỉnh chỉ số ƣu tiên của mỗi công việc. Trong trƣờ ng hợ p này, các chỉ số ƣu tiên đơn giản chính là ngày phải hoàn thành công việc và có thể đƣợc điều chỉnh b ằng tham số T ần số thích hợ p.
PrioryIndex’ = PrioryIndex+d*FrequencyMeasure Quá trình thực hiện đƣợc thay đổi qua giá tr ị PrioryIndex’ . Vớ i bài toán sắ p công việc trên, giá tr ị FrequencyMeasure cho một công việc t ại bƣớ c Iter có thể là phần trăm thờ i gian mà công việc có thể đƣợ c thực hiện đúng hẹn, xét vớ i tất cả các lờ i giải từ lần khởi động cuối cùng đến điểm Iter hiện tại. vớ i mục đích đa dạng hóa, ta muốn gi ảm độ ƣu tiên của các công việc mà có S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
40
giá tr ị FrequencyMeasure cao và tăng độ ƣu tiên cho các công việ c có giá tr ị FrequencyMeasure
thấ p. Giả sử các giá tr ị FrequencyMeasure cho các công
việc trong ví dụ này trong một pha khởi động lại đƣợ c mô tả trong bảng sau: Bảng 2.3 : Khởi động l ại bài toán sắ p việc
Công việc
Chỉ số ƣu tiên
Giá trị tần số
(PrioryIndex) (FrequencyMeasure)
Chỉ số ƣu tiên (PrioryIndex’)
1
9
0.01
9.1
2
12
0.23
14.3
3
15
0.83
23.3
4
8
0.13
9.3
5
20
0.31
23.1
6
22
0.93
31.3
Giá tr ị d =10 Khi đó dãy công việc đƣợ c khởi động lại là (1, 4, 2, 5, 3, 6) Loại quy trình này có thể đƣợ c k ết hợ p nhiều loại ứng dụng và thấy
đƣợ c tính hữu dụng lớ n vớ i các thông tin về tần số đƣợ c ghi lại dễ dàng và khá nhiều các bƣớc đƣợ c thực hiện.
Cũng có thể có các dạng khác của chức năng bộ nhớ khi mà các k ỹ thuật kh ởi động l ại đƣợc cài đặt. Nhƣ mộ t d ạng cơ bản mà ta đã xem qua vớ i bộ nh ớ sự kiện then chố t (Critical Event Memory) . Vi ệc s ử
dụng loại b ộ nh ớ
này r ất quan tr ọng trong các thiết k ế tìm kiếm Tabu, vì trong các trƣờ ng h ợ p
này điểm bắt đầu thƣờng đƣa ra cùng hƣớ ng tìm kiếm. Thƣờ ng việc đa dạng hóa thực hiện giống vớ i ngẫu nhiên. Chắc chắn việc giớ i thiệu một y ếu t ố ng ẫu nhiên để đạt đƣợ c một hi ệu ứng đa dạng hóa là một n ền t ảng mở r ộng giữa các quy trình tìm kiếm, và là hoạt động cơ bản S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
41
của giải thuật Luyện thép và giải thuật Di truyền. Từ khía cạnh tr ừu tƣợ ng thì không có gì sai vớ i việc coi ngẫu nhiên và đa dạng hóa là nhƣ nhau, nhƣng vớ i việc mở r ộng ra, việc đa dạng hóa bao hàm các sự khác nhau giữa các thành phần trong một tậ p hợ p, và việc mở r ộng dùng để xây dựng lên các khác biệt có liên quan đế n chiến lƣợ c tìm kiếm, thì việc sử dụng phổ biến của ngẫu nhiên là một vỏ bọc thuận lợ i cho những thứ khá khác biệt. Ví dụ, khi ngẫu nhiên đƣợc dùng nhƣ một phần của k ỹ thuật khởi động lại, các thông tin tần số đƣợc dùng để ƣớc lƣợ ng xác suất phân phối để thay
đổi quy trình khởi động. Theo cách này thì ngẫu nhiên không hẳn là ngẫu nhiên mà đƣợ c dẫn đƣờ ng bở i quy trình tìm kiếm. 2.7. Dao động chiến lƣợ c Dao động chiến lƣợ c (Strategic Oscillation) có các liên k ết gần vớ i các phiên bản gốc của tìm kiếm Tabu và cung cấ p một phƣơng tiện để đạt đƣợ c một ảnh hƣở ng lẫn nhau hiệu quả gi ữa tăng cườ ng và đa dạng trên bộ nhớ t ừ trung bình tớ i dài hạn.
Dao động chiến lƣợ c thực hiện bằng việc hƣớ ng các phép chuyển có liên quan vớ i nhau tớ i một mức then chốt, khi đƣợc xác đị nh bở i một giai
đoạn của vi ệc khở i t ạo hay một khoảng đƣợ c chọn gi ữa các giá tr ị. Mức then chốt hay ‘‘biên dao động’’ (Oscillation Boundary) này thƣờng đƣợ c thể hi ện bằng một điểm mà thƣờng phƣơng thức tìm kiếm dừng lại. Tuy nhiên, thay vì dừng khi đạt tớ i biên, các luật cho việc lựa chọn các phép chuyển đƣợ c thay
đổi, để cho phép vùng đƣợc định ra bở i mức then chốt có thể đƣợ c sử dụng. Tiế p theo tiế p c ận này sẽ x ử lý đối v ớ i chiều sâu bên ngoài biên dao động và
quay ngƣợ c lại. Biên dao động đƣợc đạt tới và vƣợt qua, nhƣng lúc này là vớ i hƣớng ngƣợ c lại và phƣơ ng thức xử lý điểm mớ i vừa chuyển này. S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
42
Quy trình này lặp đi lặ p lại việc đạt t ớ i r ồi vƣợ t qua giớ i hạn theo mức then chốt từ các hƣớ ng khác nhau tạo ra một hành vi dao động. Việc điều khiển trên hành vi này đƣợ c xây dựng bằng cách tạo ra các giá tr ị ƣớc lƣợ ng và luật của phép chuyển, dựa trên các vùng đƣợ c xem xét và chiều của việc tìm kiếm. Khả năng của việc quay lui bị bỏ qua do k ỹ thuật tìm kiếm Tabu chuẩn, giống nhƣ những gì đƣợ c xây dựng trên các chức năng của bộ nhớ Recency – based và Frequency – based .
Một ứng d ụng c ủa chiến lƣợc này đƣợ c áp dụng vào bài toán lý thuyết
đồ thị khi mà các mức then chốt thể hiện một hình thức của cấu trúc đồ thị, có khả năng đƣợ c tạo ra bở i việc thêm vào liên tục các thành phần cơ bản, nhƣ cạnh, nút hay đồ thị con. Chiến lƣợc dao động khi áp dụng vào bài toán này
đƣa ra kết quả bằng một quá trình khở i tạo vớ i việc đƣa ra các thành phần cho đến khi đạt cấ p then chốt, và sau đó cung cấ p các thành phần để vƣợ t qua giớ i hạn mà mức then chốt đã tạo ra. Lờ i giải hiện tại có thể thay đổi cấu trúc một lần khi đạt tớ i giớ i hạn, và do đó một tậ p các lờ i giải liên quan cũng phải đƣợ c tạo ra, dựa trên các luật đã thay đổi trong việc chọn các phép chuyển. Các luật
cũng thay đổi để x ử lý theo hƣớng ngƣợ c l ại, g ỡ các thành phần cho đến khi tạo lại cấu trúc tại mức then chốt.
Dao động chiến lƣợ c có thể đƣợ c xem là sự k ết hợ p của hai tậ p hợ p quy định, một là ở cấp vĩ mô và một ở cấ p vi mô. Bảng 2.4 : Các quy ết định dao độ ng chiến lượ c Cấp độ quyết định vĩ mô 1. Chọn các hàm hƣớ ng dẫn dao động. 2. Chọn một mức mục tiêu cho hàm này. 3. Chọn một mẫu cho việc dao động.
Cấp độ quyết định vi mô S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
43
1. Chọn một tỉ lệ mục tiêu của việc thay đổi (cho việc di chuyển tớ i hoặc lui từ mức mục tiêu). 2. Chọn một nhóm mục tiêu thay đổi. 3. Định ra chuẩn tham vọng để vƣợ t qua giớ i hạn mục tiêu.
Quyết định mức vĩ mô: Hàm hƣớ ng dẫn dao động của quyết định mức vi mô th ứ nhất tƣơng ứng vớ i thành phần đƣợc điều khiển, có nghĩa là giớ i hạn Tabu, vi phạm không có khả năng hoặc hàm mục tiêu (dễ thấy hơn, hàm này cung cấ p một
độ đo của thành phần này cho phép quyền điều khiển đƣợ c d ựng nên). Trong quyết định mức vi mô thứ hai, một biến thể của các mức mục tiêu là có kh ả
năng, và dạng của chúng thƣờng đƣợ c quyết định bở i các thiết lậ p của bài toán. Ví dụ, trong một quy trình của việc thêm hoặc xóa một cạnh trong đồ thị, thì hàm mục tiêu có thể là giai đoạn mà tậ p hợ p hiện tại các cạnh tạo ra một cây bao trùm (Spanning tree) . Tƣơng tự trong một giai đoạn của việc thêm hoặc bỏ một công việc, mục tiêu có thể là giai đoạn thực hiện xong việc gán công việc. Mỗi loại trong số đó có thể đƣợ c chuyển dạng tùy theo các
trƣờ ng hợp đặc biệt của hoàn cảnh mà mục tiêu dựng lên một biên của khả năng, đƣợ c tiế p cận từ bên trong hay bên ngoài. Mẫu của dao động ở mức vĩ mô có các đặc tính nhƣ độ sâu mà quá trình tìm kiếm vƣợt qua theo hƣớng đƣa ra, và tổng quát hơn con đƣờng đó có độ sâu
thay đổi theo thờ i gian. Một ví dụ của loại dao động đơn giản này đƣợ c thể hiện trong hình dƣới đây, lúc này quá trình tìm kiế m bắt đầu bằng việc chạm mục tiêu t ừ trên xuố ng và các dao động với biên độ cố định từ đó về sau.
S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
44
Hình 2.4: Dao động chiến lược đơn giả n
Mẫu trong hình 2.4 đƣợ c th ể hi ện nhƣ các đƣờng gãy khúc hơn là mộ t đƣờng cong, để chỉ ra r ằng việc tìm kiếm không biến đổi liên tục từ cấ p này đến cấ p tiếp theo, nhƣ có thể gi ữ trong một bƣớ c tại một mức nào đó. Đƣờ ng đứt nét đại diện cho mức mục tiêu có thể đƣợc xem nhƣ là chiều thờ i gian. Tƣơng tự, mỗi đoạn của đƣờng dao động cũng có thể đƣợ c hình thành hẹ p hay r ộng . Một loại c ủa mẫu dao động thƣờ ng thực hiện trong các chiến lƣợ c tìm kiếm Tabu ng ắn hạn tiến sát đến mục tiêu, trong nhiều trƣờ ng hợ p, làm chậm tỉ lệ của việc tiế p cận và mất thêm một thờ i gian tại các cấ p nằm gần vùng lân cận c ủa mục tiêu. Khi k ết h ợ p vớ i mục tiêu một khi nó đạt đƣợ c, mẫu này là một phiên bản của một chiến lược tăng cườ ng . Nhƣ hình dƣới đây.
Mức mục tiêu
Hình 2.5 : Dao động mẫu (tăng cườ ng)
Trong cả hai hình 2.4 và 2.5, các dao động xẩy ra trên và dƣớ i mức mục tiêu có thể bị thay thế bởi các dao động chỉ ở một bên của mức tiêu thôi. S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
45
Ví dụ, vớ i các khoảng thờ i gian dài hơn, mẫu này có thể chủ yếu đƣợ c tậ p trung vào một bên và sau đó là bên còn lại, hoặc là vài bƣớ c t ậ p trung ở một bên r ồi vài bƣớ c tậ p trung cả hai bên. Các mẫu th ể hiện các chiến lƣợc tăng cƣờ ng nhìn chung thuận lợ i bằng việc đƣa ra vài biến thể trên trung hạn (Intermediate Term). Hình 2.5 chứa một cấp độ cao nhất của biến thể trong mẫu của nó, và các mẫu đơn giản khác, cũng hầu nhƣ ôm mức mục tiêu (và do đó đƣợc xem nhƣ là chiến lƣợ c tăng cƣờng) nhƣ trong hai hình dƣới đây. Các mẫu tăng cƣờ ng với độ biến thiên cao có thể dễ dàng đƣợ c tạo ra.
Mức mục tiêu Hình 2.6 : Dao động mẫ u (biế n thể tăng cườ ng)
Các loại tăng cƣờng đƣợ c mô tả trong các đồ thị trƣớ c không yêu cầu phụ thuộc vào bộ nhớ , ngoại tr ừ việc theo dõi pha hiện tại của mẫu đang đƣợ c thực thi. Tuy nhiên, việc sử dụng các cấu trúc bộ nhớ tìm kiếm Tabu tăng
cƣờ ng khả năng tìm kiếm và tậ p trung trên các vùng quan tr ọng chiến lƣợ c.
Mức mục tiêu Hình 2.7: Dao động mẫ u (biế n thể tăng cườ ng) S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
46
Các quy trình tăng cƣờ ng có thể đƣợc nhúng vào trong dao động chiến lƣợ c b ằng việc bi ến đổi các lựa ch ọn luật để khuyến khích việc h ợ p nh ất c ủa các thuộc tính cụ thể, bằng cách khóa các thuộc tính này vào trong một lờ i giải trong một thờ i gian. Các quy trình này có thể đƣợc xem nhƣ là các thiế t k ế cho việc sử dụng các biến đượ c quyết định mạnh và biế n vữ ng chắ c (Strongly Determined và Consistent Variables).
Một biế n quyết định mạnh
(Strongly Determined Variables) là cái không th ể thay đổi giá tr ị của nó trong
một lờ i giải chất lƣợ ng cao không làm giảm giá tr ị nghiêm tr ọng hoặc tính khả thi, trong khi một biế n bề n vữ ng(Consistent Variables) là cái thƣờ ng xuyên giữ các giá tr ị khác nhau (hoặc là một khoảng giớ i h ạn cao của giá tr ị) trong các lờ i giải tốt. Sự phát triển của các thƣớc đo của „„sức mạnh‟‟ và
„„vững chắc‟‟ là then chốt để sử dụng những ghi nhận này, thông thƣờ ng bằng sự tính toán cho việc cân bằng đƣợ c quyết định bở i ngữ cảnh. Tuy nhiên, việc sử dụng bộ nhớ Frequency – based để theo dõi độ vững chắc, đôi khi đƣợ c
đánh trọng bở i thành phần của chất lƣợ ng và ảnh hƣở ng, cung cấp các phƣơng thức vớ i hiệu suất tốt. Các quy trình dài hạn (Longer Term), có thể đƣa ra các chiến lƣợc đa dạng vào trong mẫu dao động. Khi dao động đƣợ c dựa trên quá trình khở i
động và hủy, ứng dụng đƣợ c lặ p lại của các pha khở i tạo chứa một loại dao động mà tƣơng tự nhƣ phƣơng thức khởi động lại. Trong các thể hiện này thì điểm khởi động lại luôn luôn giống nhau (có nghĩa là một tr ạng thái null) thay vì chứa các lờ i giải kh ở i t ạo khác nhau, và do đó điề u quan tr ọng là sử d ụng luật đƣợ c chọn các biến thể để đảm bảo đa dạng hóa thích hợ p.
S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
47
Một k ết nối có thể đƣợ c nhận ra giữa một siêu phiên bản dao động chiến lƣợ c và nột lớp các quy trình đƣợ c biết nhƣ hƣớ ng tiế p cận làm xáo tr ộn (Pertubation).
Các phƣơng pháp làm xáo trộn có thể đƣợc xem nhƣ các quy trình có cấu trúc lỏng lẻo cho việc khích lệ dao động, mà không tham khảo đến việc
tăng cƣờng và đa dạng hóa và những chiến lƣợ c có liên quan. Tƣơng tự, các phƣơng thức xáo tr ộn không đƣợ c thiết k ế để sử dụng việc cân bằng v ớ i các biến thể giớ i hạn trong các thành phần nhƣ là các loại khác nhau của tính khả
thi, độ đo của sự đổi chỗ từ các phía khác nhau của các biên. Tuy nhiên, tại cấp đầu tiên của xấ p xỉ, các phƣơng thức xáo tr ộn tìm kiếm mục tiêu tƣơng tự vớ i những gì đƣợc theo đuổi bởi dao động chiến lƣợ c.
Con đƣờ ng tìm kiếm đƣợ c theo bởi dao động chiến lƣợc không đƣợ c mô tả hoàn hảo trong hình 2.7, cho tới đó con đƣờ ng tìm kiếm s ẽ không tuân theo các cấp giai đoạn c ủa ch ức năng một cách tổng quát, mà thƣờ ng s ẽ n ằm trong các vùng bị chồng lên nhau một phần. Hơn nữa trong các tiế p cận thông
thƣờng, các pha đa dạng hóa đƣợ c liên k ết với các pha tăng cƣờ ng, các mẫu đƣợ c mô tả về việc thoáng qua (hover ) mức mục tiêu đôi khi đƣợ c k ết hợ p bằng việc cũng thoáng qua các mức khác, để sử dụng một khái niệm gọi là Nguyên lý t ối ưu xấ p xỉ (Proximate Optimately Principle - POP) . Theo khái niệm này, các lờ i giải tốt tại một mức có thể thƣờng đƣợ c tìm thấy gần vớ i các lờ i giải tốt tại một mức sát ngay đó. Khái niệm POP thúc đẩ y một chiến lƣợ c tìm kiếm Tabu gọi là nố i l ại
đườ ng (Path Relinking), cung cấ p một phƣơng thức quan tr ọng cho việc cải thiện k ết qu ả c ủa dao động chiến lƣợ c. N ối l ại đƣờng đƣa ra một cách để c ải thiện dao động chiến lƣợ c b ằng việc ch ọn ra các lờ i gi ải t ốt t ừ các mức khác S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
48
nhau, và k ết h ợ p chúng lại b ằng các con đƣờ ng mới đã đi qua mức mục tiêu. Các lờ i giải t ốt từ chính mức mục tiêu cũng cung cấ p một nền tảng cho việc xử lý nối lại đƣờng để bắt đầu những cuộc tìm kiếm mớ i tại mức này. Khái niệm POP gợ i ý một hình thức của việc k ết nối cho không gian tìm kiếm mà có thể đƣợ c sử dụng hữu ích bằng tiế p cận này. Có nghĩa là, các
con đƣờ ng nối lại đƣờng, đƣợc chúng hƣớ ng dẫn bở i các lờ i giải tốt, dù là đoán trƣớ c hay xác suất, cũng gần nhƣ đi qua các vùng mà các lờ i giải t ốt ở đó, dùng tậ p lờ i giải lân cận thích hợp đã cung cấ p. Quyết định mứ c Vi mô: Quyết định lựa chọn một tỉ lệ mục tiêu của sự thay đổi cho dao động chiến lƣợc đƣợc đặt ở mức vi mô vì nó hiển nhiên liên quan đến tính biến thiên của một hình thức cục bộ cụ thể. Hình 2.8 mô t ả tỉ lệ thay đổi khác nhau, nơi mà hƣớ ng hiện tại là giảm d ần. M ột lần nữa, những thay đổi đƣợ c biểu diễn bằng các đƣờ ng gãy khúc, nhƣng chú ý rằng chúng không luôn luôn chạy mƣợ t hoặc đều. Vấn đề của việc sử dụng các tỉ lệ mục tiêu nhƣ các thành phần của chiến lƣợ c tìm kiếm có thể xem nhƣ là hiển nhiên, nhƣng nó quan tr ọng là thƣờ ng bị bỏ qua các loại Framework tìm kiếm khác.
Hình 2.8 : T ỉ l ệ mục tiêu c ủa sự thay đổ i S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
49
Khi tham số dao động có liên quan đến các giá tr ị của hàm mục tiêu, tìm kiếm Tabu thƣờng quy định các thay đổi ch ủ động, tìm kiếm s ự c ải thiện nhiều nhất ho ặc ít đi xuống nhất có khả năng. Tiế p cận này áp dụng chủ yếu
vào các pha tăng cƣờ ng và có thể đƣợ c làm dịu đi hay thậm chí bị đảo ngƣợ c trong pha đa dạng hóa. Rõ ràng hơn, nhƣ việc nhất mạnh trƣớc đó, khái niệm của việc tìm kiếm Tabu bằng việc định ra ý nghĩa của các biến thể tốt nhất trong các hiệu chỉnh và các pha tìm kiếm khác, nơi mà các tỉ lệ thay đổi tạo thành một trong các thành phần của biến thể này. K ết hợ p tỉ lệ mục tiêu của thay đổi là quyết định mức vi mô của việc chọn một ban mục tiêu của thay đổi, cái mà quy định các biên độ trên các mức lệnh từ tỉ lệ mục tiêu. Các đoạn thẳng trong hình 2.8 đƣợ c xem là các
đoạn bằng nhau, và ban mục tiêu của thay đổi đƣợc đƣa ra để điều khiển chiều r ộng này. Các tỉ lệ mục tiêu và các ban không đƣợ c quyết định độc lậ p vớ i sự hiểu biết về các lờ i giải có thể sử dụng đƣợc, nhƣng dựa trên việc khám phá các lờ i giải có thể liên quan hiện tại để quyết định các khả năng có đƣợc (do đó các chỗ ngoặc của hình 2.8 đƣợ c tạo ra do quyết định từ các khả năng này). Cuối cùng, tiêu chuẩn tham vọng tại mức vi mô cho phép sự điều khiển chỉ ra trƣớc đó bị bỏ qua nếu một cái khác thay thế hiệu quả hơn xuất hiện,
nhƣ là một phép chuyển dẫn đến lờ i giải mớ i tốt, hoặc tớ i một lờ i giải tốt nhất tại mức dao động hiện tại.
2.8. Nối lại đƣờ ng Một tích hợ p hữu ích của chiến lƣợc tăng cƣờng và đa dạng xảy ra trong tiế p c ận đƣợ c gọi là nố i l ại đườ ng . Ti ế p c ận này tạo ra các lờ i gi ải mớ i bằng cách sử d ụng các con đƣờng đến các lờ i gi ải t ốt – b ằng cách bắt đầu từ S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
50
một trong các lờ i giải đó, đƣợ c gọi là l ờ i giải khở i t ạo (Initial Solution) , và tạo ra con đƣờ ng trong không gian các lờ i giải có liên quan để dẫn đến các lờ i giải khác gọi là l ời giải d ẫn đườ ng (Guilding Solution) . Điều này đƣợ c thực hiện bằng việc chọn các phép chuyển cung cấ p các thuộc tính trong các lờ i giải dẫn đƣờ ng. Tiế p c ận này đƣợc xem nhƣ là mộ t siêu thể hiện (độ tậ p trung cao) của một chiến lƣợ c tìm kiếm để k ết hợ p các thuộc tính của các lờ i giải chất lƣợ ng, bằng việc tạo ra các khích lệ để thu hút các thuộc tính trong các phép chuyển
đƣợ c lựa chọn. Tuy nhiên, thay thế việc sử dụng một sự khích lệ hiếm khi khuyến khích tậ p các thuộc tính này, tiế p cận nối l ại đƣờ ng phụ thuộc vào tất cả xem xét tớ i mục tiêu của việc lựa chọn các phép chuyển để đƣa ra các thuộc tính của các lờ i giải dẫn đƣờ ng (guilding solution), để t ạo ra một thuộc tính t ổn g hợ p tốt trong lờ i giải hiện tại. Thuộc tính tổng hợ p này tại mỗi
bƣớ c
đƣợ c quyết định bở i việc lựa chọn phép chuyển tốt, sử dụng các tiêu chuẩn lựa chọn thông thƣờ ng, từ các tậ p bị giớ i hạn của các phép chuyển k ết hợ p vớ i một s ố t ối đa (hay một giá tr ị tr ọng số tối đa) của các thuộc tính trong các lờ i giải d ẫn đƣờ ng. Nhƣ trong các ứ ng dụng khác của tìm kiếm Tabu, tiêu chuẩn
mong đợ i (Aspiration Criteria) có thể vƣợ t qua giớ i h ạn này để cho phép các phép chuyển khác vớ i chất lƣợng cao hơn đƣợ c xem xét.
Đặc biệt, trên việc xác định một tậ p hợ p của một hoặc nhiều các lờ i giải để hƣớ ng dẫn con đƣờ ng của một lờ i giải đƣợ c chọn, những thuộc tính của các l ời giải hướ ng d ẫ n đƣợ c gán tr ọng số ƣu tiên khi các khích lệ đƣợ c lựa chọn. Các trong số lớn hơn đƣợ c gán vào các thuộc tính xẩy ra vớ i số l ần l ớ n
hơn số lờ i giải hƣớ ng dẫn, cho phép xu hƣớ ng để tăng độ chú ý đến các lờ i
S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
51
giải vớ i chất lƣợng cao hơn hoặc với các đặc biệt (có nghĩa là bổ sung cho những thuộc tính của lờ i giải đƣợ c khở i tạo con đƣờ ng mớ i). Tổng quát hơn, không cần thiết để một thuộc tính xảy ra trong một lờ i giải hƣớ ng dẫn để mà có một tình tr ạng tốt. Trong vài thuộc tính điều chỉnh có thể chia sẻ độ giống nhau và trong trƣờ ng hợ p này nó có thể hữu ích để xem một lờ i giải vector nhƣ việc „„ủng hộ‟‟ để khuyến khích các thuộc tính cụ thể. Thƣờ ng các hình thức mạnh mẽ nhất c ủa tiêu chuẩn tham vọng đƣợ c tin
tƣởng để vƣợ t qua loại này của luật lựa chọn. Trong một tậ p hợ p các l ờ i giải tốt, vai trò của việc khở i tạo lờ i giải và dẫn đƣờ ng các lờ i giải có thể đƣợ c thay thế qua lại. Sự khác biệt giữa khở i tạo lờ i giải và dẫn đƣờ ng lờ i giải có thể lo ại b ỏ hi ệu quả trong các trƣờ ng hợ p cụ thể. Ví dụ, một tậ p hợ p của l ờ i giải hiện tại có thể đƣợ c tạo ra đồng thờ i, mở r ộng ra nhiều con đƣờ ng khác nhau và cho phép một lờ i giải khở i tạo đƣợ c thay thế (bằng một lờ i giải dẫn đƣờ ng cho những lờ i giải khác) bất cứ khi nào lờ i giải hiện tại có liên quan thỏa mãn đƣợ c một tiêu chuẩn tham vọng đủ mạnh. Vì các vai trò có thể thay đổi lẫn nhau, các lờ i giải khở i tạo và các lờ i giải hƣớ ng dẫn đƣợ c gọi chung là các l ời giải tham khảo (Reference Solutions).
Nhƣng lờ i giải tham khảo này có thể có các thể hiện khác nhau dựa trên Framework lờ i giải. Các điểm tham khảo có thể đƣợ c tạo ra bở i b ất k ỳ s ố nào của các heuristic khác nhau mà k ết quả là các lờ i giải chất lƣợ ng cao. Một hình thức của quy trình đƣợ c thể hiện trong hình sau. Tậ p hợp đƣợ c chọn của các lờ i giải tham khảo bao gồm ba thành viên A, B, C. Các con đƣờ ng
đƣợ c tạo ra bằng cách phép mỗi cái đáp ứng thƣ nhƣ lờ i giải khở i tạo. Các con đƣờ ng thể hiện bằng đƣờ ng thẳng dĩ nhiên là quá đơn giả n, từ khi chọn giữa các phép chuyển có khả năng trong các lờ i giải có liên quan sẽ tạo ra một con S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
52
đƣờ ng phức tạp hơn. Tăng cƣờ ng có thể đạt đƣợ c bằng cách tạo ra các đƣờ ng từ các lờ i giải tƣơng tự, trong khi đa dạng hóa đƣợc dùng để tạo ra các con
đƣờ ng từ những lờ i giải không giống nhau. Tiêu chuẩn tham vọng thích hợ p cho phép độ chênh lệch từ các con đƣờ ng ở các lờ i giải lân cận hấ p dẫn. A
B
C
Hình 2.9 : N ối l ại đườ ng trong không gian các l ời giải liên quan
Nhƣ hình 2.9 mô tả , ít nhất một con đƣờ ng tiế p tục đƣợc cho phép vƣợ t qua mỗi lờ i giải khở i tạo/dẫn đƣờ ng. Sự tiế p tục này có thể đƣợ c thực hiện bằng việc đánh giá vi phạm các tậ p hợ p thuộc tính bị gỡ ra trên con đƣờ ng tìm kiếm, bao gồm các thuộc tính của lờ i giải dẫn đƣờ ng mà có thể bị bắt buộc phải gỡ để mà có thể tiế p tục con đƣờ ng (một lờ i giải khở i tạo có thể đƣợ c
đẩy ra khỏi các lờ i giải dẫn đƣờ ng bằng việc đánh giá vi phạm tậ p hợ p các thuộc tính của chúng từ lúc ban đầu). Các vùng có triển vọng đƣợ c tìm kiếm k ỹ hơn trong kỹ thuật nối lại
đƣờ ng (Path relinking) bằng việc thay đổi tr ọng số gắn trên các thuộc tính của các lờ i giải dẫn đƣờ ng và bằng việc thay đổi xu hƣớ ng liên quan vớ i chất
lƣợ ng lờ i giải và các đặc tính của lờ i giải đƣợ c chọn. Hình 2.10 mô tả loại của biến thể có thể là k ết quả, nơi mà các điểm X thể hiện là một lờ i giải khở i tạo,
các đƣờng đứt nét, chấm chấm và liền nét là các con đƣờ ng tìm kiếm khác nhau. Các biến thể của loại này trong một vùng có triển vọng đƣợc thúc đẩy S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
53
bở i nguyên lý tối ƣu xấ p xỉ trong k ết nối với dao động chiến lƣợ c. Việc các lựa chọn thích hợ p của các điểm tham khảo (và các lờ i giải liên quan để tạo ra
các con đƣờ ng t ừ chúng), nguyên lý này đề ngh ị nh ững điểm t ốt có thể đƣợ c tìm trong những vùng mà các con đƣờng đi qua, sau đó bắt đầu tìm kiếm các
điểm chất lƣợng cao trên các đƣờ ng này. A B X C
Hình 2.10: N ối l ại đườ ng bằ ng thuộc tính thu hút
Để mô t ả các khái niệm có liên quan vớ i nối l ại đƣờ ng, chúng ta sẽ lấy lại ví dụ bài toán sắ p công việc t ừ các phần trƣớ c. L ờ i gi ải kh ở i t ạo v ớ i t ổng tr ọng số công việc phải làm là 37, đƣợc dùng để bắt đầu một quy trình nối lại
đƣờng đến l ờ i giải d ẫn đƣờng (2, 1, 2, 4, 6, 5). Các phép hoán đổi đƣợ c chọn để tạo ra một con đƣờ ng ngắn từ một lờ i giải này đến một lờ i giải khác. Trong trƣờ ng hợ p này, thông thƣờ ng các nhóm nghiên cứu tìm kiếm Tabu định nghĩa một khái niệm điể m s ố (point) đơn giản cho lờ i gi ải hi ện t ại b ằng cách đếm số lƣợ ng công việc đang ở trong cùng vị trí tuyệt đối so v ớ i lờ i giải hƣớ ng dẫn. Điểm số của lờ i giải khở i tạo lúc đó bằng 0. Sau phép chuyển đầu tiên, công việc 5 và 6 đƣợc đặt vào các chỗ chính xác nên điểm số lờ i giải thứ
hai là 2. Điểm số của hai lờ i giải sau theo thứ tự có điểm là 3, 4. Tại thời điểm này, nhƣ trong hình dƣớ i, một lờ i giải vớ i một giá tr ị hàm mục tiêu tốt hơn các lờ i giải trƣớc đó đƣợ c tìm thấy. Do đó sử dụng một tiêu – chuẩ n – tham – S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
54
vọng – cải – thiện – t ốt – nhấ t (Improved Best Aspiration Criterion) có
thể
cho phép con đƣờ ng lệch khỏi mục tiêu chính. Trên việc ƣớc lƣợng và lƣu trữ lờ i giải, quy trình có thể tiế p tục tìm những lờ i giải tốt trên con đƣờ ng hay
hƣớng con đƣờ ng của nó tớ i l ờ i gi ải d ẫn đƣờng, trƣớ c khi quay tr ở l ại tìm k ỹ hơn trong vùng có các lờ i giải tiềm năng trên con đƣờ ng tìm kiếm trƣớc đó. Lờ i giải khở i tạo (1,3,4,2,5,6)37
Lờ i giải dẫn đƣờ ng (3,1,4,2,6,5)35
(1,3,4,2,6,5)30
(2,1,3,4,6,5)30 (4,1,3,2,6,5)23
Chuẩn tham Vọng mạnh
(4,1,2,3,6,5)19
Hình 2.11 : Ví d ụ nố i l ại đườ ng
Các k ỹ thuật nối lại đƣờ ng có thể phát triển cho các loại ứng dụng khác bằng việc tạo ra các quy trình hƣớ ng dẫn phù hợ p.
ủa tăng cường và đa dạng h óa 2.8.1. Vai trò c Nối lại đƣờ ng thƣờng đi với dao động chiến lƣợc, đƣa đến một nền tảng tự nhiên cho việc phát triển chiến lƣợc tăng cƣờ ng và đa dạng hóa. Các chiến
lƣợc tăng cƣờ ng trong hoàn cảnh này lựa chọn các lờ i giải tham khảo làm lờ i giải tốt, các lờ i giải đó nằm trong vùng phổ biến hoặc chia sẻ các đặc tính phổ biến. Tƣơng tự các chiến lƣợc đa dạng dựa trên k ỹ thuật nối lại đƣờ ng về bản chất chọn các lờ i giải tham khảo từ các vùng khác nhau hoặc cho thấy các đặc
tính trái ngƣợ c. Các chiến lƣợc đa dạng hóa cũng thƣờ ng chú ý trên các con đƣờng vƣợt qua các điểm tham khảo. Tậ p h ợ p của các điểm tham khảo chứa S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
55
trong đó các điều ki ện có thể quyết định hữu ích bằng việc phân vùng và các phƣơng thức phân tích điều kiện. các l ờ i gi ải liên quan 2.8.2. K ết h ợp Các chiến lƣợ c nối l ại đƣờ ng trong tìm kiếm Tabu có thể t ốt bằng việc tận d ụng t ậ p lờ i giải liên quan khác nhau và các định nghĩa thuộc tính lơn là những cái sử dụng bằng heuristic cho việc tạo ra các lờ i giải tham khảo. Ví dụ, đôi khi có thuậ n lợ i khi sử dụng một khở i tạo tậ p lờ i giải có liên quan cho việc nối l ại đƣờng, có nghĩa là các lờ i giải liên quan nào đó cho phép mộ t l ờ i giải đƣợ c tạo ra trong dãy các bƣớ c khở i tạo. Trong trƣờ ng hợ p này, quy trình khở i t ạo có thể đƣợ c s ử d ụng để đƣa ra một phần khở i t ạo b ắt đầu, b ằng việc
xác định các thuộc tính cụ th ể nhƣ là nền t ảng cho các bƣớ c khở i t ạo còn lại. Tƣơng tự, nối lại đƣờ ng có thể sử dụng các lờ i giải có liên quan bị hủy, nơi mà các lờ i giải kh ở i t ạo bị „„quá tải‟‟ vớ i các thuộc tính đƣợc đƣa ra bở i các lờ i giải hƣớ ng dẫn, và các thuộc tính này bị thay đổi cho đến khi đạt đến một tậ p hợ p vớ i một k ết cấu thích hợ p. Khi nối lại đƣờng đƣợ c dựa trên các l ời giải khở i t ạo có liên quan (Contructive Neighborhood), các lờ i giải d ẫn
đƣờ ng cung cấ p cung cấ p thuộc
tính quan hệ đƣa r a các lựa chọn cho các giai đoạn tiế p theo sau của việc khở i tạo. Hơn nữa, một khở i tạo đầy đủ có thể đƣợ c tạo ra bằng việc tạo một lờ i giải khở i tạo là lờ i giải null (Null Solution). Việc hủy cao nhất bắt đầu từ một
„„tậ p hoàn chỉnh‟‟ của các phần tử trong lờ i giải. Các tiết cận khở i tạo hoặc hủy khác vớ i tiế p cận chuyển đổi bằng việc tạo ra chỉ một lờ i giải mớ i thay vì một dãy các lờ i giải, trên mỗi con đƣờ ng từ lờ i gi ải khở i t ạo đến các lờ i giải bên ngoài nếu một t ậ p l ời giải chuyể n tiế p liên quan (Transition Neighborhood)
không đƣợ c sử dụng mở r ộng t ậ p l ời giải khở i t ạo có liên
quan (Contructive Neighborhood). S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
56
Tậ p lờ i giải khở i tạo có liên quan có thể đƣợc xem nhƣ là trƣờ ng hợ p
đặc biệt của khả năng tái tạo lại các lờ i giải liên quan (Restoring Neighborhood), từ lờ i giải null hoặc là lờ i giải đã xây dựng một ph ần không thỏa mãn tất cả các điều kiện để đánh giá là khả thi. Tƣơng tự t ậ p l ờ i giải hủ y có liên quan có thể cũng đại diện một thể hiện của một hàm hồi phục tính khả
thi, khi quá nhiều các phần tử có thể vi phạm ràng buộc. Tóm tắt từng bƣớ c của k ỹ thuật nố i l ại đườ ng :
B1: Xác định cấu trúc của các lờ i giải có liên quan và các thuộc tính lờ i giải có liên quan cho việc nối lại đƣờ ng ( Path Relinking ) có thể khác nhau tùy vào chiến lƣợ c tìm kiếm Tabu áp dụng vào các bài toán.
B2: Xác định một tậ p hợ p của hai hay nhiều các lờ i giải, và định ra thành viên nào sẽ đƣợc xem nhƣ là lờ i giải kh ở i t ạo và các lờ i giải dẫn
đƣờ ng (các lờ i giải tham khảo có thể không khả thi, nhƣ là các thành phần lờ i giải không hoàn chỉnh hay quá tải đƣợc đối xử nhƣ các lờ i giải khở i tạo hay hủy có liên quan). Phép chuyển từ lờ i giải khở i tạo đến hay vƣợ t qua các lờ i giải dẫn
đƣờ ng tạo ra một hay nhiều các lờ i gi ải trung gian nhƣ các ứng viên để kh ở i tạo các nỗ l ực giải quyết v ấn đề v ề sau (nếu pha đầu tiên của bƣớ c này tạo ra một giải pháp không khả thi, áp dụng pha thứ hai có liên quan v ớ i một t ậ p – l ờ i – giải – khôi – phục – khả - thi – có – liên – quan (Feasibility Restoring Neighborhood)).
CHƢƠNG 3: Ứ NG DỤNG THUẬT TOÁN TABU SEARCH VÀO BÀI TOÁN NGƢỜ I DU LỊCH 3.1. Lịch sử bài toán ngƣờ i du lịch S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
57
Bài toán ngƣờ i du lịch (hay có tên khác là bài toán ngƣờ i bán hàng) (tiếng Anh: Travelling Salesman Problem - TSP) là một bài toán NPHardness thuộc thể loại tối ƣu tổ hợp đƣợ c nghiên cứu trong lý thuyết khoa học máy tính. Nội dung bài toán có thể hiểu khái quát nhƣ sau: Cho trƣớ c một danh sách các thành phố và khoảng cách giữa chúng, tìm chu trình ngắn nh ất
đi qua tất cả các thành phố đúng 1 lần. Bài toán đƣợ c nêu ra lần đầu tiên năm 1930 và là một trong những bài toán đƣợ c nghiên cứu sâu nhất trong tối ƣu hóa. Nó thƣờng đƣợ c dùng làm thƣớc đo cho nhiều phƣơng pháp tối ƣu hóa. Mặc dù bài toán r ất khó giải trong trƣờ ng hợ p tổng quát, có nhiều phƣơng pháp giải chính xác cũng nhƣ heur istic đã đƣợc tìm ra để giải quyết một số trƣờ ng hợ p có tớ i hàng chục nghìn thành phố.
Bài toán ngƣờ i du lịch đƣợc định nghĩa trong thế k ỉ 19 bở i nhà toán học Ireland William Rowan Hamilton và nhà toán h ọc Anh Thomas Kirkman.
Trƣờ ng hợ p tổng quát của TSP có thể đƣợ c nghiên cứu lần đầu tiên bở i các nhà toán học ở Vienna và Harvard trong những năm 1930. Hassler Whitney ở
đại học Princeton đƣa ra tên bài toán ngƣờ i du lịch ngay sau đó. Trong những năm 1950 và 1960, bài toán trở nên phổ biến trong giớ i nghiên cứu khoa học ở Châu Âu và Mỹ. George Dantzig, Delbert Ray Fulkerson và Selmer M. Johnson ở công ty RAND tại Santa Monica đã có đóng góp quan trọ ng cho bài toán này, biểu diễn bài toán dƣớ i dạng quy hoạch nguyên và đƣa ra
phƣơng pháp mặt ph ẳng c ắt để tìm ra lờ i gi ải. V ới phƣơng pháp mớ i này, họ đã giải đƣợ c tối ƣu một trƣờ ng hợ p có 49 thành phố bằng cách xây dựng một chu trình và chứng minh r ằng không có chu trình nào ngắn hơn. Trong những
S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
58
thậ p niên tiếp theo, bài toán đƣợ c nghiên cứu b ở i nhiều nhà nghiên cứu trong
các lĩnh vực toán học, khoa học máy tính, hóa học, vật lý, và các ngành khác. Năm 1972, Richard M. Karp chứng minh r ằng bài toán chu trình Hamilton là NP-đầy đủ, kéo theo bài toán TSP cũng là NP-đầy đủ. Đây là một lý giải toán học cho sự khó khăn trong việc tìm kiếm chu trình ngắn nhất. Một
bƣớ c tiến lớn đƣợ c thực hiện cuối thậ p niên 1970 và 1980 khi Grötschel, Padberg, Rinaldi và cộng sự đã giải đƣợ c những trƣờ ng hợ p lên tớ i 2392 thành phố, sử dụng phƣơng pháp mặt phẳng cắt và nhánh cận. Trong thậ p niên 1990, Applegate, Bixby, Chvátal, và Cook phát triển một chƣơng trình mang tên Concorde giải đƣợ c nhiều trƣờ ng hợp có độ lớ n k ỉ lục hiện nay. Gerhard Reinelt xuất bản một bộ dữ liệu các trƣờ ng hợp có độ
khó khác nhau mang tên TSPLIB năm 1991, và nó đã đƣợ c sử dụng bở i nhiều nhóm nghiên cứu để so sánh k ết quả. Năm 2005, Cook và cộ ng sự đã giải
đƣợ c một trƣờ ng hợ p có 33810 thành phố, xuất phát từ một bài toán thiết k ế vi mạch. Đây là trƣờ ng hợ p lớ n nhất đã đƣợ c giải trong TSPLIB.
Đến nay bài toán TSP vẫn đƣợ c ti ế p t ục nghiên cứu tìm ra l ờ i gi ải cho các bộ dữ liệu lớn hơn. Chẳng hạn bộ dữ liệu của nƣớc Mĩ vớ i 115,475 thành phố ngƣờ i giải ra chu trình tối ƣu đƣợc trao thƣở ng 500$ (thông tin chi tiết tại http://www.tsp.gatech.edu/).
3.2. Phân tích bài toán Có một ngƣời thƣơng gia cần đi du lị ch tại n thành phố. Anh ta xuất phát từ một thành phố nào đó, đi qua các thành phố khác để tham quan và tr ở về thành phố ban đầu. Mỗi thành phố chỉ đến một lần, và khoảng cách từ một thành phố đến các thành phố khác đã đƣợ c bi ết trƣớ c. Hãy tìm một chu trình (một đƣờng đi khép kín thỏa mãn điều kiện trên) sao cho tổng độ dài các cạnh là nhỏ nhất. S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
59
Dƣớ i d ạng đồ thị: Bài toán ngƣờ i du lịch có thể đƣợc mô hình hoá nhƣ một đồ th ị vô h ƣớ ng có tr ọng số, trong đó mỗi thành phố là một đỉnh của đồ thị còn đƣờng đi giữa các thành phố là mỗi cách. Khoảng cách giữa hai thành phố là độ dài cạnh. Đây là vấn đề cực ti ểu hoá với điểm đầu và điểm cuối là cùng một đỉnh sau khi thăm hết các đỉ nh còn lại đúng một lần. Mô hình này
thƣờ ng là một đồ thị đầy đủ (giữa mỗi cặp đỉnh đều có cạnh). Nếu không có đƣờ ng giữa hai thành phố thì có thể thêm một c ạnh với độ dài đủ l ớn vào đồ thị mà không ảnh hƣởng đến k ết quả tối ƣu sau cùng. Cho đồ thị đầy đủ n đỉnh vô hƣớ ng, có tr ọng số G = (V, E). Tìm chu trình v1 → v2 → … → vn → v 1 vớ i vi
V, i =
sao cho tổng tr ọng số
hành trình trên các cạnh (vi, vi+1) và (vn, v1) là nh ỏ nhất. Bài toán TSP thuộc lớ p bài toán NP-Khó (lớ p các bài toán không có giải thuật trong thời gian đa thức). Việc thực hiện liệt kê hết t ất cả các chu trình là
điều gần nhƣ không thể vớ i số đỉnh lớn (đồ thị n đỉnh phải duyệt n! chu trình). Số chu trình phải duyệt tăng rất nhanh khi số đỉnh n càng lớ n. Ngay vớ i một đồ thị 100 đỉnh, việc duyệt toàn bộ cũng là điều r ất khó thực hiện. 3.3. Xây dự ng ứ ng dụng giải quyết bài toán tr úc d ữ li ệu đầu vào 3.3.1. C ấu Chƣơng trình biểu diễn các thành phố bằng tọa độ của chúng, không mất tính tổng quát, ta giả sử tọa độ các đỉnh là các số nguyên. Ví dụ biểu diễn tọa độ của 6 thành phố 1 193 255 2 214 320 3 432 72 4 193 120 5 231 285 S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
60
6 52 181
Trong đó mỗi dòng biểu diễn tọa độ của một thành phố, trong mỗi dòng số đầu tiên là số th ứ t ự, s ố thứ 2 là biểu diễn hoành độ và số th ứ 3 biểu diễn
tung độ tƣơng ứng vớ i tọa độ của thành phố đó. Sau khi đƣợ c xử lý, chƣơng trình sẽ thay đổi dữ liệu đầu vào thành dạng ma tr ận bi ểu diễn khoảng cách tƣơng ứng giữa các cặp đỉnh – đƣợ c gọi là ma tr ận khoảng cách, ma tr ận này sẽ là đầu vào cho cho thuật toán Tabu Search.
Hình 3.1. Biể u diễ n ma tr ận khoảng cách
ệ gi ữa các l ớ p ch ính 3.3.2. C ấu trúc chương trình và mố i quan h Chƣơng trình cài đặt gi ải quyết bài toán ngƣờ i du lịch s ử d ụng 3 thuật toán: Tìm kiếm Tabu, Luyện thép và Quay lui. Cấu trúc chi tiết các lớ p chƣơng trình nhƣ sau: 3.3.2.1. Tìm kiếm Tabu Lớ p TSPEnvironment: Xử lý đọc dữ liệu từ tệp txt và chuyển dữ liệu thành dạng ma trận khoảng cách. Lớp này là lớp dùng chung cho cả ba thuật toán. S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
61
Lớ p TabuList: Lƣu trữ một danh sách cấm, chứa các kết quả đã duyệt qua. Lớ p TabuSearch: Đây là lớp chính chịu trách nhiệm xử lý phép tìm lặp ở mỗi giai đoạn của thuật toán.
Hình 3.2. C ấu trúc l ớp chương trình Tabu
3.3.2.2. Luyện thép Lớ p Anneal: Lớp chính xử lý thuật toán, tại lớp này sẽ khai báo các tham số quan trọng trong giải thuật luyện thép: nhiệt độ cao nhất, tỷ lệ làm nguội, nhiệt độ thấp nhất.
S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
62
Hình 3.3. C ấu trúc l ớp chương trình giải thuật Luyện thép
3.3.2.3. Quay lui Lớ p Permutations: Lƣu vết các đƣờng đi tìm đƣợc. Lớ p BackTrack: Lớp chính xử lý lời gọi đệ quy cho mỗi đáp án con
trong cây đáp án.
Hình 3.4. C ấu trúc l ớp chương trình giải thuật Quay lui
Mối quan hệ tổng quan giữa các lớp đƣợ c thể hiện nhƣ sau:
3.3.3. K ết qu ả khi ch ạy chương trình S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
63
Chƣơng trình cho phép lựa chọn kiểu dữ liệu đầu vào theo dạng khở i tạo ngẫu nhiên hoặc nhậ p từ tệ p dữ liệu txt , tệ p dữ liệu này phải có cấu trúc
nhƣ đƣợ c mô tả trong phần 3.3.1.
Hình 3.5. K ế t quả chương trình bằ ng giải thuật Tabu vớ i 30 thành phố khở i t ạo ng ẫ u nhiên
S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
64
Hình 3.6. K ết quả chương trình bằ ng giải thuật Tabu vớ i 50 thành phố đọc d ữ liệu t ừ t ệ p
Hình 3.7. K ết quả chương trình bằ ng giải thuật Luyện thép vớ i 15 thành phố
đọc d ữ liệu t ừ t ệ p S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
65
3.4. Đánh giá hiệu hiệ u quả quả củ của giả giải thuậ thuật tìm kiế kiếm Tabu Search Để kiểm tra tính hi ệu quả của giải thuật tìm kiếm Tabu, đề tài thực hiện kiểm tra trên k ịch bản nhƣ sau: Thự c hiện việc ghi chép về th thờ i gian xử lý lý (tính b ằ ng ng mili giây) mà m ỗ i giải thuật cần để tính tính toán đượ c k ế ết quả. Mỗi l ần tính toán sẽ đƣợ c ti ến hành 3 lần, tính giá tr ị trung bình và lấy một s ố phần thậ p phân ở k k ết quả cuối cùng. K ết quả đo đạc đƣợ c ghi lại dƣớ i bảng sau: Bảng 3.1. K ế ng giải thuật quay lui ết quả tính toán b ằ ng STT Số Số đỉnh đỉnh Lần đo 1 Lần đo 2 Lần đo 3 Trung bình 1 5 46.5 47.2 45.8 46.5 2 8 274.2 278.3 280.6 277.7 3 10 29481.5 29601.8 29596.3 29599.9 4 20 _ _ _ _ 5 30 _ _ _ _ Bảng 3.2. K ế ng giải thuật Luyện thép ết quả tính toán b ằ ng đỉnh STT Số Số đỉnh
Lần đo 1
Lần đo 2
Lần đo 3
Trung bình
1
5
2042.0
2156.6
1986.5
2061.7
2
8
2756.5
2896.4
2801.2
2818.0
3
10
5963.2
6025.4
6100.2
6029.6
4
20
12032.5
13023.5
12636.4
12564.1
5
30
23632.6
23589.5
23587.1
23603.1
6
50
42568.5
43124.4
41986.2
42559.7
Bảng 3.3. K ế ng giải thuật Tìm kiế m Tabu ế t quả tính toán b ằ ng
STT Số Số đỉnh đỉnh
Lần đo 1
ố hóa S ố hóa b ở i Trung tâm H ọc liệu
Lần đo 2
Lần đo 3
Trung bình
http://www.lrc-tnu.edu.vn/
66
1
5
1423.5
1420.0
1430.8
1424.8
2
8
2269.1
2250.4
2260.5
2260.0
3
10
2783.6
2788.0
2802.8
2791.5
4
20
5761.2
5788.2
5766.5
5772.0
5
30
9560.6
9620.3
9520.2
9567.0
6
50
17661.2
18002.5
17862.2
17842.0
Bảng 3.4. T ổ n ổng g hợ p k ế ế t quả tính toán của ba giải thuật
STT
đỉnh Số Số đỉnh
Quay lui
Luyệ Luyện thép
Tìm kiế kiếm Tabu
1
5
46.5
2061.7
1424.8
2
8
277.7
2818.0
2260.0
3
10
29599.9
6029.6
2791.5
4
20
_
12564.1 12564 .1
5772.0
5
30
_
23603.1 23603 .1
9567.0
6
50
_
42559.7
17842.0
ố hóa S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
67
Số thành phố
Hình 3.8. Đồ thị biể u diễ n thờ i gian chạ y của 3 giải thuật
Vớ i ba giải thuật tìm kiếm c ục bộ: Giải thuật tìm kiếm Tabu hiệu quả ng hơn so vớ i giải thuật Luyện thép và giải thuật Quay lui khi x ử lý v ớ i số lƣợ ng
đỉnh lớ n. n. Dựa trên k ết quả ở hình hình 3.8 ta có th ể thấy thời gian để tìm kiếm theo giải thuật Tabu tăng không quá nhanh khi số lƣợng đỉnh tăng.
ố hóa S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
68
K ẾT LUẬN 1. K ết quả đạt đƣợ c của đề tài Sau thờ i gian nghiên cứu thực hi ện, đề tài đã hoàn thành các nhiệm v ụ
cơ bản ban đầu đặt ra, vớ i các k ết quả đạt đƣợc nhƣ sau: Thứ nhất: Đề tài đã trình bày đƣợ c tổng quan về thuật toán tìm kiếm cục b ộ, cũng nhƣ trình bày đƣợ c m ột s ố giải thuật tìm kiếm cục b ộ hi ện nay:
Leo đồi, Luyện thép. Thứ hai: Đề tài đã tìm hiểu và trình bày đƣợ c các vấn đề cơ bản của thuật toán tìm kiếm Tabu: nguyên lý chung của tìm kiếm Tabu, cách sử dụng bộ nhớ , nền tảng của giải thuật, các chiến lƣợ c trong tìm kiếm Tabu… Thứ ba: Đề tài đã xây dựng chƣơng trình ứng dụng mô phỏng giải quyết bài toán ngƣờ i du lịch bằng thuật toán tìm kiếm Tabu. Đề tài cũng áp dụng một số gi ải thuật tìm kiếm để cài đặt mô phỏng bài toán ngƣờ i du lịch, từ đó đánh giá và so sánh đƣợ c hiệu quả của các giải thuật đem lại. Các k ết quả thực nghiệm thu đƣợ c của đề tài đã phản ánh trung thực vớ i phần cơ sở lý thuyết đƣợ c trình bày ở trên.
2. Hạn chế của đề tài Chƣơng trình cài đặt đã sử dụng một số quy tắc nhƣ nhóm các đỉnh gần nhau để tạo ra chu trình hoặc nhóm các chu trình có đƣờng đi ngắn nhất để tạo ra các chu trình mớ i t ối ƣu hơn trong phép lặ p ở bƣớ c kh ở i t ạo chu trình, quy trình này giúp giảm thiểu sự ng ẫu nhiên của d ữ li ệu, đồng thờ i kh ả năng tạo ra k ết quả mớ i tối ƣu là cao hơn. Tuy vậy chƣơng trình còn một số hạn chế trong các phép tính xử lý các các giá tr ị trung gian nhƣ ma trậ n khoảng cách, mảng động lƣu kết quả chu
S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/
69
trình tìm đƣợ c, các giá tr ị trung gian này sẽ tăng nhanh khi số đỉnh đầu vào là lớ n gây tốn kém về mặt bộ nhớ . Các k ết quả thực nghiệm chạy trên chƣơng trình của đề tài xây dựng
cho bài toán ngƣờ i du lịch mớ i chỉ thực hiện vớ i số lƣợ ng thành phố nhỏ, chƣa đo đƣợ c thờ i gian chạy giải thuật vớ i số thành phố đủ lớ n. Các k ết quả đánh giá mớ i chỉ thực hiện trên bài toán ngƣờ i du lịch,
chƣa thực hiện trên nhiều bài toán để đánh giá đƣợ c hiệu quả của giải thuật tìm kiếm Tabu một cách chính xác và tổng quát hơn
3. Hƣớ ng phát triển của đề tài Việc gi ải quyết nh ững h ạn chế trên cũng là hƣớ ng phát triển của đề tài
trong tƣơng lai. Tác giả sẽ sớ m triển khai thực nghiệm trên nhiều bài toán (bên cạnh bài toán ngƣờ i du lịch) để từ đó đánh giá đƣợ c hiệu quả của giải thuật tìm kiếm Tabu mang lại.
S ố hóa b ở i Trung tâm H ọc liệu
http://www.lrc-tnu.edu.vn/