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...

86
Báo cáo lun văn cao hc : TÌM HIU VÀ ÁP DNG GII THUT DI TRUYN VÀ GII THUT MÔ HÌNH MNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LCH ` GV hướng dn: TS. Lê Văn Dc HV thc hin: Sok Phong (00704901) Trang 1 TÊN ĐỀ TÀI TÌM HIU VÀ ÁP DNG GI I THUT DI TRUYN VÀ GI I THUT MÔ HÌNH MNG TRÊN BÀI TOÁN NGƯỜI ĐI DU LCH

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...

Page 1: 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 Ä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 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

Page 2: 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 Ä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.

Page 3: 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 Ä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 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.

Page 4: 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 Ä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 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.

Page 5: 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 Ä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 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

Page 6: 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 Ä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 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 đề.

Page 7: 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 Ä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 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.

Page 8: 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 Ä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 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

Page 9: 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 Ä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 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ỏ

Page 10: 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 Ä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 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.

Page 11: 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 Ä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 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.

Page 12: 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 Ä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 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 -

Page 13: 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 Ä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 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

Page 14: 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 Ä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 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.

Page 15: 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 Ä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 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.

Page 16: 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 Ä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 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

Page 17: 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 Ä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 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

Page 18: 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 Ä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 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

Page 19: 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 Ä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 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

Page 20: 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 Ä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 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:

Page 21: 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 Ä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 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

Page 22: 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 Ä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 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)

Page 23: 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 Ä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 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.

Page 24: 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 Ä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 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 “

Page 25: 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 Ä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 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

Page 26: 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 Ä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 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 /

Page 27: 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 Ä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 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

Page 28: 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 Ä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 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

Page 29: 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 Ä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 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

Page 30: 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 Ä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 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

Page 31: 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 Ä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 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

Page 32: 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 Ä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 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ề

Page 33: 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 Ä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 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

Page 34: 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 Ä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 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

Page 35: 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 Ä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 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.

Page 36: 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 Ä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 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

Page 37: 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 Ä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 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

Page 38: 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 Ä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 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.

Page 39: 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 Ä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 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

Page 40: 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 Ä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 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

Page 41: 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 Ä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 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

Page 42: 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 Ä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 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.

Page 43: 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 Ä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 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ử

Page 44: 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 Ä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 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

Page 45: 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 Ä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 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

Page 46: 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 Ä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 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

Page 47: 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 Ä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 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

Page 48: 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 Ä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 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

Page 49: 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 Ä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 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.

Page 50: 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 Ä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 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)

Page 51: 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 Ä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 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).

Page 52: 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 Ä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 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)

Page 53: 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 Ä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 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:

Page 54: 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 Ä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 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

Page 55: 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 Ä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 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

Page 56: 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 Ä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 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

Page 57: 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 Ä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 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:

Page 58: 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 Ä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 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);

Page 59: 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 Ä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 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ị.

Page 60: 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 Ä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 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:

Page 61: 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 Ä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 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 đề.

Page 62: 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 Ä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 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

Page 63: 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 Ä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 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).

Page 64: 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 Ä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 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

Page 65: 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 Ä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 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ị.

Page 66: 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 Ä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 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

Page 67: 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 Ä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 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

Page 68: 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 Ä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 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

Page 69: 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 Ä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 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

Page 70: 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 Ä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 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 đó.

Page 71: 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 Ä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 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

Page 72: 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 Ä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 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:

Page 73: 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 Ä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 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

Page 74: 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 Ä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 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

Page 75: 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 Ä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 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)

Page 76: 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 Ä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 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

Page 77: 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 Ä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 77

Page 78: 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 Ä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 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

Page 79: 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 Ä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 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

Page 80: 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 Ä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 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.

Page 81: 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 Ä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 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.

Page 82: 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 Ä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 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.

Page 83: 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 Ä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 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

Page 84: 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 Ä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 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

Page 85: 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 Ä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 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.

Page 86: 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 Ä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 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