Tìm hiểu về thuật toán di truyền và ứng dụng

91 468 1
Tìm hiểu về thuật toán di truyền và ứng dụng

Đ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

MỤC LỤC MỞ ĐẦU CHƯƠNG 1: BÀI TOÁN TỐI ƯU HOÁ TỔNG QUÁT VÀ VẤN ĐỀ MÔ HÌNH HOÁ TOÁN HỌC 1.1 Bài toán tối ưu hoá tổng quát mô hình hoá toán học 1.1.1.Bài toán tối ưu hoá tổng quát 1.1.2 Phân loại toán 1.2.Vấn đề mô hình hoá toán học CHƯƠNG 2: TỔNG QUAN VỀ GIẢI THUẬT DI TRUYỀN 2.1 Đôi nét lịch sử 2.2.Thuật giải di truyền cổ điển 2.2.1 Thuật toán di truyền gì? 2.2.2 Cấu trúc thuật toán di truyền cổ điển 11 2.2.3 So sánh thuật toán di truyền cổ điển với số thuật toán truyền thống khác 17 2.3 Cơ sở toán học thuật giải di truyền cổ điển 18 2.3.1 Khái niệm lược đồ .19 2.3.2 Tính chất lược đồ 19 2.3.3 Vấn đề ngộ nhận phương pháp giải 20 2.4 Một số cải tiến giải thuật di truyền cổ điển 21 2.4.1 Cải tiến phương pháp chọn lọc (modGA1) 22 2.4.2 Cải tiến hàm mục tiêu 24 2.4.3 Thuật toán di truyền cổ điển với kích thước quần thể thay đổi (modGA2) 26 2.4.4 Một số cải tiến phép trao đổi chéo 28 2.4.5 Thuật toán di truyền hỗn hợp (modGA3) 31 CHƯƠNG 3: PHƯƠNG PHÁP TÍNH TOÁN TIẾN HOÁ .34 3.1.Các chiến lược tiến hoá 35 3.1.1 Nội dung chiến lược tiến hoá 35 3.1.2.So sánh chiến lược tiến hoá thuật toán di truyền 39 3.2.Lập trình tiến hoá lập trình di truyền 39 3.2.1 Lập trình tiến hoá 40 3.2.2 Lập trình di truyền 41 3.2.3.Chương trình tiến hoá 43 CHƯƠNG TÌM HIỂU BÀI TOÁN TỐI ƯU ĐA MỤC TIÊU .48 4.1.Tổng quan tối ưu đa mục tiêu .48 4.2 Một số phương pháp giải toán đa mục tiêu .51 4.2.1 Phương pháp hàm lợi ích 51 4.2.2 Phương pháp tiêu chuẩn đánh giá toàn cục 53 4.2.3 Phương pháp điểm hợp lý 53 CHƯƠNG ỨNG DỤNG GIẢI THUẬT DI TRUYỀN GIẢI BÀI TOÁN TỐI ƯU ĐA MỤC TIÊU 55 5.1 Đặt vấn đề 55 5.2 Thuật toán tiến hoá .57 5.2.1 Thuật toán tiến hoá chuỗi nhị phân 59 5.2.2 Thuật toán tiến hoá số thực 67 5.3 Ứng dụng giải thuật di truyền giải toán người du lịch (TSP) .77 5.3.1 Bài toán 77 5.3.2 Các khó khăn thiết kế giải thuật di truyền 77 5.3.4 chương trình tiến hoá cho toán TSP 85 KẾT LUẬN 90 TÀI LIỆU THAM KHẢO 91 MỞ ĐẦU Trong thực tế, lĩnh vực thiết kế thường dẫn đến toán tối ưu đa mục tiêu Chẳng hạn, người chế tạo sản phẩm thường chọn giải pháp tiết kiệm vật liệu chi phí sản xuất lại muốn giá trị sản phẩm cao Nghiên cứu giải toán tối ưu đa mục tiêu vấn đề thời sự, thực tiễn song không đơn giản chưa có lời giải thoả mãn đồng thời mục tiêu mà không vi phạm ràng buộc Đã có nhiều phương pháp giải toán tối ưu đa mục tiêu đề xuất, song toán thực tế đa dạng, phong phú việc nghiên cứu phát triển phương pháp khả ứng dụng cần thiết có ý nghĩa Đề tài “Tìm hiểu thuật toán di truyền ứng dụng” nhằm đặt móng cho việc nghiên cứu giải thuật di truyền ứng dụng việc giải toán tối ưu đa mục tiêu Với mục đích đó, phần tổng hợp lại số phương pháp truyền thống giải toán tối ưu đa mục tiêu, đề tài tập trung trình bày vấn đề giải toán tối ưu đa mục tiêu giải thuật di truyền Nghiên cứu giải thuật di truyền lớp toán tối ưu đa mục tiêu lĩnh vực rộng lớn có ý nghĩa thực tiễn Song hạn chế thời gian kiến thức sở nên đề tài dừng mức độ mô tả tổng quan ứng dụng toán cụ thể Khi có điều kiện em tiếp tục nghiên cứu phát triển thêm phần ứng dụng Em xin chân thành cảm ơn giúp đỡ thầy giáo Vũ Vinh Quang thầy cô giáo môn Khoa Học Máy Tính tận tình hướng dẫn để em hoàn thiện đề tài Thái nguyên, tháng 06 năm 2008 CHƯƠNG BÀI TOÁN TỐI ƯU HOÁ TỔNG QUÁT VÀ VẤN ĐỀ MÔ HÌNH HOÁ TOÁN HỌC 1.1 BÀI TOÁN TỐI ƯU HOÁ TỔNG QUÁT VÀ PHÂN LOẠI CÁC BÀI TOÁN Khi tiến hành kế hoạch hoá sản xuất, điều khiển hệ thống thiết kế kỹ thuật mà biết dựa nguyên tắc cực trị ta tiết kiệm vật tư tiền vốn, tài nguyên, sức lao động, thời gian tăng hiệu giải vấn đề đặt 1.1.1.Bài toán tối ưu hoá tổng quát Bài toán tối ưu hoá tổng quát phát biểu sau: Cực đại hoá (cự tiểu hoá) hàm: f(x)  max (min) (1.1) với điều kiện: gi(x) (, =, ≥) bi , i= 1…m (1.2) x X  Rn (1.3) Bài toán (1.1)  (1.3) gọi quy hoạch, hàm f(x) gọi hàm mục tiêu, hàm gi(x), i=1 m gọi hàm ràng buộc, đẳng thức bất đẳng thức hệ (1.2) gọi ràng buộc Tập hợp: D = { x  X | gi(x) (, , ≥) bi, i= n } (1.4) Được gọi miền ràng buộc (hay miền chấp nhận được) Mỗi điểm x = (x1, x2, …, xn)  D gọi phương án (hay lời giả chấp nhận được) Một phương án x*  D đạt cực đại hay cực tiểu hàm mục tiêu, cụ thể là: f(x*) ≥ f(x), x  D (đối với toán max) f(x*)  f(x), x  D (đối với toán min) Được gọi phương án tối ưu (lời giải tối ưu) Khi giá trị f(x*) gọi giá trị tối ưu toán 1.1.2 Phân loại toán Một phương pháp hiển nhiên để giải toán đặt phương pháp điểm diện: Tính giá trị hàm mục tiêu f(x) tất phương án, sau so sánh giá trị tính để tìm giá trị tối ưu phương án tối ưu toán Tuy nhiên cách giải khó thực được, kích thước toán (số biến n số ràng buộc m) không lớn, tập D thông thường gồm số lớn phần tử, nhiều trường hợp không đếm Vì cần phải có nghiên cứu trước mặt lý thuyết để tách từ toán tổng quát lớp toán “dễ giải” Các nghiên cứu lý thuyết thường là:  Nghiên cứu tính chất thành phần toán (hàm mục tiêu, hàm ràng buộc, biến số, hệ số…)  Các điều kiện tồn lời giải chấp nhận  Các điều kiện cần đủ cực trị  Tính chất đối tượng nghiên cứu Các tính chất thành phần toán đối tượng nghiên cứu giúp ta phân loại toán Một toán tối ưu gọi là:  Quy hoạch tuyến tính (QHTT) hàm mục tiêu f(x) tất hàm ràng buộc gi(x), i=1 m tuyến tính Một trường hợp riêng quan trọng QHTT toán vận tải  Quy hoạch tham số (QHTS) hệ số biểu thức hàm mục tiêu ràng buộc phụ thuộc vào tham số  Quy hoạch động (QHĐ) đối tượng xét trình có nhiều giai đoạn nói chung, hay trình phát triển theo thời gian nói riêng  Quy hoạch phi tuyến (QHPT) f(x) có hàm gi(x) phi tuyến hai trường hợp xảy  Quy hoạch rời rạc (QHRR) miền ràng buộc D tập rời rạc Trong trường hợp riêng biến nhận giá trị nguyên ta có quy hoạch nguyên (QHN) Một trường hợp riêng QHN quy hoạch biến booles biến số nhận giá trị Còn tối ưu hoá tổ hợp liên quan đến đặc tính hữu hạn đối tượng nghiên cứu, hay tồn cấu trúc cho ta định tính không gian tình cần so sánh  Quy hoạch đa mục tiêu (QHĐMT) miền ràng buộc ta xét hàm mục tiêu khác 1.2.VẤN ĐỀ MÔ HÌNH HOÁ TOÁN HỌC Việc mô hình hoá toán học cho vấn đề thực tế chia làm bước: Bước 1: Xây dựng mô hình định tính cho vấn đề thực tế tức xác định yếu tố có ý nghĩa quan trọng xác lập quy luật mà chúng phải tuân theo Nói cách khác phát triển mô hình lời biểu đồ, điều kiện kinh tê, kỹ thuật, tự nhiên, xã hội, mục tiêu cần đạt Bước 2: Xây dựng mô hình toán học cho vấn đề xét, tức diễn tả lại dạng ngôn ngữ toán học cho mô hình định tính Khi có hệ thống ta chọn biến số đặc trưng cho trạng thái hệ thống Mô hình toán học thiết lập mối liên hệ biến số cá hệ số điều khiển tượng Việc làm quan trọng bước phải xác định hàm mục tiêu, tức đặc trưng số mà giá trị lớn (càng nhỏ) tương ứng với hiệu tốt giải vấn đề mà người nhận lời giải mong muốn Tiếp theo phải diễn tả phương trình bất phương trình điều kiện kinh tế, kỹ thuật… Đó ràng buộc toán học mà biến số phải tuân theo Bước 3: Sử dụng công cụ toán học để khảo sát giải toán hình thành bước Căn vào mô hình xây dụng cần phải chọn xây dựng phương pháp giải cho phù hợp Tiếp cụ thể hoá phương pháp thuật toán tối ưu Vì toán thực tế thường có kích thước lớn nên giải tay mà phải sử dụng máy tính điện tử Vậy cần chương trình hoá thuật toán ngôn ngữ lập trình phù hợp Sau đưa lên máy tính điện tử để chạy in kết Bước 4: Phân tích kiểm định lại kết tính toán thu bước Trong bước cần phải xác định mức độ phù hợp mô hình kết tính toán với vấn đề thực nghiệm áp dụng phương pháp phân tích chuyên gia Ở xảy hai khả sau: Khả 1: Mô hình kết tính toán phù hợp với thực tế Khi cần lập tổng kết ghi rõ cách đặt vấn đề, mô hình toán học, thuật toán tối ưu, chương trình, cách chuẩn bị số liệu để đưa vào máy tính, nghĩa toàn công việc cần thiết cho việc áp dụng mô hình kết để giải vấn đề thực tế đặt Trong trường hợp mô hình cần sử dụng nhiều lần phải xây dựng hệ thống phần mềm đảm bảo giao diện thuận tiện người sử dụng máy tính điện tử, không đòi hỏi người sử dụng phải có trình độ chuyên môn cao toán Khả 2: Mô hình kết tính toán không phù hợp với thực tế Trong trường hợp cần phải xem xét nguyên nhân nó, tìm phương hướng giải CHƯƠNG TỔNG QUAN VỀ GIẢI THUẬT DI TRUYỀN 2.1 ĐÔI NÉT VỀ LỊCH SỬ Khái niệm di truyền biết tới từ năm 50, thời kỳ có ứng dụng lẻ tẻ để giải toán sinh học Một số nhà sinh vật học sử dụng máy tính để mô lại hệ thống di truyền phục vụ công việc nghiên cứu họ như: Barricelli năm 1957, Fraser năm 1960 – 1962, Martin Cockerham năm 1960 Nhưng thời kỳ chưa phát triển thành phương pháp luận mà sử dụng để giải toán riêng rẽ xuất phát từ sinh học Thuật toán di truyền (tên tiếng Anh Genetic Algorithm viết tắt GA) giới thiệu J H.Holland đồng nghiệp ông trường đại học Michigan vào năm 1975 Adaptation in Natural and Artificial Systems Ông xem “người cha” học thuyết Thuật giải di truyền sách trở thành tảng cho giới nghiên cứu GA hai thập niên qua Trong giai đoạn đầu thập niên 70 80 kỷ XX, phần lớn nhà nghiên cứu ứng dụng GA đào tạo đại học Michigan hướng dẫn giáo sư J.H.Holland số đồng nghiệp Kenneth De Jong, David E.Goldberg tạo nên tảng lý thuyết vững thực áp dụng GA để giải vấn đề phức tạp thực tế Tạp chí lý thuyết ứng dụng GA nguyệt san Evolutionarry Computation (1993) Kenneth De Jong chủ biên, có nguyệt san AI Expert, Arrtificial Intelligent thường có đề cập GA Tuy hình thành cách chưa đầy 25 năm, GA có sở toán học vững lý thuyết có số lượng áp dụng ngày gia tăng bao gồm nhiều lĩnh vực khác GA kết hợp với kỹ thuật thuộc lĩnh vực trí tuệ nhân tạo Hệ chuyên gia (Expert Systems), mạng lưới nơron nhân tạo (Arrtificial Neural Network) logic mờ (Fuzzy logic) nhằm tìm giải pháp tối ưu cho vấn đề phức tạp mà phương pháp cổ điển không giải thoả đáng GA ứng dụng nhiều lĩnh vực khác nhau, từ khoa học tự nhiên đến khoa học nhân văn, từ kỹ thuật sang thương vụ kinh tế - tài Những ứng dụng chia thành ba nhóm chính: Tìm mô hình tối ưu cho vấn đề hoạch định quy trình sản xuất, lộ trình chuyển vận, cách bố trí phận môi trường; chọn lựa nhóm hay thành phần tổ chức 2.2 THUẬT GIẢI DI TRUYỀN CỔ ĐIỂN 2.2.1 Thuật toán di truyền gì? Việc giải toán xem việc tìm không gian lời giải Trong thực tiễn, có nhiều toán tối ưu quan trọng đòi hỏi thuật giải chất lượng cao Ví dụ, ta áp dụng phương pháp mô luyện thép để tìm đường ngắn cho xe cứu hoả hay toán người du lịch,…Cũng có nhiều toán tối ưu tổ hợp (trong có nhiều chứng minh thuộc loại NP - đủ) giải gần máy tính đại kỹ thuật Monte – Cario Nói chung, toán tối ưu xem toán tìm kiếm giải pháp (tốt nhất) không gian (vô lớn) giải pháp Khi không gian tìm kiếm nhỏ, phương pháp cổ điển đủ thích hợp; không gian lớn cần phải dùng đến kỹ thuật Trí Tuệ Nhân Tạo đặc biệt Thuật toán di truyền (GA) kỹ thuật Thuật toán di truyền cổ điển kỹ thuật theo trình thích nghi tiến hoá quần thể sinh học dựa học thuyết Darwin Tư tưởng thuật toán di truyền mô tượng tự nhiên: kế thừa đấu tranh sinh tồn để cải tiến lời giải khảo sát không gian lời giải Khái niệm kế thừa đấu tranh sinh tồn giải thích qua thí dụ tiến hoá quần thể thỏ sau: Có quần thể thỏ Trong số có số nhanh nhẹn thông minh khác Những thỏ nhanh nhẹn thông minh có xác suất bị chồn cáo ăn thịt nhỏ hơn, cúng tồn để làm tốt có thể: Tạo thêm nhiều thỏ tốt Dĩ nhiên, số thỏ chậm chạp đần độn sống sót may mắn Quần thể thỏ sống sót bắt đầu sinh sản Việc sinh sản tạo hỗn hợp tốt “nguyên liệu di truyền thỏ” Một số thỏ chậm chạp có với thỏ nhanh, số thỏ nhanh với thỏ nhanh, số thỏ thông minh với thỏ đần độn, v.v… Và tất cả, thiên nhiên lại ném vào thỏ “hoang dã” cách làm đột biến nguyên liệu di truyền thỏ Những thỏ kết nhanh thông minh thỏ quần thể gốc có nhiều bố mẹ nhanh nhẹn thông minh thoát chết khỏi chồn, cáo Khi tìm kiếm lời giải tối ưu, thuật toán di truyền thực bước tương ứng với câu chuyện đấu tranh sinh tồn loài thỏ Thuật toán di truyền sử dụng thuật ngữ vay mượn di truyền học Ta nói cá thể (hay kiểu gen, cấu trúc) quần thể; cá thể gọi chuỗi hay nhiễm sắc thể Mỗi kiểu (nhóm) gen (ta gọi nhiễm sắc thể) biểu diễn lời giải toán giải (ý tưởng nhiễm sắc thể cụ thể người sử dụng xác định trước) tiến trình tiến hoá thực quần thể nhiễm sắc thể tương ứng với trình tìm kiếm lời giải không gian lời giải Tìm kiếm cần cân đối hai mục tiêu: Khai thác lời giải tốt khảo sát không gian tìm kiếm Leo đồi ví dụ chiến lược cho phép khai thác cải thiện lời giải tốt hành 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 ví dụ điển hình chiến lược khảo sát không gian tìm kiếm mà không ý đến việc khai thác vùng đầy hứa hẹn không gian Thuật toán di truyền (GA) phương pháp tìm kiếm (độc lập miền) tạo cân đối đáng kể việc khai thác khảo sát không gian tìm kiếm Thực ra, GA thuộc lớp thuật giải xác suất, lại khác thuật giải ngẫu nhiên chúng kết hợp phần tử tìm kiếm trực tiếp ngẫu nhiên Khác 10 5.3 ỨNG DỤNG GIẢI THUẬT DI TRUYỀN GIẢI BÀI TOÁN NGƯỜI DU LỊCH (TSP) 5.3.1 Bài toán Bài toán người du lịch: Một người khách du lịch muốn ghé thăm n thành phố, thành phố lần quay trở thành phố xuất phát Người khách phải bỏ chi phí định c[i,j] để từ thành phố i tới thành phố j Xác định hành trình thoả mãn điều kiện với tổng chi phí hành trình nhỏ Bài toán người du lịch toán tối ưu tổ hợp có nhiều ứng dụng Đã có nhiều phương pháp giải toán này: Phương pháp nhánh cận, phương pháp gần hay phương pháp tìm kiếm Heuristic Nhưng ta sử dụng giải thuật di truyền để giải toán 5.3.2 Các khó khăn thiết kế giải thuật di truyền Biểu diễn nhiễm sắc thể: Với toán tối ưu tổ hợp khác, việc dùng biểu diễn nhị phân biểu diễn không gặp khó khăn sử dụng trực tiếp phép toán di truyền truyền thống: Lai ghép, đột biến mà không cần phải biến đổi Điều không toán TSP dùng biểu diễn nhị phân cho toán có n thành phố thành phố phải đánh mã chuỗi gồm [log2 n] bít nhiễm sắc thể chuỗi gồm n*[long2 n] bít Đột biến tạo lộ trình không hợp lệ (Không thoả mãn điều kiện đầu bài) Phép lai gây vấn đề tương tự Do đó, sử dụng toán tử di truyền ta phải có cải tiến thích hợp Để khắc phục khó khăn ta đánh số thành phố dùng vector nguyên để biểu diễn nhiễm sắc thể lộ trình Một vector nguyên n thành phần V = (i1,i2,…,in) biểu diễn lộ trình từ i1 qua tất đỉnh đỉnh lần để đến in trở i1 Khởi tạo quần thể ban đầu: Ta sử dụng số thuật giải heuristic khởi tạo quần thể ban đầu cách tạo ngẫu nhiên mẫu từ hoán vị (1,2,…,n) 77 Các phép toán di truyền: Ta xây dựng phép lai OX sau: Cho trước hai thể cha mẹ, cá thể có cách chọn thứ tự lộ trình từ thể bảo toàn thứ tự tương đối thành phố cá thể lại Phép đột biến đơn giản thay đổi vị trí cá thể chọn 35.3.3 Các phương pháp biểu diễn vector nhiễm sắc thể a) Biểu diễn kề Biểu diễn kề biểu diễn hành trình danh sách n thành phố Thành phố j đạt danh sách vị trí i chuyến thành phố i đến thành phố j thí dụ, vectơ: (2 6) Biểu diễn hành trình sau đây: 124385967 Mỗi thành phố xuất lần danh sách kề, số danh sách kề biểu diễn hành trình bất hợp lệ, nghĩa là: (2 6) Dẫn đến: 1-2-4-1 Nghĩa là, hành trình có chu trình (xảy 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 định nghĩa cho biểu diễn kề: Lai có cạnh thay đổi, lai đoạn hành trình con, lai heuristic Lai cạnh thay đổi, tạo cách chọn (ngẫu nhiên) cạnh từ cha mẹ thứ nhất, chọn cạnh thích hợp từ cha mẹ thứ hai, vv… Toán tử mở rộng hành trình cách chọn cạnh từ cha mẹ luân phiên Nếu cạnh từ cha mẹ tạo chu trình vào hành trình hành, toán tử chọn cạnh thay (ngẫu nhiên) từ cạnh lại không tạo chu trình Thí dụ, thứ từ hai cha mẹ: P1=(2 6) 78 P2=(7 3) Có thể là: O1 = (2 3) Ở tiến trình khởi đầu từ cạnh (1,2) cha mẹ P1, cạnh ngẫu nhiên tạo thành tiến trình xen kẽ cạnh (7,6) thay (7,8) tạo chu trình sớm Lai đoạn hành trình con, tạo cách chọn hành trình (chiều dài ngẫu nhiên) từ cha mẹ khác … Toán tử mở rộng hành trình cách chọn cạnh từ cha mẹ luân phiên Lần nữa, cạnh (từ cha mẹ tạo chu trình vào hành trình hành, toán tử chọn cạnh thay từ cạnh lại không tạo chu trình) Lai heuristic tạo cách chọn thành phố ngẫu nhiên làm điểm khởi hành cho hành trình Rồi so sánh hai cạnh (từ hai cha mẹ) rời thành phố chọn cạnh (ngắn hơn) tốt Thành phố đầu bên cạnh chọn dùng làm điểm khởi hành việc chọn cạnh ngắn hai cạnh rời thành phố này… Nếu, giai đoạn đó, cạnh đưa chu trình vào hành trình, hành trình mở rộng cạnh ngẫu nhiên từ cạnh lại không tạo chu trình Tác động toán tử để dán đường dẫn ngắn ngắn hành trình cha - mẹ Nhưng để lại giao điểm không muốn có cạnh lý mà lai heuristic không thích hợp cho việc dò tìm xác hành trình Suh Gucht đưa vào toán tử heuristic bổ sung (dựa thuật giải 2-opt) thích hợp cho việc dò tìm xác Toán tử chọn ngẫu nhiên hai cạnh (i,j) (k,m) kiểm tra xem: dist(i,j) + dist(k,m) > dist(i,m) + dist(k,j) Trong dist(a,b) khoảng cách hai thành phố a b Nếu trường hợp cạnh (i,j) (k,m) hành trình thay cạnh (i,m) (k,j) 79 Một thuận lợi biểu diễn kề ta sử dụng lý thuyết lược đồ để phân tích Các lược đồ tương đương với khối kiến trúc tự nhiên, nghĩa cạnh, lược đồ sau: (***3*7***) Biểu thị tập tất hành trình với cạnh (4,3) (6,7) bất lợi biểu diễn kết tương đối xấu tất toán tử Lai cạnh xen kẽ thường làm rối loạn hành trình tốt thao tác qua cạnh xen kẽ từ hai cha mẹ Lai đoạn hành trình thực tốt lai đoạn xen kẽ, tỉ lệ rối loạn thấp Nhưng, kết thấp Dĩ nhiên lai heuristic toán tử tốt hai phép lai mù quáng, nghĩa chúng không để ý đến chiều dài thực cạnh Mặt khác, lai heuristic chọn cạnh tốt hai cạnh mà thực tốt hai cách Nhưng, kết lai heuristic xuất sắc: Trong nhiều thí nghiệm 50, 100, 200 thành phố hệ thống tìm hành trình cỡ 25%, 15%, 27% tối ưu, khoảng 15000, 20000, 25000 hệ b) Biểu diễn thứ tự Biểu diễn thứ tự biểu diễn hành trình danh sách n thành phố, phần tử thứ i danh sách số khoảng từ đến n-i+1 Ý nghĩa biểu diễn thứ tự Có danh sách thứ tự thành phố C, dùng làm điểm tham chiếu cho danh sách biểu diễn thứ tự Ví dụ: C=( ) Một hành trình: 1–2–4–3–8–5–9–6-7 Được biểu diễn danh sách L tham chiếu: L=(1 1 ) Và phải thông dịch sau: 80  Số thứ danh sách l 1, lấy thành phố thứ danh sách C thành phố thứ hành trình (thành phố số 1) lấy khỏi C Hành trình phần là:  Số danh sách lấy thành phố thứ danh sách (còn lại) hành C thành phố hành trình (thành phố thứ 2), lấy khỏi C Hành trình phần là: 1–2–4  Số danh sách l 2, lấy thành phố thứ hai danh sách hành C thành phố hành trình (thành phố số 3) lấy khỏi C Hành trình phần hành là: 1–2–4–3  Số danh sách l 4, lấy thành phố thứ tư danh sách hành C thành phố hành trình (thành phố số 8) lấy khỏi C Hành trình phần hành là: 1–2–4–3–8  Số danh sách l 1, lấy thành phố thứ danh sách hành C thành phố hành trình (thành phố số 5) lấy khỏi C Hành trình phần hành là: 1–2–4–3–8–5  Số danh sách l 3, lấy thành phố thứ ba danh sách hành C thành phố hành trình (thành phố số 9) lấy khỏi C Hành trình phần hành là: 1–2–4–3–8–5–9 Có lẽ biểu diễn đường dẫn biểu diễn tự nhiên hành trình Thí dụ hành trình: 5–1–7–8–9–4–6–2–3 Đơn giản biểu diễn là: 81 (5 3) Cho đến gần đây, có phép lai định nghĩa cho biểu diễn đường dẫn: Lai ánh xạ phần (PMX), thứ tự (OX), chu trình (CX) Ta bàn chúng:  PMX Golberg Lingle đề nghị tạo cách chọn chuỗi hành trình từ cha mẹ đồng thời bảo toàn thứ tự vị trí tối đa thành phố từ cha mẹ Một chuỗi hành trình chọn cách thao tác hoán vị Thí dụ, hai cha mẹ (với hai diểm cắt đánh dấu ‘|’) P1 = (1 | | 9) P2 = (4 | | 3) Tạo theo cách sau, trước hết đoạn đoạn điểm cắt hoán vị (dấu ‘x’ hiểu ‘hiện chưa biết’) O1 = (x x x | | x x) O2 = (x x x | | x x) Hoán vị định nghĩa loạt ánh xạ:  ,  5, 7 6,  Rồi ta thêm vào thành phố (từ cha mẹ gốc) mà xung đột O1 = (x | | x 9) O2 = (x x | | 3) Cuối cùng, x O1 (lẽ phải 1, xung đột) thay 4, ánh xạ (1  4) Tương tự, x thứ hai O1 Các là: O1 = (4 | | 9) O2 = (1 | | 3) Lai PMX khai thác điểm tương đồng quan trọng giá trị xếp bậc đồng thời sử dụng với kế hoạch sinh sản thích hợp 82  OX – Davis đề nghị tạo cách chọn chuỗi hành tình từ cha mẹ bảo tồn thứ tự tương đối thành phố cha mẹ Thí dụ, hai cha mẹ (với hai điểm cắt đánh dấu ’|’) P1 = (1 | | 9) P1 = (4 | | 3) Tạo sau Đầu tiên, đoạn điểm cắt chép vào con: O1 = (x x x | | x x) O2 = (x x x | | x x) Kế đến, điểm cắt thứ hai cha mẹ, thành phố từ cha mẹ chép theo thứ tự, bỏ dấu hiệu có Đến cuối chuỗi, ta tiếp tục từ vị trí chuỗi Thứ tự thành phố cha mẹ thứ hai (từ điểm cắt thứ hai) là: 9–3–4–5–2–1–8–7–6 Sau bỏ thành phố 4, 5, có thứ nhất, ta có: 9–3–2–1–8 Thứ tự đặt vào thứ (Bắt đầu từ điểm cắt thứ hai) O1 = (2 | | 3) Tương tự ta có là: O2 = (3 | | 2) Lai tạo OX khai thác thuộc tính biểu diễn đường dẫn, mà thứ tự thành phố (chứ vị trí chúng) 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 giống 83  CX, Oliver đề nghị, xây dựng theo cách thành phố (và vị trí nó) xuất phát từ cha mẹ Ta giải thích thể lai chu trình thí dụ sau Hai cha mẹ: P1 = (1 9) P2 = (4 5) Sẽ tạo thứ cách lấy thành phố thứ từ cha mẹ thứ O1 = (1 x x x x x x x x ) Do thành phố lấy từ cha mẹ (từ vị trí), nên ta chọn lựa nào: Thành phố xét phải thành phố 4, thành phố từ cha mẹ P2 bên thành phố chọn Trong P1 thành phố vị trí ‘4’, vậy: O1 = (1 x x x x x x x) Điều này, trở lại bao hàm thành phố 8, thành phố từ cha mẹ P2 bên thành phố chọn vậy: O1= (1 x x x x x x) Theo quy luật này, thành phố gộp vào thứ Nhưng ý việc chọn thành phố đòi hỏi việc chọn thành phố 1, có danh sách ta hoàn thành chu trình: O1 = (1 x x x x ) Các thành phố lại hoàn thành từ cha mẹ kia: O1 = (1 5) Tương tự: O2 = (4 9) CX bảo toàn vị trí tuyệt đối phần tử theo thứ tự cha mẹ Có thể định nghĩa toán tử khác cho biểu diễn đường dẫn Whitley, Starweather Fuquay phát triển toán tử lai tạo mới: Lai tạo tái kết hợp cạnh (ER), chuyển 95% cạnh từ cha mẹ cho đứa Toán tử ER khai thác thông tin cạnh hành trình 84 Việc xây dựng bắt đầu việc chọn thành phố khởi tạo từ cha mẹ Thành phố có số cạnh nhỏ chọn Nếu số chọn ngẫu nhiên Điều dẫn tới khả rủi ro (đến phát triển cạnh tiếp) cao Lai tái kết hợp cạnh mở rộng hai năm sau đó, lời giải đề nghị hiệu chỉnh danh sách cạnh cách lưu trữ thành phố có cờ (thành phố liệt kê lần) Đã có nhiều chương tình tiến hoá dựa biểu diễn ma trận nhiễm sắc thể cho TSP Ta nghiên cứu phương pháp 5.3.4 chương trình tiến hoá cho toán TSP Thuật toán Phương pháp Homaifar Guan đưa dựa biểu diễn ma trận kề M: Nếu có cạnh từ thành phố i tới thành phố j M= mij = Nếu Hai toán tử lai ma trận (MX) định nghĩa sau: Những toán tử trao đổi tất mục nhập hai ma trận cha mẹ sau điểm lai tạo (hoặc sau điểm lai tạo) Và thuật giải sửa chữa để loại chỗ trùng (mỗi hàng, cột có xác số 1) cắt, nối chu trình (nếu có) nhằm nhận hành trình hợp lệ Một toán tử khác sử dụng bổ sung cho phép lai MX đảo Heuristic: Đảo thứ tự thành phố hai điểm cắt Nếu khoảng cách hai điểm cắt lớn (đảo thứ tự cao), toán tử khai thác mối kết đường dẫn tốt Ngược lại, đảo thứ tự thấp, toán tử thực tìm kiếm cục có điểm khác so với phép đảo cổ điển: 85  Kết chấp nhận hành trình tốt hành trình gốc  Thủ tục đảo chọn thành phố hành kiểm soát cải thiện cho lần đảo thứ tự Đảo thứ cho kết cải thiện chấp nhận thủ tục đảo chấm dứt Ngược lại, xét đến thứ tự tiếp tục Các thuật giải tìm kiếm cục dùng làm sở cho việc phát triển giải thuật di truyền, thực hiện:  Sử dụng thuật toán tìm kiếm cụ để thay hành trình quần thể hành hành trình (Tối ưu cục bộ)  Mở rồng quần thể  hành trình bổ sung, toán tử tái kết hợp áp dụng vào số hành trình quần thể hành  Sử dụng thuật giải tìm kiếm cục để thay đổi số  quần thể mở rộng hành trình (tối ưu cục bộ)  Giảm kích thước quần thể mở rộng kích thước gốc  theo số chọn lọc  Lặp lại ba bước cuối gặp điều kiện dừng  Đánh giá: Sử dụng giải thuật di truyền để phát triển nghiệm cho toán Người du lịch (TSP) Trong toán này, yêu cầu đặt tìm khoảng cách ngắn n thành phố khác Đường mà người du lịch lựa chọn gọi “hành trình” Kiểm tra tất khả cho hành trình qua n thành phố phải thực n! phép cộng Một hành trình qua 30 thành phố phải tổng khoảng cách 2.56 X 1032 hành trình khác Giả sử thực tỷ phép tính giây công việc 252,333,390,232,297 năm Cứ thêm thành phố thêm thời gian tăng lên với hệ số 31 Rõ ràng cách giải không khả thi Giải thuật di truyền sử dụng đề tìm giải pháp thời gian Mặc dù không tìm nghiệm tốt nhất, tìm nghiệm gần cho hành trình qua 100 thành phố thời gian 86 phút Có cặp gồm bước để giải toán TSP dùng giải thuật di truyền Thứ nhất, Tạo nhóm nhiều hành trình ngẫu nhiên gọi quần thể Thuật toán sử dụng quần thể khởi tạo tham lam đưa ưu tiên thành phố liên kết thành phố gần Thứ hai, chọn hai số hành trình tốt làm cha mẹ quần thể kết hợp chúng để tạo hành trình Hy vọng hành trình tốt cha mẹ chúng Một phần nhỏ thời gian, hành trình quần thể giống Các hành trình đưa vào quần thể cách thay hai hành trình dài Kích thước quần thể bảo toàn Các hành trình liên tiếp tạo cách lặp lại tìm thấy hành trình mong muốn Hai vấn đề phức tạp dùng giải thuật di truyền để giải toán TSP việc mã hoá hành tình thuật toán lai ghép dùng để kết hợp hai hành trình cha mẹ tạo hành trình Trong giải thuật di truyền chuẩn, việc mã hoá đơn giản dãy số phép lai ghép thực cách chọn ngẫu nhiên điểm dãy cha mẹ hoán đổi số dãy sau điểm chọn Trong ví dụ đây, điểm lai ghép thành phần thứ thứ danh sách Để tạo hành trình con, thành phần dãy cha mẹ sau điểm lai ghép đổi chỗ Parent FAB|ECGD Parent DEA|CGBF Child FAB|CGBF Child DEA|ECGD Khó khăn với toán TSP thành phố xuất lần hành trình Nếu chữ ví dụ thể cho thành phố hành 87 trình tạo phép toán lai ghép không hợp lệ, hành trình Child qua thành phố F B hai lần không qua thành phố D E Việc mã hoá không đơn giản liệt kê thành phố theo thứ tự thăm Các phương pháp mã hóa khác tạo để giải vấn đề lai ghép Mặc dù phương pháp không tạo hành trình không hợp lệ, chúng không phát hành tình “A B C D E F G” “G F E D C B A” tương tự Để giải toán cách xác, thuật toán lai ghép phải phức tạp nhiều Nghiệm đưa lưu trữ liên kết theo hai chiều kết nối cho hành trình Trong ví dụ trên, parent lưu trữ sau: Thành phố Kết nối thứ Kết nối thứ hai A F B B A E C E G D G F E B C F D A G C D Phép toán lai ghép phức tạp kết hợp chuỗi Lai ghép nhận tất liên kết tồn hai cha mẹ đặt liên kết hai Khi đó, với Child 1, xen kẽ liên kế xuất Parent sau Parent Với Child 2, xen kẽ liên kết tạo hành trình không hợp lệ mà thay đường đơn hành trình có vài đường không liên thông Các liên kết phải bị loại Để điền vào vị trí liên kết thiếu, thành phố chọn ngẫu nhiên Do lai ghép không hoàn toàn ngẫu nhiên, xem xét lai ghép tham lam Một cách ngẫu nhiên, giải thuật di truyền tạo nghiệm giống Đây ý tưởng Mỗi hành trình quần thể xác định 88 giải thuật di truyền tìm nghiệm tốt Có hai cách tránh điều Thứ dùng quần thể khởi tạo lớn giải thuật di truyền nhiều thời gian để tạo tất nghiệm tương tự Phương pháp thứ hai đột biến, vài hành trình xen kẽ ngẫu nhiên để tạo hành trình Giải thuật di truyền sử dụng quần thể khởi tạo theo thuật toán tham lam Các liên kết thành phố hành trình khởi tạo không hoàn toàn ngẫu nhiên GA tạo liên kết thành phố gần Việc không thực 100% thời gian gây việc tất hành trình quần thể khởi tạo giống Kích thước quần thể: Là số hành trình ngẫu nhiên khởi tạo thuật toán bắt đầu Một quần thể lớn nhiều thời gian để tìm kết Một quần thể nhỏ làm tăng khả mà hành trình quần thể tương tự nhau, dẫn đến tăng khả không tìm nghiệm tối ưu Nhận xét: Chương trình thực với số đỉnh đồ thị lớn, với kích thước quần thể, xác suất lai ghép xác suất đột biến xác định trước Hành tình khởi tạo xác định cách kết nối đỉnh lân cận với Sau thực phép toán di truyền để thay hành trình không tốt hành trình tốt Kết đưa hành trình gần tối ưu 89 KẾT LUẬN Trên kiến thức mà em thu thập tìm hiểu thuật toán di truyền ứng dụng nó, em cố gắng với nhiệt tình giúp đỡ thầy giáo hướng dẫn thầy môn, nhiên đồ án nhiều thiếu sót nhược điểm cần khắc phục: Chưa tìm hiểu thật nhiều ứng dụng thuật toán di truyền, giao diện chưa đẹp, Em hy vọng với lượng kiến thức mà tìm hiểu giúp ích cho em trường Ngoài ứng dụng rộng rãi thuật toán di truyền cho toán tối ưu đa mục tiêu nhiều ứng dụng khác em mong mai sau có điều kiện để tìm hiểu sâu rộng Nếu có điều kiện phát triển đề tài em tìm hiểu kỹ thuật toán di truyền đặc biệt phần ứng dụng Sử dụng ngôn ngữ phù hợp với thuật toán Em hy vọng nhận hiều ý kiến đóng góp thầy cô giáo môn thầy cô giáo khoa để hoàn chỉnh chương trình khắc phục nhược điểm tồn đọng đề tài Em xin chân thành cảm ơn! 90 TÀI LIỆU THAM KHẢO [1] Nguyễn Đình Thúc, Trí tuệ nhân tạo: Lập trình tiến hoá, Nhà xuất bàn giáo dục thành phố Hồ chí Minh, 2001 [2] Hoàng Kiếm Nguyễn Đình Thúc, hội tụ quy hồi di truyền, Hội nghị khoa học trường ĐHKHTN lần 2, 2000 [3] Hoàng Kiếm, Lê Hoàng Thái, Giải thuật di truyền: Cách giải tự nhiên toán máy tính, Nhà xuất giáo dục [4] Võ Huỳnh Trâm, Trần Ngân Bình, Giáo trình trí tuệ nhân tạo, nhà xuất giáo dục [5] Nguyễn Thị Thương, Khóa luận tốt nghiệp, 2005 [6] Hoàng Đình Hạnh, Luận văn thạc sĩ khoa học, 2006 [7] J.R.GOLDBERG - D.E.FOGEL, Genetic programming 1996 proceeding of the first annual conference, Cambrige, MA Mit press [8] http://felk.com [9] http://codeproject.com 91

Ngày đăng: 04/08/2016, 09:01

Từ khóa liên quan

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

Tài liệu liên quan