Tiểu luận môn Thuật Toán và Phương Pháp Giải Quyết Vấn Đề ỨNG DỤNG THUẬT TOÁN DI TRUYỀN VÀO BÀI TOÁN NGƯỜI DU LỊCH

27 848 1
Tiểu luận môn Thuật Toán và Phương Pháp Giải Quyết Vấn Đề ỨNG DỤNG THUẬT TOÁN DI TRUYỀN VÀO BÀI TOÁN NGƯỜI DU LỊCH

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN TIỂU LUẬN MÔN HỌC THUẬT TOÁN VÀ PHƯƠNG PHÁP GIẢI QUYẾT VẤN ĐỀ ĐỀ TÀI ỨNG DỤNG THUẬT TOÁN DI TRUYỀN VÀO BÀI TOÁN NGƯỜI DU LỊCH Giảng viên hướng dẫn : PGS.TS Đỗ Văn Nhơn Học viên thực hiện: Trần Văn Cường MSHV : CH1301083 TP.HCM 10/2014 MỤC LỤC MỤC LỤC 2 LỜI CẢM ƠN 1 LỜI MỞ ĐẦU 2 PHẦN I. CƠ SỞ LÝ THUYẾT 3 I. TỔNG QUAN VỀ THUẬT TOÁN DI TRUYỀN 3 II. TỔNG QUAN BÀI TOÁN NGƯỜI DU LỊCH 13 PHẦN II. ỨNG DỤNG THUẬT GIẢI DI TRUYỀN VÀO BÀI TOÁN NGƯỜI DU LỊCH 16 I. MÃ HÓA BÀI TOÁN 16 II. KHỞI TẠO QUẦN THỂ 16 III. LAI GHÉP 17 IV. ĐỘT BIẾN 18 V. CHỌN LỌC TỰ NHIÊN 19 VI. TIẾN HOÁ 20 KẾT LUẬN 21 TÀI LIỆU THAM KHẢO 22 Phương pháp và Thuật toán giải quyết vấn đề GVHD: PGS.TS Đỗ Văn Nhơn LỜI CẢM ƠN Trong thời lượng 8 buổi học, tuy thời gian ngắn nhưng qua sự truyền đạt tận tình cùng với kinh nghiệm giảng dạy lâu năm của thầy PGS TS Đỗ Văn Nhơn đã truyền đạt cho Em cũng như các bạn trong lớp những kiến thức quý báu. Em xin chân thành cám ơn Thầy về những kiến thức và những kinh nghiệm quý báu mà Thầy đã truyền đạt cho lớp trong phạm vi môn học Thuật toán và Phương pháp giải quyết vấn đề thuộc chương trình đào tạo cao học ngành Khoa học máy tính tại trường Đại học Công Nghệ Thông Tin – Đại học Quốc gia Thành phố Hồ Chí Minh. Chúc Thầy sức khỏe, hạnh phúc và thành công! Em xin chân thành cảm ơn! HV: Trần Văn Cường – MSHV: CH1301083 Trang 1 Phương pháp và Thuật toán giải quyết vấn đề GVHD: PGS.TS Đỗ Văn Nhơn LỜI MỞ ĐẦU Bài toán Người du lịch (Travelling Salesman Problem - TSP) là một trong những bài toán kinh điển và khó trong tin học. Bài toán có phát biểu rất đơn giản nhưng rất khó giải trong trường hợp tổng quát với không gian tìm kiếm rộng lớn, khó bởi các thuật toán hiệu quả nhất đa được biết đến có thời gian giải quyết bài toán này tăng dần theo cấp số nhân của n, hay độ phức tạp thuật toán tăng theo hàm số mũ. Có rất nhiều cách tiếp cận giải bài toán này ngay từ khi nó mới ra đời, như sử dụng quy hoạch tuyến tính, thuật toán vét cạn, thuật toán người láng giềng gần nhất, kỹ thuật nhánh và cận, nhưng mới chỉ dừng lại ở các bộ dữ liệu nhỏ. Gần đây có nhiều thuật toán ra đời theo hướng tiếp cận về tiến hóa như thuật toán di truyền Genetic Algorithm hay cách mô phỏng hành vi của đàn kiến như thuật toán đàn kiến được áp dụng cho kết quả tốt hơn rất nhiều. Trong trong phạm vi bài thu hoạch này tôi xin chọn đề tài:“Ứng dụng thuật toán di truyền vào bài toán người du lịch” nhằm tìm hiểu thuật toán, xem xét hiệu quả của các thuật toán. HV: Trần Văn Cường – MSHV: CH1301083 Trang 2 Phương pháp và Thuật toán giải quyết vấn đề GVHD: PGS.TS Đỗ Văn Nhơn PHẦN I. CƠ SỞ LÝ THUYẾT I. TỔNG QUAN VỀ THUẬT TOÁN DI TRUYỀN 1. Giới thiệu Trong thuật giải di truyền người ta dùng thuật ngữ vay mượn của di truyền học như: cá thể, nhiễm sắc thể (nhiễm sắc thể), gen, quần thể, độ thích nghi, chọn lọc, lai ghép, đột biến, v.v… Trong đó cá thể (individual, genotypes, structure) biểu diễn một lời giải, giải pháp của bài toán, không giống như trong tự nhiên một cá thể có thể có nhiều nhiễm sắc thể, ở đây chúng ta quy ước mỗi cá thể chỉ có một nhiễm sắc thể (chromosome). Các nhiễm sắc thể là một có thể là một chuỗi tuyến tính, trong nhiễm sắc thể có thể có các đơn vị nhỏ hơn đó là gen. Mỗi gen đại diện một thuộc tính, tính chất và có vị trí nhất định trong nhiễm sắc thể. Quần thể (population) là một tập hợp hữu hạn xác định các cá thể, trong thuật giải di truyền quần thể là một tập - Xây dựng hàm thích nghi làm tiêu chuẩn đánh giá các cá thể theo độ thích nghi của chúng. - Xác định xác suất lai tạo, xác suất đột biến, … - Xây dựng các phép toán lai tạo, chọn lọc, đột biến. 2. Thuật giải di truyền Bài toán dành cho GA là tìm kiếm trên không gian các giả thuyết ứng cử để xác định giả thuyết tốt nhất. Trong GA “giả thuyết tốt nhất” được định nghĩa như là một giả thuyết tối ưu hóa một đại lượng số được định nghĩa trước cho bài toán sắp tới, được gọi là độ thích nghi của giả thuyết. Ví dụ, nếu tác vụ học hỏi là bài toán xấp xỉ một hàm chưa biết cho tập mẫu huấn luyện gồm dữ liệu đầu vào và dữ liệu đầu ra, thì độ thích nghi có thể được định nghĩa như là độ chính xác của giả thuyết trên dữ liệu huấn luyện này. Nếu tác vụ là học chiến lược chơi cờ, độ thích nghi có thể là số ván thắng của chiến lược này khi đấu với các chiến lược khác trong quần thể hiện tại. HV: Trần Văn Cường – MSHV: CH1301083 Trang 3 Phương pháp và Thuật toán giải quyết vấn đề GVHD: PGS.TS Đỗ Văn Nhơn Mặc dù các thuật giải di truyền được thực hiện thay đổi theo bài toán cụ thể, nhưng chúng chia sẻ chung cấu trúc tiêu biểu sau: Thuật giải hoạt động bằng cách cập nhật liên tục tập giả thuyết - được gọi là quần thể. Ở mỗi lần lặp, tất cả các cá thể trong quần thể được ước lượng tương ứng với hàm thích nghi. Rồi quần thể mới được tạo ra bằng cách lựa chọn có xác suất các cá thể thích nghi tốt nhất từ quần thể hiện tại. Một số trong những cá thể được chọn được đưa nguyên vẹn vào quần thể kế tiếp. Những cá thể khác được dùng làm cơ sở để tạo ra các cá thể con bằng cách áp dụng các tác động di truyền: lai ghép và đột biến. HV: Trần Văn Cường – MSHV: CH1301083 Trang 4 Phương pháp và Thuật toán giải quyết vấn đề GVHD: PGS.TS Đỗ Văn Nhơn GA(Fitness, Fitness_threshold, p, r, m) { //Fitness: hàm gán thang điểm ước lượng cho một giả thuyết //Fitness_threshold: Ngưỡng xác định tiêu chuẩn dừng giải thuật tìm kiếm //p: Số cá thể trong quần thể giả thuyết //r: Phân số cá thể trong quần thể được áp dụng toán tử lai ghép ở mỗi bước //m: Tỉ lệ cá thể bị đột biến • Khởi tạo quần thể: P  Tạo ngẫu nhiên p cá thể giả thuyết • Ước lượng: Ứng với mỗi h trong P, tính Fitness(h) • While [max Fitness(h)] < Fitness_threshold do Tạo thế hệ mới, P S 1. Chọn cá thể: chọn theo xác suất (1 – r)p cá thể trong quần thể P thêm vào P S . Xác suất Pr(h i ) của giả thuyết h i thuộc P: 2. Lai ghép: chọn lọc theo xác xuất cặp giả thuyết từ quần thể P, theo Pr(h i ) đã tính ở bước trên. Ứng với mỗi cặp <h 1 , h 2 >, tạo ra hai con bằng cách áp dụng toán tử lai ghép. Thêm tất cả các con vào P S . 3. Đột biến: Chọn m% các thể P S với xác suất cho mỗi cá thể là như nhau. Ứng với mỗi cá thể biến đổi một bit được chọn ngẫu nhiên trong cách thể hiện của nó. 4. Cập nhật: P  P S 5. Ước lượng: Ứng với mỗi h trong P, tính Fitness(h) • Trả về giả thuyết P có độ thích nghi cao nhất } Hình: Các bước cơ bản của giải thuật HV: Trần Văn Cường – MSHV: CH1301083 Trang 5 Phương pháp và Thuật toán giải quyết vấn đề GVHD: PGS.TS Đỗ Văn Nhơn Sơ đồ mô tả giải thuật di truyền 3. Các toán tử di truyền a. Biểu diễn cá thể Công việc đầu tiên khi thực hiện việc giải bài toán bằng giải thuật di truyền là chọn cách biểu diễn các cá thể. Đó là việc ánh xạ các tham số của bài toán lên một chuỗi có chiều dài xác định. Tuỳ theo từng bài toán cụ thể mà có những cách biểu diễn khác nhau sao cho phù họp, thuận lợi khi giải toán. Trong đó có hai cách biểu diễn thông dụng nhất là biểu diễn nhị phân và biểu diễn sử dụng các hoán vị. Biểu diễn nhị phân HV: Trần Văn Cường – MSHV: CH1301083 Trang 6 Phương pháp và Thuật toán giải quyết vấn đề GVHD: PGS.TS Đỗ Văn Nhơn Mỗi cá thể tương ứng với một chuỗi bao gồm các bit 0 và 1, ý nghĩa của các bít này phụ thuộc vào từng tình huống cụ thể. Đây là cách biểu diễn đơn giải nhất và là cách thông dụng nhất trong các cách biểu diễn. Ví dụ trong bài toán cái túi: có n đồ vật với trọng lượng và giá trị được cho trước và một cái túi có trọng lượng đã biết. Hãy chọn ra các đồ vật đế cho vào túi sao cho tống giá trị các đồ vật trong túi là lớn nhất? Ớ đây, đồ vật được đánh số từ 1 đến n, mỗi cá thể được biểu diễn bằng một xâu nhị phân độ dài n. Trong đó, bít thứ i bằng 1 có nghĩa là đồ vật thứ i được cho vào túi, bằng 0 thì bỏ lại. Biểu diễn sử dụng hoán vị Mỗi cá thể tương ứng với một hoán vị của tập n ký hiệu nào đó. Chang hạn cách biểu diễn này đã được áp dụng cho bài toán người du lịch: Một thương gia phải đi qua nhiều thành phố (n). Hãy vạch lộ trình đi qua tất cả các thành phố đó sao cho quãng đường đi là ngắn nhất. Biết rằng mỗi thành phố chỉ đi qua một lần. Kí hiệu các thành phố là T1, T2, Tn mỗi cá thể - sự mã hoá của lời giải - sẽ là một danh sách hoán vị của T1, T2, Tn biểu diễn lộ trình mà người thương gia đã đi qua. Thí dụ T8T5T9T3 sẽ là kí hiệu của hành trình từ T8  T5  T9  T3 Như vậy mỗi chuỗi con sẽ biểu diễn cho một đỉnh của không gian tìm kiếm và qua đó thể hiện được cách trả lời có thể có của bài toán. Sau này mỗi chuỗi nhiễm sắc thể sẽ được giải mã lại đế trả về các thông số ban đầu của bài toán. Biểu diễn bằng giá trị Biểu diễn giá trị trực tiếp có thể được dùng trong các bài toán có chứa những giá trị phức tạp, chẳng hạn như số thực. Nếu dùng biểu diễn nhị phân cho loại bài toán này thì rất phức tạp. Trong mã hóa giá trị, mọi nhiễm sắc thể là một chuỗi chứa những giá trị nào đó. Những giá trị này có thể có dạng bất HV: Trần Văn Cường – MSHV: CH1301083 Trang 7 Phương pháp và Thuật toán giải quyết vấn đề GVHD: PGS.TS Đỗ Văn Nhơn kỳ liên quan đến bài toán, từ số nguyên, số thực, ký tự cho đến các đối tượng phức tạp hơn. Một ví dụ cho cách mã hóa này là bài toán tìm trọng số mạng nơron. Biểu diễn theo cây Mã hóa theo cây được dùng chủ yếu cho các chương trình (hoặc biểu thức) tiến hóa, cho lập trình gen. Trong mã hóa theo cây mọi nhiễm sắc thể là một cây chứa các đối tượng chẳng hạn như hàm hoặc lệnh trong một ngôn ngữ lập trình nào đó. Ví dụ: bài toán tìm hàm từ những giá trị cho trước. Cho trước một số đầu vào và đầu ra. Tìm hàm cho ra kết quả tốt nhất với mọi đầu vào. Mã hóa: Nhiễm sắc thể là các hàm được biểu diễn bằng cây. => Sau khi đã biếu diễn được các cá thể cho bài toán rồi thì có thể bắt tay ngay vào việc thực hiện giải thuật di truyền theo sơ đồ đã có trong phần trước. Bước đầu tiên là cần có một quần thể ban đầu. Nó có thể có được bằng cách chọn ngẫu nhiên các cá thể; hoặc có thể dùng chiến thuật lựa chọn thông qua hàm mục tiêu sẽ được trình bày ngay sau đây. b. Hàm mục tiêu Fitness Một hàm mục tiêu (fitness) sẽ lấy một chuỗi nhiễm sắc thể như là đầu vào và trả về giá trị tượng trưng cho chuỗi nhiễm sắc thể đó đế đánh giá trên vấn đề cần giải quyết. Hàm mục tiêu có vai trò tương tự như là môi trường sống trong sự tiến hóa của tự nhiên, vấn đề tương tác giữa một cá thể với môi trường sống được thể hiện qua giá trị cuả hàm mục tiêu trong mỗi một cá thể. Giá trị hàm mục tiêu là Maximum hay Minimum tùy theo bài toán sẽ quyết định xác suất của mỗi chuỗi có thể tham gia vào các toán tử di truyền. c. Toán tử tái tạo Là một quá trình mà trong đó các chuỗi được lựa chọn tùy thuộc vào giá trị hàm mục tiêu. Hàm mục tiêu f(i) được gán cho mỗi cá thể trong một quần thể, và những cá HV: Trần Văn Cường – MSHV: CH1301083 Trang 8 [...]... dừng và xuất ra kết quả HV: Trần Văn Cường – MSHV: CH1301083 Trang 20 Phương pháp và Thuật toán giải quyết vấn đề GVHD: PGS.TS Đỗ Văn Nhơn KẾT LUẬN Trong thời gian nghiên cứu, tìm hiểu thuật toán để giải quyết bài toán người du lịch, đề tài đã đạt được các kết quả sau: − Báo cáo đã làm rõ các khái niệm về giải thuật di truyền và các bước thực hiện khi áp dụng vào giải quyết bài toán người du lịch −... được quy định trước và thuật toán dừng Kết hợp nhiều phương pháp khác nhau, thuật giải cũng có thể sử dụng kết hợp nhiều phương pháp khác nhau để giải quyết vấn đề Các tham số của thuật giải di truyền - Kích thước quần thể - Xác suất lai ghép - Xác suất đột biến II TỔNG QUAN BÀI TOÁN NGƯỜI DU LỊCH 1 Lịch sử bài toán Bài toán người du lịch (Travelling Salesman problem (TSP)) là một bài toán khá nổi tiếng... cứu tìm hiểu nội dung, lịch sử, mô tả về bài toán người du lịch − Từ đó rút ra những ưu nhược điểm của phương pháp trong giải bài toán người du lịch Từ kết quả nghiên cứu lý thuyết và thực tiển, bài tiểu luận đề ra các vấn đề cần tiếp tục hoàn thiện, phát triển và nghiên cứu như sau: − Tiếp tục nghiên cứu thêm các thuật toán khác áp dụng giải bài toán người du lịch Từ đó rút ra nhận xét và đánh giá về... Chọn ngẫu nhiên k cha mẹ và thay thế bằng k con mới • Chọn những cá thể ưu tú nhất trong quần thể 5 Sự khác biệt của thuật giải di truyền và thuật giải khác Khi dùng phương pháp truyền thống có một số cách giải sau: Phương pháp liệt kê Phương pháp giải tích Phương pháp tìm kiếm ngẫu nhiên Đặc trưng của thuật giải di truyền so với các phương pháp truyền thống: Thuật giải di truyền làm việc với sự mã... thể với số đỉnh lớn (đồ thị n đỉnh phải duyệt n! chu trình) Số chu trình phải duyệt HV: Trần Văn Cường – MSHV: CH1301083 Trang 15 Phương pháp và Thuật toán giải quyết vấn đề GVHD: PGS.TS Đỗ Văn Nhơn PHẦN II ỨNG DỤNG THUẬT GIẢI DI TRUYỀN VÀO BÀI TOÁN NGƯỜI DU LỊCH I MÃ HÓA BÀI TOÁN 1 Mã hoá đồ thị: Đồ thị được mã hoá bằng danh sách mảng các điểm và toạ độ tương ứng của chúng Trọng số trong cột đầu tiên... lời giải chính xác Một số thuật giải di truyền có thể cung cấp lời giải tiềm năng cho một bài toán xác định để người sử dụng lựa chọn.[6] HV: Trần Văn Cường – MSHV: CH1301083 Trang 11 Phương pháp và Thuật toán giải quyết vấn đề GVHD: PGS.TS Đỗ Văn Nhơn 6 Các thành phần trong thuật giải di truyền Biểu di n nhiễm sắc thể - Biểu di n nhị phân - Biểu di n sử dụng hoán vị - Biểu di n bằng giá trị Khởi tạo... giá về tính hiệu quả các thuật toán − Tiếp tục nghiên cứu thực nghiệm để tìm ra lời giải tối ưu áp dụng cho bài toán người du lịch Với khả năng và thời gian có hạn, bài tiểu luận chắc chắn còn những thiếu sót trong phần trình bày và nội dung, kính mong Thầy góp ý để tác giả hoàn thiện hơn HV: Trần Văn Cường – MSHV: CH1301083 Trang 21 Phương pháp và Thuật toán giải quyết vấn đề GVHD: PGS.TS Đỗ Văn Nhơn... Menger người đã định nghĩa bài toán, xem xét giải thuật brute-force và quan sát thấy tính không tối ưu của heuristic dựa trên láng giếng gần nhất HV: Trần Văn Cường – MSHV: CH1301083 Trang 13 Phương pháp và Thuật toán giải quyết vấn đề GVHD: PGS.TS Đỗ Văn Nhơn Hassler Whitney ở đại học Princeton University là ngừời đầu tiên đặt tên người du lịch cho bài toán không lâu sau đó Trong những năm 1950 và 1960... Nhơn TÀI LIỆU THAM KHẢO [1] PGS.TS Đỗ Văn Nhơn (2014), slide bài giảng môn Phương pháp giải quyết vấn đề; [2] TS Nguyễn Đình Thúc (2008), Giáo trình Trí Tuệ Nhân Tạo – Lập trình tiến hóa [3] http://vi.wikipedia.org/wiki /Bài _toán_ người_ bán_hàng (10/2014) HV: Trần Văn Cường – MSHV: CH1301083 Trang 22 Phương pháp và Thuật toán giải quyết vấn đề GVHD: PGS.TS Đỗ Văn Nhơn NHẬN XÉT CỦA GIÁO VIÊN ... dừng thuật toán Kết thúc dựa trên số thế hệ, một số vấn đề dựa vào số thế hệ trong quần thể Khi số lượng tiến hoá của quần thể đến một giới hạn cho phép thì thuật toán sẽ dừng, HV: Trần Văn Cường – MSHV: CH1301083 Trang 12 Phương pháp và Thuật toán giải quyết vấn đề GVHD: PGS.TS Đỗ Văn Nhơn mà trong khi không quan tâm đến chất lượng của cá thể trong quần thể như thế nào Tính theo thời gian, phụ thuộc vào . MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN TIỂU LUẬN MÔN HỌC THUẬT TOÁN VÀ PHƯƠNG PHÁP GIẢI QUYẾT VẤN ĐỀ ĐỀ TÀI ỨNG DỤNG THUẬT TOÁN DI TRUYỀN VÀO BÀI TOÁN NGƯỜI DU LỊCH Giảng viên hướng dẫn : PGS.TS. THUYẾT 3 I. TỔNG QUAN VỀ THUẬT TOÁN DI TRUYỀN 3 II. TỔNG QUAN BÀI TOÁN NGƯỜI DU LỊCH 13 PHẦN II. ỨNG DỤNG THUẬT GIẢI DI TRUYỀN VÀO BÀI TOÁN NGƯỜI DU LỊCH 16 I. MÃ HÓA BÀI TOÁN 16 II. KHỞI TẠO. chọn đề tài: Ứng dụng thuật toán di truyền vào bài toán người du lịch nhằm tìm hiểu thuật toán, xem xét hiệu quả của các thuật toán. HV: Trần Văn Cường – MSHV: CH1301083 Trang 2 Phương pháp và Thuật

Ngày đăng: 23/05/2015, 21:03

Từ khóa liên quan

Mục lục

  • LỜI MỞ ĐẦU

  • PHẦN I. CƠ SỞ LÝ THUYẾT

    • I. TỔNG QUAN VỀ THUẬT TOÁN DI TRUYỀN

      • 1. Giới thiệu

      • 2. Thuật giải di truyền

      • 3. Các toán tử di truyền

      • 4. Đấu tranh sinh tồn

      • 5. Sự khác biệt của thuật giải di truyền và thuật giải khác

      • 6. Các thành phần trong thuật giải di truyền

      • II. TỔNG QUAN BÀI TOÁN NGƯỜI DU LỊCH

        • 1. Lịch sử bài toán

        • 2. Mô tả bài toán

        • 3. Phân tích độ phức tạp

        • PHẦN II. ỨNG DỤNG THUẬT GIẢI DI TRUYỀN VÀO BÀI TOÁN NGƯỜI DU LỊCH

        • I. MÃ HÓA BÀI TOÁN

          • 1. Mã hoá đồ thị:

          • 2. Mã hoá chu trình (cá thể-gen)

          • II. Khởi tạo quần thể

          • III. Lai ghép

          • IV. ĐỘT BIẾN

          • V. CHỌN LỌC TỰ NHIÊN

          • VI. Tiến hoá

Tài liệu cùng người dùng

Tài liệu liên quan