TÊN Đ TÀI · Báo cáo lu ±n văn cao h Ñc : TÌM HI ÆU VÀ ÁP D èNG GI ¦I THU °T DI TRUY...
Transcript of TÊN Đ TÀI · Báo cáo lu ±n văn cao h Ñc : TÌM HI ÆU VÀ ÁP D èNG GI ¦I THU °T DI TRUY...
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 1
TÊN ĐỀ TÀI
TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 2
CHƯƠNG I
PHÁT BIỂU VẤN ĐỀ
Chương này giới thiệu tổng quan về nội dung vấn đề sẽ được thực hiện trong
luận văn, nêu ra ứng dụng của vấn đề này cũng như phương pháp dự định để giải
quyết vấn đề.
1.1 MỞ ĐẦU
Loài người đã biết chọn lựa “Phương án“ hành động trong các công việc của
mình từ thời cố đại. Đầu tiên người ta biết chọn phương án “chấp nhận được“, theo
các tiêu chuẩn từ mức độ cảm tính đến mức độ có cơ sở khoa học và định lượng.
Khi có nhiều phương án chấp nhận được, điều mong muốn tự nhiên là chọn phương
án tốt nhất (tức là “tối ưu“), dựa theo một hoặc một số tiếu chuẩn nào đó. Dần dần
người ta biết đến “Giải thuật di truyền (Genetic Algorithms) và một số giải thuật
khác như giải thuật mô hình mạng (Network Model)….. Đối với một số bài toán
tối ưu, chẳng hạn như bài toán người đi du lịch (TSP – Traveling Salesman
Problem) cũng cần có thuật giải thích hợp để giải. Sau đây, ta sẽ áp dụng giải thuật
di truyền và giải thuật mô hình mạng để giải bài toán người đi du lịch.
John Holland là người đầu tiên tìm ra giải thuật di truyền, sau đó ông cùng với
học trò của ông phát triển giải thuật di truyền mở rộng. Năm 1975, cuốn sách có
liên quan đến giải thuật di truyền mang tên “Adaption in Natural and Artificial
Systems” được xuất bản. Năm 1992, ông John Koza sử dụng Giải thuật di truyền
(GAs) để giải một số bài toán tối ưu và đã đạt được kết quả tốt. Ông gọi phương
pháp này là “genetic programming”(GP). Hiện nay giải thuật di truyền đã được áp
dụng rất nhiều trong thực tế, chẳng hạn trong lĩnh vực y học, và được áp dụng trên
rất nhiều bài toán tối ưu như là
- Nonlinear dynamical systems - predicting, data analysis.
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 3
- Designing neural networks, both architecture and weights.
- Robot trajectory, Evolving LISP programs(genetic programming).
- Strategy planning, Finding shape of protein molecules
- Sequence scheduling, Functions for creating images.
Cũng giống như GAs, mô hình mạng (Network Model) là một trong các mô hình
được dùng để giải bài toán tối ưu như là bài toán vận tải, các bài toán mạng điện và
mạng giao thông, các bài toán quản lý và phân bổ vật tư, bài toán bổ nhiệm, bài toán
kế hoạch tài chính, bài toán tìm đường ngắn nhất…Chúng ta cũng đã biết khá nhiều
bài toán mà có thể áp dụng giải pháp tối ưu dựa vào giải thuật nêu trên để tìm ra
một lời giải tối ưu đặc biệt. Hiện nay mô hình mạng (Network Model) đã được áp
dụng để giải rất nhiều bài toán trong thực tế, như là :
- Bài toán vận tải
- Bài toán phân hoạch đối tượng và đồ thị
- Bài toán tô màu
- Bài toán người đi du lịch vv…..
Trong số đó, sau đây ta sẽ nghiên cứu bài toán người đi du lịch (TSP). Bài toán
người đi du lịch (TSP – Traveling Salesman Problem) là một bài toán tương đối cổ
điển : có tài liệu minh chứng bài toán này đã xuất hiện từ năm 1759 và được nêu ra
bởi Euler. Ông là người có nhiều hứng thú trong việc tìm ra phương pháp giải bài
toán mã đi tuần. Lời giải là chuỗi 64 ô cờ mà quân mã phải đi qua, mỗi ô đúng một
lần. Bài toán người đi du lịch được tập đoàn RAND giới thiệu vào năm 1984. Danh
tiếng của tập đoàn này giúp bài toán người đi du lịch trở thành bài toán phố biến và
nổi tiếng. Vào lúc đó, bài toán người đi du lịch cũng được phố biến thông qua
phương pháp qui hoạch tuyến tính. Đây là một vấn đề mới, là lọai bài toán tối ưu tổ
hợp được nhiều nhà nghiên cứu tập trung giải quyết. Bài toán người đi du lịch được
chứng minh là lọai NP-Hard.
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 4
1.2. GIỚI THIỆU VẤN ĐỀ SẼ LÀM
Bài toán người đi du lịch (TSP – Traveling Salesman Problem) là bài toán nhằm
mục đích tìm ra con đường tối ưu về chi phí và đi qua tất cả các thành phố với
những điều kiện sau đây :
- Một du khách muốn thăm mọi thành phố anh quan tâm; mỗi thành phố anh
qua đúng một lần rồi trở về điểm khởi hành.
- Biết trước chi phí di chuyển giữa hai thành phố bất kỳ chúng ta cũng có thể
biết trước khoảng cách hoặc thời gian giữa hai thành phố nối kết với nhau.
Bài toán có thể mô tả cụ thể hơn như sau : cho N thành phố, ta định nghĩa V
biển diễn cho các thành phố ( V Є N ) và E là các khoảng cách giữa hai đỉnh ( trong
đồ thị chúng ta gọi là các cung), với hàm trọng số w : Eà R ánh xạ các cạnh theo
các trọng số có giá trị thực. Trọng số của lộ trình p=< v0, v1, …….vk > là tổng của
trọng số của các khoảng cách giữa hai thành phố :
k
w(p) = å w(vi-1,vi)
i=1
Ta định nghĩa trọng số lộ trình ngắn nhất ( shortest-path weight) từ thành phố
bắt đầu ( u ) đến thành phố cuối (v) :
P min { w(p) : u v } nếu có một lộ trình từ u đến v
§( u,v) = 0 bằng không.
Như vậy, một lộ trình ngắn nhất từ thành phố bắt đầu u đến thành phố cuối v
được định nghĩa là bất kỳ lộ trình p nào có trọng số w(p) = § (u,v).
Mục đích của bài toán là tìm ra con đường có chi phí tối ưu, ở đây chi phí có thể
là tổng khoảng cách đi được hay tổng thời gian cần thiết để hoàn thành đường đi.
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 5
1.3. ỨNG DỤNG CỦA VẤN ĐỀ SẼ LÀM
Bài toán người đi du lịch (TSP) là một bài toán được ứng dụng rất rộng rãi trong
thực tế. Ví dụ như bài toán tìm đường tối ưu cho xe buýt trong thành phố (Bus
routing problem ), đây là bài toán khá phổ biến. Mục đích của bài toán là tìm ra lộ
trình tối ưu cho việc đến và rời khỏi các trạm yêu cầu trong thành phố và quay trở
lại trạm xuất phát. Thời gian đến và rời các trạm cũng được quy định trước.
Bài toán vận chuyển những kiện hàng đến những khách hàng ở những nơi khác
nhau, chi phí cho bài toàn này chính là khoảng cách cần thiết để giao tất cả những
kiện hàng cho những khách hàng đã được lên lịch trước, ngoài ra thời gian giao
hàng cho mỗi địa điểm cần phải nằm trong một khung thời gian hạn định cho trước.
Mục đích chính của bài toán này là tìm ra chi phí tối thiểu mà có thể giao hàng cho
tất cả khách hàng.
Ngoài ra đề tài còn ứng dụng vào một bài toán khác như: Bài toán chuyển thư
(Postal deliveries problem), bài toán ga xe lửa.... v.v
Tóm lại, bài toán người đi du lịch (TSP) có thể ứng dụng nhằm sinh ra những lời
giải tối ưu cho những vấn đề trên, mục đích giảm thiểu chi phí và mang lại hiệu quả
kính tế cao.
Bài toán người đi du lịch (TSP) là một bài toán tương đối tổng quát cho hàng
loạt các vấn đề nêu trên. Việc tìm ra giải pháp hữu hiệu cho bài toán này thực sự là
vấn đề đang được quan tâm trên toàn thế giới.
1.4. PHƯƠNG PHÁP DỰ ĐỊNH ĐỂ GIẢI QUYẾT VẤN ĐỀ
Bài toán TSP là một bài toán tối ưu tổ hợp (Combinational Optimization) thuộc
loại khó. Trên thế giới đã tồn tại một số phương pháp để giải quyết bài toán này.
Mỗi phương pháp đều có những ưu và khuyết điểm khác nhau. Một đặc điểm chung
của những phương pháp đã tồn tại là thời gian thực thi khá lâu cho bài toán có số
đỉnh hoặc thành phố lớn.
Mục tiêu của đề tài là tìm hiểu và phát triển giải thuật di truyền (GAs) và giải
thuật mô hình mạng (Network Model) rồi áp dụng các giải thuật mà chúng ta trình
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 6
bày ở trên đối với bài toán tối ưu tổ hợp người đi du lịch (TSP), sau đó chúng ta sẽ
so sách giữa giải thuật di truyền và giải thuật mô hình mạng như là giải thuật Prim
hoặc Kruskal….v.v trong mô hình Minimal Spanning Tree và đánh giá độ tối ưu
giữa hai giải thuật để rút ra một lời giải tốt nhất và phương pháp thích hợp nhất cho
bài toán.
1.5 Cấu trúc của luận văn
Để tiện theo dõi, phần này giới thiệu cấu trúc nội dung cơ bản của các phần tiếp
theo trong luận văn :
Chương I : Mở đầu
Chương II : Cơ sở lý thuyết
Chương này chú trọng vào các cơ sở lý thuyết quan trọng được sử dung trong đề
tài
Chương III : Các công trình liên quan
Chương này giới thiệu các công trình trên thế giới liên quan đến tài. Chương này
còn giúp chúng ta hình dung được một cách tổng quan các phương pháp đã tồn tại
trên thế giới, từ đó chúng ta thấy được một số ý thức để đánh giá giữa hai giải thuật
nêu trên.
Chương IV : Phương pháp giải quyết vấn đề
Chương này thể hiện các vấn đề liên quan đến đề tài: giải thuật chi tiết để giải
quyết vấn đề.
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 7
Chương V : Hiện thực và kết quả thực nghiệm
Chương này thể hiện các kĩ thuật đã được sử dụng để hiện thực bài toán. Ngoài
ra, chương này còn chú trọng vào một số kết quả thực nghiệm khi chạy trên một số
bài toán dữ liệu lớn.
Chương VI : Kết luận và phương hướng mở rộng
Chương này tổng kết một số vần đề liên quan đến đề tài, thêm vào đó là một số
phương hướng có thể áp dụng để phát triển và mở rộng đề tài.
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 8
CHƯƠNG II
CƠ SỞ LÝ THUYẾT
Phương pháp để giải bài toán TSP được sử dụng trong đề tài chính là giải thuật
di truyền (GAs) và giải thuật trong mô hình mạng (Network model).
Phần 1: GIẢI THUẬT DI TRUYỀN
1. GIỚI THỆU VỀ GIẢI THUẬT DI TRUYỀN
Phần này chúng ta sẽ giới thiệu về giải thuật di truyền cơ bản và các thuật toán
và mã giả của giải thuật.
1.1 Khái niệm về giải thuật di truyền:
Giải thuật di truyền hình thành dựa trên quan niệm cho rằng quá trình tiến hóa
tự nhiên là quá trình hoàn hảo nhất, hợp lý nhất, và tự nó đã mang tính tối ưu. Quan
niệm này có thể được xem như một tiên đề đúng, không chứng minh được, nhưng
phù hợp với thực tế khách quan. Quá trình tiến hóa thể hiện tính tối ưu ở chổ, thế hệ
sau bao giờ cũng tốt hơn (phát triển hơn, hoàn thiện hơn) thế hệ trước. Tiến hóa tự
nhiên được duy trì nhờ hai quá trình cơ bản: sinh sản và chọn lọc tự nhiên. Xuyên
suốt quá trình tiến hóa tự nhiên, các thế hệ mới luôn được sinh ra để bổ sung thay
thế thế hệ cũ. Cá thể nào phát triển hơn, thích ứng được với môi trường sẽ tồn tại.
Cá thể nào không thích ứng được với môi trường sẽ bị đào thải. Sự thay đổi môi
trường là động lực thúc đẩy quá trình tiến hóa. Ngược lại, tiến hóa cũng tác động trở
lại góp phần làm thay đổi môi trường.
Các cá thể mới sinh ra trong quá trình tiến hóa nhờ sự lai ghép ở thế hệ cha mẹ.
Một cá thể mới có thể mang những tính trạng của cha mẹ (di truyền), cũng có thể
mang những tính trạng hoàn toàn mới (đột biến). Di truyền và đột biến là hai cơ chế
có vai trò quan trọng như nhau trong tiến trình tiến hoá, dù rằng đột biến xảy ra với
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 9
xác suất nhỏ hơn nhiều so với hiện tượng di truyền. Giải thuật di truyền mô phỏng
các quá trình cơ bản sau: lai ghép, đột biến, sinh sản và chọn lọc tự nhiên.
1.2 Mục đích
Trong thực tế, có rất nhiều bài toán tối ưu quan trọng đòi hỏi những thuật giải
chất lượng cao và cũng có nhiều bài toán tối ưu tổ hợp (trong đó có nhiều bài toán
đã được chứng minh là thuộc loại NP-Complete). Giải thuật di truyền là một giải
thuật nằm trong kỹ thuật Trí Tuệ Nhân Tạo để giải các bài toán có không gian tìm
kiếm lớn. Giải thuật di truyền là một loại giải thuật mô phỏng hiện tượng tự nhiên
như kế thừa (inherit) và đấu tranh sinh tồn để cải tiến lời giải và khảo sát không
gian lời giải. Khái niệm kế thừa và cạnh tranh sinh tồn được giải thích qua thí dụ về
tiến hoá của một quần thể thỏ như sau:
Có một quần thể thỏ. Trong số đó có một số con nhanh nhẹn và thông minh hơn
các con khác. Những chú thỏ nhanh nhẹn và thông minh có xác suất bị chồn cáo ăn
thịt nhỏ hơn, do đó chúng tồn tại để thực hiện những gì tốt nhất có thể được: tạo
thêm nhiều thỏ tốt. Dĩ nhiên, một số thỏ chậm chạp đần độn cũng sống chỉ vì may
mắn. Quần thể những chú thỏ còn sống sót sẽ bắt đầu sinh sản. Việc sinh sản này sẽ
tạo ra những hỗm hợp về “nguyên liệu di truyền thỏ”. Một số thỏ chậm chạp có con
với những con thỏ nhanh, một số thỏ nhanh với thỏ nhanh, một số thỏ thông minh
với thỏ đần độn... và trên tất cả, thiên nhiên thỉnh thoảng lại sinh ra một con thỏ
hoang dã bằng cách làm đột biến nguyên liệu di truyền thỏ. Những chú thỏ con do
kết quả này sẽ nhanh hơn và thông minh hơn những con thỏ trong quần thể gốc vì
có bố mẹ nhanh nhẹn và thông minh hơn đã thoát chết khỏi chồn cáo. (Thật thú vị
thay, những con chồn cũng trải qua tiến trình tương tự-nếu không những con thỏ
nhanh và thông minh sẽ không để những con chồn bắt chúng).
Khi tìm kiếm lời giải tối ưu, giải thuật di truyền cũng thực hiện các bước tương
ứng với câu chuyện đấu tranh sinh tồn của loài thỏ
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 10
1.3 Giải thuật di truyền và phả hệ
Giải thuật di truyền sử dụng các thuật ngữ vai mượn của di truyền học. Ta có thể
nói về các cá thể (hay kiểu gen, cấu trúc), trong một quần thể (population); những
cá thể này cũng còn được gọi là các chuỗi hay các nhiễm sắc thể (chromosome).
Các nhiễm sắc thể được tạo thành từ các đơn vị - các gen – biểu diễn trong một số
chuỗi tuyến tính; mỗi gen kiểm soát một số đặc trưng. Gen với những đặc trưng
nhất định có vị trí nhất định trong nhiễm sắc thể. Bất cứ đặc trưng nào của mỗi cá
thể có thể tự biểu hiện một cách phân biệt; và gen có thể nhận một số giá trị khác
nhau (các giá trị về tính năng).
1.4 So sánh giải thuật di truyền với giải thuật leo đồi
Mỗi kiểu gen sẽ biểu diễn một lời giải của bài toán đang giải. Một tíến trình tiến
hoá được thực hiện trên một quần thể các nhiễm sắc thể tương ứng với một quá
trình tìm kiếm lời giải trong không gian lời giải. Tìm kiếm đó cần 2 mục tiêu: khai
thác những lời giải tốt nhất và khảo sát lời giải trong không gian tìm kiếm. Leo đồi
là một thí dụ về chiến lược cho phép khai thác và cải tiến lời giải tốt nhất hiện hành;
nhưng, leo đồi lại bỏ qua việc khảo sát không gian tìm kiếm. Ngược lại, tìm kiếm
ngẫu nhiên là một thí dụ điển hình của chiến lược khảo sát không gian tìm kiếm mà
không chủ ý đến việc khai thác những vùng đầy hứa hẹn của không gian. Giải thuật
di truyền (GA) là phương pháp tìm kiếm tạo được sự cân đối đáng kể giữa việc khai
thác và khảo sát không gian tìm kiếm.
GA thuộc lớp các giải thuật xác suất, nhưng lại rất khác những giải thuật ngẫu
nhiên vì chúng kết hợp các phần tử tìm kiếm trực tiếp và ngẫu nhiên. Khác biệt
quan trọng giữa tìm kiếm GA và các phương pháp tìm kiếm khác là GA duy trì và
xử lý một tập các lời giải (ta gọi là một quần thể). Tất cả những phương pháp khác
chỉ xử lý một điểm trong không gian tìm kiếm. Chính vì thế, GA mạnh hơn các
phương pháp tìm kiếm hiện có rất nhiều.
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 11
GA thực hiện tiến trình tìm kiếm lời giải tối ưu theo nhiều hướng, bằng cách
duy trì một quần thể các lời giải, và thúc đẩy nhanh sự thành hình và trao đổi thông
tin giữa các hướng này. Quần thể trãi qua tiến trình tiến hoá: ở mỗi thế hệ lại tái
sinh các lời giải tương đối tốt, trong khi các lời giải tương đối xấu thì chết đi. Để
phân biệt các lời giải khác nhau, hàm mục tiêu được sử dụng và đóng vai trò môi
trường.
2. CÁC QUÁ TRÌNH CỦA GIẢI THUẬT DI TRUYỀN
2.1. Quá trình lai tạo và quá trình đột biến
Phép lai tạo (Crossover) là quá trình hình thành nhiễm sắc thể (chromosome)
mới dựa trên cơ sở các nhiễm sắc thể cha mẹ, bằng cách ghép một (hay nhiều) đoạn
gen của hai hay nhiều nhiễm sắc thể cha mẹ với nhau. Phép lai có thể được mô
phỏng như sau:
- Chọn ngẫu nhiên hai (hay nhiều) cá thể bất kỳ trong quần thể. Giả sử các
nhiễm sắc thể của cha mẹ đều có m gen.
- Tạo một số ngẫu nhiên trong khoảng từ 1 đến m – 1 ( điểm lai). Điểm lai chia
các chuỗi con dài m1 và m2. Hai chuỗi nhiễm sắc thể con mới sẽ là m11+m22 và
m21+m12.
- Đưa hai cá thể mới này vào quần thể để tham gia các quá trình tiến hoá tiếp
theo.
Đột biến (Mutation) là hiện tượng cá thể con mang một số tính trạng không có
trong mã di truyền của cha mẹ. Phép đột biến xảy ra với xác suất nhỏ hơn nhiều so
với xác suất lai. Phép đột biến có thể mô phỏng như sau:
- Chọn ngẫu nhiên một cá thể bất kỳ cha mẹ trong quần thể.
- Tạo một số ngẫu nhiên k trong khoảng từ 1 đến m, 1 <= k <= m.
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 12
Thay đổi gen thứ k và trả cá thể này về quần thể để tham gia quá trình tiến hoá
tiếp theo.
Phép lai, Phép đột biến có nhiều cách để thực hiện như là
a) Binary Ecoding
Crossover
Single point crossover
Hình 2.1 Single point crossover
11001011+11011111 = 11001111
Two point crossover -
Hình 2.2 Two point crossover
11001011 + 11011111 = 11011111
Uniform crossover -
Hình 2.3 Uniform crossover
11001011 + 11011101 = 11011111
Arithmetic crossover -
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 13
Hình 2.4 Arithmetic crossover
11001011 + 11011111 = 11001011 (AND)
Mutation
Bit inversion -
Hình 2.5 Mutation
11001001 => 10001001
b) Permutation Encoding
-Crossover
Single point crossover –
(1 2 3 4 5 6 7 8 9) + (4 5 3 6 8 9 7 2 1) = (1 2 3 4 5 9 7 2 1)
Mutation
Order changing –
(1 2 3 4 5 6 8 9 7) => (1 8 3 4 5 6 2 9 7)
C) Tree Enconding
Crossover
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 14
Tree crossover -
Mutation
Changing operator, number - selected nodes are changed
2.2. Quá trình tái sinh
Phép tái sinh là quá trình trong đó các cá thể được sao chép trên cơ sở độ thích
nghi của nó. Độ thích nghi là một hàm gán một giá trị thực cho các cá thể trong
quần thể. Quá trình này có thể được mô phỏng như sau:
- Tính độ thích nghi của từng cá thể trong quần thể hiện hành, lập bảng cộng
dồn các giá trị thích nghi ( theo số thứ tự gán cho từng cá thể). Giả sử quần thể có n
cá thể. Gọi độ thích nghi của cá thể thứ i là Fi, tổng dồn thứ i là Fti, tổng độ thích
nghi của toàn quần thể là Fm.
- Tạo một số ngẫu nhiên F trong đoạn từ 0 đến Fm.
- Chọn cá thể thứ k đầu tiên thoả F >= Ftk đưa vào quần thể của thế hệ mới.
2.3. Quá trình chọn lọc (Selection)
Phép chọn là quá trình loại bỏ các cá thể xấu trong quần thể để chỉ giữ lại trong
quần thể các cá thể tốt. Phép chọn có thể được mô phỏng như sau:
- Sắp xếp quần thể theo thứ tự độ thích nghi giảm dần.
- Loại bỏ các cá thể cuối dãy để chỉ giữ lại n cá thể tốt nhất.
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 15
Phép chọn có nhiều phương pháp để thực hiện như là: roulette wheel selection,
Boltzman selection, tournament selection, rank selection, steady state selection
v,v……sau đây là một vài phương pháp chọn
a) Roulette Wheel Selection
Phương pháp Roulette chọn lựa các cá thể bằng vòng Roulette. Vòng roulette
chứa một hình quạt cho mỗi thành viên của quần thể tương ứng với giá trị Pr(hi), và
được tính bởi công thức sau:
Pr(hi)=
å=
p
jhjFitness
hiFitness
1)(
)(
Hình 2.6: Roulette Wheel Selection
b) Phương pháp Tournament
Tạo ra n vòng để chọn ra n cá thể. Cá thể với độ thích nghi cao nhất trong
nhóm k phần tử được lựa chọn, những cá thể khác bị loại khỏi vòng. Hầu hết các
giải thuật bầu chọn tournament là ở k = 2.
Còn một vài phương pháp khác như là Boltzman selection, rank selection,
steady state selection có thể được tìm thấy trên các website.
2.4 Độ thích nghi (Fitness)
Hàm mục tiêu là hàm dùng để đánh giá độ tốt của một lời giải hoặc cá thể.
Hàm mục tiêu nhận vào một tham số là gen của một cá thể và trả ra một số thực.
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 16
Tùy theo giá trị của số thực này mà ta biết độ tốt của cá thể đó (chẳng hạn với bài
toán tìm cực đại thì giá trị trả ra càng lớn thì cá thể càng tốt, và ngược lại, với bài
toán tìm cực tiểu thì giá trị trả ra càng nhỏ thì cá thể càng tốt).
Giả sử trong một thế hệ có N cá thể, cá thể thứ i được ký hiệu là ai. Hàm mục
tiêu là hàm Fitness(ai). Vậy độ thích nghi của một cá thể ai tính theo độ thích nghi
là:
Pr(ai)=
å=
p
jajFitness
aiFitness
1)(
)(
Chẳng hạn, xét một thế hệ gồm có 6 cá thể với độ tốt (giá trị càng lớn thì cá thể
càng tốt) lần lượt cho trong bảng sau :
Bảng 2.1: Thí dụ của độ thích nghi (Fitness) có 6 cá thẻ
Theo công thức trên, tổng tất cả Fitness (ai) của 6 phần tử là : 17.5
Như vậy, độ thích nghi của phần tử a1 :
Pr(a1) = 5.3 / 17.5 » 0.303
Độ thích nghi của phần tử a2 :
STT Fitness(ai)
1 5.3
2 2.1
3 6
4 2.9
5 1.0
6 0.2
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 17
Pr(a2) = 2.1 / 17.5 = 0.12
Ta có bảng kết quả cuối cùng như sau :
Bảng 2.2 Thí dụ xác suất của độ thích nghi có 6 cá thể
Nhận xét : độ thích nghi luôn có giá trị biến thiên trong khoảng [0,1]. Hơn nữa,
vì độ thích nghi sẽ ứng với khả năng được chọn lọc trong việc sinh ra thế hệ sau nên
người ta thường chọn cách tính sao cho độ thích nghi cuối cùng là một xác suất,
nghĩa là tổng độ thích nghi của các cá thể phải nhỏ hơn hoặc bằng 1.
Một giải thuật di truyền để giải bài toán phải có năm thành phần sau:
- Một cấu trúc dữ liệu biểu diễn không gian lời giải của bài toán.
- Phương pháp khởi tạo quần thể ban đầu.
- Hàm định nghĩa độ thích nghi.
- Các phép di truyền.
- Các tham số của giải thuật di truyền sử dụng (kích thước quần thể, xác
suất lai, đột biến, ...).
3. MÃ GIẢ CỦA GIẢI THUẬT DI TRUYỀN:
STT F(ai) Pr(ai)
1 5.3 0.303
2 2.1 0.120
3 6 0.343
4 2.9 0.166
5 1.0 0.057
6 0.2 0.011
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 18
GA(Fitness, Fitness_threshold, p, r, m)
Khởi tạo quần thể P: sinh ngẫu nhiên p nhiểm sắc thể.
Đánh giá: Với mỗi nhiểm sắc thể h trong quần thể P, tính độ thích
Fitness(h).
While [max Fitness(h)] < Fitness_threshold do
Tạo ra thế hệ mới (generation), Ps:
1. Bầu chọn(selection): chọn (1 – r)p phần tử của P cho vào
Ps. Xác suất Pr(hi) của các nhiểm sắc thể hi ở trong P được
tính như sau:
Pr(hi)=å=
p
jhjFitness
hiFitness
1)(
)(
2. Lai tạo(crossover): chọn (r * p) / 2 cặp nhiểm sắc thể từ P
theo xác suất Pr(hi) ở trên. Với mỗi cặp (h1,h2) tạo ra 2
con bằng cách áp dụng phép lai. Thêm tất cả các con vào
quần thể Ps.
3. Đột biến(mutation): lấy m phần trăm của các phần tử trong
Ps với xác suất giống nhau. Với mỗi phần tử trên, đảo thứ
tự một bit được chọn một cách ngẫu nhiên trong hình thể
của nó.
4. Cập nhật (update): P = Ps.
5. Đánh giá (evaluate): Với mỗi h trong P, tính độ thích nghi
Fitness(h).
Trả kết quả về là nhiểm sắc thể trong P có độ thích nghi cao nhất.
Bảng 2.3: Mã giả của giải thuật di truyền
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 19
Chú giải các biến trong giải thuật di truyền :
§ Fitness: Hàm gán giá trị đánh giá cho một nhiểm sắc thể.
§ Fitness_threshold: giới hạn để chỉ ra điều kiện dừng.
§ p: số lượng nhiểm sắc thể trong quần thể.
§ r: phần nhỏ của quần thể được thay thế bởi phép lai ở mỗi bước.
§ m: tỷ lệ đột biến.
Giải thuật trên được giải thích như sau : Ban đầu một quần thể được tạo ra và
tính độ thích hợp cho mỗi cá thể trong quần thể. Sau đó, ta chọn hai cá thể tốt (đánh
giá từ hàm độ thích nghi của chúng) từ quần thể này để tái sinh (reproduction) bằng
cách lai tạo hay đột biến. Sau khi các cá thể con sinh ra, ta tính độ thích nghi của nó.
Một quần thể mới sẽ được tạo ra sau khi loại bỏ những cá thể xấu. Và quá trình cứ
thế lặp đi lặp lại nhiều lần. Các quần thể về sau sẽ tốt hơn so với quần thể cha mẹ
trước đó.
Thuật toán GA diễu biển như sau :
Hình 2.7 Diễu biển của giải thuật di truyền
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 20
4. THỂ HIỆN NHIỂM SẮC THỂ TRONG GIẢI THUẬT DI TRUYỀN
Nhiểm sắc thể trong giải thuật di truyền (GA) thường được thể hiện bởi những
chuỗi nhị phân (bit); nhờ vậy, phép toán di truyền, như là phép đột biến và phép lai,
được thực thi dễ dàng. Thể hiện những nhiễm sắc thể bằng chuỗi bit có thể khá
phức tạp. Ví dụ, tập các luật if-then có thể dễ dàng thể hiện theo cách sau: chọn
cách mã hoá các luật là phân phối các chuỗi con cụ thể cho mỗi tiền điều kiện và
hậu điều kiện cho các luật.
Để thấy được các luật if-then được mã hoá bằng các chuỗi bit như thế nào, đầu
tiên chúng ta sử dụng chuỗi bit để mô tả ràng buộc trên giá trị của thuộc tính đơn.
Ví dụ xem xét thuộc tính Outlook có 3 giá trị Sunny, Overcast, hoặc Rain. Thể hiện
thuộc tính trên, ta dùng chuỗi bit có độ dài là 3.
Outlook = Overcastà 010
Outlook = Overcast v Rainà 011
Outlook = 111à chúng ta không quan tâm đến thuộc tính của nó
Wind có 2 giá trị là Strong và Weak.
Wind = Strongà 10
Wind = Weak à 01
PlayTennis có 2 giá trị là yes và no.
PlayTennis = yesà 10
PlayTennis = no à 01
Ta thể hiện câu (Outlook=Overcast Ù Rain) Ù (Wind=Strong) như sau
Outlook Wind
011 10
Chúng ta có thể dùng luật trên như tiền điều kiện. Ví dụ dưới đây là một luật
If Wind = Strong THEN PlayTennis = yes
có thể được thể hiện bằng chuỗi sau:
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 21
Outlook Wind PlayTennis
111 10 10
5. CÁC PHÉP TOÁN TRONG GIẢI THUẬT DI TRUYỀN (Operation):
5.1. Phép chọn lọc (Selection):
Phép chọn lọc là việc chọn những nhiễm sắc thể dựa theo các giá trị của hàm
thích nghi (fitness function). Theo cơ chế này, những cá thể nào có độ thích nghi
tốt thì có nhiều cơ hội được chọn lựa. Có rất nhiều phép chọn lọc chẳng hạn như
roulette wheel selection, Boltzman selection, tournament selection, rank
selection, steady state selection v,v…một số phép chọn lọc đã được trình bày ở
trên .
5.2. Mã hoá nhiễm sắc thể (Encoding of a Chromosome)
Có nhiều cách để mã hoá nhiễm sắc thể chẳng hạn như dùng chuỗi nhị phân
(binary string). Mã hoá nhiễm sắc thể giống như ví dụ sau đây :
Chromosome 1 1101100100110110
Chromosome 2 1101111000011110
Bảng 2.4 Thí dụ mã hóa nhiễm sắc thể
Mỗi nhiễm sắc thể được hình dung bằng binary string. Mỗi bit trong string có
thể được hình dung cho đặc điểm của bài tóan. Sự thật có rất nhiều phương pháp
để mã hoá. Mã hoá phụ thuộc vào vấn để cần được giải quyết.
5.3. Phép lai (Crossover)
Sau khi chúng ta mã hoá nhiễm sắc thể, chúng ta có thể tiến hành phép toán
lai. Phép lai là quá trình sản sinh ra 2 con mới từ hai chuỗi cha mẹ bằng cách sao
chép những bit được lựa chọn từ cha và mẹ. Bit ở vị trí thứ i trong mỗi con được
sao chép từ bit ở vị trí thứ i của cha hoặc mẹ. Việc chọn lựa cha hoặc mẹ đóng góp
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 22
bit ở vị trí thứ i được xác định bởi mặt nạ lai (crossover mask). Ta có các kiểu lai
sau: Single-point, Two-point,
Chromosome 1 11001 | 00100110110
Chromosome 2 11011 | 11000011110
Offspring 1 11001 | 11000011110
Offspring 2 11011 | 00100110110
Bảng 2.5 Thí dụ phép toán lai
5.4. Phép đột biến (Mutation)
Phép đột biến là quá trình sinh ra một con từ một cha. Đột biến tạo ra sự thay
đổi nhỏ một cách ngẫu nhiên đối với chuỗi bit bằng cách chọn một bit đơn ngẫu
nhiên rồi đổi giá trị của nó. Việc đột biến thường diễn ra sau việc lai tạo. Phép đột
biết có thể minh họa như sau:
Original offspring 1 1101011000011110
Original offspring 2 1101100100110110
Mutated offspring 1 1101111000011110
Mutated offspring 2 1101101100110110
Bảng 2.6 Thí dụ phép toán đột biến
6. NHỮNG ĐỀ NGHỊ
6.1 Thông số của giải thuật di truyền (Parameters of GAs ):
- Tỷ lệ của phép lai (Crossover rate): Tỷ lệ thường nên cao, khoảng 80%-
95% (mặc dù có một số tỷ lệ phép lai khoảng 60% là tốt)
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 23
- Tỷ lệ của phép đột biến(Mutation rate) :Tỷ lệ của phép đột biến nên thấp.
Tỷ lệ tốt nhất khoảng là 0.5%-1%
- Kích thước của quần thể (Population size ) : Kích thước tốt nhất của quần thể
khoảng là 20-30, đôi khi kích thước 50-100 cũng có thể đánh giá là tốt. Có một
nghiên cứu cũng cho biết kích thước tốt nhất của quần thể dựa vào kích thước của
mã hoá chuỗi (nhiễm sắc thể). Có nghĩa là nếu nhiễm sắc thể có 32 bits thì quần thể
nên có kích thước lớn hơn nhiễm sắc thể có 16 bits.
- Phép chọn (Selection ): Routlette wheel selection là phép chọn cơ bản
thường được sử dụng nhiều nhất. Đôi khi rank selection cũng có thể cho kết quả tốt.
- Mã hoá (Encoding): Mã hoá phụ thuộc vào vấn đề và kích thước của bài
toán.
6.2 Sự áp dụng của giải thuật di truyền
Giải thuật di truyền được sử dụng để giải bài toán khó (như là NP- hard
problems), máy học. Tất cả đều sử dụng dành cho đồ họa hay là để tạo ra hình ảnh
hoặc là âm nhạc.
Ưu điểm của Giải thuật di truyền: trong quan hệ song song của nó. GAs có thể
đổi chỗ trong không gian tìm kiếm sử dụng nhiều mô hình, như vậy GAs ít có khả
năng bị rơi vào lời giải tối ưu cục bộ giống như các giải thuật khác. Chúng ta thực
hiện (implement) GA dễ dàng. Nếu mà chúng ta có giải thuật di truyền cơ bản rồi,
chúng ta chỉ cần viết chương trình biểu diễn nhiễm sắc thể (chỉ một object) mới để
giải quyết những vấn đề khác nhau. Với mã hoá giống nhau chúng ta chỉ thay đổi
hàm fitness, chúng sẽ thực thi được. Mặc dù đối với một số bài toán có chọn lọc,
thực thi việc mã hoá và hàm fitness rất khó.
Bất lợi của giải thuật di truyền : thực hiện việc tính toán bằng giải thuật di
truyền có thể chậm hơn so với các giải thuật khác.
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 24
Phần 2 : MÔ HÌNH MẠNG (Network Model)
1. GIỚI THIỆU VỀ MÔ HÌNH MẠNG
Trong phần này chúng ta sẽ trình bày mô hình mạng (Network Model). Mô hình
mạng là một trong những mô hình để giải các lọai bài toán, như là bài toán vận tải
(Transportation or distribution problem), hoặc là bài toán người đi du lịch (TSP –
Traveling Salesman Problem) v...v. Mô hình mạng này sẽ được dùng để giải bài
toán tìm chí phí tối thiểu giữa đỉnh nguồn và đỉnh đến.
2. ĐỊNH NGHĨA MÔ HÌNH MẠNG
Đồ thị vô hướng (undirected graph) G là một cặp hai tập(N,A), ở đây N là tập
các nút (Node) và A là tập các cung (arc) không có hướng. Cung không có hướng,
hoặc cũng gọi là cung vô hướng (undirected arc) là một cặp không kề đến thứ tự hai
nút khác nhau i và j nào đó, i của N, j của N kí hiệu là (i , j). Vây (i, j) =(j, i) trong
đồ thị vô hướng. Cung cũng còn gọi là cạnh (edge). Cung (i , j) nối các nút i và j.
Cấp (degree) của một nút là số cung nối tới nó. Một đường đi (path) từ nút i1 đến
nút it là bộ t nút khác nhau i1, i2, ……..,it sao cho (ik, ik+1) của A với k=1,….,t-1.
Chu trình (cycle hoặc loop) t nút i1, i2, …….it sao cho i1,….,it-1 là một đường đi, it =
i1 và có ít nhất ba nút khác nhau ( tức là t-1 ≥ 3). Đồ thị được gọi là liên thông
(connected) nếu ứng mỗi cặp i, j của N đều có một đường đi từ i đến j. Số các nút
của đô thị thường kí hiệu là | N | hoặc n, còn số các cung là |A| .
Đô thị có hướng (directed graph hoặc digraph) cũng là một cặp (N,A)=G,
nhưng mỗi cung là môt cặp có thứ tự. Vây (i, j) ≠ (j, i). Nhưng đồ thị không được
chứa cung “ tự nối “
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 25
Hình 2.8 Đồ thị có hướng
Ví dụ hình 2.7 là một đồ thị có hướng G = (N, A) với N = {1, 2, 3, 4, 5}, A =
{(1,2), (2,1), (1, 3), (3, 2), (1, 4), (4, 3), (3, 5)}. Ta sẽ nói là cung (i, j) đi từ nút i
đến nút j. Cung này nối cả nút i và j. Đồ thị vô hướng tương ứng với một đồ thị có
hướng là đồ thị nhận được khi không tính đến hướng trên các cung nữa. Đồ thị có
hướng là liên thông nếu đồ thị vô hướng tương ứng là liên thông. Một đường đi
trong đô thị vô hướng tương ứng đều gọi là một đường đi trong đô thị có hướng.
Nhưng đồ thị có hướng có thể chứa cả hai cung (i ,j) và (j, i), nên để xác định một
đường đi phải nói rõ cả dãy nút i1,……,it và dãy cung a1, ….., at-1. Khi đó nếu một
cung ak có dạng “thuận “ ak=(ik, ik+1) thì ta nói ak là cung tiến (forward arc) trong
đường đi này. Ngược lại nếu ak = (ik+1, ik,) thì ak là cung lùi ( backward arc). Chu
trình cũng định nghĩa như ở đồ thị vô hướng, nhưng ở đây cho phép chu trình chỉ
gồm hai nút khác nhau. Một đường đi hoặc một chu trình có hướng (directed path
và directed cycle hoặc circuit) nếu nó chỉ chứa các cung tiến.Thi dụ hình …. 1,(1,
3), 3, (3, 2), 2, (2, 1), 1 là một chu trình có hướng. Nhưng 3, (1, 3), 1, (1, 2), 2, (3,
2), 3 là một chu trình không có hướng vì (1, 3) và (3, 2) là cung lùi.
Mạng (network) là một đồ thị có hướng G = (N , A) cùng với một số thông tin
về số lượng bổ sung như : các số thực bi, i của N, biểu thị nguồn từ ngoài (source
hoặc external supply) hoặc gọi tắt là nguồn (supply); các số uij ≥ 0 ( có thể vô hạn)
1
42
3 5
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 26
biểu thị tải năng (capacity) của cung (i, j) của A và các số thực cij biểu thị cước phí
(cost) một đơn vị của dòng (chuyển vận) trên cung (i, j) (cost per unit)
Mô hình mạng có hai cách để biểu diễn: thứ nhất dưới dạng một tập hợp các
danh sách kề (adjacency-list); thứ hai, dươí dạng một ma trận kề (adjacency-matrix)
hình 2.9 dưới đây sẽ minh họa cách biểu diễn
1
2
(a) 3
4
5 (b)
1 2 3 4 5
1 0 1 1 0 0
2 1 0 1 1 1
3 1 1 0 1 1
4 0 1 1 0 1
5 0 1 1 1 0
( c )
Hình 2.9 Cách biển diễn mô hình mạng b: danh sách kề, c: ma trận kề
Hình 2.9 (a) là một mạng G(N,A) có 5 nút và 8 cung, (b) là một phép biểu diễn
danh sách kề của hệ thống G, (c) là một phép biểu diễn ma trận kề của G.
3. GIẢI THUẬT TRONG MÔ HÌNH MẠNG
1 3 5
2 4
2
1
1
2
4
3 /
3 5 4 /
2 4 5 /
3 5 /
2 3 /
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 27
Mô hình mạng có rất nhiều thuật toán khác nhau để giải bái toán tối ưu mạng,
bao gồm :
+ Mô hình Minimal Spanning Tree
+ Mô hình Shortest-Route
+ Mô hình Maximum-flow
+ Mô hình Minimum-cost capacitated network
Tất cả các mô hình bên trên đều có thể giải bài toán tối ưu mạng, vì vậy chúng ta
chỉ chọn một mô hình để trình bày, tìm hiểu và áp dụng nó đối với bài toán người
du lịch mà chúng ta sẽ nghiên cứu. Mô hình chúng ta sẽ chọn là là mô hình Minimal
Spanning Tree.
4. MÔ HÌNH CÂY TỎA NHÁNH CỰC TIỂU (Minimal Spanning Tree)
Trong khâu thiết kế hệ mạng điện tử, ta thường phải tạo các kim (pins) của
vài thành phần tương đương về điện tử bằng cách đấu dây chúng với nhau. Để
tương kết một tập hợp n kim, ta có thể dùng một cách bố trí n-1 dây dẫn, mỗi dây
nối 2 kim. Trong số tất cả các kiểu bố trí như vậy, kiểu sử dụng lượng dây dẫn ít
nhất thường thỏa đáng nhất.
Ta có thể mô hình hoá bài toán đấu dây này với hệ thống không hướng, liên
thông G=(V,E),
- Ở đó V là tập hợp các kim.
- E là tập hợp các tuyến tương kết khả dĩ giữa các cặp kim, và với mỗi (u,v)
của E. Ta có một trọng số w(u,v) chỉ định mức hoa phí (lượng dây dẫn cần thiết).
Để nối u và v . Như vậy, ta muốn tìm một tập hợp con kim chu trình T của E liên
thông tất cả các đỉnh và trọng số của chúng
w(T)= ∑ w(u,v) (u,v) của T
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 28
được tối thiểu. Bởi T là kim chu trình và liên thông tất cả các đỉnh, nên nó phải hình
thành một cây, mà ta gọi là một Cây tỏa nhánh bởi nó “tỏa rộng” đồ thị G. Ta gọi
bài toán xác định cây T là bài toán cây tỏa nhánh cực tiểu (minimum-spanning-
tree problem).
Ví dụ hình cây tỏa nhánh cực tiểu:
8 7
9 4 2
114 14
7 6 8 10
1 2
Hình 2.10 Cây tỏa nhánh cực tiểu MST
Để giải bài toán cây tỏa nhánh cực tiểu (minmum-spanning tree) này chúng
ta sẽ áp dụng hai giải thuật. Đó là thuật toán Kruskal và thuật toán Prim.
4.1. Thuật toán Kruskal
Kiểu thực thi thuật toán kruskal của chúng ta giống như thuật toán để tính các
thành phần liên thông. Nó sử dụng một cấu trúc dữ liệu tập hợp rời gồm nhiều thành
phần. Mỗi tập hợp chứa các đỉnh trong một cây của rừng hiện hành. Phép toán
Find-Set(u) trả về một thành phần đại diện từ tập hợp chứa u. Như vậy, ta có thể xác
định hai đỉnh u và v có thuộc về cùng cây hay không bằng cách trắc nghiệm Find-
set(u) có bằng Find-set(v) hay không. Thủ tục Union sẽ hoàn thành tiến trình tổ hợp
các cây.
a
b
h
c d
g
e
f
i
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 29
Thuật toán Kruskal
1 A ß 0
2 for mỗi đỉnh v của V [G]
3 do Make-set (v)
4 sắp xếp các cạnh của E theo trọng số không giảm w
5 for mỗi cạnh (u, v) của E, theo thứ tự trọng số không giảm
6 do if Find-set (u) ≠ Find-set (v)
7 then AßA U {(u, v)}
8 Union (u, v).
9 return A
Các dòng 1-3 khởi tạo tập hợp A là tập hợp trống và tạo |V| cây, mỗi cây
chứa một đỉnh. Các cạnh trong E được xếp theo thứ tự trọng số không giảm trong
dòng 4. Vòng lặp for trong các dòng 5-8 sẽ kiểm tra xem, với mỗi cạnh (u,v),các
điểm cuối u và v có thuộc về cùng cây hay không. Nếu có, cạnh (u,v) không thể bổ
xung vào rừng mà không tạo một chu trình, thì cạnh được loại bỏ. Bằng không, hai
đỉnh thuộc về các cây khác nhau, cạnh(u,v)được bổ sung vào A trong dòng 7, và các
đỉnh trong hai cây được trộn trong dòng 8.Ví dụ hình 2.11 đối với thuật toán
Kruskal:
A :
8 7 8 7
4 2 4 14 9 4 2 14 9 11 11 4
1 2 2 4 4 6 7 7 8 8 10 11 12 14
a
b c
i
d
ae
b
a i
c d
e
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 30
8 7 6 10 8 7 6 10
1 2 1 2
8 7 8 7
4 2 4 14 9 4 2 14 9 11 11 4
8 7 6 10 8 7 6 10
1 2 1 2
8 7 8 7
4 2 4 14 9 4 2 14 9 11 11 4
8 7 6 10 8 7 6 10
1 2 1 2
8 7 8 7
4 2 4 14 9 4 2 14 9 11 11 4
8 7 6 10 8 7 6 10
1 2 1 2
8 7 8 7
4 2 4 14 9 4 2 14 9 11 11 4
8 7 6 10 8 7 6 10
1 2 1 2
8 7 8 7
4 2 4 14 9 4 2 14 9 11 11 4
h g f h g f
a
b
h
c
g
i
d
f
ae
b
a
h
i
c
g
d
f
e
a
b
h
c
g
i
d
f
ae
b
a
h
i
c
g
d
f
e
a
b
h
c
g
i
d
f
ae
b
a
h
i
c
g
d
f
e
a
b
h
c
g
i
d
f
ae
b
a
h
i
c
g
d
f
e
a
b c
i
d
ae
b
a i
c d
e
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 31
8 7 6 10 8 7 6 10
1 2 1 2
8 7 8 7
4 2 4 14 9 4 2 14 9 11 11 4
8 7 6 10 8 7 6 10
1 2 1 2
Hình 2.11 Minh hoạ về giải thuật Kruskal tạo ra cây MST
Note
Mã giả của:
A: Make –set(x)
1. p[x]ß x
2. rank[x]ß 0
B: Union(x, y)
1. Link(Find-set(x), Find-set(y))
C: Link(x, y)
1 if rank[x] > rank[y]
2 then p[y]ß x
3 else p[x]ß y
4 if rank [x] = rank [y]
5 then rank [y]ßrank[y]+1
D: Find-set(x)
1. if x ≠ p[x]
2. then p[x]ß Find-set(p[x])
3. return p[x]
4.2 Thuật toán Prim
h g f h g f
a
b
h
c
g
i
d
f
ae
b
a
h
i
c
g
d
f
e
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 32
Cũng như thuật toán kruskal, thuật toán Prim là một trường hợp đặc biệt của
thuật toán cây tỏa nhánh cực tiểu. Thuật toán Prim hoạt động tương tự như thuật
toán Dijkastra để tìm lộ trình ngắn nhất trong một đồ thị. Thuật toán Prim có tính
chất là các cạnh trong tập hợp A luôn hình thành một cây đơn lẻ. Như minh hoạ
trong hình 2.12
Thuật toán Prim
1. Qß V[G]
2. For mỗi u Của Q
3. do key [u]ß ∞
4. key [r]ß 0
5. p[r]ß nil
6. while Q ≠ 0
7. do uß Extract-min(Q)
8. for mỗi v của Adj[u]
9. do if v của Q và w(u,v) < key[v]
10. then p[r]ßu
11. key[v]ß w(u,v)
Các dòng 1-4 khởi tạo hàng đợi ưu tiên Q để chứa tất cả đỉnh và ấn định khoá
của mỗi đỉnh là giá trị ∞, ngoại trừ gốc r, khoá được ấn định là 0. Dòng 5 khởi tạo
p[r] là NIL, bởi gốc r không có “nguồn”. Suốt thuật toán, tâp hợp V-Q chứa các
đỉnh trong cây tăng trưởng. Dòng 7 định danh một đỉnh u của Q thuộc trên một cạnh
nhạt (light edge) đi qua phần cắt(V-Q,Q)(với ngoại lệ là lần lặp lại đầu tiên, ở đó
u=r do dòng 4). Việc gỡ bỏ u ra khỏi tập hợp Q sẽ bổ sung nó vào tập hợp V-Q gồm
các đỉnh trong cây. Các dòng 8-11 câp nhật các trường key và p của mọi đỉnh v kề
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 33
với u nhưng không nằm trong cây. Tiến trình cập nhật duy trì các bất biến
key[v]=w(v,p[r]) và (v,p[r]) là một cạnh nhạt (light edge) nối v với đỉnh trong cây.
Ví dụ của thuật toán Prim: 8 7 8 7
4 2 4 14 9 4 2 14 9 11 11 4
8 7 6 10 8 7 6 10
1 2 1 2
8 7 8 7
4 2 4 14 9 4 2 14 9 11 11 4
8 7 6 10 8 7 6 10
1 2 1 2
8 7 8 7
4 2 4 14 9 4 2 14 9 11 11 4
8 7 6 10 8 7 6 10
1 2 1 2
8 7 8 7
4 2 4 14 9 4 2 14 9 11 11 4
8 7 6 10 8 7 6 10
1 2 1 2
8 7
a
b
h
c
g
i
d
f
a
b
a
h
i
c
g
d
f
e
a
b
h
c
g
i
d
f
ae
b
a
h
i
c
g
d
f
e
a
b
h
c
g
i
d
f
a
b
a
h
i
c
g
d
f
e
a
b
h
c
g
i
d
f
a
b
a
h
i
c
g
d
f
e
b c d
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 34
4 2 4 14 9 11
8 7 6 10
1 2Hình 2.12 Mình họa về giải thuật Prim tạo ra cây MST
Note
Extract-min(H)
1. z ß min[H]
2. if z ≠ Nil
3. then với mỗi con x của z
4. do cộng x vào danh sách gốc của H
5. p[H] ß Nil
6. gỡ bỏ z ra khỏi danh sách gốc của H
7. if z = right(z)
8. then min[H]ß Nil
9. else min[H]ß right[z]
10. Consolidate(H)
11. n[H] ß n[H]-1
12. Return z
Consolidate (H)
1. For iß 0 to D(n[H])
2. do A[i]ß Nil
3. For mỗi nút w trong danh sách gốc của H
4. do xß w
5. dß degree[x]
6. while A[d] ≠ Nil
7. do y ß A[d]
8. if key[x] > key [y]
a
h g
i
f
a
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 35
9. then trao đổi xß> y
10. FIB- HEAP- LINK (H,y,x)
11. A[d]ß Nil
12. dß d+1
13. A[d]ßx
14. min[H]ß Nil
15. for Iß 0 to D(n[H])
16. do if A[i] ≠ Nil
17. then cộng A[i] vào danh sách gốc của H
18. if min[H] =Nil hoặc key [A[i]] < key [min[H]]
19. then min[H]ß A[i]
FIB-HEAP-LINK(H,y,x)
1. gỡ bỏ y ra khỏi danh sách gốc của H
2. chuyển y thành một con của x ,gia số degree[x]
3. mark[y]ß FALSE
Tóm lại mô hình mạng (Network Model) có thể áp dụng để giải rất nhiều bài
toán như là:
- Bài toán vận tải
- Bài toán phân hoạch đối tượng và đồ thị
- Bài toán tô màu
- Bài toán người đi du lịch vv…..
-
Chương này chú trọng vào việc môt tả cơ sở lý thuyết của hai hướng tiếp cận
được sử dụng trong đề tài.Ngoài ra, chương này còn giúp chúng ta hiểu được thế
mạnh của giải thuật di truyền và những giải thuật của mô hình mạng giống như là
giải thuật Prim hoặc kruskal…vvv.Từ đó, ta thấy được tầm quan trọng của chúng.
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 36
CHƯƠNG III
CÁC CÔNG TRÌNH LIÊN QUAN
Trên thế giới đã tồn tại khá nhiều phương pháp và giải thuật từng được dùng
để giải bài toán TSP, tuy nhiên đa số các phương pháp còn chưa rút ra được một kết
quả tốt về tốc độ tối ưu và thời gian thưc hiện. Sau đây là một số phương pháp đã
được áp dụng để giải bài toán người đi du lịch TSP:
Christofides [1976] đã xây dựng một giải thuật mà có thể ứng dụng cho bài toán
TSP. Giải thuật đó mang tên là Christofides Algorithms. Giải thuật này dựa trên ba
chiến lược là: Double Minimum Spanning Tree, Nearest Insertion, and Nearest
Addition. Nghĩa là đầu tiên ông 1: Tạo ra một cây Minimum spanning tree (T) của
tất cả các thành phố, rồi 2: tìm minimum-length matching M trên đỉnh của bậc trong
cây T, rồi 3: kết hợp M với T. Cuối cùng 4: Đồ thị phải trả về chu trình Euler.
Giải thuật mô phỏng luyện kim (Simulated annealing) đầu tiền được áp dùng
cho bài toán TSP bởi ông Kirkpatrick et al. [1983] và Cerny [1985]. Sau đó ông Patrick
Karlsson [2002] đã giải bài toán TSP cũng dung phương pháp mô phỏng luyên kim.
Glover [1986], Rossier, Troyon, và Liebling [1986], Troyon [1988], Malek,
Guruswamy, và Pandya [1989], Heap, Kapur, và Mourad [1989], Knox and Glover
[1989], Glover [1991,1992], Fiechter [1994], và Knox [1994] đã dùng giải thuật
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 37
Tabu search trên bài toán TSP. Chiến lược cơ bản của tìm kiếm Tabu là giữ lại tất
cả các lời giải đã qua trước đó nhằm mục đích không cho một lời giải nào lặp lại 2
lần, nghĩa là các lời giải trong danh sách điều bị cấm sử dụng lại. Khi gặp trường
hợp tối ưu cục bộ, giải thuật sẽ thoát ra bằng cách chọn một lời giải tốt nhất có thể
thay thế được.
Giải thuật 2 – opt và 3 – opt là giải thuật thuộc loại giải thuật tìm kiếm cực bộ.
Hai giải thuật được áp trên bài toán TSP. Đầu tiên giải thuật 2 – opt được giới thiệu
bởi ông Croes [1958]. Sau đó ông Bock [1958] và ông Lin[1996] cũng ứng dụng
giải thuật 3 – opt cho bài toán TSP
Lin và Kernighan [1973] đã xây dưng giải thuật heuristic với chiến lược K-
optimal để giải bài toán TSP với thời gian đa thức. Trong giải thuật này, Lin và
Kernigham đã tìm ra lời giải bằng cách lặp việc thay thế k cạnh trong đồ thị bằng k
cạnh khác cho đến khi chất lượng hàm mục tiêu không thể cải tiến được nữa.
Ông Goldberg [1989] cũng dùng giải thuật di truyền GA trên bài toán TSP, và
kết quả của ông sau khì thưc thi cũng rất hiệu quả. Và kết quả này được đánh giá rất
cao so với giải thuật khác khi ứng dụng cho bài toán TSP.
Màng Neuron (Neural Network) cũng là chiến lược rất hiều quả nếu nó được
úng dụng cho bài toán TSP. Vì vậy ông Hopfield và ông Tank [1985] đã cùng nhau
xây dựng mạng neuron cho bài toán TSP và kết quả đưa ra rât hiệu quả.
Giải thuật nhánh và cận (Branch & Bound algorithm) là giải thuật rất hiệu quả
khi áp dụng trên nhiều bài toán thuộc loài NP-Hard giống như bài toán TSP. Giải
thuật nhánh và cận tương tự giải thuật quay lui, ý tưởng cơ bản của giải thuật là lưu
lại tất cả các lời giải tốt nhất cho đến lần xét hiện tại và loại bỏ đi những nhánh tìm
kiếm mà biết chắc chắn rằng sẽ không thể cho giải pháp tốt hơn các lời giải đã tìm
được. Giải thuật này được ông Christofides at [1981] & Backer [1983] áp dụng trên
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 38
bài toán TSP với cửa sổ thời gian (TSPTW). Bài toán này cũng tương tự với bài
toán TSP chỉ khoảng cách giữa hai thành phố tính bằng thời gian.
Từ các công trình, chúng ta có thể nhận xét rằng bài toán TSP là một bài toán rất
được quan tâm trên thế giới hiện nay, có rất nhiều nhà nghiên cứu trên thế giới đang
nghiên cứu những phương pháp mới nhằm cải thiện thời gian sinh ra lời giải có chất
lượng cao cho bài toán này.
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 39
CHƯƠNG IV
PHƯƠNG PHÁP GIÁI QUYẾT VẤN ĐỀ
Trong chương này, chúng ta đưa ra phương pháp cụ thể được để giải quyết vấn
đề mà đề tài yêu cầu. Ngoài ra, chương này cũng trình bày cụ thể các giải thuật
được sử dụng để giải bài toán. Giải thuật được sử dụng trong đề tài này chính là giải
thuật di truyền và giải thuật mô hình mạng.
Mục tiêu của đề tài là tìm hiểu và phát triển giải thuật di truyền (GAs) và giải
thuật mô hình mạng (Network Model), rồi áp dụng các giải thuật mà chúng ta trình
bày ở trên đối với bài toán tối ưu tổ hợp người đi du lịch (TSP). Sau đó chúng ta sẽ
so sánh giữa giải thuật di truyền và giải thuật mô hình mạng như là giải thuật Prim ,
Kruskal, hoặc dijkstra trong mô hình Minimal Spanning Tree và đánh giá độ hiệu
quả giữa hai giải thuật để rút ra một lời giải tối ưu nhất .
4.1MÔ TẢ BÀI TOÁN
Trong phần này, chúng tôi mô tả cụ thể bài toán cũng như phương pháp sẽ sử
dụng để giải quyết bài toán TSP.
Bài toán người đi du lịch có liên quan mật thiết đến bài toán chu trình Hamilton.
Một du khách phải nghé thăm tất cả các thành phố. Ta lập mô hình bài toán dưới
dạng một đồ thị đầy đủ có n đỉnh; ta có thể nói rằng người du khách muốn thực hiện
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 40
một chuyến đi hay là thực hiện chu trình Hamilton. Người đó phải ghé thăm mỗi
thành phố chính xác một lần và kết thúc tại thành phố mà anh ta khởi đầu.
Bài toán TSP thể hiện như dưới đây:
Cho một đồ thị vô hướng đầy đủ G = (V, E) với tập đỉnh {1, 2, ..…. n}, trong đó
V={2,….n} thể hiện các thành phố cần viếng thăm, 1 là đỉnh xuất phát. Để thực
hiện tiến trình trong quá trình tìm ra lời giải, ta thêm vào một đỉnh cạnh n+1 đóng
vai trò giống như đỉnh 1. Khi đó đỉnh 1 được xem như là đỉnh khởi đầu và n+1 là
đỉnh kết thúc.Vì vậy lộ trình (tour) cần tìm chính là một chu trình Hamilton bắt đầu
tại đỉnh 1 và kết thúc tại đỉnh n+1.
Ta định nghĩa như sau: Vo = V U {1}, Vd = V U {n+1} và Vo,d = V U {1,n+1}.
Với mỗi cặp đỉnh i, j ta gọi ci,j là chi phí từ i đến j. Ta gọi Si, i= 1,……n kết hợp
với mỗi thành phố và thể hiện là đỉnh kế vị trực tiếp của đỉnh i trong lô trình, Si có
thể thuộc {2,..,n+1}
Mục tiêu của bài toán được thể hiện thông qua công thức:
Minimize ∑ ci, Si với i của Vo
Công thức trên nhằm thể hiện lộ trình cần tìm phải đạt tối thiểu về tổng chi
phí hoặc khoảng cách.
G
2 i
1
n k
j
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 41
Hình 4.1: Thể hiện bài toán TSP trên đồ thị
Và các thành phố trên đồ thị tức là các nút được đánh số từ 1 đến n.
4.2 GIẢI THUẬT DI TRUYỀN ỨNG DỤNG VÀO BÀI TOÁN TSP
Một giải thuật di truyền cần giải một bài toán cụ thể phải gồm năm thành
phần sau đây:
1. Cách biểu diễn di truyền cho lời giải của bài toán.
2. Cách khởi tạo quần thể ban đầu.
3. Một hàm lượng giá đóng vai trò môi trường, đánh giá các lời giải theo
mức độ “ thích nghi” của chúng
4: Các phép toán di truyền.
5: Các tham số khác (kích thước quần thể, xác suất áp dụng các phép toán di
truyền v,v,…..)
4.2.1 Biểu diễn nhiễm sắc thể
Như ta đã biết, khó khăn đầu tiên đặt ra cho người thiết kế giải thuật di truyền là
biểu diễn nhiễm sắc thể.Ví dụ ta sử dụng biểu diễn nhị phân để biểu diễn nhiễm sắc
thể hoặc ta biểu diễn nhị phân bằng các chiến lược cần thiết.Với cách biểu diễn như
thế, các phép di truyền truyền thống như lai và đột biến, được áp dụng trực tiếp
không cần sửa đổi gì cả. Khi thực hiện lai hay đột biến, các nhiễm sắc thể cho ra kết
quả vẫn hợp lệ; nghĩa là một lời giải thuộc không gian tìm kiếm. Điều này không
còn đúng trong bài toán TSP nữa.
Nếu biểu diễn nhị phân cho bài toán TSP có n thành phố, mỗi thành phố phải
được đánh mã bằng một chuỗi [log2(n)] bit; và nhiễm sắc thể là một chuỗi gồm
n*[log2(n)]bit. Đột biến có thể tạo ra một lộ trình không thỏa điều kiện bài toán tức
là ta có thể thăm một thành phố 2 lần.Ví dụ, đối với một bài toán TSP có 20 thành
phố (ta cần 5 bit để biểu diễn một thành phố), có một số chuỗi 5 bit nào đó (như
10101) sẽ không tương ứng với thành phố nào cả vì 5 bit có thể biểu diễn tối đa 32
trường hợp. Phép lai cũng gây ra những vấn đề tương tự.Cách phù hợp và tự nhiên
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 42
là ta sẽ đánh số các thành phố và dùng một vector nguyên để biểu diễn một nhiễm
sắc thể lộ trình. Cách biểu diễn này giúp ta tránh phải dùng thuật giải sữa chữa bằng
cách kết hợp những hiểu biết về bài toán vào các phép toán di truyền.Với cách biểu
diễn này, một vectơ các thành phần nguyên v = <i1, i2,........, in> biểu diễn một lộ
trình: từ i1 đến i2.....,từ in-1 đến in và trở về i1(v là một hoán vị của vectơ
<1,2,....,n>).
Trong một vài năm gần đây đã có 3 biểu diễn vector được xem xét có liên quan
với bài toán người đi du lịch TSP, biểu diễn đó là:
1. Biểu diễn kề
2. Biểu diễn thứ tự
3. Biểu diễn đường dẫn
Biểu diễn kề: là biểu diễn một hành trình là danh sách n thành phố. Thành phố j
được đặt trong danh sách ở vị trí i nếu và chỉ nếu chuyến đi bắt đầu từ thành phố i
đến thành phố j. Thi dụ, vector:
(2 4 8 3 9 7 1 5 6)
biểu diễn hành trình sau đây :
1 – 2 – 4 – 3 – 8 – 5 – 9 – 6 –7
Một thành phố chỉ xuất hiện một lần trong danh sách kề; nhưng một số danh
sách kề có thể biểu các hành trình bất hợp lệ nghĩa là:
(2 4 8 1 9 3 5 7 6)
Dẫn đến:
1 – 2 – 4 – 1;
Nghĩa là, một (phần) hành trình có một chu trình (xảy ra quá sớm).
Biểu diễn kề không hỗ trợ toán tử lai cổ điển. Có lẽ cần có thuật giải sửa chữa.
Ba toán tử lai được định nghĩa cho biểu diễn kề : lai có các cạnh thay đổi, lai các
đoạn hành trình con, và lai heuristic.
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 43
- Lai có cạnh thay đổi tạo ra con mới bằng cách chọn (ngẫu nhiên) một cạnh
từ cha-mẹ thứ nhất, rồi chọn một cạnh thích hợp từ cha-mẹ thứ hai,vv…. – toán tử
mở rộng hành trình bằng cách chọn các cạnh từ cha-mẹ luân phiên.Nếu cạnh mới từ
một trong các cha-mẹ tạo một chu trình vào hành trình hiện hành (mới một phần),
thì toán tử chọn một cạnh thay thế (ngẫu nhiên) từ các cạnh còn lại không tạo các
chu trình.
- Lai các đoạn hành trình con tạo ra con mới bằng cách chọn hành trình
con (chiều dài ngẫu nhiên) từ một trong các cha-mẹ, rồi chọn hành trình con (chiều
dài ngẫu nhiên) từ một trong các cha-mẹ khác,vv….- toán tử mở rộng hành trình
bằng cách chọn các cạnh từ các cha-mẹ luân phiên. Lần nữa, nếu một cạnh nào đó
(từ một trong các cha-mẹ tạo chu trình vào hành trình hiện hành (mới một phần), thì
toán tử chọn một cạnh thay thế (ngẫu nhiên) từ các cạnh còn lại không tạo chu trình.
- Lai heuristic tạo ra con mới bằng cách chọn một thành phố ngẫu nhiên làm
điểm khởi hành cho hành trình của con. Rồi so sánh hai cạnh (từ cả cha-mẹ) rời
thành phố này và chọn cạnh (ngẫu nhiên) tốt hơn.Thành phố ở đầu bên kia của cạnh
được chọn dùng làm điểm khởi hành trong việc chọn cạnh ngắn hơn trong hai cạnh
rời thành phố này vv.....Nếu, ở một giai đoạn nào đó, cạnh mới đưa một chu trình
vào hành trình, thì hành trình sẽ được mở rộng bởi một cạnh ngẫu nhiên từ các cạnh
còn lại không tạo chu trình.
Nhưng bất lợi chính của biểu diễn này là các kết quả tướng đối xấu đối với
tất cả các toán tử. Lai có cạnh thay đổi thường làm rối loạn các hành trình tốt do
thao tác của chính nó qua các cạnh từ hai cha-mẹ. Lai các đoạn hành trình con thực
hiện tốt hơn lai có cạnh thay đổi, do tỉ lệ rối loạn thấp hơn. Nhưng kết quả vẫn rất
thấp. Dĩ nhiên lai heuristic là toán từ tốt nhất ở đây là vì hai phép lai đầu tiên là mù
quáng, nghĩa là chúng không để ý đến các chiều dài thực của các cạnh.Mặt khác, lai
heuristic chọn cạnh tốt hơn trong hai cạnh – vì vậy mà nó thực hiện tốt hơn hai cách
lai kia. Nhưng, kết quả của lai heuristic vẫn không phải là hoàn hảo: trong nhiều thử
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 44
nghiệm trên 50, 100, và 200 thành phố, hệ thống tìm các hành trình cỡ 25%, 15%,
và 27% tối ưu, trong lần lượt khoảng 15000, 20000, và 25000 thế hệ.
Biểu diễn thứ tự biểu diễn hành trình là danh sách của n thành phố; phần tử thứ i
của danh sách là một số trong khoảng từ 1 đến n-i+1.Ý nghĩa của biểu diễn thứ tự
như sau. Có một danh sách thứ tự của các thành phố C, được dùng làm điểm tham
chiếu cho các danh sách trong các biểu diễn thứ tự.
Lợi ích của biểu diễn thứ tự là phép lai cổ điển hoạt động tốt. Hai hành trình
bất kỳ trong biểu diễn thứ tự được cắt sau một vị trí nào đó và giao nhau, sẽ tạo hai
con, mỗi con là một hành trình hợp lệ.
Các kết quả thử nghiệm cho thấy biểu diễn này cùng phép lai cổ diển không
thích hợp cho bài toán người đi du lịch TSP.
Như vậy sau khi chúng ta trình bày và tìm hiểu hai cách biểu diễn bên trên
điều không thích hợp cho bài toán người đi du lịch TSP. Vậy chỉ có cách biểu diễn
đường dẫn mới thích hợp và đưa ra kết quả tốt cho bài toán người đi du lịch TSP.
Chúng ta sẽ bàn về cách biểu diễn này một cách chi tiết bên dưới đây.
Biểu diễn đường dẫn: Là một cách biểu diễn tự nhiên nhất của một hành trình.
Thí dụ chúng ta có một đồ thị có 9 thành phố được đánh số từ 1 đến 9
Hình 4.2: Minh họa một lộ trình của một du khách
Hình bên trên đã minh họa cho chúng ta một hành trình là: 5 – 1 – 7 – 8 – 9 – 4
– 6 – 2 – 3 như thế chúng ta có thể biểu diễn đường dẫn là: (5 1 7 8 9 4 6 2 3)
1
5
6
3
2
4
9
8
7
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 45
4.2.2 Khởi tạo quần thể đầu
Đối với tiến trình khởi tạo, ta có thể sử dụng một số giải thuật heuristic (chẳng
hạn như dùng giải thuật Greedy áp dụng nguyên lý “tham lam” vào bài toán TSP.
Ta sẽ áp dụng thuật giải Greedy nhiều lần từ một thành phố đầu khác nhau); hoặc
đơn giản hơn là khởi tạo quần thể bằng cách chỉ tạo pop-size ngẫu nhiên các mẫu từ
các hoán vị của <1, 2, 3,…., n>. Một quần thể có pop-size cá thể chiều dài m tạo ra
ít nhất 2m và nhiều nhất là pop – size * 2m sơ đồ.
Thí dụ xác suất cho trước là pop-size = 5 và có 9 thành phố giống thí dụ bên
trên.Vậy chúng ta có thể tạo quần thể một cách ngẫu nhiên.
Giả sử rằng sau tiến trình khởi tạo, ta có quần thể sau đây:
2 2
5
2 5 7 10
1 3 5 1
4 3 3
4 4 3
4
P1 = (1 2 3 4 5 6 7 8 9) P2 = (1 3 2 4 5 6 7 8 9)
10 5
7 7 5
5 1
11 5 12 1 11 3
4
3 4
4 4
P3 = (1 3 4 2 5 6 7 8 9) P4 = (1 3 4 5 2 6 7 8 9)
7 5
2
1
7
9
8
6
5
4
3
2
1
7
9
8
6
5
4
3
2
1
7
9
8
6
5
4
3
2
1
7
9
8
6
5
4
3
2
1
7
9
8
6
5
4
3
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 46
5
13 1 3
4 12
3
P5 = (1 3 4 5 6 2 7 8 9)
Hình 4.3 Hiện thực khởi tạo quần thể cho bài toán TSP
4.2.3 Tiến trình chọn lọc (Selection)
Đối với tiến trình chọn lọc (chọn quần thể mới thỏa phân bố xác suất dựa trên
các độ thích nghi), ta dùng bánh xe quay Rulet với các rãnh được định kích thước
theo độ thích nghi. Ta xây dựng bánh xe quay Rulet như sau (giả định rằng, các độ
thích nghi đều dương, trong trường hợp ngược lại thì ta có thể dùng một vài phép
đổi tương ứng để định lại tỷ lệ sao cho các độ thích nghi đều dương):
- Tính độ thích nghi eval (pi) của mỗi nhiễm sắc thể lộ trình
Pi (i=1…..pop-size)
Lượng giá một nhiễm sắc thể rất dễ dàng: cho trước chi phí hoặc khoảng
cách giữa hai thành phố của chuyến đi giữa các thành phố, ta có thể dễ dàng
tính tổng chi phí hoặc tổng khoảng cách của trọn lộ trình.
- Tính tổng giá trị thích nghi toàn quần thể:
F =
- Tính xác suất chọn Pri cho mỗi nhiễm sắc thể pi (i=1…pop_size)
Pri = eval (Pi) / F
- Tính vị trí xác suất qi của mỗi nhiễm sắc thể Pi (i=1….pop_size)
qi =
å=
sizepop
ipieval
_
1)(
å=j
Pri
i
1
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 47
Tiến trình chọn lọc được thực hiện bằng cách quay bánh xe Rulet pop_size; mỗi
lần chọn một nhiễm sắc thể lộ trình từ quần thể hiện hành vào quần thể mới theo
cách sau:
- Phát sinh ngẫu nhiên một số r trong khoảng [0,1]
- Nếu r < q1 thì chọn nhiễm sắc thể lộ trình đầu tiên (P1); ngược lại thì chọn
nhiễm sắc thể thứ I, Pi (2 ≤ i ≤ pop_size) sao cho qi-1 < r ≤ qi.
Hiển nhiên, có thể sẽ có một số nhiễm sắc thể được chọn nhiều lần. Điều này
phù hợp với lý thuyết: Các nhiễm sắc thể tốt nhất có nhiều bản sao hơn, các nhiễm
sắc thể trung bình không thay đổi, các nhiễm sắc thể kém nhất thì chết đi.
Đối với bài toán TSP, chúng ta có thể biết được chi phí du lịch giữa từng cặp
thành phố.Giả sử rằng chúng ta cho chi phí tất cả quần thể (lộ trình) như sau:
Eval (P1) = 29
Eval (P2) = 39
Eval (P3) = 50
Eval (P4) = 52
Eval (P5) = 53
Đối bài toán TSP, rõ ràng nhiễm sắc thể P1 mạnh nhất và P5 yếu nhất. Bây
giờ ta xây dựng hệ thống kiến trúc bánh xe Rulet cho tiến trình chọn lọc. Tổng độ
thích nghi của quần thể là:
Xác suất chọn lọc Proi của mỗi nhiềm sắc thể Pi (i=1,…..,5) là:
Pro1 = Eval (P1) / F = 0.124
Pro2 = Eval (P2) / F = 0.174
Pro3 = Eval (P3) / F = 0.224
Pro4 = Eval (P4) / F = 0.233
Pro5 = Eval (P5) / F = 0.237
Các vị trí xác suất Qi của mỗi nhiễm sắc thể Pi (1,……..,10) là
223)(5
1==å
=ipievalF
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 48
Q1 = 0.124
Q2 = 0.298
Q3 = 0.522
Q4 = 0.755
Q5 = 1.000
Bầy giờ chúng ta sẽ quay bánh xe Rulet 5 lần, mỗi lần chọn một nhiễm sắc
thể cho quần thể mới. Giả sử thứ tự (ngẫu nhiên) của 5 số trong khoảng [0, 1] được
phát sinh ra là:
0.513 0.175 0.308 0.534 0.947
Số đầu tiên là r = 0.513 lớn hơn Q2 và nhỏ hơn Q3 (Q2=0.298 < r=0.513 <
Q3=0.522), nghĩa là nhiễm sắc thể Q2 được chọn vào quần thể mới. Số thứ hai,
0.175 lớn hơn Q1 và nhỏ hơn Q2 (Q1=0.124< r=0.175<Q2=0.298) vậy Q1 được
chọn. Số thứ ba 0.308 lớn hơn Q2 và nhỏ hơn Q3 (Q2=0.2968< r=0.308<
Q3=0.522) vậy Q2 được chọn một lần nữa. Số thứ bốn 0.534 lớn hơn Q3 và nhỏ
hơn Q4 (Q3=0.522 < r=0.534 < Q4=0.755), vậy Q3 được chọn. Số thứ năm 0.947
lớn hơn Q4 và nhỏ hơn Q5 (Q4=0.755 < r=0.947 < Q5=1.00), vậy Q4 được chọn.
Sau khi thực hiện chúng ta có được quần thể mới như sau:
P1’ = (1 3 2 4 5 6 7 8 9) (P2)
P2’ = (1 2 3 4 5 6 7 8 9) (P1)
P3’ = (1 3 2 4 5 6 7 8 9) (P2)
P4’ = (1 3 4 2 5 6 7 8 9) (P3)
P5’ = (1 3 4 5 2 6 7 8 9) (P4)
4.2.4 Các phép toán di truyền
Đối với giải thuật di truyền có hai phép toán di truyền. Phép toán thứ nhất là
phép toán lai (Crossover), thứ hai là phép toán đột biến (Mutation) để áp dụng trên
bài toán TSP.
Phép lai cho bài toán TSP
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 49
Sau khi chúng ta chọn đươc một quần thể mới từ quần thể cũ, chúng ta có thể áp
dụng phép toán lai cho bài toán TSP. Một trong những tham số của hệ thống di
truyền là xác suất lai Pc. Xác suất này cho ta số nhiễm sắc thể pop-size×Pc mong
đợi, các nhiễm sắc thể này được dùng trong tác vụ lai tạo. Ta tiến hành theo cách
sau đây:
Đối với mỗi nhiễm sắc thể trong quần thể (mới):
- Phát sinh ngẫu nhiên một số r trong khoảng [0, 1]
- Nếu r < Pc, hãy chọn nhiễm sắc thể đó để lai tạo.
Nếu chúng ta biểu diễn nhiễm sắc thể bằng cách biểu diễn đường dẫn. Như vậy
ta có ba phép lai được định nghĩa cho biểu diễn này:
1 Lai được ánh xạ từng phần (PMX)
2 Lai thứ tự (OX)
3 Lai chu trình (CX)
Ta lần lượt bàn về chúng.
Lai được ánh xạ từng phần (PMX): phép lai PMX do ông Golberg và ông
Lingle đề nghị. Phép lai PMX sẽ tạo con mới bằng cách chọn một chuỗi con của
hành trình từ một cha-mẹ đồng thời bảo toàn thứ tự và vị trí tối đa có thể của các
thành phố từ cha-mẹ kia.Một chuỗi con được chọn bằng hai điểm cắt ngẫu nhiên,
được dùng làm hai giới hạn cho các thao tác hoán vị.
Thí dụ: hai cha-mẹ (với hai điểm cắt được dánh dấu bởi “|”)
P1 = (1 2 3 | 4 5 6 7 | 8 9)
P2 = (4 5 2 | 1 8 7 6 | 9 3)
Phép lai PMX sẽ tạo ra con theo cách sau. Trước hết các đoạn giữa các điểm cắt
được hoán vị (“x” được hiểu là ‘hiện tại chưa biết’):
O1 = (x x x | 1 8 7 6 | x x)
O2 = (x x x | 4 5 6 7 | x x)
Hoán vị này cũng định nghĩa một loạt các ánh xạ:
1 4, 8 5, 7 6, 6 7.
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 50
Rồi ta có thể thêm vào các thành phố (từ các cha-mẹ gốc), mà không có xung
đột:
O1 = (x 2 3 | 1 8 7 6 | x 9)
O2 = (x x 2 | 4 5 6 7 | 9 3)
Cuối cùng, x đầu tiên trong con O1 (lẽ ra phải là 1, nhưng không có xung đột)
được bằng 4, vì ánh xạ (1 4).Tương tự, x thứ hai trong con O1 được bằng 5, còn x
và các x trong con O2 được thay bằng 1 và 8.Các con là
O1 = (4 2 3 | 1 8 7 6 | 5 9)
O2 = (1 8 2 | 4 5 6 7 | 9 3)
Phép lai PMX khai thác các điểm tương đối quan trọng trong giá trị và xếp
bậc đồng thời khi được sử dụng với một kế hoạch sinh sản thích hợp.
Lai chu trình (CX): phép lai chu trình (CX) do ông Oliver đề nghị. Phép lai này sẽ
xây dựng các con theo cách mỗi thành phố (và vị trí của nó) xuất phát từ một trong
các cha-mẹ. Ta giải thích cơ chế phép lai chu trình bằng:
Thí dụ hai cha-mẹ
P1 = (1 2 3 4 5 6 7 8 9) và
P2 = (4 1 2 8 7 6 9 3 5)
Phép lai chu trình sẽ tạo ra con thứ nhất bằng cách lấy thành phố thứ nhất từ
cha-mẹ thứ nhất:
O1 = (1 x x x x x x x x)
Do mỗi thành phố trong con có thể bị lấy đi từ một trong các cha-mẹ của nó (từ
cùng vị trí), nên giờ ta không có chọn lựa nào: thành phố kế tiếp được xét phải là
thành phố 4, do thành phố từ cha-mẹ P2 ngay “bên dưới” thành phố 1 được chọn.
Trong P1 thành phố này ở tại vị trí ‘4’ như vậy:
O1 = (1 x x 4 x x x x x)
Điều này, trở lại bao hàm thành phố 8, do thành phố từ cha-mẹ P2 ngay “bên
dưới” thành phố ‘4’ được chọn.Như vậy :
O1 = (1 x x 4 x x x 8 x)
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 51
Theo luật này, các thành phố kế tiếp được gộp vào con thứ nhất là 3 và 2. Như
chú ý rằng việc chọn thành phố 2 đòi hỏi việc chọn thành phố 1 đã có trong danh
sách – như vậy ta đã hoàn thành một chu trình:
O1 = (1 2 3 4 x x 8 x)
Các thành phố còn lại được hoàn thành từ cha-mẹ kia:
O1 = (1 2 3 4 7 6 9 8 5)
Tương tự chúng ta sẽ có:
O2 = (4 1 2 8 5 6 7 3 9)
Phép lai chu trình CX bảo toàn vị trí tuyệt đối của các phần từ theo thứ tự của
cha-mẹ.
Lai thứ tự (OX):phép lai thứ tự (OX) do ông Davis đề nghị. Phép lai OX sẽ tạo ra
các con bằng cách chọn một chuỗi con của hành trình từ cha-mẹ và bảo tồn thứ tự
tương đối của các thành phố của cha-mẹ kia.
Thí dụ, hai cha-mẹ (với hai điểm cắt được đánh dấu bởi “|”)
P1 = (1 2 3 | 4 5 6 7 | 8 9) và
P2 = (4 5 2 | 1 8 7 6 | 9 3)
Phép lai OX sẽ tạo ra các con như sau. Đầu tiên, các đoạn giữa các điểm cắt
được sao chép vào các con:
O1 = (x x x | 4 5 6 7 | x x)
O2 = (x x x | 1 8 7 6 | x x)
Kế đến bắt đầu từ điểm cắt thứ hai của một cha-mẹ, các thành phố từ cha-mẹ kia
được sao chép theo cùng thứ tự, bỏ đi các dấu hiệu đã có. Đến cuối chuỗi, ta tiếp tục
từ vị trí đầu tiên của chuỗi. Thứ tự của các thành phố trong cha-mẹ thứ hai (từ điểm
cắt thứ hai là: 9 – 3 – 4 – 5 – 2 – 1 – 8 – 7 – 6; sau khi bỏ đi các thanh phố 4, 5 , 6
và 7 đã có trong con thứ nhất, ta có: 9 – 3 – 2 – 1 – 8. Thứ tự này được đặt vào con
thứ nhất (bắt đầu từ điểm cắt thứ hai):
O1 = (2 1 8 | 4 5 6 7 | 9 3). Tương tự ta có con kia là:
O2 = (3 4 5 | 1 8 7 6 | 9 2).
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 52
Phép lai OX khai thác thuộc tính về biểu diễn dường dẫn, mà thứ tự của các
thành phố (chứ không phải là vị trí của chúng) rất quan trọng, nghĩa là, hai hành
trình:
9 – 3 – 4 – 5 – 2 – 1 – 8 – 7 – 6
4 – 5 – 2 – 1 – 8 – 7 – 6 – 9 – 3
Thực ra là giống nhau.
Đối với biểu diễn đường dẫn cùng có rất nhiều định nghĩa các toán tử lai khác.
Chẳng hạn ông Syswerda định nghĩa hai phiên bản hiệu chỉnh của toán tử lai thứ tự
OX. Ông Whitley, Starweather và Fuquay cùng phát triển một toán tử lai tạo mới là
lai tạo tái kết hợp cạnh (ER)…..
Giả sử rằng chúng ta cho xác suất lai Pc là 0.25 như vậy chúng ta sẽ hy vọng
(trung bình) 25% nhiễm sắc thể sẽ tham gia lai tạo.Chúng ta sẽ tiến hành theo cách
sau: đối với mỗi nhiễm sắc thể trong quần thể (mới) ta phát sinh ngẫu nhiên một số
r trong khoảng [0, 1]; nếu r < 0.25 ta chọn một nhiễm sắc thể cho trước để lai tạo.
Giả sử thứ tự các số ngẫu nhiên là:
0.822 0.151 0.625 0.031 0.346
Điều này có nghĩa là các lộ trình P2’=0.151 và P4’=0.031 đã được chọn để lai
tạo. Vậy chúng ta sẽ xây dựng phép lai OX cho hai nhiễm sắc thể đã được chọn để
lai.Vậy chúng ta có hai nhiễm sắc thể được chọn là:
P2’ = (1 2 3 | 4 5 6 7 | 8 9) (P2)
P4’ = (1 3 4 | 2 5 6 7 | 8 9) (P4)
O2 = (x x x | 4 5 6 7 | x x)
O4 = (x x x | 2 5 6 7 | x x)
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 53
Thứ tự của các thành phố trong cha-mẹ thứ hai là (từ điểm cắt): 8 – 9 – 1 – 3 –
4 – 2 – 5 – 6 – 7 sau khi bỏ đi các thành phố 4, 5, 6, 7 đã có trong con thứ nhất, ta
có 8 – 9 – 1 – 3 - 2. Thứ tự này được đặt vào con thứ nhất (bắt đầu từ điểm cắt thứ
hai):
O2 = (1 3 2 4 5 6 7 8 9)
Cũng giống như con thứ nhất ta có: 8 – 9 – 1 – 2 – 3 – 4 – 5 – 6 – 7. Vậy ta bỏ đi
2, 5, 6, 7 ta có 8 – 9 – 1 – 3 – 4. Vậy ta được con thứ hai là:
O4 = (1 3 4 5 2 6 7 8 9)
Cuối cùng, quần thể hiện hành là:
P1’ = (1 3 2 4 5 6 7 8 9)
P2’ = (1 3 2 4 5 6 7 8 9)
P3’ = (1 3 2 4 5 6 7 8 9)
P4’ = (1 3 4 5 2 6 7 8 9)
P5’ = (1 3 4 5 2 6 7 8 9)
Phép đột biến cho bài toán TSP
Sau khi quá trình lai tạo được áp dụng cho bài toán người di du lịch TSP. Như
vậy phép toán tiếp theo thực hiện trên bài này là phép toán đột biến. Một tham số
khác của hệ thống di truyền Pm, cho ta số thành phố đột biến Pm × m × pop-size
mong đợi. Mỗi thành phố (trong tất cả các nhiễm sắc thể trong quần thể) có cơ hội
bị đột biến như nhau, nghĩa là, giả sử đổi từ thành phố 1 thành thành phố 2 hoặc 3 gì
đó và ngược lại.Vì thế ta tiến hành theo cách sau đây:
- Phát sinh ngẫu nhiên một số r trong khoảng [0, 1];
- Nếu r <Pm hãy đột biết thành phố đó.
Giả sử rằng chúng ta cho xác suất đột biến Pm là 0.01. Vậy sẽ có 1/100 số thành
phố sẽ qua đột biến. Có 45 thành phố trong toàn quần thể. Mỗi thành phố có cơ hội
đột biến ngang nhau, vì thế, đối với mỗi thành phố trong quần thể, ta phát sinh ngẫu
nhiên một số r trong khoảng [0, 1] nếu r <0.01, ta đột biến thành phố này. Điều này
có nghĩa là ta phát sinh 45 thành phố ngẫu nhiên. Giả sử, có 4 trong số 45 thành phố
này nhở hơn 0.01; vị trí thành phố và số ngẫu nhiên được trình bày dưới đây:
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 54
Bảng 4.1 Vị trí thành phố và số ngẫu nhiên
Bảng sau cho biết nhiễm sắc thể và vị trí của thành phố đột biến tương ứng với 3
vị trí trên.
Vị trí thành phố Số nhiễm sắc thể
(lô trình)
Số thành phố trong
nhiễm sắc thể(lô trình)
23 3 5
11 2 3
15 2 6
7 1 7
Bảng 4.2 Vị trí thành phố, số ngẫu nhiên và số thành phố trong nhiễm sắc thể
Điều này có nghĩa là 3 nhiễm sắc thể chịu ảnh hưởng của phép đột biến. Quần
thể cuối cùng được liệt kê ở dưới; các thành phố đột biến được tô đậm và gạch dưới.
P1’ = (1 3 2 4 5 6 7 8 9) P1’ = (1 3 2 4 7 6 5 8 9)
P2’ = (1 3 2 4 5 6 7 8 9) P2’ = (1 2 3 4 5 7 6 8 9)
P3’ = (1 3 2 4 5 6 7 8 9) Đột Biến P3’ = (1 3 2 4 8 6 7 5 9)
P4’ = (1 3 4 5 2 6 7 8 9) P4’ = (1 3 4 5 2 6 7 8 9)
P5’ = (1 3 4 5 2 6 7 8 9) P5’ = (1 3 4 5 2 6 7 8 9)
Như vậy chúng ta hoàn thành một bước lặp (nghĩa là một thế hệ) của thủ tục di
truyền được ứng dùng vào bài toán TSP. Chúng ta sẽ xét một chút các kết quả của
tiến trình tiến hóa tạo quần thể mới.
Vị trí thành phố Số ngẫu nhiên
23 0.000213
11 0.009945
15 0.007945
7 0.008809
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 55
2
2 5
7 10 2 5
5 1 1 3
1
2 2 1
4 3 4
P1’ = (1 3 2 4 7 6 5 8 9) P2’ = (1 2 3 4 5 7 6 8 9)
2
10 7 5
7 5 5 1
3 2 12 11 3
4
2 1
4 4
P3’ = (1 3 2 4 8 6 7 5 9) P4’ = (1 3 4 5 2 6 7 8 9)
7 5
5
12 1 11 4
4
4
P5’ = (1 3 4 5 2 6 7 8 9)
Hình 4.4 Các lộ trình sau khi hiện thực phép toán đột biến
2
1
7
9
8
6
5
4
3 2
1
7
9
8
6
5
4
3
2
1
7
9
8
6
5
4
32
1
7
9
8
6
5
4
3
2
1
7
9
8
6
5
4
7 6
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 56
Eval (P1’) = 35
Eval (P2’) = 25
Eval (P3’) = 36
Eval (P4’) = 52
Eval (P5’) = 52
Chú ý rằng tổng độ thích nghi F (200) của quần thể mới là nhỏ hơn tổng độ thích
nghi F (223) của quần thể trước nhiều. Cũng thế, nhiễm sắc thể tốt nhất hiện này là
P2 có độ thích nghi (25) tốt hơn nhiễm sắc thể nhất P1 (29) của quần thể trước.
Tóm lại không khó để theo dõi lộ trình tốt nhất trong tiến trình tiến hóa. Thông
thường (trong các cài đặt giải thuật di truyền) lộ trình tốt nhất được lưu trữ tại một
vị trí riêng biệt; bằng cách đó, giải thuật di truyền có thể duy trì lộ trình tốt nhất tìm
được trong suốt quá trình (không chắc là lộ trình tốt nhất trong quần thể cuối cùng).
4.2.5 Lượng giá hoặc tham số của hệ thống di truyền
Sau quá trình chọn lọc, lai và đột biến, tiếp theo quần thể mới được lượng giá
lần nữa. Lượng giá này được dùng để xây dựng phân bố xác suất (cho tiến trình
chọn lựa kế tiếp), nghĩa là, để xây dựng lại bánh xe Rulet với các rãnh được định
kích thước theo các giá trị thích nghi hiện hành. Phần còn lại của tiến hóa chỉ là lặp
lại chu trình của những bước trên.
4.3 Giải thuật trên mô hình mạng ứng dụng vào bài toán người đi du lịch(TSP)
Để giải bài toán người đi du lịch TSP bằng những giải thuật trên mô hình mạng
cũng giống như những giải thuật trên mô hình cây toả nhánh cực tiểu (Minimum
spanning tree) chẳng hạng như giải thuật Prim, Kruskal hoặc Dijkstra. Trước hết
chúng ta phải làm theo những bước sau đây:
1. Tăng trưởng một MST (Growing a minimum spanning tree).
200)(5
1==å
=ipievalF
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 57
2. Nêu một danh sách các đỉnh được ghé thăm.
3. Trả về chu trình Hamilton ghé thăm các đỉnh theo thứ tự của danh sách.
4.3.1 Tăng trưởng một MST (Growing a minimum spanning tree)
Thí dụ chúng ta có một đô thị G (V, E) không có hướng và đô thị này có hàm trị
w: EàR. Và ta muốn tìm một cây tỏa nhánh cực tiểu cho G. Có hai giải thuật sử
dụng cách tiếp cận tham chiếu để tạo ra một cây tỏa nhánh cực tiểu đó là giải thuật
Kruskal hoặc Prim.Và giải thuật Prim tương tự như giải thuật Dijkstra.
GENERIC – MST (G, W)
1 Aß 0
2 While A không hình thành một cây tỏa nhánh
3 do tìm ra một cánh (u, v) an toàn cho A
4 AßA hợp với {(u, v)}
5 return A
Giải thuật GENERIC – MST sẽ tăng trưởng cây tỏa nhánh cực tiểu mỗi lần một
cạnh. Giải thuật sẽ quản lý một tập hợp A, tập hợp A luôn là tập hợp con của một
cây tỏa nhánh cực tiểu. Tại mỗi bước, một cạnh (u, v) được xác định là có thể bổ
sung vào A mà không vi phạm kiểu bất biến này, nghĩa là A hợp với cạnh (u, v)
cũng là một tập hợp con của một cây tỏa nhánh cực tiểu. Ta gọi cạnh như vậy là
một cạnh an toàn của tập hợp A, bởi vì có thể an toàn mới bổ sung vào A được.
Như vậy sau khi xét giải thuật GENERIC – MST.Ta thấy hai giải thuật
Kruskal và Prim dùng một quy tắc cụ thể để xác định một cạnh an toàn trong dòng 3
của giả thuật GENERIC – MST.
Giải sử rằng chúng ta có một đồ thị G có đỉnh nguồn (root) là r = a như sau:
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 58
Hình 4.5: Đồ thị G có góc là a
Chúng ta sẽ áp dụng giải thuật Prim cho đồ thị G (MST – PRIM (G, c,r)).Sau khi giải thuật Prim thực hiện xong chúng ta sẽ tạo ra được một cây MST nhưhình sau:
Hình 4.6: MST-PRIM (Kruskal) (G, c, r)
Xét hình bên trên chúng có được một cây MTS có gốc là đỉnh a.
4.3.2 Nêu một danh sách các đỉnh được ghé thăm
Sau khi áp dùng giải thuật Kruskal hoặc Prim trên một đồ thị đầy đủ G nào đó
,nó sẽ tạo ra một cây nhánh cực tiểu giả sử là T. Vậy tiếp theo chúng ta sẽ áp dụng
giải thuật trên cây tìm kiếm (Search trees). Đó là giải thuật duyệt cây tiền cấp
(Preorder tree walk). Giải thuật này cho phép chúng ta in ra tất cả các khóa (key)
trong một cây tìm kiếm nhị phân theo thứ tự sắp xếp. Giải thuật này sẽ thực hiện
như sau: nó sẽ in gốc trước các giá trị của một trong hai cây con..
PREORDER – TREE – WALK (x)
1 preorder(tree)
2 begin
3 if tree is null, return;
4 print(tree.root);
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 59
5 preorder(tree.left_subtree);
6 preorder(tree.right_subtree);
7 end
Giải sử rằng Preorder – Tree – walk trên cây MST (G) để tạo ra một danh
sách các đỉnh. Giải thuật Preorder – Tree – Walk đã hiện thực xong; chúng ta có
một danh sách các đỉnh như hình sau:
Hình 4.7: Preoder Traversal Walk W
L: (a b c b h b a d e f e g e d a)
Như vậy sau khi giải thuật Preorder – Tree – Walk hiện thực xong nó sẽ tạo
ra một danh sách các đỉnh L: (a b c b h b a d e f e g e d a).
4.3.3 Trả về chu trình Hamilton ghé thăm các dỉnh theo thứ tự của danh sách
Như vậy sau khi áp dụng giải thuật Kruskal hoặc Prim tạo ra một cây nhánh cực
tiểu T và áp dụng giải PREORDER – TREE – WALK tạo ra một danh sách các
đỉnh được ghé thăm rồi.Chúng có thể trả về một chu trình Hamilton tức là một tua
(tour) mà du khách đi qua một cách dễ dàng.
Định nghĩa chu trình Hamilton: Xét một đồ thị liên thông G có hơn một đỉnh.
Một chu trình Hamilton của đồ thị G là một chu trình đi qua tất cả các đỉnh của đồ
thị G, mỗi đỉnh đúng một lần.
Một đường Hamilton của đồ thị G là một đường đi qua tất cả các đỉnh của G,
mỗi đỉnh đúng một lần. Nói cách khác, chu trình (đường) Hamilton là một chu trình
(đường) đơn giản đi qua tất cả các đỉnh của đồ thị.
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 60
Hiển nhiên nếu G có chu trình Hamilton thì G cũng có đường Hamilton: ta chỉ
cần hủy đi một cạnh trong chu trình Hamilton thì sẽ nhận được một đường
Hamilton. Tuy nhiên lưu ý rằng điều đảo lại khống đúng: có những đồ thị có đường
Hamilton nhưng khống có chu trình Hamilton.
Qui tắt tìm chu trình Hamilton:
1. Nếu tồn tại một đỉnh của G có bậc ≤ 1 thì G không có chu trình.
2. Nếu đỉnh x có bậc là hai thì cả hai cạnh tới x đều phải thuộc chu
trình Hamilton.
3. Chu trình Hamilton không chứa bất kỳ chu kỳ con thực sự nào.
4. Trong quá trình xây dựng chu trình Hamilton, sau khi đã lấy hai
cạnh tới một đỉnh x đặt vào chu trình Hamilton rồi thì không thể lấy thêm
cạnh nào tới x nữa, do đó có thể xóa mọi cạnh còn lại tới x.
Hình 4.8: Chu trình Hamilton H
a b c h d e f g a
Sau khi quá trình này được hiện thực chúng ta có được chú trình Hamilton H (a
b c h d e f g a). Chu trình này cũng là một lộ trình du khách đi qua mà có chi phí ít
nhất trong một chuyến đi của ông ta.
Tóm lại chúng ta có thể xây dựng môt giải thuật để giải bài toán người đi du lịch
như sau:
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 61
APPROX – TSP – TOUR (G, c)
1 lựa một đỉnh r của V[G] là một đỉnh “gốc”
2 tăng trưởng một cây tỏa nhánh cực tiểu T cho từ gốc r
dùng MST – PRIM (G, c, r) hoặc
MST – KRUSKAL (G, c, r) hoặc
MST – Dijkstra (G, c, r)
3 cho L là danh sách các đỉnh được ghé thăm trong một tầng cây
tiền cấp của T
4 Trả về chu trình Hamilton H ghé thăm các đỉnh theo thứ tự L
Kết luận: Chương này đã thể hiện được một cách khái quát phương pháp để
giải quyết vấn đề. Cụ thể là chương này đã trình bày rất chi tiết về các bước để giải
vấn đề. Với giải thuật di truyền trong chương này cũng trình bài về cách biểu diễn
nhiễm sắc thể mà đối với nhà thiết kế gặp khó khăn khi dùng giải thuật di truyền và
các phép toán của giải thuật. Về những giải thuật trên mô hình mạng chươg này
cũng trình bày về những giải thuật mà liên quan với việc giải vấn đề.
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 62
CHƯƠNG V
HIỆN THỰC VÀ KẾT QUẢ THỰC NGHIỆM
Trong phần này chúng tôi sẽ trình bày về cơ chế hiện thực của các giải thuật đã
trình bày trong phần V trên về bài toán tối ưu tổ hợp TSP. Ngoài ra phần này cũng
mô tả các kết quả thực nghiệm và so sánh kết quả của cả hai giải thuật cùng trên
một bài toán.
5.1 HIỆN THỰC ĐỀ TÀI
Đề tài được hiện thực trên ý tưởng giải thuật đã được mô tả ở phần V.
5.1.1 Mô tả bài toán TSP
Trong phần này chúng ta sẽ hiện thực giải thuật di truyền GA và giải thuật mô
hình mạng cho bài toán TSP. Nhưng trước hết chúng ta sẽ hiện thực bài TSP như
sau:
Cho một đồ thị G có n đỉnh, các đỉnh được đánh số theo thứ tự 1 đến n, mỗi đỉnh
của đồ thị G được thể hiện bởi bộ ba: num: mã số của đỉnh đồ thị, startDW: khoảng
cách bắt đầu có thể đi đến đỉnh, stopDW: khoảng cách phải rời đỉnh.
Yêu cầu của đề tài là cần tìm một lộ trình xuất phát từ đỉnh 1, đi qua tất cả các
đỉnh của đồ thị, mỗi đỉnh đi qua đúng một lần chi phí du lịch giữa từng cặp thành
phố được cho trước, sau đó trở lại đỉnh 1. Để thực hiện quá trình hiện thực giải
thuật, một đỉnh cầm canh n+1 được thêm vào. Đỉnh cầm canh này có tất cả các
thông số của đỉnh 1. Một đỉnh có kết nối trực tiếp với đỉnh 1 đều có kết nối trực tiếp
với đỉnh n+1.Tuy nhiên đỉnh n+1 không kết nối bất kì đỉnh nào (đỉnh dừng). Việc
thêm đỉnh cầm canh được mô tả bởi hình 5.1
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 63
Khi đó, yều cầu của bài toán sẽ trở thành: tìm một lộ trình từ đỉnh 1 đến đỉnh
n+1, mỗi đỉnh du khách sẽ đi qua đúng một lần và khoảng cách giữa hai thành phố
phải cho trước.
Trong đề tài này xét chi phí đi từ đỉnh i đến đỉnh j chính là khoảng cách giữa
đỉnh i và đỉnh j, theo các bộ dữ liệu.
1 1
[a,b] x [a,b]
x y z
z
y x y z t
n+1
Hình 5.1: Thêm đỉnh cầm canh vào đồ thị
Phần kế tiếp sẽ trình bày hiện thực của 2 giải thuật
5.1.2 Hiện thực giải thuật di truyền cho bài toán TSP
Chúng ta đã biết TSP là một bài toán khó, nếu ta chọn một giải thuật không
thích hợp thì thời gian sinh ra lời giải có thể rất lớn.Trong phần này, chúng tôi đã sử
dụng giải thuật di truyền cho bài toán khó này.
Để có thể thực hiện giải thuật di truyền Ga cho bài toán TSP, chúng ta sẽ cho
trước một vài xác suất trong giải thuật. Ví dụ trên bộ dữ liệu của ông
Geographische Koordinaten có 10 thành phố và có tsp.popsize=10,
tsp.mutprob=0.3, tsp.crossprob=0.9, tsp.greedprob=0.95 và có tsp.genernum=10 thế
hệ.
Vậy nếu chúng ta biết được các xác suất nêu trên, chúng ta có thể hiện thực giải
thuật di truyền được, trước hết giải thuật sẽ khởi tạo quần thể ban đầu bằng cách gọi
hàm GenerateRandomPopulation(), Hàm này sẽ khởi tạo quần thể đầu bằng chiến
lược ngẫu nhiên và hàm evaluate() để tính độ thích nghi của mỗi quần thể (lộ
trình).
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 64
Ví dụ: sau khi gọi hàm GenerateRandomPopulation() và evaluate() chúng ta
có 4 lộ trình và độ thích nghi của mỗi quần thể như sau:
Random generated population
[0] Gen.#: 9-8-7-3-2-5-6-4-1-0- Interv.: 24.85234427091052 Fitn.: 36.76388077023984
[1] Gen.#: 9-8-2-3-4-5-7-6-1-0- Interv.: 49.53636287899073 Fitn.: 36.93220643307015
[2]Gen.#:9-7-5-1-4-2-6-8-3-0- Interv.: 55.137837882731674 Fitn.: 56.014750037409414
[3] Gen.#: 9-4-2-7-5-6-8-1-3-0- Interv.: 64.40486377361334 Fitn.: 52.34919915026869
[4] Gen.#: 9-3-6-7-4-2-1-8-5-0- Interv.: 72.32886944547971 Fitn.: 53.69221936928399
Sau khi có một số quần thể đầu (lộ trình) được tạo ra, giải thuật di truyền có thể
chọn ra một số quần thể mới từ các quần thể đầu bằng cách gọi hàm
reproduction(), hàm này sẽ đưa ra một số ngẫu nhiên
d=rand.nextDouble()*pop[POP_SIZE-1], và so sánh với giá trị Interval.
Nếu mà giá trị Interval lớn hơn d thì sẽ đưa quần thể của Interval đó vào quần thể
mới. Như vậy sau khi giải thuật gọi hàm reproduction() thế hệ thứ nhất được tạo ra
dựa trên thế hệ đầu và giải thuật có thể thể hiện các phép toán của giải thuật giống
như phép toán lai (Crossover), phép toán đột biến (Mutation) trên bài toán của
chúng ta. Hàm crossover() được gọi để hiện thực phép lai cho thế hệ thứ nhất để
hình thành lộ trình mới dựa trên cơ sở các lộ trình cha mẹ, bằng cách ghép một (hay
nhiều) đoạn thành phố của hai hay nhiều lộ trình cha mẹ với nhau. Hàm evaluate()
được gọi để tính toán độ thích nghi của thể hệ mới tạo ra. Phép toán đột biến của
giải thuật cũng có thể hiện thực được theo cách gọi hàm mutate() để thay thế vị trí
của mỗi thành phố trong lộ trình.Vậy sau khi kết thúc giải thuật, thế hệ thứ nhất
được tạo ra như sau:
Generation: 1
[0] Gen.#: 9-3-7-2-4-6-1-8-5-0- Interv.: 5.425761814600499 Fitn.: 54.25761814600493
[1]Gen.#: 9-8-2-3-4-5-7-6-1-0- Interv.: 28.176935342135778 Fitn.: 36.93220643307015
[2] Gen.#: 9-3-7-4-2-8-5-6-1-0- Interv.: 33.8724144559987 Fitn.: 54.21052793494519
[3] Gen.#: 9-8-7-3-2-5-6-4-1-0- Interv.: 56.79191364636429 Fitn.: 37.9274480091932
[4]Gen.#: 9-2-4-5-7-6-8-1-3-0- Interv.: 63.766063508914336 Fitn.: 49.60438609481345
Prev: 36.76388077023984 Current: 36.93220643307015
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 65
Vậy sau khi giải thuật hiện thực được 9 và 10 vòng lặp (10 thế hệ) giải thuật sẽ
cho chúng ta kết quả thế hệ thứ 9 và 10 như sau:
Generation: 9
[0]Gen.#: 9-7-1-8-2-6-5-4-3-0- Interv.: 7.440004410224184 Fitn.: 38.945632523633236
[1Gen.#:9-7-1-8-2-6-5-4-3-0- Interv.: 14.880008820448367 Fitn.: 38.945632523633236
[2] Gen.# 9-7-1-8-2-6-5-4-3-0- Interv.: 22.32001323067255 Fitn.: 38.945632523633236
[3]Gen.#:9-7-1-8-2-6-5-4-3-0- Interv.: 29.760017640896734 Fitn.: 38.945632523633236
[4] Gen.#:9-7-1-2-6-3-5-4-8-0- Interv.: 33.97689372579287 Fitn.: 37.865480758502244
Prev: 38.945632523633236 Current: 37.865480758502244
Generation: 10
[0] Gen.#:9-7-1-2-6-3-5-4-8-0- Interv.: 5.890836278005374 Fitn.: 43.170397308774355
[1] Gen.#:9-8-1-7-2-6-5-4-3-0- Interv.: 13.388875872455785 Fitn.: 36.25827744205721
[2] Gen.#:9-7-1-2-8-6-5-4-3-0- Interv.: 17.366722875774663 Fitn.: 40.63994524678486
[3]Gen.#:9-7-1-8-2-6-5-4-3-0- Interv.: 22.177407388649044 Fitn.: 38.945632523633236
[4] Gen.#:9-7-1-2-6-3-5-4-8-0- Interv.: 28.068243666654418 Fitn.: 37.865480758502244
Prev: 37.865480758502244 Current: 36.25827744205721
GenerationMin[1] =36.76388077023984
GenerationMin[2] =36.76388077023984
GenerationMin[3] =36.76388077023984
GenerationMin[4] =36.76388077023984
GenerationMin[5] =39.39052762291644
GenerationMin[6] =36.31134751544323
GenerationMin[7] =36.31134751544323
GenerationMin[8] =38.945632523633236
GenerationMin[9] =37.865480758502244
GenerationMin[10] =36.25827744205721
Min Path =36.25827744205721
5.1.3 Hiện thực giải thuật trên mô hình mạng cho bài toán TSP
Bước 1: Chương trình sẽ nhập bộ dữ liệu (X, Y) để xác định các vị trí của các thành
phố trong đô thị.
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 66
Bước 2: Chương trình của chúng ta sẽ tạo ra một đồ thị (Path) với cấu trúc dữ liệu
là:
- Đối với giải thuật trên mô hình mạng, chương trình sẽ tạo ra được một bộ
dữ liệu gồm khoảng cách từ một đỉnh đến mọi đỉnh còn lại trong đồ thị
dis(0,0), dis(0,1), dis(0,2), …, dis(0,n)
dis(1,0), dis(1,1), dis(1,2), …, dis(1,n)
……..
dis(n,0), dis(n,1), dis(n,2), …, dis(n,n)
với dis(i,j) là khoảng cách từ đỉnh i đến đỉnh j
Nếu i=j thì dis(i,j)=0
Ví dụ: Cho một đồ thị thể hiện một bài toán TSP có 10 đỉnh, bộ dữ liệu được lấy từ
bộ dữ liệu của Geographische Koordinaten có 14 đỉnh:
City(0) City(1)
City(9)
City(2)
City(8)
City(3)`
City(7)
`
City(6) City(4)
City(5)
Hinh 5.2: Một đồ thị thể hiện một bài toán TSP có 10 đỉnh, bộ dữ liệu
được lấy từ bộ dữ liệu của Geographische Koordinaten có 14 đỉnh
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 67
Sau đây là giá trị khoảng cách giữa hai thành phố mà giải thuật của chúng ta đã
thể hiện được trên bộ dữ liệu nêu trên:
City:[0,0]===0.0 City:[0,1]===1.659 City:[0,2]===5.077
City:[0,3]===6.519 City:[0,4]===8.833 City:[0,5]===5.530
City:[0,6]===4.104 City:[0,7]===0.754 City:[0,8]===1.291 City:[0,9]===3.152
City:[1,0]===1.659 City:[1,1]===0.0 City:[1,2]===4.088
City:[1,3]===6.015 City:[1,4]===9.196 City:[1,5]===5.759
City:[1,6]===4.759 City:[1,7]===1.988 City:[1,8]===2.944 City:[1,9]===4.404
City:[2,0]===5.077 City:[2,1]===4.088 City:[2,2]===0.0
City:[2,3]===2.445 City:[2,4]===6.964 City:[2,5]===3.996
City:[2,6]===4.496 City:[2,7]===4.734 City:[2,8]===6.147 City:[2,9]===8.223
City:[3,0]===6.519 City:[3,1]===6.015 City:[3,2]===2.445
City:[3,3]===0.0 City:[3,4]===4.800 City:[3,5]===2.708
City:[3,6]===4.124 City:[3,7]===5.955 City:[3,8]===7.291 City:[3,9]===9.597
City:[4,0]===8.833 City:[4,1]===9.196 City:[4,2]===6.964
City:[4,3]===4.800 City:[4,4]===0.0 City:[4,5]===3.442
City:[4,6]===4.765 City:[4,7]===8.086 City:[4,8]===8.931 City:[4,9]===11.214
City:[5,0]===5.530 City:[5,1]===5.759 City:[5,2]===3.996
City:[5,3]===2.708 City:[5,4]===3.442 City:[5,5]===0.0
City:[5,6]===1.811 City:[5,7]===4.805 City:[5,8]===5.853 City:[5,9]===8.215
City:[6,0]===4.104 City:[6,1]===4.759 City:[6,2]===4.496
City:[6,3]===4.124 City:[6,4]===4.765 City:[6,5]===1.811
City:[6,6]===0.0 City:[6,7]===3.350 City:[6,8]===4.185 City:[6,9]===6.513
City:[7,0]===0.754 City:[7,1]===1.988 City:[7,2]===4.734
City:[7,3]===5.955 City:[7,4]===8.086 City:[7,5]===4.805
City:[7,6]===3.350 City:[7,7]===0.0 City:[7,8]===1.4135 City:[7,9]===3.642
City:[8,0]===1.291 City:[8,1]===2.944 City:[8,2]===6.1473
City:[8,3]===7.291 City:[8,4]===8.931 City:[8,5]===5.8531
City:[8,6]===4.185 City:[8,7]===1.413 City:[8,8]===0.0 City:[8,9]===2.368
City:[9,0]===3.152 City:[9,1]===4.404 City:[9,2]===8.2230
City:[9,3]===9.597 City:[9,4]===11.21 City:[9,5]===8.2150
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 68
City:[9,6]===6.513 City:[9,7]===3.642 City:[9,8]===2.3685 City:[9,9]===0.0
Bước 3: Tìm lời giải tối ưu
Việc tìm ra lời giải tối ưu cho bài toán này là mục tiêu chính của đề tài.Vì vậy
trong phần này ta sẽ hiện thực một giải thuật khác với giải thuật di truyền mà chúng
ta đã hiện thực cho bài toán này. Đó là những giải thuật mô hình mạng.
Trong chương trình của chúng ta sau khi biết được có n thành phố được nhập
vào và biết được khoảng cách giữa hai đỉnh trong đồ thị. Chương trình của chúng ta
có thể hiện thực giải thuật mô hình mạng như sau:
Trước hết chương trình sẽ gọi hàm MSTcreate() để tìm ra một cây tỏa nhánh
cực tiểu (minimum-spanning-tree). Để tạo ra một cây tỏa nhánh cực tiểu MST, đầu
tiên chương trình gọi class Bheap để tạo một Binary heap Q chứa tất cả các node (
thành phố) có node 0 là node nguồn.Hàm calculateDist() được sử dụng để tính toán
khoảng các từ một đỉnh đến đỉnh khác. Sau khi biết được Binary heapQ chứa tất cả
các node và khoảng các giữa hai node, rồi thì chương trình có thể hiện thực giải
thuật Prim để tìm ra một cây tỏa nhánh cực tiểu MST.
City[1] --> City[0]
City[2] --> City[3] City(0)
City[3] --> City[5] City(8)
City[4] --> City[5] City(7)
City[5] --> City[6] City(1) City(9)
City[6] --> City[7] City(6)
City[7] --> City[0]
City[8] --> City[0] City(5) City(4)
City[9] --> City[8]
City(3)
City(2)
Hình 5.3 Cây tỏa nhánh cực tiểu MST có City(0) là root
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 69
Gieải thuật Preorderwalk() có thể hiện thực để đưa các node trong cây tỏa
nhánh cực tiểu vào một danh sách có tứ tự.
Ví dụ : Chúng ta có một danh sách L chứa tất cả city
Danh sách của Preoder walk:
City[0]-->City[1]-->City[0]-->City[7]-->City[6]-->City[5]-->City[3]-->City[2]-->
City[3]-->City[5]-->City[6]-->City[7]-->City[0]-->City[8]-->City[9]-->City[8]-->
City[0]
Để trả về một lộ trình mà đi qua tất cả các node(thành phố) hàm TSPpath() và
tính khoảng cách đường đi từ node nguồn đến node kết thúc theo calculateTotal().
Vậy sau khi chương trình kết thúc nó sẽ trả về một lộ trình TSP đi qua tất cả thành
phố và khoảng các mà du khách đi qua và quay về thành phố bắt đầu.Ví dụ: Sau khi
giải thuật kết thúc, chúng ta sẽ được TSP và
City(0) City(9)
City(1)
City(2) City(7)
City(3)
City(5) City(8)
City(4) City(6)
Hình 5.4 TSP sau khi giải thuật kết thúc và có khoảng cách 35.381106972225055
Vậy sau khi giải thuật thực hiện xong chúng ta có được một đường đi qua tất cả
thành phố có khoảng cách là 35.381106972225055. Để tính độ tối ưu khoảng cách
trên đường đi TSP chúng sẽ gọi hàm IntersecHandler(). Hàm này hiện thực loại bỏ
các cạnh giao nhau và thay thế bằng các cạnh khác có kết quả tốt hơn. Sau khi thực
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 70
hiện xong chúng ta sẽ nhận được một đường đi TSP mới có giá trị khoảng cách tốt
hơn giá trị củ.
City(1) City(7) City(6) City(5)
City(0) City(2)
` City(9) City(8) City(4) City(3)
Khoảng các=34.504278857375795
Hình 5.5 Đường đi TSP sau khì dùng hàm IntersecHandler()
5.1.4 Mô số kĩ thuật khác được sử dụng trong đề tài
Đề tài được hiện thực trên ngôn ngữ lâp trình JAVA applet. Trong đề tài này,
chúng tôi đã thể hiện đươc kết quả một cách trực quan. Các đỉnh được nối với nhau
trên đồ thị tạo thành một chu trình Hamilton.
Đối với chương trình TSP giải bằng giải thuật di truyền
Hình 5.6: Giao diện chương trình TSP giải bằng giải thuật di truyền
Sử dụng chương trình trên để giải bài toán TSP dùng giải thuật di truyền, có 2
bước cơ bản sau:
1. Tạo quần thể (population): sinh ngẫu nhiên các đỉnh trên hình và giá
trị khoảng cách giữa các đỉnh; gán số thứ tự cho các đỉnh đó.
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 71
2. Tạo ngẫu nhiên các tour và lấy 2 tour ngắn nhất trong quần thể vừa
tạo ra làm cha-mẹ, sau đó kết hợp chúng lại bằng phép lai (crossover)
để tạo ra 2 tour con mới có thể tốt hơn các tour cha-mẹ của chúng.
Các thông số đầu vào của chương trình
a. Population size: số lượng các tour được sinh ngẫu nhiên,
b. Crossover probability: xác suất lai.
c. Mutation probability: xác suất đột biến, thường nhỏ hơn xác
suất lai.
d. Pause between generation (ms): khoảng thời gian dừng trước
khi chuyển từ thế hệ cha sang thế hệ con.
Đối với chương trình TSP giải bằng giải thuật trên mô hình mạng
H
Hình 5.7: Giao diện chương trình TSP giải bằng giải thuật trên mô hình mạng
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 72
Sử dụng chương trình trên để giải bài toán TSP dùng giải thuật di truyền, có 4
bước cơ bản sau:
1 Đầu tiên insert các nút trên màn hình đồ họa, các nút đó biển diễn cho
các thành phố.
2 Chọn giải thuật để giải bài toán (trong chương trình của chúng ta chỉ
có một giải thuật duy nhất là AprroxAlg)
3 Chọn Go step by step để chương trình có thể hiện thực giải thuật từng
bước hoặc là có thể chọn Algorithms Solution để chạy tất cả giải thuật rồi trả
về một đường đi TSP.
4 Chọn Remove Intersections chọn con đường đi ít có sự giao nhau tạo
kết quả tốt hơn so với con đường đi TSP củ
5.2 KẾT QUẢ THỰC NGHIỆM
Sau đây là kết quả được chạy trên một số bộ dữ liệu mẫu. Một bộ dữ liệu mẫu
được dùng để thử nghiệm một số giải thuật khác nhau nhằm so sánh được thời gian
thực thi và sự cải thiện được chất lượng lời giải (chi phí).
Ngoài ra, kết quả thực thi của chương trình cũng được so sánh với kết quả thực
thi của một số tác giả trên thế giới.
Các bộ dữ liệu mẫu này được lấy từ địa chỉ trang web sau:
http://www.research.att.com/~dsj/chtsp/results.html
http://www.iwr.uni-heidelberg.de/groups/comopt/software/TSPLIB95/
http://akira.ruc.dk/~keld/research/LKH/LKH-1.3/DOC/LKH_REPORT.pdf
Các kết quả này được chạy trên máy tính có cấu hình như sau: Pentium IV,
1.5GHz, 256MB Ram, ổ cứng 40GB.
Kết quả trên các bộ dữ liệu mẫu
- Các kết quả được hiện thực bằng giải thuật di truyền
Sau đây là một số kết quả được thực nghiệm bằng giải thuật di truyền dựa
vào các bộ dữ liệu mẫu của các nhà nghiên cứu trên thế giới đối với bài toán TSP:
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 73
+ Bộ dữ liệu của Geographische Koordinaten có14 thành phố tương ứng với đô thị
14 đỉnh
Bảng 5.1: Kết quả thực thi của giải thuật di truyền trên bộ dữ liệu 14 đỉnh
+Bộ dữ liệu của Groetschel and Padberg có16 thành phố tương ứng với đồ thị 16
đỉnh
Bảng 5.2: Kết quả thực thi của giải thuật di truyền trên bộ dữ liệu 16 đỉnh
+Bộ dữ liệu của Smith và Thompson có 70 thành phố tương ứng với đồ thị 70 đỉnh
N=14
Thế hệ Thời gian thực thi Chi phí
5 0.01 43.52648583047004
10 0.03 39.7002201383026
100 0.06 31.828317520454547
N=16
Thế hệ Thời gian thực thi Chi phí
5 0.01 106.95956965045005
10 0.03 96.16299176440121
100 0.07 78.04987232366227
500 0.12 73.987618045175
N=70
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 74
Bảng 5.3: Kết quả thực thi của giải thuật di truyền trên bộ dữ liệu 70 đỉnh
+Bộ dữ liệu của Lin/Kernighan có 105 thành phố tương ứng với đồ thị 105 đỉnh
Bảng 5.4: Kết quả thực thi của giải thuật di truyền trên bộ dữ liệu 105 đỉnh
+Bộ dữ liệu của Groetschel có 202 thành phố tương ứng với đồ thị 202
Thế hệ Thời gian thực thi Chi phí
5 0.02 3168.4587882744527
50 0.12 2478.2696605334077
100 0.19 2209.1535794730967
500 0.741 1190.178719443807
5000 5.598 757.2462322876843
N=105
Thế hệ Thời gian thực thi Chi phí
5 0.02 104769.5393757734
10 0.41 102764.17692270858
20 0.06 102367.00545340765
50 0.06 92834.22552185318
500 0.37 69426.7811806230
6000 9.985 17992.815262499353
N=202
Thế hệ Thời gian thực thi Chi phí
100 0.661 2598.2696518861367
500 2.935 1894.1585252659297
1000 5.718 1653.3486194639745
2000 11.186 1371.538037677163
5000 22.733 1095.1994422462283
15000 62.050 781.0497312481032
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 75
Bảng 5.5: Kết quả thực thi của giải thuật di truyền trên bộ dữ liệu 202 đỉnh
- Các kết quả được thực nghiệm bằng giải thuật mô hình mạng
Sau đây là một số kết quả được thực nghiệm bằng giải thuật di truyền trên các
bộ dữ liệu mẫu của các nhà nghiên cứu trên thế giới về bài toán TSP:
+Bộ dữ liệu của Geographische Koordinaten có14 thành phố tương ứng với đô thi
14 đỉnh tên 14 burma.tspx
Bảng 5.6: Kết quả thực thi của giải thuật mô hình mạng trên bộ dữ liệu 14 đỉnh
+Bộ dữ liệu của Groetschel and Padberg có16 thành phố tương ứng với đồ thị 16
đỉnh
Bảng 5.7: Kết quả thực thi của giải thuật mô hình mạng trên bộ dữ liệu 16 đỉnh
+Bộ dữ liệu của Smith và Thompson có 70 thành phố tương ứng với đồ thị 70 đỉnh
20000(PopSize 150) 285.251 586.6103474612837
N=14
Giải thuật Thời gian thực thi Chi phí
Approx Alg 0.01 37.2406906161501
Remove Intersection on
Approx Agl
0.01 33.11366631016739
N=16
Giải thuật Thời gian thực thi Chi phí
Approx Alg 0.01 74.18797980997518
Remove Intersection on
Approx Agl
0.01 74.18797980997518
N=70 ( tên file là st70.tsp)
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 76
Bảng 5.8: Kết quả thực thi của giải thuật mô hình mạng trên bộ dữ liệu 70 đỉnh
+Bộ dữ liệu của Lin/Kernighan có 105 thành phố tương ứng với đồ thị 105 đỉnh
ten Lin105
Bảng 5.9: Kết quả thực thi của giải thuật mô hình mạng trên bộ dữ liệu 105 đỉnh
+Bộ dữ liệu của Groetschel có 202 thành phố tương ứng với đồ thị 202
Bảng 5.10: Kết quả thực thi của giải thuật di truyền trên bộ dữ liệu 202 đỉnh
* So sánh kết quả của hai giải thuật và các nghiên cứu trên thế giới
Lin-Kernighan đã giải bài toán TSP bằng giải thuật heuristic. Kết quả của ông
đưa ra được thế giới đánh giá là tối ưu. Bảng dưới đây so sánh kết quả của giải thuật
trong đề tài với giải thuật Lin Kernighan.
Giải thuật Thời gian thực thi Chi phí
Approx Alg 0.01 820.053069482393
Remove Intersection on
Approx Agl
0.02 785.3298701041116
N=105
Giải thuật Thời gian thực thi Chi phí
Approx Alg 0.03 21129.953424084666
Remove Intersection on
Approx Agl
0.05 19339.43752368529
N=202
Giải thuật Thời gian thực thi Chi phí
Approx Alg 0.05 634.41247756288
Remove Intersection on
Approx Agl
0.08 588.6378454315735
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 77
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔ HÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 78
Bảng 5.11 Bảng so sánh kết quả thực nghiệm chương trìnhGA Network Nhà nghiên cứu Lin-KernighanTên bài toán ( Tác giả + Số đỉnh)
Thế hệ Tg thực thi Chi phí Thế hệ Tg thực thi Chi phí Thế hệ Tg thực thi Chi phí
5 0.01 43.52 0.01 33.11 0.0 33.23
10 0.03 39.7
Geographische Koordinaten (14
đỉnh)
100 0.06 31.82
5 0.01 106.95 0.01 74.18 0.0 68.59
10 0.03 96.16
100 0.07 78.04
Groetschel và Padberg (16 đỉnh)
500 0,12 73.98
5 0.02 3168.45 0.02 785.32 0.1 670.9
10 0.12 2478.26
100 0.19 2209.15
500 0.74 1190.17
Smith và Thompson (70 đỉnh)
5000 5.59 757.24
5 0.02 104769.53 0.05 19339.43 0.2 14379
10 0.41 102764.17
20 0.06 102467
50 0.06 92834.22
Lin và Kernighan (105 đỉnh)
500 0.37 69426.78
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔ HÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 79
6000 9.98 17992.81
100 0.66 2598.26 0.08 588.63 0.4 400.549
500 2.93 1894.15
1000 5.71 1653.34
2000 11.18 1371.53
5000 22.73 1095.19
15000 62.05 781.04
Groetschel (202 đỉnh)
20000 285.25 586.61
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 80
So sánh kết quả của giải thuật di truyền, mô hình mạng và Lin Kernighan
Số đỉnh Giải thuật Chi phí Thời gian thực thi
Di truyền 31.82 0.02
Mô hình mạng 33.11 0.0114
Lin Kernighan 33.23 0.0
Di truyền 73.98 0.12
Mô hình mạng 74.18 0.0116
Lin Kernighan 68.59 00
Di truyền 757.24 5.598
Mô hình mạng 785.329 0.0270
Lin Kernighan 670.9 0.1
Di truyền 17992.81 9.985
Mô hình mạng 19339.43 0.5105
Lin Kernighan 14379 0.2
Di truyền 586.61 285.251
Mô hình mạng 588.63 0.08 202Lin Kernighan 400.549 0.4
Bảng 5.12:So sánh kết quả của giải thuật di truyền, mô hình mạng và Lin Kernighan
Theo như kết quả của bảng so sánh trên, giải thuật di truyền sử dụng hiệu quả
hơn giải thuật mô hình mạng. Với số đỉnh nhỏ, giải thuật di truyền thực thi lâu hơn
giải thuật mô hình mạng. Nhưng chất lượng lời giải luôn luôn tốt hơn của giải thuật
di truyền không thua kém ( chi phí 2 giải thuật gần bằng nhau). Đặc biệt với số đỉnh
lớn, ta thấy rõ khả năng ưu việt để giải quyết bài toán TSP của giải thuật di truyền
trong kết quả đạt được chi phí tốt hơn và thời gian thực thi không chậm hơn nhiều
so với giải thuật mô hình mạng.
Giải thuật - Lin Kernighan cho ta thấy kết quả tốt hơn hai giải thuật trong đề tài
do sử dụng quá trình tìm kiếm (search) phức tạp và có phân tích độ nhạy cảm
(sensitive) để trực tiếp tìm kiếm hay ngăn cản quá trình tìm kiếm.
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 81
Kết luận: Chương này đã thể hiện được mốt số kỹ thuật quan trọng được sử
dụng để giải bài toán TSP cũng đã được một số kết quả thực nghiệm và từ đó rút ra
một số nhận xé về chất lượng lời giải và thời gian thực thi của 2 giải thuật GA và
Network so với kết quả nghiên cứu khác. Trong giải thuật GA nếu kéo dài thời gian
tìm kiếm thì chắc chắn kết quả của giải thuật GA sẽ cải thiện tốt hơn nữa. Nhưng vì
thời gian có hạn, nên luận văn này chưa đạt được những thực nghiệm sâu hơn.
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 82
CHƯƠNG VI
KẾT LUẬN VÀ HƯỚNG MỞ RỘNG
Chương này kết luận lại một số vấn đề chính cũng như các kết quả đã đạt được
trong đề tài và cũng đề ra môt số phương hướng mở rộng trong tương lai.
6.1 MỘT SỐ KẾT LUẬT LIÊN QUAN ĐẾN ĐỀ TÀI
Đề tài đã mình hoạ một số giải thuật để giải quyết bài toán người đi du lịch
(TSP). Một trong những kết quả đạt được của đề tài này là không chỉ tìm ra lời giải
cho bài toán mà còn cho chúng ta những nhận xét so sánh giữa hai giải thuật mà
chúng ta thường gặp đó là giải thuật di truyền và giải thuật mô hình mạng để rút ra
phương pháp hiệu quả giải bài toán TSP với dữ liệu lớn.
Ngoài ra kết quả thực nghiệm cũng đã được thực thi trên một số bộ dữ liệu mẫu
của các tác giả trên thế giới. Thời gian thực thi của cả hai giải thuật trong đề tài cho
thấy rằng kết quả đạt được có kém hơn so với các kết quả đạt được từ các phương
pháp tìm kiếm (search) phức tạp đã được một số nhà nghiên cứu trên thế giới áp
dụng.
6.2 MỘT SỐ ĐÓNG GÓP CỦA ĐỀ TÀI
TSP là một bài toán rất có ý nghĩa trong thực tế, bài toán này có thể áp dụng vào
rất nhiều lĩnh vực.Việc tìm ra một phương pháp tốt để giải quyết bài toán không chỉ
có ý nghĩa đối với bài toán này mà còn có ý nghĩa rất lớn với hàng loạt các bài toán
tương tự.
Đề tài này sau khi hoàn thành có thể được áp dụng ngay để giải quyết một số
vấn đề thực tế đặt ra hiện nay.
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 83
Đề tài còn trình bày tương đối rõ và cụ thể cả hai giải thuật, giải thuật di truyền
và giải thuật mô hình mạng. Vì vậy chúng ta có thể dựa vào đề tài này để nghiên
cứu và áp dụng hai giải thuật này vào bài toán khó khác. Cả hai giải thuật này được
áp dụng vào bài ngưới đi du lịch TSP kết quả thực nghiệm được so sánh với các kết
quả của các tác giả khác trên thế giới để rút ra một kết luận có ý nghĩa khoa học.
6.3 PHƯƠNG HƯỚNG MỞ RỘNG
Trong đề tài này đã xây dựng hai giải thuật và hiện thực được bài toán người đi
du lịch với các khoảng cách giữa hai thành phố được cho trước và cũng so sánh chất
lượng lời giải để rút ra giải thuật nào tốt hơn khi áp dụng cho bài toán này. Tuy
nhiên điểm hạn chế là bài toán chỉ giải quyết cho trường hợp dữ liệu nhập vào là đối
xứng.
Qua đề tài này, có thể rút ra kết luận là hai giải thuật trên không được tốt hơn so
với các giải thuật đã được nghiên cứu trên thế giới. Giải thuật di truyền đã giải
quyết vấn đề theo một cách tương đối hiệu quả. Giải thuật này có thể được nâng cao
độ hiệu quả và thời gian thực thi nếu kết hợp với các giải thuật tìm kiếm như tìm
kiếm cục bộ, Tabu search….
Giải quyết bài toán bất đối xứng
Bài toán dữ liệu đối xứng là dạng bài toán được ứng dụng khá rộng rãi, tuy
nhiên trong thực tế còn có một số trường hợp các bài toán dữ liệu bất đối xứng.Ví
dụ như: đường một chiều, đường vong….Chính vì vậy bài toán dữ liệu bất đối xứng
được xem như là một hướng mở rộng của đề tài sau này.
Song song hóa bài toán để cải thiện thời gian thực thi cho các bài toán dữ liệu
lơn
Dựa vào độ phức tạp của giải thuật ta có kể nhận xét rằng với các bài toán có dữ
liệu lớn (số đỉnh N>106) thì thời gian chạy là rất lớn.Chính vì vậy việc thực thi tuần
tự bài toán trở nên không còn phù hợp nữa.Giải thuật có thể được song song để cải
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 84
thiện thời gian chạy.Đây là một hướng tiếp cân khó và có thể xem là một hướng mở
rộng của để tài sau này.
Thư mục tham khảo[1] Genetic Algorithm. http://www.genetic-programming.org/
[2] GeneticAlgorithm.http://www.aiai.ed.ac.uk/technology/geneticalgorithms.html
[3] D.Applegate, R,Bixby, V. Chvastal, W. Cook: “ Solving Traveling Salesman
Problem “ ,2002.
Available:http://www.math.princeton.edu/tsp/
http://www.Introduction toGenetic Algorithms.com/
[4] D.E. Goldberg. Genetic Algorithms in Search Optimization and Machine
Learning. Addition Wesley, 1989.
[5] Hamdy A. Taha. Departement of Industrial Engineering University of
Arkansas, Fayetteville, Operations Research
[6] Homas H.Cormen, Charles E. Leiserson, Ronaldl, Rivest. Introduction
Algorithms
[7] Zbigniew Michalewicz. Genetic Algorithms + Data Structures=Evolution
Program. Springer, 1999.
[8] Th. Stutzle and M. Dorigo. ACO Algorithms for the Traveling Saleman
Problem. Jonh Wiley and Sons, 1999
[9] P.Karlsson, “Simulated annealing – applied to the traveling salesman
problem”,2002
[10] M. L. Fredman, D. S. Johnson, L. A. McGeoch, G. Osheimer “ Data structures
for Traveling Salesmen “, 1990
[11] Dantzig, G. B., Fulketson, D.R. and Johnson, S.M. (1954): Solution of a large-
scale traveling-salesman problem. Oper. Res. 2, 393-410
[12] Grotschel, M. (1980): On the symmetric travelling salesman problem: Solution
of a 120-city problem. Math. Progr. Studies 12, 61-77
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 85
[13] Crowder, H. and Padberg, M. W. (1980): Solving large-scale symmetric
travelling salesman problems to optimality. Management Sc. 26, 495-509
[14] Padberg, M.W. and Rinaldi, G. (1987): Optimization of a 532-city symmetric
travelling salesman problem. Oper. Res. Letters 6, 1-7
[15] Grotschel, M. and Holland, O. (1991): Solution of large-scale symmetric
travelling salesman problems. Math. Progr. 51, 141-202
[16] Padberg, M. and Rinaldi, G. (1991): A branch-and-cut algorithm for the
resolution of large-scale travelling salesman problems. SIAM Rev. 33, 60-100
[17] Applegate, D., Bixby, R., Chvatal, V. and Cook, W. (1995): Finding cuts in the
TSP (A preliminary report). DIMACS Technical Report 95-05, March 1995
[18] D.S. Johnson and L.A. McGeoch, “The Traveling Salesman Problem: A Case
Study in Local Optimization”,November 20, 1995.
[19] D.S. Johnson and L.A. McGeoch, “Experimental Analysis of Heuristics for the
STSP”, The Traveling Salesman Problem and its Variations, Gutin and Punnen
(eds), Kluwer Academic Publishers, 2002,pp. 369-443.
[20] M.L Fredman, D.S. Johnson, L.A. McGeoch, G.Ostheimer, “Data Structures
For Traveling Salesmen”,J. ALGORITHMS 18, 1995, pp. 432-479.
[21] D.S. Johnson, L.A. McGeoch, E.E. Rothberg,“Asymptotic Experimental
Analysis for the Held-Karp Traveling Salesman Bound” Proceedings of
the Annual ACM-SIAM Symposium on Discrete Algorithms,1996, pp. 341-350.
[22] K. Helsgaun, “An Effective Implementation of the Lin-Kernighan Traveling
Salesman Heuristic”, Department of Computer Science, Roskilde University.
[23] D. Applegate, W. Cook and A. Rohe, “Chained Lin-Kernighan for large
traveling salesman problems”,July 27, 2000.
[24] W. Zhang, “Depth-First Branch-and-Bound versus Local Search: A Case
Study”, Information Sciences Institute and Computer Science Department
Universityof Southern California.
Báo cáo luận văn cao học : TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀ GIẢI THUẬT MÔHÌNH MẠNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LỊCH
`
GV hướng dẫn: TS. Lê Văn DựcHV thực hiện: Sok Phong (00704901) Trang 86
[25] M. Dorigo, L.M. Gambardella, “Ant Colonies for the Traveling Salesman
Problem”, Universit Libre de Bruxelles, Belgium, 1996.
[26] S. Arora, “Polynomial Time Approximation Schemes for Euclidian Traveling
Salesman and Other Geometric Problems”, Journal of the ACM,Vol. 45, No. 5,
September 1998, pp. 753-782.
[27] Goldberg, David E. and Robert Lingle, Jr. (1985). Alleles, Loci, and the
Traveling Salesman Problem, Proc. Int’l Conference on Genetic Algorithms and
their Applications.
[28] Lin, S. (1965) “Computer Solutions of the Traveling Salesman Problem.” BeZZ
Syst. Journal
[28]P.Moscato,TSPBIB,http://www.densis.fee.unicamp.br/~cato/TSPBIB_home.ht
ml.
[29] Oliver and D. Smith and J. R. Holland, A study of permutation crossover
operators on the travelling salesman problem, Proc. of the 2nd International
Conference on Genetic Algorithms, J.J. Grefenstette ed., Lawrence Erlbaum,
Hillsdale (NJ), 224-230, 1987.
[30] D. E. Goldberg, Genetic Algorithms in Search, Optimization and Machine
Learning, Addison Wesley, 1989.
[31]G. Reinelt, TheTSPLIB,
http://www.iwr.uniheidelberg.de/iwr/comopt/soft/TSPLIB95/TSPLIB.html