Vấn đề được đặt ra trong nghiên cứu này đó là sự tổng quát hóa của thuật toánQTSP với một tập hợp các xe ô tô để người bán hàng có thể thuê để di chuyển.QTSP là một biến thể của TSP với
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ HÀ NỘI
Đinh Thị Thủy
BÀI TOÁN THUÊ XE DU LỊCH CÓ HẠN NGẠCH
Ngành: Công nghệ thông tinChuyên ngành: Khoa học máy tính
Mã số: 64080101
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
Người hướng dẫn khoa học: PGS.TS.Hoàng Xuân Huấn
Hà Nội - 2018
Trang 2LỜI CAM ĐOAN
Tôi xin cam đoan rằng đây là công trình nghiên cứu của cá nhân tôi dưới sựhướng dẫn giúp đỡ của PGS.TS Hoàng Xuân Huấn Các kết quả được viết chungvới các tác giả khác đều được sự đồng ý của tác giả trước khi đưa vào luận văn.Trong toàn bộ nội dung nghiên cứu của luận văn, các vấn đề được trình bày đều lànhững tìm hiểu và nghiên cứu của chính cá nhân tôi hoặc là được trích dẫn từ cácnguồn tài liệu có ghi tham khảo rõ ràng, hợp pháp
Trong luận văn, tôi có tham khảo đến một số tài liệu của một số tác giả đượcliệt kê tại mục tài liệu tham khảo
Hà Nội, ngày tháng năm 2018
Học viên
Đinh Thị Thủy
Trang 3LỜI CẢM ƠN
Trước khi trình bày nội dung chính của khóa luận, em xin bày tỏ lòng biết ơnsâu sắc tới PGS.TS.Hoàng Xuân Huấn người đã tận tình hướng dẫn để em có thểhoàn thành khóa luận này
Em cũng xin bày tỏ lòng biết ơn chân thành tới toàn thể các thầy cô giáo trongkhoa Công nghệ thông tin, Đại học Công Nghệ, Đại Học Quốc Gia Hà Nội đã dạybảo em tận tình trong suốt quá trình học tập
Nhân dịp này em cũng xin được gửi lời cảm ơn chân thành tới gia đình, bạn bè
đã luôn bên em, cổ vũ, động viên, giúp đỡ em trong suốt quá trình học tập và thựchiện luận văn tốt nghiệp
Hà Nội, ngày tháng năm 2018
Học viên
Đinh Thị Thủy
Trang 4DANH MỤC KÍ HIỆU VÀ CHỮ VIẾT TẮT
ACO Phương pháp tối ưu hóa đàn kiến(Ant Colony Optimisation)
AS Hệ kiến AS(Ant System)
ACS Hệ kiến ACS(Ant Colony System)
MMAS Hệ kiến MMAS(Max-Min Ant System)
SMMAS Hệ kiến MMAS trơn(Smooth-Max Min Ant System)
CaRS Bài toán thuê xe du lịch(Traveling car renter problem)
GA Thuật giải di truyền(Genetic Algorithm )
QTSP Quota Traveling Salesman Problem
q-CaRS Bài toán thuê xe du lịch có hạn ngạch(Quota traveling car renter problem)TSP Bài toán người chào hàng(Traveling Salesman Problem)
|| Số phần tử trong một tập
Trang 5Mục lục
Danh mục kí hiệu và chữ viết tắt 3
Chương 1 Bài toán thuê xe du lịch có hạn ngạch 8
1.1 Quy hoạch nguyên 8
1.1.1.Dạng tổng quát của bài toán 8
1.1.2.Ứng dụng của bài toán 8
1.1.3.Các phương pháp tiếp cận giải bài toán quy hoạch nguyên 9
1.2 Bài toán người chào hàng(Traveling Salesman Problem - TSP) 11
1.3 Bài toán thuê xe du lịch có hạn ngạch(q-CaRS) 13
1.3.1.Bài toán người bán hàng có hạn ngạch(QTSP) 13
1.3.2.Các bài toán liên quan 13
1.3.3.Bài toán thuê xe du lịch có hạn ngạch(q-CaRS) 15
Chương 2 Các phương pháp metaheuristic 18
2.1 Thuật giải di truyền 18
2.1.1.Thuật toán di truyền cổ điển 19
2.1.2.Biễu diễn bằng véc tơ số thực 24
2.1.3.GA trong tối ưu tổ hợp 25
2.2 Phương pháp tối ưu hóa đàn kiến 28
2.2.1.Cách tìm đường đi của kiến tự nhiên 28
2.2.2.Kiến nhân tạo 29
2.2.3.Phương pháp ACO tổng quát 29
Chương 3 Thuật giải di truyền cho bài toán q-CaRS 35
3.1 Biểu diễn quần thể 36
3.2 Quá trình tái tạo 37
3.3 Thủ tục tìm kiếm địa phương 38
3.4 Thuật toán MemPlas 42
3.5 Kết quả thực nghiệm 44
3.5.1.Bộ dữ liệu chuẩn 44
3.5.2.Tiến hành chạy thực nghiệm 44
Trang 63.5.3.Kết quả thực nghiệm 44
Chương 4 Thuật toán ACO giải bài toán q-CaRS 50
4.1 Đồ thị cấu trúc 50
4.2 Vết mùi và thông tin heuristic 52
4.3 Quy tắc cập nhật mùi 52
4.4 Thủ tục tìm kiếm cục bộ 53
4.5 Kết quả thực nghiệm 53
4.6 Kết quả thực nghiệm và đánh giá 53
Trang 7LỜI MỞ ĐẦU
Trong những năm gần đây, đi cùng với sự bùng nổ mạnh mẽ của công nghệthông tin và du lịch, các dịch vụ tiện ích phục vụ cho khách du lịch với các ứngdụng di động cũng được phát triển mạnh mẽ Nhu cầu tìm kiếm các kế hoạch chochuyến đi với chi phí phù hợp và thuận lợi là một trong những nhu cầu phổ biến
Cụ thể, trong một tour du lịch tham quan các địa điểm của thành phố, tại mỗi địađiểm đều có những sẵn những chiếc xe du lịch với giá thành cụ thể Vì lý do tàichính cũng như thời gian hành khách có thể sẽ không đi tham quan được hết cácđịa điểm nhưng họ luôn mong muốn sẽ có một chuyến đi hài lòng nhất với chi phínhỏ nhất Đây bài toán thuộc vấn đề tối ưu tổ hợp, thuộc lớp bài toán NP-khó và
là bài toán biến thể của bài toán người bán hàng du lịch(TSP) và bài toán thuê xe
du lịch(CaRS) Đã có rất nhiều các nghiên cứu đưa ra cho bài toán này như : “Cácphương pháp tối ưu cho bài toán người bán hàng du lịch trực tuyến”[46] , “Bảođảm xấp xỉ cho bài toán người bán hàng có trọng số”[6] , “Thuật toán Memeticcho bài toán thuê xe du lịch”[20] Tuy nhiên các nghiên cứu này không xét đếnchi phí di chuyển mà mới chỉ xét đến thời gian di chuyển thành công giữa các địađiểm
Vấn đề được đặt ra trong nghiên cứu này đó là sự tổng quát hóa của thuật toánQTSP với một tập hợp các xe ô tô để người bán hàng có thể thuê để di chuyển.QTSP là một biến thể của TSP với mỗi đỉnh đều có rằng buộc nhất định và mụctiêu là tối thiểu hóa chi phí di chuyển với yêu cầu rằng buộc không nhỏ hơn giá trịđịnh sẵn Trong nghiên cứu “Thuật toán Memetic cho bài toán thuê xe du lịch”[20]
đã đưa ra những kết quả được đánh giá khá cao, tuy nhiên trong nghiên cứu không
có ràng buộc nào đối với các địa điểm đến thăm
Bài toán q-CaRS là bài toán tối ưu tổ hợp có nhiều ràng buộc , thuộc lớp bài toán
NP khó, chỉ có thể tìm lời giải gần đúng trong thời gian đa thức Trong nghiên cứu[21] tác giả đã đưa ra thuật giải di truyền để giải bài toán và kết quả thu được làkhá tốt Tuy nhiên trong thời gian gần đây, phương pháp tối ưu hóa đàn kiến giảibài toán tối ưu tổ hợp đang được nổi lên với những thực nghiệm được đánh giákhá cao đặc biệt là thành công trong bài toán người bán hàng với số đỉnh lên đến
2000 Vì vậy luận văn đề xuất thêm phương pháp tổi ưu hóa đàn kiến giải bài toánq-CaRS trên Kết quả thực nghiệm cho thấy phương pháp tối ưu hóa đàn kiến chokết quả trong nhiều hợp tốt hơn thuật giải GA về cả chất lượng và thời gian Trongphương pháp tối ưu hóa đàn kiến, luận văn sử dụng quy tắc cập nhật mùi Max-min trơn trong nghiên cứu của tác giả Đỗ Đức Đông và các cộng sự [2]
Luận văn trình bày về bài toán thuê xe có hạn ngach q-CaRS, sau đó là giới thiệuchung về hai phương pháp metaheuristic là thuật giải di truyền và phương pháp
Trang 8tối ưu hóa đàn kiến giải bài toán toán tối ưu tổ hợp Tiếp theo luận văn trình bày
cụ thể về hai phương pháp trên giải bài toán q-CaRS và chương trình thực nghiệm
Bố cục của luận văn bao gồm 4 chương:
• Chương 1: Bài toán thuê xe có hạn ngạch
• Chương 2: Các phương pháp metaheuristic
• Chương 3: Thuật toán di truyền giải bài toán q-CaRS
• Chương 4: Thuật toán ACO giải bài toán q-CaRS
• Phụ lục trình bày một số module cơ bản trong lập trình thuật toán
Do thời gian thực hiện luận văn không nhiều, kiến thức còn hạn chế nên khi làmluận văn không tránh khỏi những hạn chế và sai sót Tác giả mong nhận được sựgóp ý và những ý kiến phản biện của quý thầy cô và bạn đọc Xin chân thành cảmơn!
Hà Nội, ngày tháng năm 2018
Học viên
Đinh Thị Thủy
Trang 9Chương 1
Bài toán thuê xe du lịch có hạn ngạch
Quy hoạch nguyên (Integer Programming) , viết tắt là IP, là bài toán quy hoạch
mà trong đó tất cả hoặc một phần các biến bị ràng buộc chỉ lấy giá trị nguyên.Trường hợp thứ nhất được gọi là quy hoạch nguyên hoàn toàn (Pure Integer Pro-gramming – PIP), trường hợp thứ hai được gọi là quy hoạch nguyên bộ phận(Mixed Integer Programming – MIP)
Bài toán quy hoạch nguyên tổng quát được biểu diễn dưới dạng:
f(x) = cTx→min(max)với các điều kiện:
Ax≤b
x≥0
x ∈ ZnBài toán quy hoạch nguyên được gọi là hoàn toàn khi tất cả các biến đều là sốnguyên và được gọi là bộ phận khi một số biến không phải là số nguyên
Bài toán quy hoạch nguyên 0-1 là bài toán khi các biến được giới hạn là 0 hoặc 1
Ứng dụng của bài toán được phát triển dựa vào các biến thể là bài toán quyhoạch nguyên hỗn hợp và bài toán quy hoạch nguyên 0-1
Trang 10Lập kế hoạch sản xuất
Quy hoạch nguyên hỗn hợp có nhiều ứng dụng trong sản xuất công nghiệp, baogồm mô hình hóa việc làm Một ví dụ quan trọng xảy ra trong quy hoạch sản xuấtnông nghiệp bao gồm xác định năng suất sản xuất cho một số loại cây trồng có thểchia sẻ tài nguyên (ví dụ như đất đai, lao động, vốn, hạt giống, phân bón ) Mộtmục tiêu có thể là tối đa hóa tổng sản lượng mà không vượt quá các nguồn lựcsẵn có Trong một số trường hợp, điều này có thể được biểu diễn dưới dạng mộtchương trình tuyến tính, nhưng các biến phải được hạn chế là số nguyên
Bài toán lập lịch
Bài toán này liên quan đến dịch vụ và lập lịch trình xe trong mạng lưới vận tải Ví
dụ, bài toán liên quan đến việc chỉ định xe buýt hoặc tàu điện ngầm vào các tuyếnđường riêng để có thể đáp ứng được thời gian biểu, và cũng để trang bị cho họcác trình điều khiển Ở đây các biến quyết định nhị phân cho biết xe buýt hoặc tàuđiện ngầm được gán cho tuyến đường và liệu người lái xe có được chỉ định chomột chuyến tàu hoặc tàu điện ngầm hay không
Mạng viễn thông
Mục tiêu của những bài toán này là thiết kế một mạng lưới các đường dây cài đặt
để đáp ứng các yêu cầu truyền thông được xác định trước và tổng chi phí của mạng
là tối thiểu Điều này đòi hỏi tối ưu hóa cả topo của mạng cùng với việc thiết lậpnăng suất của các đường khác nhau Trong nhiều trường hợp, năng suất bị hạn chế
là số nguyên Thông thường, tùy thuộc vào công nghệ được sử dụng, các hạn chế
bổ sung có thể được mô hình hóa như là một bất đẳng thức tuyến tính với các biến
số nguyên hoặc nhị phân
Mạng di động
Nhiệm vụ quy hoạch tần số trong mạng di động GSM bao gồm việc phân phốicác tần số sẵn có trên các ăng ten để người dùng có thể được đáp ứng và sự kếthợp được giảm thiểu giữa các ăng-ten Bài toán này có thể được xây dựng như làmột chương trình tuyến tính số nguyên, trong đó các biến nhị phân cho biết tần sốđược gán cho một ăng-ten
Sử dụng tổng số đơn modulo
Nếu bài toán có dạng max(cTx), Ax = b với A, b, c đều nguyên và A là tổng đơnmodulo, khi đó tất cả các phương án đều là số nguyên Do đó, đáp án trả về bằngthuật toán đơn giản được đảm bảo là nguyên Để chỉ ra tất các các đáp án đều lànguyên, đặt x là một lời giải của bài toán Khi đó Ax = b, x0 = [xn 1, xn 2, , xnj] làcác phần tử tương ứng trong cột của x Theo định nghĩa, có ma trận vuông con Bcủa A sao cho Bx0 =b
Trang 11Vì các cột của B là độc lập tuyến tính và B là ma trận vuông, theo giả định B làđơn modulo và det(B) = ±1 Vì B là ma trận không suy biến, khả nghịch nên
x0= B−1b Theo định nghĩa B−1= detBadj(B)(Badjlà ma trận liên hợp của B) Khi đó:
B−1 = ±Badjlà nguyên
x0= B−1blà nguyên
Tất cả các đáp án có thể đều nguyền
Thuật toán chính xác
Khi ma trận A không hoàn toàn unimodular, có một loạt các thuật toán có thể được
sử dụng để giải bài toán quy hoạch nguyên chính xác Một lớp các thuật toán làcác phương pháp cắt mặt phẳng bằng cách giải sự lũy biến của bài toán quy hoạchnguyên và sau đó thêm các ràng buộc tuyến tính đưa ra giải pháp theo hướngnguyên mà không loại bỏ bất kỳ điểm khả thi nào
Một lớp các thuật toán khác là các biến thể của nhánh cận và phương thức giới hạnbiên Ví dụ, phương pháp nhánh cận và cắt kết hợp phương pháp cắt và phươngpháp nhánh cận Một lợi thế là các thuật toán có thể được kết thúc sớm và miễn
là có ít nhất một giải pháp tích hợp đã được tìm thấy khả thi, mặc dù không nhấtthiết phải tối ưu, giải pháp có thể được trả lại Hơn nữa, các giải pháp của sự bàitoán quy hoạch nguyên lũy biến có thể được sử dụng để ước tính trường hợp xấunhất từ giải pháp tối ưu được trả lại Cuối cùng, phương pháp nhánh cận và giớihạn biên có thể được sử dụng để trả về nhiều giải pháp tối ưu
Lenstra năm 1983 cho thấy rằng, khi số lượng các biến được cố định, bài toán quyhoạch nguyên có thể được giải quyết trong thời gian đa thức
Phương pháp Heuristic
Vì bài toán quy hoach nguyên là bài toán NP, nên nhiều trường hợp khó giải quyếtđược và do đó phương pháp heuristic phải được sử dụng thay thế Ví dụ, tìm kiếmtabu có thể được sử dụng để tìm kiếm lời giải cho bài toán quy hoạch nguyên Để
sử dụng tìm kiếm tabu để giải quyết bài toán quy hoạch nguyên, các chuyển động
có thể được định nghĩa là tăng hoặc giảm một số biến ràng buộc nguyên, trongkhi tất cả các biến số nguyên ràng buộc khác không đổi Các biến không bị ràngbuộc sau đó được giải Bộ nhớ ngắn hạn có thể bao gồm các giải pháp đã đượcthử nghiệm trước đó trong khi bộ nhớ trung hạn có thể bao gồm các giá trị chocác biến số nguyên bị ràng buộc Cuối cùng, bộ nhớ dài hạn có thể hướng dẫn tìmkiếm theo các giá trị số nguyên mà chưa từng được thử
Một số phương pháp heuristic khác:
Hill climbing
Simulated annealing
Reactive search optimization
Ant colony optimization
Trang 12Hopfield neural networks
Ngoài ra còn có một loạt các phương pháp heuristic khác đối với các bài toán đặcbiệt, chẳng hạn như phương pháp k-opt cho bài toán người chào hàng
Prob-lem - TSP)
Bài toán người bán hàng là một trong những bài toán điển hình của tối ưu
tổ hợp được định nghĩa trong thế kỉ 19 bởi nhà toán học Ireland William RowanHamilton và nhà toán học Anh Thomas Kirkman Trò chơi Icosa của Hamilton làmột trò chơi giải trí dựa trên việc tìm kiếm chu trình Hamilton
Bài toán được phát biểu như sau:
Có một người giao hàng cần đi giao hàng tại n thành phố(hoặc điểm tiêu thụ) C ={c1, c2, , cn}độ dài đường đi trực tiếp từ ciđến cjlà dij Anh ta xuất phát từ một thành
phố nào đó, đi qua các thành phố khác để giao hàng và trở về thành phố ban đầu, mỗi thành phố chỉ đến một lần 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.
Dưới dạng đồ thị bài toán được mô hình hóa như một đồ thị vô hướng có trọng
số Đây chính là bài toán tìm chu trình Hamilton với đồ thị đầy đủ có trọng số
G = (V, E), với V là tập các đỉnh với nhãn là các thành phố trong C, E là tập cáccạnh nối các thành phố tương ứng, độ dài mỗi cạnh chính là độ dài đường đigiữa hai thành phố tương ứng Trong trường hợp này, tập S sẽ là tập các chu trìnhHamilton trên G, f là độ dài của chu trình,Ω là ràng buộc đòi hỏi chu trình là chutrình Hamilton (qua tất cả các đỉnh, mỗi đỉnh đúng một lần), C là tập thành phốđược xét, C0 trùng với C, tập X là vectơ độ dài n: x = {x1, x2, , xn} vớixi ∈ C
∀i≤n, còn X∗ là các vectơ trong đó xikhác xjđối với mọi cặp(i, j)
Do đó, lời giải tối ưu của bài toán TSP là một hoán vị π của tập đỉnh c1, c2, , cn
sao cho hàm độ dài f(π)là nhỏ nhất, trong đó f(π)được tính theo công thức sau:
Trong bài toán TSP đối xứng, khoảng cách giữa hai thành phố là không đổi dù
đi theo chiều nào Như vậy đồ thị trong bài toán này là đồ thị vô hướng Việc đốixứng này làm giảm đi một nửa số lời giải có thể Trong khi đó, với bài toán TSP bấtđối xứng thì đường đi giữa hai thành phố có thể chỉ một chiều hoặc có độ dài khácnhau giữa mỗi chiều, tạo nên đồ thị có hướng TSP 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 đocho 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
Trang 13tổng quát, có nhiều phương pháp giải chính xác cũng như heuristic đã đượ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ố
Ngay trong hình thức phát biểu đơn giản nhất, bài toán TSP đã có nhiều ứngdụng trong lập kế hoạch, hậu cần, cũng như thiết kế vi mạch
Trong lý thuyết độ phức tạp tính toán, phiên bản quyết định của TSP (cho trước
độ dài L, xác định xem có tồn tại hay không một chu trình đi qua mỗi đỉnh đúngmột lần và có độ dài nhỏ hơn L) thuộc lớp NP-đầy đủ Do đó, có nhiều khả năng
là thời gian xấu nhất của bất kì thuật toán nào cho TSP đều tăng theo cấp số nhânvới số thành phố
TSP có một vài ứng dụng thậm chí trong dạng thức nguyên thuỷ của nó như lập
kế hoạch, logistic, và sản xuất các microchip Thay đổi đi chút ít nó xuất hiện nhưmột bài toán con trong rất nhiều lĩnh vực như việc phân tích gen trong sinh học.Trong những ứng dụng này, khái niệm thành phố có thể thay đổi thành kháchhàng, các điểm hàn trên bảng mạch, các mảnh DNA trong gen, và khái niệmkhoảng cách có thể biểu diễn bởi thời gian du lịch hay giá thành, hay giống như sự
so sánh giữa các mảnh DNA với nhau Trong nhiều ứng dụng, các hạn chế truyềnthống như giới hạn tài nguyên hay giới hạn thời gian thậm chí còn làm cho bàitoán trở nên khó hơn
Trong lý thuyết của độ phức tạp tính toán, phiên bản quyết định của bài toánTSP thuộc lớp NP-đầy đủ Vì vậy không có giải thuật hiệu quả nào cho việc giảibài toán TSP Hay nói cách khác, giống như thời gian chạy xấu nhất cho bất ký giảithuật nào cho bài toán TSP tăng theo hàm mũ với số lượng thành phố, vì vậy thậmchí nhiều trường hợp với vài trăm thành phố cũng đã mất vài năm CPU để giảimột cách chính xác
Một số cách tiếp cận bài toán
• Thiết kế thuật toán tìm kiếm lời giải tối ưu (thường hoạt động hiệu quả chonhững trường hợp nhỏ)
• Thiết kế thuật toán heuristic để tìm những lời giải tốt nhưng không nhất thiếttối ưu
• Thiết kế thuật toán xấp xỉ để tìm những lời giải không quá lớn so với lời giảitối ưu
• Giải quyết các trường hợp đặc biệt
Trang 141.3 Bài toán thuê xe du lịch có hạn ngạch(q-CaRS)
Bài toán thuê xe du lịch có hạn ngạch được đề xuất bởi Elizabeth F.G Goldbarg
và các cộng sự[22] Đây là bài toán mở rộng của bài toán người bán hàng có hạnngạch và bài toán thuê xe du lịch được ứng dụng trong việc chọn tour du lịch
Bài toán được giới thiệu trong[21] Dưới dạng đồ thị đây là bài toán có đồthị có hướng và có trọng số Ta có G = {V, A} là một đồ thị đầy đủ, với V ={v1, v2, , vn}là tập các đỉnh và A = {(vi, vj), vi, vj ∈ V} Mỗi đỉnh vi ∈ V đều cómột ràng buộc là mức độ hài lòng, tại mỗi cạnh (vi, vj) ∈ A có một trọng số cij làchi phí thuê xe Lời giải của bài toán chính là tìm chu trình Hamilton từ tập con V0của V với chi phí thấp nhất Bài toán thuê xe du lịch có hạn ngạch được mở rộng
từ bài toán QTSP
Hầu hết các nghiên cứu trước đây của vấn đề du lịch là dựa trên các biến thểcủa vấn đề [23] và chúng không xem xét đến các chi phí vận chuyển Họ xem xétđến thời gian di chuyển thành công giữa các điểm và giá trị tối đa của tổng cáclợi ích liên kết với mỗi điểm Một số bài bái có xem xét đến thời gian cần thiết đểđến thăm các điểm du lịch hấp dẫn Cho một tập hợp các điểm tương ứng với cácđỉnh của 1 đồ thị, mỗi đỉnh có một điểm số tương ứng đại diện cho mức độ hàilòng của điểm đến Trọng số tương ứng với mỗi cạnh(vi, vj) ∈ Abiểu thị cho thờigian cần thiết để di chuyển giữa vivà vj Mục tiêu của bài toán là tìm được giá trịlớn nhất của tổng số điểm cho những điểm du lịch đã chọn trong một khoảng thờigian giới hạn nhất định Một cuộc khảo sát heuristic và metaheuristic để tiếp cậnTTDP được giới thiệu trong [15] Một công cụ hướng dẫn du lịch động ở Goerlitz(Đức) được giới thiệu trong [24, 26] bằng cách dùng thuật toán tham lam để giảiquyết các vấn đề tối ưu Một biến thể của bài toán định hướng đã được dùng trongcác bài toán thực tế trong [39], trong đó mỗi đỉnh có một giá trị trọng số tương ứngvới thời gian cần thiết để di chuyển tới mỗi vị trí
Điểm số tương ứng với mỗi vị trí được tính toán bằng thông tin thu được từ kĩthuật tìm kiếm thông tin và tìm kiếm địa phương sẽ được áp dụng cho bài toán.Một hệ thống thực tế được hoàn thành đã được giới thiệu cho thành phố Ghent.Bài báo này được kế thừa từ [38] bằng cách xem xét đến thời tiết, giờ mở cửa, địađiểm đông dân và sở thích cá nhân
Về cơ bản, mô hình cơ sở của nghiên cứu này giống với bài toán định hướng,
Trang 15tuy nhiên nó khác ở điểm là cho một số lượng địa chỉ có thể di chuyển đến nhưng
bị giới hạn bởi một thời gian nhất định Thuật toán tìm kiếm ngẫu nhiên tham lam(GRASP) với phương pháp nối liền (relinking) đã được áp dụng để giải quyết bàitoán tối ưu Phiên bản với 2 tham số của vấn đề này được đề cập trong [39] vàcũng được nghiên cứu trong[34], có 2 giá trị lợi ích khác nhau được gán với mỗithành phố Thuật toán đàn kiến và thuật toán khu phổ biến(variable neighborhood) với phương nối liền (path relinking) đã được áp dụng cho nhiều trường hợp vớimột và 2 tham số Ngoài ra, để có thể đánh giá các trường hợp, các thuật toán đãđược áp dụng cho những trường hợp thực tế với dữ liệu từ Úc và thành phố Padua(Italy)
Trong [??], GRASP đã được dùng để phát triển hệ thống chuyên gia du lịch gọi
là City Trip Planner Năm thành phố ở Belgium đã được chọn để kiểm thử Mộtphần mở rộng của vấn đề đó là xem xét đến các phương tiện đi lại công cộng đượcgiới thiệu trong [14] và thành phố San Sebastian đã được chọn để kiểm thử Vấn
đề đã được mô hình hóa thành bài toán định hướng phụ thuộc thời gian với cáccửa sổ thời gian và đã được giải quyết bằng thuật toán tìm kiếm địa phượng[42] Hầu hết các nghiên cứu trước đây đều bị giới hạn khu vực, ví dụ như 1 thành phốhoặc các địa điểm lân cận Tuy nhiên, trong một số trường hợp, khách du lịch hoặcngười bán hàng có thể di chuyển qua nhiều thành phố khác nhau bằng cách thuê
xe [20] và mục tiêu của vấn đề có thể là việc tối ưu chi phí của tour, bao gồm sốtiền bỏ ra để thuê xe Có nhiều phương tiện và công ty trong mỗi thành phố, phạm
vi của các tùy chọn có thể là người dùng chọn phương tiện tốt nhất để sử dụngkhi di chuyển trong tour Nói chung, một tour sẽ bắt đầu và kết thục tại một thànhphố Để chọn được xe nào là tốt nhất cho mỗi phần của tour, khách hàng nên xemxét đến giá tiền thuê xe, các chí phí liên quan đến nhiên liệu tiêu thụ và các chi phíkhác (ví dụ như phí cầu đường) Nếu một chiếc xe được thuê ở một thành phố vàđược trả lại ở một thành phố khác, khách hàng sẽ phải trả thêm lệ phí để đưa chiếc
xe trở lại thành phố ban đầu Trong một công ty, các xe cho thuê được quản lý theocấu trúc phân cấp đơn giản với các khu vực chung [11] Theo [11], những công tynày sẽ quản lý khoảng 15 nhóm xe, mỗi nhóm gồm những xe có chất lượng giốngnhau và những nhóm khác nhau sẽ có chất lượng và giá tiền để thuê xe khác nhau.Một nghiên cứu về vấn đề định tuyến trong lĩnh vực thuê xe được giới thiệu trong[45] Một vấn đề chính khác là sự phân phố xe tại mỗi trạm cho thuê, vì kháchhàng được phép thuê tại một trạm và trả lại xe tại một trạm khác Do đó, cần thiết
để duy trì số lượng cố định xe tại mỗi trạm vì phương tiện được thuê phải đượctrả lại Những hệ thống cho thuê xe và trả lại có thể xảy ra tại những trạm khácnhau và được sử dụng ở nhiều địa điểm khác nhau[16] Có những cách để giảm tỉ
lệ số xe được trả lại ở một trạm khác đó là cung cấp những ưu đãi cho khách hàng
Trang 16Những trạm có tỉ lệ sử dụng cao có thể được khuyến khích giảm đi lợi nhuận mộtchút để khách hàng trả xe tại những trạm có tỉ lệ sử dụng thấp hơn
Bài toán xuất phát từ những nhu cầu thực tiễn của người du lịch Khi người dulịch đi tham quan một khu vực, họ thường đặt ra các mục tiêu về sự hấp dẫn củađịa điểm Tuy nhiên vì một số lý do tài chính và thời gian họ không thể tham quanđược tất cả Do đó mục tiêu đặt ra là thỏa mãn về mức độ hài lòng đồng thời chiphí tiết kiệm nhất Bài toán được đặt ra trong nghiên cứu này không đề cập đếnthời gian di chuyển mà tập trung vào mức độ hấp dẫn của những địa điểm thamquan và chi phí di chuyển Yêu cầu được đặt ra là khách tham quan có thể thuê xe
để di chuyển giữa các thành phố Mức giá thuê xe ở mỗi thành phố là khác nhau.Khi khách hàng trả xe lại tại một thành phố không phải là nơi thuê xe thì mất thêmchi phí trả xe để xe đó di chuyền về nơi ban đầu Các vấn đề liên quan đến bài toánnày đã được ứng dụng rất nhiều trong thực tế[14]
Bài toán có một số ràng buộc sau:
-Một chiếc xe không thể bị thuê nhiều hơn 1 lần
-Một ràng buộc được gán với mỗi thành phố được gọi là mức độ hấp dẫn.-Tour du lịch bắt đàu và kết thúc trong thành phố với nơi đầu tiên bắt đầu, còngọi là cơ sở
Mô hình toán học của bài toán:
Đây là một bài toán biến thể của bài toán TSP
Input:
-C: tập các xe để cho thuê
-V: tập các các thành phố
-A: tập các cạnh (đường đi nối giữa hai thành phố))
- Một ràng buộc qi, i= 1, , n, được gán với thành phố i∈ Vvà ω là tổng ràng
buộc tối thiểu cần thiết thu được trong suốt tour du lịch
-Giá để thuê c ∈ Ctrên canh(i, j) ∈ Alà dcij
-Số tiền bổ sung γijc phải được trả nếu c được thuê tại thành phố j và di chuyểnđến thành phố i với i6= j, giá trị này tương ứng với thuế phải trả để chuyển c về j
Các biến số:
- fijc có giá trị 1 khi xe c di chuyển trên cạnh (i, j) từ i tới j và có giá trị 0 trongnhững trường hợp khác
-wcijcó giá trị 1 khi xe c được thuê ở j và được chuyển tới i
-aci nhận giá trị 1 khi c được thuê ở i
-ecicó giá trị 1 khi xe c được chuyển tới i
Trang 17- Giá trị nguyên ui định nghĩa vị trí của đỉnh i trong tour Đỉnh 1 gọi là thànhphố cơ sở.
Trang 18-Phải đảm bảo được mức độ hài lòng.
Trang 19Chương 2
Các phương pháp metaheuristic
Thuật toán di truyền (Genetic Algorithm viết tắt là GA ), là phương pháp heuistic đang được sử dụng rộng rãi Phương pháp này phỏng theo quá trình tiếnhoá tự thích nghi của các quần thể sinh học dựa trên học thuyết Darwin để tìm lờigiải các bài toán tối ưu
meta-Trong tự nhiên, mỗi cá thể có một tập các tính chất và đặc điểm riêng biệt đượcthể hiện ra ngoài môi trường gọi là kiểu hình Kiểu hình này được quyết định bởicấu trúc của các gene trong cơ thể, được gọi là kiểu gene Sự đa dạng về kiểu genecủa các cá thể dẫn đến sự đa dạng về kiểu hình của một quần thể sinh học Quátrính phát triển của mỗi quần thể tuân theo quy luật chọn lọc tự nhiên mà tiến hoáqua các thế hệ kế tiếp nhau Trong đó, các hậu duệ được sinh ra từ thế hệ trướcthông qua quá trình sinh sản (di truyền và biến dị) cạnh tranh tự nhiên, cá thể nào
có kiểu hình (và do đó là kiểu gene) thích nghi cao hơn với môi trường phát triểnthì sẽ có khả năng lớn hơn trong tồn tại và sản sinh con cháu, do đó kiểu gene nàytiến hoá và hoàn thiện Quá trình tiến hoá này được lặp đi lặp lại, các cá thể có kiểugene phù hợp sẽ sống sót và phát triển, các cá thể yếu sẽ bị loại bỏ
Dựa vào tư tưởng trên, để giải bài toán tối ưu người ta mã hoá mỗi lời giải tiềmnăng dưới dạng thích hợp gọi là một nhiễm sắc thể Mỗi nhiễm sắt thể (còn gọi là
cá thể) cấu tạo từ các gene,thường dùng nhất là dạng xâu Trên tập nhiễm sắc thểnày, người ta xây dựng các toán từ di truyền (tương giao chéo: crosover, biến dị:mutation) và mô phỏng quá trình chọn lọc tự nhiên trên một quần thể nhiễm sắcthể để tìm lời giải gần đúng của bài toán Để hiểu rõ GA , trước hết ta làm quenvới GA cổ điển dùng cho bài toán tối ưu liên tục
Trang 202.1.1 Thuật toán di truyền cổ điển
GA cổ điển được Holland (1975) giới thiệu để tối ưu hoá bài toán:
max{f(x)/x∈ M⊂ Rn} (2.1.1)nhờ biểu diễn gene dạng nhị phân, ở đây M là hình hộp Fn
i = 1[ai, bi] trong khônggian véc tơ thực n chiều Rn, f nhận các giá trị dương trên M
Để thực hiện thủ tục GA, trước hết cần mã hóa các phần tử của tập M Mỗi
x trong M được mã hoá bởi một xâu nhị phân độ dài m z = (z1, z2, , zm) gọi là
nhiễm sắc thể hay một cá thể, mỗi zi được gọi là một gene
Phương pháp mã hoá và giải mã
Mã hóa
Giả sử ta cần tìm cực đại hàm f với sai số mỗi biến xilà 10−p Ta chia mỗi đoạn[ai, bi] thành (bi−ai)10p đoạn bằng nhau và ký hiệu mi là số tự nhiên nhỏ nhấtthoả mãn:
(bi−ai)10p62mi−1Khi đó nếu x = (x1, , xi, , xn)và xi thuộc đoạn thứ k thì xi được mã hoá bởi xâunhị phân độ dài micó dạng sao cho sẽ thoã mãn yêu cầu về độ chính xác và x đượcbiễu diễn bởi xâu nhị phân có độ dài
Tiếp theo, xây dựng thủ tục tính hàm eval trên tập nhiễm sắc thể để đánh giá
độ thích nghi của mỗi cá thể: eval(z) = f(x), trong đóx là véc tơ tương ứng với z.Sau khi đã có các thủ tục mã hóa-giải mã và tính hàm eval cho các nhiễm sắc thể,thủ tục GA khở tạo ngẫu nhiên quần thể ban đầu P(0) gồm N nhiễm sắc thể vàthực hiện lặp quá trình tiến hoá quần thể này cho đến khi dừng nhờ các thử tục
Trang 21chọn lọc và tái tạo bằng các toán tử di truyền (biến dị và tưng giáo chéo) Nhưcác thuật toán metaheuristic khác, chất lược của GA được quyết định nhờ hai đặc
tính định hướng quá trình tiến hóa: tính tăng cường và khám phá/đa dạng Tính tăng
cường thực hiện nhờ ưu tiên chọn lọc các các thể có giá hàm đánh giá (eval) cáo
trong quần thể hiện thời cho tạo sinh quần thể kế tiếp Tính khám phá/đa dạng nhằm
tạo sinh ra các lời giải tiềm năng mới nhờ các toán tử tái tạo: di truyền và biến dị.Cấu trúc của thủ tục GA được mô tả trong hình2.1
Hình 2.1: Cấu trúc tổng quát của thuật toán di truyền
Thủ tục chọn lọc một quần thể thực hiện theo phương pháp bánh xe xổ số ởmục I.1.3 còn thủ tục tái tạo đựơc thực hiện nhờ các toán tử di truyền trong mụcI.1.4 dưới đây
Thủ tục chọn lọc
Với mỗi quần thể P(t−1)gồm N nhiễm sắc thể : P(t−1) = {v1, , vN} ta xây
dựng bánh xe xổ số (roulette wheel) để thực hiện quá trình chọn lọc như sau.
Bánh xe xổ số
Đánh giá độ phù hợp toàn phần : F =∑N
i = 1eval(vi).Tính các xác suất chọn pi của nhiễm sắc thể vi : pi =eval(vi)/F
Tính xác suất tích luỹ qicủa vi: qi =∑i
j = 1pj
Trang 22Quá trình chọn lọc
Quá trình chọn lọc quần thể Q(t)từ P(t−1)dựa vào bánh xe xổ số được thựchiện theo cách sau:
Đối với mỗi số tự nhiên k ∈ {1, 2, , N}ta tạo một số ngẫu nhiên rk in[0, 1]
Nếu qi ≥rk ≥qi − 1thì chọn vithuộc Q(t) Hiển nhiên, ở đây mỗi nhiễm sắc thể cóthể được chọn nhiều lần và Q(t) vẫn được xem là có N phần tử Các cá thể có độ
thích nghi (eval) lớn sẽ có khả năng được chọn nhiều hơn.
Quá trình tái tạo
Quá trình tái tạo dựa trên các toán tử di truyền : tương giao chéo và biến dị
Toán tử tương giao chéo (Crossover operator)
Với 2 nhiễm sắc thể x = (x1 xm)và y= (y1 ym)tuỳ ý, chọn điểm tương giao
k (có thể ngẫu nhiên) ta sẽ sinh được hai nhiễm sắc thể mới:
x0 = (x1, xk, yk+ 1 ym)
y0 = (y1, yk, xk+ 1 xm)
Toán tử biến dị (Mutation operator)
Nếu gene xk của nhiễm sắc thể x = (x1 xm)biến dị thì ta được nhiễm sắc thểmới x0 có:
và áp dụng toán tử tương giao chéo để tạo nên hậu duệ mới thay thế cho nó.Sau khi tương giao chéo, đối với mỗi gene của mỗi nhiễm sắc thể ta tạo một sốngẫu nhiên r ∈ [0, 1] Nếu r < pm thì gene này được biến dị
Quá trình trên cho ta quần thể P(t)của thế hệ t và được đánh giá để chọn phần tử
có giá trị thích nghi tốt nhất
Điều kiện kết thúc có thể là số lần lặp định trước và lời giải có thể là các thể tốt
Trang 23nhất ở lần lặp cuối hoặc của mọi lần lặp Để quần thể có tính ổn định, đảm bảo tínhtăng cường, xác suất pm thường được chọn đủ bé để không qua s nhiều các thể bịbiến dị và mỗi cá thể cũng không bị biến dị nhiều gene khi chuyển sang thế hệ kếtiếp.
Sự hội tụ của GA
Các kết quả nghiên cứu , đánh giá về sự hội tụ của GA còn rất nghèo nàn, chimới ở mức chứng minh sự hội tụ theo xác suất tới lời giải tối ưu của bài toán Tuynhiên, về mặt thực hành, giải thuật di truyền vẫn là một giải thuật được ưa thích đểgiải các bài toán khó trong thực tế và cho lời giải đủ tốt Đặc biệt GA tỏ ra rất hiệuquả đối với các bài toán mà hàm mục tiêu phức tạp, có nhiều cực trị địa phương
và không trơn Đối với các bài toán đã có phương pháp giải tốt bằng phương pháptruyền thống thì GA vẫn kém hiêụ quả hơn
Ví dụ.
Để minh hoạ, ta xét bài toán cực đại hàm hai biến :
f(x1, x2) =10+x1sinx1+x2sinx2
trên miền−1≤x11≤3; 3 ≤x2 ≤5
với sai số các biến là 10−2
Biểu diễn nhiễm sắc thể.
Vì a1−b1 = 3− (−1) = 4, 4x100 = 400 và 28 < 400 < 29 nên cần 9 gene để biểudiễn x1 Tương tự, ta cần 8 gene để biễu diễn x2và m =17
Khởi tạo Giả sử ta khởi tạo ngẫu nhiên 10 cá thể được :
v1=(10011010000000111) tương ứng với x1=1,41 ; x2=3,15 ; eval(v1)=12,68 ;
v2=(11100010010011011) tương ứng với x1=2,54 ; x2=4,22 ; eval(v2)=14,78 ;
v3=(00001000001100100) tương ứng với x1=-0,87; x2=3,78 ; eval(v3)=10,94 ;
v4=(10001100010110100) tương ứng với x1=1,19 ; x2=4,41 ; eval(v4)=10,81 ;
v5=(00011101100101001) tương ứng với x1=-0,54 ; x2=3,32 ; eval(v5)=7,67 ;
v6=(00010100001001011) tương ứng với x1=-0,69 ; x2=3,58 ; eval(v6)=7,53 ;
v7=(00100010000011010) tương ứng với x1=-0,47 ; x2=3,20 ; eval(v7)=9,23 ;
v8=(10000110000111010) tương ứng với x1=1,01 ; x2=3,45 ; eval(v8)=7,52;
Trang 24v9=(01000000011010001) tương ứng với x1=0,00 ; x2=4,64 ; eval(v9)=5,67 ;
v10=(00010100001001010) tương ứng với x1=0,88 ; x2=3,19 ; eval(v10)=9,94
Cá thể tốt nhất : v2=(11100010010011011) , eval(v2)=14,78 ; độ phù hợp toàn phầnF=96,77
thì kết quả chọn lọc được Q(1)như sau
STT pi qi Số ngẫu nhiên Cá thể được chọn Đánh số lại
u5= (10001100010110100) với điểm trao đổi k=5
Sau khi tương giao ta được
Trang 25Sau khi GA cổ điển được Holland công bố nó chứng tỏ là một phương pháp tốt
để giải các bài toán tối ưu khó và nó được cải tiến phong phú để tăng hiệu quả ứngdụng
Đối với các bài toán có miền chấp nhận được lớn và đòi hỏi sai số bé thì độ dàicủa mỗi mỗi nhiễm sắc thể theo phương pháp GA cổ điển rất lớn nên việc áp dụng
GA rất khó khăn Vì vậy người ta cải tiến bằng biễu diễn nhiễm sắc thể bằng véc tơthực để giải bài toán (I,1) Trong biễu diễn này, người ta dùng các véc tơ thực trongmiền chấp nhận đươc (thuôc tập M) làm nhiễm sắc thể và thiết kế các nhóm toán
tử di truyền cho thích hợp với biễu diễn này mà vẫn giữ nguyên thủ tục GA đã đặc
tả ở trên Dưới đây giới thiệu một số toán tử dễ dùng
Các toán tử tương giao chéo
Người ta chó thể chọn một vài toán tử tương giao chóe trong số các toán tử sau
Tương giao đơn giản
Toán tử này thực hiện trao đổi hai nhóm gene tương tự như giải thuật cổ điển.Nếu tương giao hai véc tơ
Trang 26Nếu tương giao hai véc tơ:
trong đó x0k =axk+ (1−a)ykvới a ∈ (0, 1)là số cho trước hoặc chọn ngẫu nhiên
Tương giao số học toàn cục
Nếu tương giao hai véc tơ
Biến dị không đều
Giả sử gene xk diến dị thành thì x0k = xk+δ(t, xk) trong đó δ(t, xk) là số ngẫunhiên phân bố không đều trên đoạn [ak−xk, bk −xk] và hội tụ theo xác suất vềkhông khi t tăng ra vô hạn, tham số tchỉ vòng lặp Thông dụng nhất là chọn phân
bố chuẩn
Thuật toán di truyền giải các bài toán tối ưu tổ hợp có cùng lược đồ với GA cổđiển được mô tả trong hình I.1 Trong ứng dụng, ta thường gặp nhiều bài toán thựctiễn mà hàm mục tiêu chưa có dạng tường minh Khi đó ta cần xây dựng bài toántói ưu cho nó và áp dụng GA để tìm lời giải Cách tiếp cận này mở ra các phươngpháp tính toán tiến hóa (Evolutionary computation viết tắt là EC)
Lược đồ tính toán tiến hóa
Trong tối ưu hóa, thuật ngữ tính toán tiến hóa có thể hiểu theo hai tiếp cận.Theo nghĩa rộng, EC dùng để chỉ các phương pháp lặp tạo sinh hoặc phát triển
Trang 27quần thể lời giải, trong đó chất lượng lời giải được cải thiện theo thời gian Theonghĩa hẹp mà ta dùng trong mục này, EC dùng để chỉ các phương pháp giải cácbài toán nhờ ứng dụng GA Khí áp dụng EC, ta cần đưa bài toán được xét về bàitoán tìm lời giải tối ưu để áp dụng GA để giải Chương trình áp dụng EC để giảibài toán gọi là chương trình tiến hóa.
Mối liên hệ giữa EC và GA đươc minh hoạ bởi sơ đồ trong hình I.2
Hình 2.2: Sơ đồ quan hệ áp dụng tính toán tiến hóa
Các bước cơ bản để5 xây dựng chương trình tiến hóa
Đối với một bài toán cần giải P, để xây dựng một chương trình tiến hoá giải nó,người ta thường tiến hành theo năm bước cơ bản sau:
• Bước 1 Chọn cấu trúc nhiễm sắc thể / kiểu gene biễu diễn lời giải tiềm năng
của bài toán sao cho nó chứa đủ các thông tin quan trọng và dễ làm việc Tuynhiên không có sự hướng dẫn nào về cách chọn này Thiết kế chương trình
mã hóa và giải mã
• Bước 2 Khởi tạo tập lời giải ban đầu Việc khởi tạo là ngẫu nhiên hay có thể
áp dụng một vài thuật toán heuristic, nhưng phải đảm bảo sao cho các ràngbuộc của bài toán được đảm bảo
• Bước 3 Chọn hàm đánh giá mức độ tốt của lời giải (để đánh giá các cá thể
trong quần thể lời giải theo độ thích nghi của chúng )
• Bước 4 Thiết kế các toán tử di truyền Các toán tử này được thiết kế nên dựa
trên kiểu gene/ nhiễm sắc thể , đặc điểm bài toán và các ràng buộc của nó.
Trang 28• Bước 5: Xác định các tham số cho bài toán Các tham số này có thể không
thay đổi trong quá trình tiến hoá hoặc có thể tự điều chỉnh tham số theo thờigian
bố đều và áp dụng tìm kiếm gradient để chọn lời giải tốt nhất sẽ hiệu quả hơnGA
2 Trong tối ưu tổ hợp, việc chọn cấu trúc nhiễm sắc thể và kiểu gene rất quantrọng đối với hiệu quả thuật toán Kiểu gene chọn tốt sẽ thỏa mãn được nhiềuràng buộc, hạn chế phạm vi tìm kiếm trong không gian trạng thái
3 Việc tìm kiếm trong các thuật toán giải các bài toán tối ưu tổ hợp thường có
2 cơ chế chính: tìm kiếm tăng cường (intensification)/khai thác (exploitation) quanh miền có lời giải tốt tìm được và khám phá (exploration)/ đa dạng (diver-
sification) nhằm tạo sinh các lời giải đa dạng để mở rộng tìm kiếm hướng tớitối ưu toán cục Trong GA, thủ tục chọn lọc là khâu chính hướng tới tìm kiếmtăng cường còn các toán tử di truyền hướng tới sự khám phá Khi áp dụng
GA cần cân bằng giữa hai cơ chế này Việc chọn tham số cho các toán tử ditruyền cũng rất quan trọng đối với hiệu quả thuật toán
4 GA là thuật toán dễ sử dụng cho cả tối ưu liên tục và tối ưu tổ hơp Tuy nhiênkhi dùng cho tối ưu liên tục, nó thích hợp cho các bài toán không khả vi và cónhiều cực trị địa phương Đối với các bài toán đã có các phương pháp truyềnthống tốt thì GA chạy lâu và chất lượng lời giải thường kém hơn Các toán tử
di truyền có thể vận dụng mềm dẻo và đa dạng để tăng tính khám phá củathuật toán
5 Khi áp dụng GA, việc chọn biễu diễn gene và cấu trúc nghiếm sắc thể rấtquan trọng Một cách chọn biễu diễn gene thích hợp sẽ cho phép đáp ứngnhiều ràng buộc, thu hẹp không gian tìm kiếm và dễ xây dựng các toán tử ditruyền
Trang 292.2 Phương pháp tối ưu hóa đàn kiến
Tối ưu hoá đàn kiến (Ant colony optimization, viết tắt là ACO) được đề xuấtbởi Dorigo vào năm 1991, mô phỏng cách tìm đường đi của các con kiến thực nhờkết hợp các thông tin heuristic và cách học tăng cường để giải các bài toán tối ưu
tổ hợp
Trên đường đi của mình đường đi từ tổ tới nguồn thức ăn và ngược lại, các conkiến thực để lại một vết hóa chất được gọi là vết mùi (pheromone trail) Vết mùinày là có khả năng tích lũy, bay hơi và là phương tiện giao tiếp báo cho các conkiến khác thông tin về đường đi đó một cách gián tiếp Ở mỗi lối rẽ, các con kiến
sẽ lựa chọn lối tiếp theo dựa trên nồng độ lượng mùi trên đó, nồng độ càng cao thìcàng nhiều khả năng được chọn Những lối rẽ thuộc đường đi dài thì vết mùi bay
hơ nhiều nên nồng độ thấp, dần dần các con kiến sẽ chọn lối rẽ có nồng độ mùicao và do đó thuọc đương đi ngắn nhất Nhờ cách giao tiếp mang tính gián tiếp
và cộng đồng này mà đàn kiến trong tự nhiên tìm được đường đi ngắn nhất trongquá trình tìm thức ăn mang về tổ và ngược lại
Hành vi của đàn kiến khi gặp chướng ngại vật trên đường đi được minh họatrong hình2.3, ở hình a cho thấy kiến chưa gặp vật cản, bất ngờ có một chướng ngạivật (hình b), kiến phân bố ngẫu nhiên theo nồng độ mùi (hình c) và khi đường ngắn
có nồng độ mùi cao thì kiến luôn chọn đường này (hình d)
Trang 30Hình 2.3: Phân bố của đàn kiến trên đường đi từ tổ tới nguồn thức ăn
Thực nghiệm cây cầu đôi cho thấy đàn kiến tự nhiên có thể sử dụng luật dichuyển theo xác suất, dựa trên thông tin địa phương để tìm được đường đi ngắnnhất giữa hai địa điểm Vết mùi của đàn kiến cho phép liên tưởng tới cách họctăng cường (reinforcement learning) trong bài toán chọn tác động tối ưu, gợi mở
mô hình mô phỏng cho bài toán tìm đường đingắn nhất giữa hai nút (tương ứng là
tổ và nguồn thức ăn) trên đồ thị, trong đó các tác tử (agent) là đàn kiến nhân tạo.Tuy nhiên, trong các bài toán ứng dụng các đồ thị thường phức tạp hơn.Từ mỗiđỉnh có thể có nhiều cạnh, nên nếu mô phỏng thực sự hành vi của đàn kiến tựnhiên nhiều con kiến sẽ đi luẩn quẩn và do đó hiệu quả thuật toán sẽ rất kém Vìvậy, người ta dùng kỹ thuật đa tác tử (multiagent) mô phỏngđàn kiến nhân tạo,trong đó mỗi con kiến nhân tạo có khả năng nhiều hơn so với kiến tự nhiên Kiếnnhân tạo (về sau trong luận án ta sẽ gọi đơn giản là kiến) có bộ nhớ riêng, có khảnăng ghi nhớ các đỉnh đã thăm trong hành trình và tính được độ dài đường đi nóchọn Ngoài ra, kiến có thể trao đổi thông tin với nhau, thực hiện tính toán cầnthiết, cập nhật mùi
Để trình bày phương pháp ACO tổng quát giải các bài toán tối ưu tổ hợp khó,
ta cần phát biểu lại bài toán tối ưu tổ hợp theo khung nhìn của heuristic cấu trúc
Trang 31Bài toán tối ưu tổ hợp tổng quát
Các cách tiếp cận trên được áp dụng rộng rãi và phong phú để giải các bài toántối ưu tổ hợp trong đó bài toán tối ưu tổng quát được phát biểu như sau
Xét bài toán cực tiểu hóa trong đó S là tập hợp hữu hạn trạng thái, f là hàmmục tiêu xác định trên S còn là các ràng buộc để xác định S qua các thành phầncủa tập hữu hạn C và các liên kết của tập này Các tập S, C, và có các đặc tính sau :
• 1) C = {c1, c2, , Cn}là tập hữu hạn gồm n thành phần Ta ký hiệu X là tậpcác xâu thành phần trong C có độ dài không quá h : X = {< u1, , , uk >}
• 2) Tồn tại tập con X∗của X và ánh xạ từ X∗ lên S sao cho ϕ−1(s)không rỗngvới mọi s ∈ S, hơn nữa, tập X∗này xây dựng được từ tập con C0 của C vàΩtheo đặc tính 3
• 3) Từ C0mở rộng được thành X∗theo thủ tục tuần tự :
– x0 =<u0 >là mở rộng được với∀u ∈C0
– Nếu xk =<u1, , uk >là mở rộng được thì từΩ xác định được tập con
J(xk)của C sao cho với mọi uk= 1 ∈ J(xk)ta có xk+ 1 =<u0, u1, , uk + 1 >
là mở rộng được và xk ∈ X∗khi J(xk)là rỗng
– Với mọi u0 ∈ C, thủ tục mở rộng nêu trên xây dựng được mọi phần tửcủa X∗ Không giảm tổng quả ta giả thiết rằng có tương ứng giữa cácphần tử trong X∗ với mỗi đường đi được mở rộng từ mỗi u0trong C0
Thuật toán tổng quát
Với bài toán tổng quát trên, về lý thuyết ta cú thể áp dụng thủ tục mở rộng đểxây dựng X∗và chọn lời giải tốt nhất bằng phương pháp vét cạn, nhưng trên thực
tế, do bùng nổ tổ hợp thì khi số phần tử n của C lớn ta không thực hiện được đốivới bài toán thuộc loại NP-khó
Để giải bài toán người ta đưa nó về bài toán tìm đường đi tối ưu trên đồ thị cấutrúc sao cho mỗi lời giải chấp nhận được s ứng với đường đi < x1, , xn >, trong
đó xi thuộc tập đỉnh (thành phần C) của đồ thị, x1 thuộc tập đỉnh C0(tham khảophương pháp constructive heuristics)
Đồ thị cấu trúc thường là đồ thị đầy đủ có trọng số G = (V, E, H, τ)trong đó V
là tập đỉnh tương ứng với tập thành phần C ở trên, E là tập các cạnh, H là vectơ các
trọng số heuristic của cạnh/đỉnh tương ứng, còn τ là vectơ vết mùi tích lũy được ban đầu với khởi tạo bằng τ0
Thông tin heuristic và vết mùi có thể để ở đỉnh hoặc các cạnh của đồ thị tùytheo đặc điểm bài toán dùng để định hướng tìm kiếm heuristic ngẫu nhiên khi xây
Trang 32dựng lời nhờ mở rộng tuần tự từ một đỉnh trong C0 theo đặc điểm thứ 3 của bàitoán tổng quát.
Dựa trên đồ thị cấu trúc này, ta xây dựng thủ tục bước bước tuần tự tìm lời giảicho các kiến nhân tạo
Thông thường ta có thể đã có các phương pháp heuristic để tim lời giải đủ tốtcho bài toán Các thuật toán ACO kết hợp thông tin heuristic này với phương pháphọc tăng cường nhờ mô phỏng hành vi của đàn kiến để tìm lời giải tốt hơn
Với quy tắc cập nhật mùi, các tham số, số kiến và điều kiện dừng (thường là
số lần lặp Nc định trước) đã được chọn các thuật toán được mô tả hình thức tronghình2.4
Hình 2.4: Lược đồ thuật toán ACO tổng quát
Xây dựng lời giải
Để tiện trình bày, ta giả sử bài toán có vết mùi và thông tin heuristic để ở cáccạnh Sau khi khởi tạo các tham số và cường độ mùi ban đầu, các con kiến chọnngẫu nhiên một đỉnh xuất phát trong C0 để thực hiện thủ tục xây dựng lời giải.Trong mỗi lần lặp t, kiến chọn ngẫu nhiên một đỉnh tiếp theo trong C kết hợpthông tin heuristic với thông tin mùi để xây dựng lời giải ngẫu nhiên theo thủ tục
mở rộng tuần tự nêu ở trên với quy tắc chuyển trạng thái như mô tả ở dưới
Quá trình mở rộng tiếp tục cho tới khi mỗi con kiến k đều tìm được lời giải chấpnhận được xk ∈ X∗ và do đó s(k) = ϕ(x(k)) Để tiện trình bày, về sau ta sẽ xem
x(k)và s(k)như nhau không phân biệt X∗với S
Ký hiệu ω∗(t) là trạng thái tốt nhất các con kiến tìm được cho tới lúc này và
ωi(t)là lời giải tốt nhất trong bước lặp Ở bước lặp t, ω∗(t)sẽ được xem là lời giảigần đúng của bài toán
Quy tắc chuyển trạng thái
Giả sử con kiến k đã xây dựng được lời giải tiềm năng xk =<u1, , u >, nó sẽ
Trang 33chọn đỉnh y thuộc J(xkn)để có xnk+1với xác suất :
τij ← (1−ρ)τij+∆ij
Điểm then chốt là cạnh nào được cập nhật và lượng them vào thế nào là tùy theoquy tắc được chon Có nhiều quy tắc cập nhật mùi đã được đề xuất, trong đó điểnhình là các quy tắc hệ kiến (Ant System: AS), hệ đàn kiến (ACS), hệ kiến Max-Min(Max–Min Ant System: MMAS) và hệ kiến Max-min trơn (Smooth Max-MinAnt System: SMMAS)
Hệ kiến AS
Hệ kiến AS áp dụng quy tắc cập nhật mùi địa phương, và là quy tắc đầu tiên được
áp dụng trong số các thuật toán ACO Theo quy tắc này, ở bước lặp t, mỗi kiến k
áp dụng cập nhật mùi cho tất cả các cạnh(ui, ui + 1)thuộc lời giải ωk(t) theo côngthức:
trong đó Lklà giá trị hàm mục tiêu f(ωk(t))(không giảm tổng quát,được giả thiết
là dương) Nhược điểm của quy tắc là vết mùi ở các cạnh không được cập nhật sẽnhanh chóng dần về không nên hạn chế không gian tìm kiếm và thuật toán kémhiệu quả
a) Cập nhật mùi toàn cục áp dụng cho các cạnh thuộc lời giải tốt nhất của bước
lặp ω(t)hay toàn cục ω∗(t)và gọi tương ứng là i-best hay G-best Theo cách i-besst,
∆τi,jđược xác định theo công thức:
Trang 34b) Cập nhật mùi toàn cục áp dụng cho tất cả các cạnh và cũng các hai cách i-besthay G-best, với G-best thì∆τij xác định theo công thức:
τmax nếuτi,j >τmax
τi,j nếuτi,j ∈ [τmin, τmax]
τmin nếuτi,j <τmin
(2.2.6)
Nói chung, MMAS dùng i-best tốt hơn G-best nhưng cũng có thể dung luânphiên cho các bước lặp Khi bắt đầu thuật toán, vết mùi thường được thiết đặt
bằng ước lượng cận trên của vết mùi τmax Cách khởi tạo như vậy kết hợp với tham
số bay hơi nhỏ làm chậm sự khác biệt vết mùi của các cạnh, do đó giai đoạn đầucủa MMAS mang tính khám phá Nhờ giới hạn vết mùi trong đoạn [τmin, τmax] ,MMAS hạn chế được tình trạng vết mùi dần về không, khắc phục được nhượcđiểm của AS và ACS
Quy tắc SMMAS
Quy tắc SMMAS lần đầu tiên được Đỗ Đức Đông và cộng sự dùng cho bài toánlập lịch sản xuất và được trình bày chặt chẽ cho bài toán TSP
SMMAS được đề xuất dựa trên nhận xét hai nhược điểm của MMAS:
• Thứ nhất, nếu chọn τmax, τminlệch nhau ít thì làm triệt tiêu hiệu quả học tăngcường, còn nếu chọn lệch nhau nhiều thì vết mùi ở các cạnh ít được cập nhật
sẽ nhanh chóng về τminlàm hạn chế không gian tìm kiếm mặc dù có nhẹ hơn
AS và ACS
• Thứ hai là đâị lượng∆τi,jphụ thuộc giá trị hàm mục tiêu làm cho thuật toánphải tính toán phức tạp, tuy nhiên trong học tăng cường thì không cần thiết.Một trong các cải tiến là khi khởi tạo lại vết mùi, việc cập nhật mùi thường xuyênbằng lời giải tốt nhất tìm được mới nhất thay vì cố định
Trang 35Với nhận xét trên, SMMAS không giảm vết mùi ở các cạnh không thuộc lời giảitốt quá nhanh như quy tắc MMAS mà dùng quy tắc Max-Min trơn bằng cách cập
nhật τi,jtoàn cục cho mọi cạnh với∆τi,j xác định bởi:
Tái khởi tạo vết mùi
Việc sử dụng thông tin vết mùi như cơ chế học tăng cường giúp ta tìm kiếmquanh lời giải tốt, tuy nhiên có thể bỏ sót những miền tiềm năng chứa lời giải tốt
hơn Để tăng tính khám phá, nếu sau một số bước lặp mà lời giải tốt nhất ω∗(t)tìmđược không đổi so với các bước trước đó thì nên khởi tạo lại vết mùi
Tìm kiếm địa phương
Lược đồ ACO ở trên thực hiện tìm kiếm ngẫu nhiên để tìm lời giải gần đúng nênkhông gian tìm kiếm rộng Thông thường thì các kỹ thuật tìm kiếm địa phương hội
tụ đến cực trị địa phương nhanh hơn Vì vậy người ta thường áp dụng kỹ thuậttìm kiếm địa phương để tăng cường chất lượng lời giải cho lời giải tốt nhất hoặccho mọi lời giải trong mỗi bước lặp trước khi cập nhật mùi