TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN VIỆN CÔNG NGHỆ THƠNG TIN KINH TẾ ~~~~~~*~~~~~~ BÀI TẬP LỚN TRÍ TUỆ NHÂN TẠO Đề tài: Tìm hiểu giải thuật di truyền Giảng viên hướng dẫn: ThS Lưu Minh Tuấn Sinh viên thực hiện: Đồng Văn Thịnh Lớp :CNTT49A Hà Nội,12/2010 MỤC LỤC MỤC LỤC .2 LỜI NÓI ĐẦU PHẦN I: THUẬT TOÁN DI TRUYỀN I.Giới thiệu: II Nội dung 2.1 Cơ sở lý thuyết 2.2 Cấu trúc thuật toán di truyền tổng quát .7 2.3 Các công thức thuật giải di truyền PHẦN II: ỨNG DỤNG 10 I.Ứng dụng 10 II.Chương trình 11 PHẦN III: KẾT LUẬN 16 I.Ưu điểm 17 II Khuyết điểm 17 III Ý kiến thân 17 LỜI NÓI ĐẦU Trong ngành khoa học máy tính, tìm kiếm lời giải tối ưu cho toán vấn đề nhà khoa học máy tính đặc biệt quan tâm Mục đích thuật tốn tìm kiếm lời giải tìm lời giải tối ưu cho toán thời gian nhỏ Các thuật toán tìm kiếm khơng có thơng tin / vét cạn ( tìm kiếm danh sách, đồ thị ) sử dụng phương pháp đơn giản trực quan thuật tốn tìm kiếm có thơng tin sử dụng heurictics để áp dụng tri thức cấu trúc khơng gian tìm kiếm nhằm giảm thời gian cần thiết cho việc tìm kiếm sử dụng nhiều với khơng gian tìm kiếm nhỏ khơng hiệu tìm kiếm khơng gian tìm kiếm lớn Tuy nhiên, thực tiễn có nhiều tốn tối ưu với khơng gian tìm kiếm lớn cần phải giải Vì vậy, việc địi hỏi thuật giải chất lượng cao sử dụng kỹ thuật trí tuệ nhân tạo đặc biệt cần thiết giải tốn có khơng gian tìm kiếm lớn Thuật giải di truyền (genetic algorithm) kỹ thuật tìm kiếm lời giải tối ưu đáp ứng yêu cầu nhiều toán ứng dụng Hiện nay, thuật toán di truyền với logic mờ ứng dụng rộng rãi lĩnh vực phức tạp Thuật toán di truyền kết hợp với logic mờ chứng tỏ hiệu vấn đề khó giải phương pháp thông thường hay phương pháp cổ điển, tốn cần có lượng giá, đánh giá tối ưu kết thu Chính vậy, thuật giải di truyền trở thành đề tài nghiên cứu thú vị đem đến nhiều ứng dụng thực tiễn Ngày nay, GA ứng dụng nhiều lĩnh vực khoa học, kinh doanh giải trí Đầu tiên phải kể đến toán tối ưu bao gồm tối ưu số tối ưu tổ hợp sử dụng GA để tìm lời giải toán người du lịch (Travelling Salesman Problems - TSP) Ứng dụng GA thiết kế điều kiển robo Hầu có ngành CNTT phát triển quan tâm đến lĩnh vực thiết kế robo nhằm giúp người tiết kiệm sức lao động giải phóng người khỏi công việc nguy hiểm, đặc biệt thi “Robocon” Châu Á_ Thái Bình Dương nước khu vực quan tâm Ngoài phần cơ, để robo tiến hành hoạt động đơn giản đi, đứng… robo cần phải trang bị chương trình lập trình dựa thuật tốn ngơn ngữ thích hợp Nhờ vào lịch trình cài đặt với trí tuệ nhân tạo…, robo định hướng thực hoạt động người Tuy nhiên, việc tìm kiếm lời giải tốt cho hành động robo đơn giản Theo nhà khoa học máy tính, thuật giải di truyền thuật toán tối ưu giúp robo vạch lộ trình di chuyển Với lý trên, em chọn đề tài: “Thuật giải di truyền ứng dụng” PHẦN I: THUẬT TOÁN DI TRUYỀN I.Giới thiệu: Thuật toán di truyền thuật toán tối ưu ngẫu nhiên dựa chế chọn lọc tự nhiên tiến hóa di truyền Nguyên lý thuật toán di truyền Holland giới thiệu vào năm 1962 Cơ sở toán học phát triển từ cuối năm 1960 giới thiệu sách Holland, Adaptive in Natural and Artificial Systems Thuật toán di truyền ứng dụng hai lĩnh vực chính: tối ưu hóa học tập máy Trong lĩnh vực tối ưu hóa thuật tốn di truyền phát triển nhanh chóng ứng dụng nhiều lĩnh vực khác tối ưu hàm, xử lý ảnh, toán hành trình người bán hàng, nhận dạng hệ thống điều khiển Thuật toán di truyền thuật tốn tiến hóa nói chung, hình thành dựa quan niệm cho rằng, q trình tiến hóa tự nhiên q trình hồn hảo nhất, hợp lý tự mang tính tối ưu Quan niệm xem tiên dề dúng, không chứng minh được, phù hợp với thực tế khách quan Quá trình tiến hóa thể tính tối ưu chỗ, hệ sau tốt (phát triển hơn, hồn thiện hơn) hệ trước tính kế thừa dấu tranh sinh tồn II Nội dung 2.1 Cơ sở lý thuyết Thuật tốn di truyền gồm có bốn quy luật lai ghép, đột biến, sinh sản chọn lọc tự nhiên sau: 2.1.1 Quá trình lai ghép (phép lai) Quá trình diễn cách ghép hay nhiều đoạn gen từ hai nhiễm sắc thể cha-mẹ để hình thành nhiễm sắc thể mang đặc tính cha lẫn mẹ Phép lai mơ tả sau: Chọn ngẫu nhiên hai hay nhiều cá thể quần thể Giả sử chuỗi nhiễm sắc thể cha mẹ có chiều dài m Tìm điểm lai cách tạo ngẫu nhiên số từ đến m-1 Như vậy, điểm lai chia hai chuỗi nhiễm sắc thể cha-mẹ thành hai nhóm nhiễm sắc thể m1 m2 Hai chuỗi nhiễm sắc thể lúc m11+m22 m21+m12 Đưa hai chuỗi nhiễm sắc thể vào quần thể để tiếp tục tham gia q trình tiến hóa 2.1.2 Q trình đột biến (phép đột biến): Q trình tiến hóa gọi trình đột biến tính trạng khơng thừa hưởng từ hai chuỗi nhiễm sắc thể cha-mẹ Phép đột biến xảy với xác suất thấp nhiều lần so với xác suất xảy phép lai Phép đột biến mơ tả sau: Chọn ngẫu nhiên số k từ khoảng ≥ k ≥ m Thay đổi giá trị gen thứ k Đưa nhiễm sắc thể vào quần thể để tham gia trình tiến hóa 2.1.3 Q trình sinh sản chọn lọc (phép tái sinh phép chọn) Phép tái sinh: trình cá thể chép dựa độ thích nghi Độ thích nghi hàm gán giá trị thực cho cá thể quần thể Phép tái sinh mơ sau: Tính độ thích nghi cá thể quần thể, lập bảng cộng dồn giá trị thích nghi (theo thứ tự gán cho cá thể) ta tổng độ thích nghi Giả sử quần thể có n cá thể Gọi độ thích nghi cá thể thứ i Fi, tổng dồn thứ i Ft.Tổng độ thích nghi Fm Tạo số ngẫu nhiên F có giá trị đoạn từ đến Fm Chọn cá thể k thỏa mãn F ≥ Ft đưa vào quần thể hệ Phép chọn: trình loại bỏ cá thể xấu để lại cá thể tốt Phép chọn mô tả sau: Sắp xếp quần thể theo thứ tự độ thích nghi giảm dần Loại bỏ cá thể cuối dãy, để lại n cá thể tốt 2.2 Cấu trúc thuật toán di truyền tổng quát Bước Thuật toán di 1: Khởi tạo truyền bao gồm quần thể nhiễm bước sau: sắc thể Bước 2: Xác định giá trị thích nghi nhiễm sắc thể Bước 3: Sao chép lại nhiễm sắc thể dựa vào giá trị thích nghi chúng tạo nhiễm sắc thể phép toán di truyền Bước 4: Loại bỏ thành viên khơng thích nghi quần thể Bước 5: Chèn nhiễm sắc thể vào quần thể để hình thành quần thể Bước 6: Nếu mục tiêu tìm kiếm đạt dừng lại, khơng trở lại bước