nghiên cứu giải thuật ga và giải bài toán chiếc balo loại 2

15 914 46
nghiên cứu giải thuật ga và giải bài toán chiếc balo loại 2

Đ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

HỌC VIỆN KỸ THUẬT QUÂN SỰ KHOA CÔNG NGHỆ THÔNG TIN BÀI TẬP LỚN MÔN HỌC TRÍ TUỆ NHÂN TẠO Đề Tài Nghiên Cứu Giải Thuật GA Giải Bài Toán Chiếc Balô Loại 2 GIẢNG VIÊN BỘ MÔN: TS Ngô Hữu Phúc HỌC VIÊN THỰC HIỆN: Giảng Thanh Trọn TP. HCM, THÁNG 08 NĂM 2012 NHẬN XÉT CỦA GIẢNG VIÊN BỘ MÔN LỜI CẢM ƠN Trước hết, cho em gửi lời cảm ơn chân thành nhất đến TS NGÔ HỮU PHÚC - Giảng viên Bộ môn Khoa Học Máy Tính. Người đã giảng dạy và truyền đạt chúng em kiến thức về môn học đồng thời là người hướng dẫn và định hướng cho em trong quá trình hoàn thiện Bài tập này. Em đã cố gắng thật nhiều để hoàn thành Bài tập. Tuy nhiên, kết quả tìm hiểu chưa hoàn thiện còn nhiều thiếu sót. Rất mong Thầy xem xét và đ óng góp ý kiến để kết quả tìm hiểu được hoàn thiện hơn./. Học Viên Thực Hiện Giảng Thanh Trọn NỘI DUNG TÌM HIỂU Nội dung nghiên cứu của Bài Tập bao gồm những thành phần sau: 1. Giới Thiệu Bài Toán Chiếc Ba Lô Loại 2. 2. Tìm Hiểu Giải Thuật GA. 3. Ứng Dụng Giải Thuật GA Vào Giải Bài Toán Chiếc BaLô Loại 2. 4. Cài Đặt Ứng Dụng. 1. Mô Tả Bài Toán Chiếc Ba Lô Loại 2 Bài toán xếp ba lô hay cũng được gọi là bài toán cái túi, là một bài toán tối ưu hóa tổ hợp. Bài toán được đặt tên từ vấn đề chọn những gì quan trọng có thể nhét vừa trong một cái túi với giới hạn khối lượng để mang theo trong một chuyến đi. Giả sử Nội dung bài toán được phát biểu dựa theo hành động của một kẻ trộm: Một kẻ trộm đột nh ập vào một cửa hiệu tìm thấy có n mặt hàng có trọng lượng và giá trị khác nhau, nhưng hắn chỉ mang theo một cái túi có sức chứa về trọng lượng tối đa là M. Vậy kẻ trộm nên bỏ vào ba lô những món nào và số lượng bao nhiêu để đạt giá trị cao nhất trong khả năng giới hạn của cái túi mà hắn có thể mang đi được. Dạng bài toán quyết định của bài toán xếp ba lô là câu hỏi "có th ể đạt được một giá trị nhiều nhất là bao nhiêu theo phát biểu của bài toán". Ta có n loại đồ vật, x1 tới xn. Mỗi đồ vật xj có một giá trị pj và một khối lượng wj. Khối lượng tối đa mà ta có thể mang trong ba lô là C. Mỗi vật có thể được chọn hoặc không được chọn. (Ảnh minh họa) Thực tiễn có rất nhiều bài toán tối ưu với không gian tìm kiếm rất lớn cần phải giải quyết. Vì vậy, việc đòi hỏi tìm ra một thuật giải tốt và vận dụng trí tuệ nhân tạo vào giải quyết bài toán là rất cần thiết đặc biệt với những bài toán có không gian tìm kiếm lớn. Thuật giải di truyền - Genetic Algorithm là một trong những thuật giải tìm kiếm lời giải tối ưu đã đáp ứng được yêu cầu của nhiều bài toán và ứng dụng. Hiện nay, thuật toán di truyền được ứng dụng rất rộng rãi trong các lĩnh vực phức tạp, nó chứng tỏ được hiệu quả trong các vấn đề khó có thể giải quyết bằng các phương pháp thông thường hay các phương pháp cổ điển, nhất là trong các bài toán cần có sự lượng giá, đánh giá sự tối ưu của kế t quả thu được. Chính vì vậy, thuật giải di truyền đã trở thành đề tài nghiên cứu thú vị và đem đến nhiều ứng dụng trong thực tế. Trong khuôn khổ của đề tài này, em xin trình bày nội dung của giải thuật di truyền - Genetic Algorithm và ứng dụng của nó trong việc giải quyết bài toán Chiếc ba lô loại 2 với phương pháp lựa chọn. 2. Tìm Hiểu Giải thuật Di Truyền Genetic Algorithm - GA 2.1. Khái quát về giải thuật Di Truyền Lịch sử ra đời của giải thuật di truyền Trước tiên, ý niệm về giải thuật di truyền đã được một số nhà sinh vật học đưa ra từ những năm 50-60, thế kỉ XX. A.S. Fraser là người tiên phong nêu lên sự tương đồng giữa sự tiến hóa của sinh vật và chương trình tin học giả tưởng về Genetic Algorithms – viết tắc là GA. Tuy nhiên, chính John Henry Holland mới là người triển khai ý tưởng và phương pháp giải quy ết vấn đề dựa theo sự tiến hóa. Từ những bài giảng, bài báo của mình, ông đã đúc kết các ý tưởng vào trong cuốn sách đầu tay Adaptation in Natural and Artificial Systems, xuất bản năm 1975. Dựa trên lý thuyết cơ bản về GA của Holand, Keneth De Jong đã triển khai và chứng minh những thành quả do ông thực hiện đã góp phần quan trọng trong việc tạo ra nền tảng toán học cho lý thuyết GA Lần đầu tiên Holand nghiên cứu các giải thuật này, chúng hoàn toàn không có tên. Do nguồn gốc của phương pháp này là từ các gen di truyền, Holand đã đặt tên cho nó là thuật giải di truyền. Các đặc điểm, đặc trưng của giải thuật di truyền Giải thuật di truyền đã mô phỏng sự chọn lọc tự nhiên và di truyền. Trong tự nhiên, các cá thể khỏe, có khả năng thích nghi với môi trường tốt sẽ được tồn tại và phát tri ển ở các thế hệ sau. Mỗi cá thể có cấu trúc gen đặc trưng cho tính chất của cá thể đó. Trong quá trình sinh sản, các cá thể con có thể thừa hưởng các phẩm chất của cha mẹ, cấu trúc gen của nó mang một phần cấu trúc gen của cha mẹ. Ngoài ra, trong quá trình tiến hóa, có thể xảy ra hiện tượng đột biến, cấu trúc gen của cá thể con có thể chứa các gen mà cả cha mẹ đều không có. Trong giải thuật di truyền, mỗi cá thể được mã hóa bởi một cấu trúc dữ liệu mô tả cấu trúc gen của cá thể đó, ta gọi nó là nhiễm sắc thể. Mỗi nhiễm sắc thể được tạo thành từ các đơn vị được gọi là gen. Giải thuật di truyền sẽ làm việc trên các quần thể gồm nhiều cá thể. Một quần thể ứng với một giai đoạn phát triển gọi là một thế h ệ. Từ một thế hệ được tạo ra, giải thuật di truyền bắt chước sự chọn lọc tự nhiên và di truyền để biến đổi các thế hệ. Các thành phần của giải thuật di truyền 1. Khởi tạo quần thể - Initializetion Là quá trình tạo quần thể đầu tiên trong giải thuật, là nơi xuất phát quá trình tiến hóa, bao gồm tất cả các giá trị thô ban đầu. Tùy theo vấn đề c ủa bài toán mà có cách khởi tạo khác nhau. Quá trình được thực hiện bằng cách tạo ngẫu nhiên một số cá thể chấp nhận được để được một quần thể phù hợp với kích thước quần thể được quy định sẵn. 2. Hàm thích nghi - Fitness Function Gán giá trị thích nghi cho mỗi cá thể. Giá trị thích nghi càng sát với thực tế thì độ chính xác sẽ càng cao. 3. Lựa chọn để kết hợp lại - Selection For Recombine Có nhiều phương pháp để chọn các nhiễm sắc thể tốt nhất, như: chọn lọc roulette wheel, chọn lọc xếp hàng, chọn lọc cạnh tranh:  Roulette wheel selection Các cá thể cha mẹ được chọn theo độ thích nghi của chúng. Nhiễm sắc thể tốt h ơn có cơ hội cao hơn để tham dự vào thế hệ tiếp theo. Thuật giải chọn lọc roulette của Davis, như sau: Tính tổng giá trị thích nghi của tất cả thành viên quần thể và gọi nó là tổng thích nghi - total fitness. Phát sinh một số n là số ngẫu nhiên trong khoảng từ 0 đến tổng thích nghi. Trả lại thành viên quần thể đầu tiên mà độ thích nghi của nó cộng với độ thích nghi của các thành viên quần thể trước đ ó lớn hơn hay bằng n…  Tournament selection Chọn lọc cạnh tranh 2 – 2 - tournament selection Hai nhiễm sắc thể khác nhau được chọn ngẫu nhiên và được so sánh với nhiễm sắc thể tồn tại. Nếu nhiễm sắc thể I1 không tốt hơn nhiễm sắc thể I2 nghĩa là: f(I1) ≤ f(I2), thì nhiễm sắc thể I1 chết đi và bị loại ra khỏi quần thể. Quá trình này lặp lại đến hết N nhiễm s ắc thể còn lại. Chọn lọc cạnh tranh 3 - 3-tournament selection Giống như trên, ba nhiễm sắc thể khác nhau được chọn ngẫu nhiên và được so sánh. Nếu chúng ta có f(I1) ≤ f(I2) và f(I1) ≤ f(I3), thì nhiễm sắc thể I1 chết đi và bị loại ra khỏi quần thể. Quá trình này lặp lại đến hết N nhiễm sắc thể còn lại.  Rank selection Phương pháp này sẽ sắp hạng cá thể dựa trên độ thích nghi của chúng. Cá thể xấu nhất sẽ có giá trị 1, kế tiếp là 2, v.v…và cá thể tốt nhất sẽ có độ thích nghi N - N là số nhiễm sắc thể trong quần thể. Ngoài ra còn có những phương pháp lựa chọn khác như: Boltzman selection, Steady state selection, Elitism. 4. Mã hóa Mã hóa chuỗi Gene của mỗi cá thể thành dạng thích hợp có thể sử dụng mã hóa nhị phân, mã hóa giá trị, mã hóa hoán vị. 5. Lai ghép Sau khi chọn được các cặp Nhiễm sắc thể dùng để lai, ta tiến hành cắt ghép để tạo được các nhiễm sắc thể mới - con mới. Có nhiề u hình thức lai ghép: Lai 1 điểm, lai nhiều điểm, lai bằng các phép toán nhị phân, … 6. Đột biến Sau khi lai ghép, để tạo sự đa dạng quần thể, ta làm phép đột biến đối với một vài cá thể. Trên chuỗi Gene, tại 1 vài vị trí, làm thay đổi giá trị của 1 đoạn gene nào đó. 7. Đánh giá cá thể Khi đã có quần thể mới, ta tiến hành kiểm tra đánh giá xem cá thể nào tốt nhất, cá thể nào tồi. Loạ i bỏ bớt những cá thể tồi để lặp lại các bước trên đó Chắc chắn rằng việc chọn cá thể sẽ thông qua kết quả, hay mục đích của vấn đề. Các cá thể tốt được chọn lọc để đưa vào thế hệ sau. Sự lựa chọn này được thực hiện dựa vào độ thích nghi với môi trường của mỗi cá thể. 8. Tiêu chuẩn kết thúc Không có quá trình nào là không thể kết thúc. Quá trình tiến hóa có thể dừng lại sau một khoảng tgian được quy định - một số thế hệ hoặc sau khi đã hội tụ - không thể tìm thêm được cá thể tốt hơn. Thoát khỏi quá trình tiến hóa quần thể, dựa vào bài toán mà có các cách kết thúc v ấn đề khác nhau một khi đạt đến mức yêu cầu. Một vài trường hợp thông thường như sau:  Kết thúc theo kết quả: một khi đạt đến mức giá trị yêu cầu thì chấm dứt ngay quá trình thực hiện.  Kết thúc dựa vào số thế hệ: chọn số thế hệ, quá trình sẽ dừng đúng ngay số thế hệ đã qui định trước, không cần biết kết quả như thế nào.  Tính theo thời gian: không cần biết đã bao nhiêu thế hệ hay kết quả nào, chỉ dựa vào số giờ qui định mà kết thúc.  Tổ hợp: dùng nhiều phương án khác nhau cho vấn đề, chẳng hạn như: chạy theo số thế hệ xong sau đó đánh giá cho chạy theo kết quả, hoặc ngược lại. 9. Các Toán Tử Trong giải thuật di truyền  Toán tử lai ghép: Toán tử lai ghép có trật tự bao gồm các bước sau: 1. Chọn ngẫu nhiên một chuỗi con từ một cá thể cha mẹ - parent. 2. Đưa ra một proto_child bằng cách sao chép chuỗi con vào những vị trí tương ứng như trong cá thể cha mẹ. 3. Xoá tất cả các ký hiệu từ cá thể cha mẹ thứ hai, lúc này đã có trong chuỗi con. Chuỗi còn lại chứa các ký hiệu mà proto_child cần. [...]... : Crossover Step 3 -2 : Mutation Step 4 : Evaluation Step 5 : Termination Test Step 6 : End 3 Ứng dụng giải thuật Di Truyền vào Bài toán chiếc Ba lô 2 Ta có thể hình dung mô hình bài toán được giải quyết trong giải thuật di truyền như sau: Gồm một quần thể chứa tất cả các kết quả có thể có được của bài toán, rồi từ đó chọn ra kết quả tốt nhất Các bước thực hiện:  Khởi tạo đồ vật và trọng lượng tối... phải hoặc bên trái vị trí của gen Ví dụ: Nhiễm sắc thể: 9385716 42 Sau đột biến (trái): 9835716 42 Sau đột biến (phải): 9358716 42 2 .2 Biểu Diễn Giải Thuật của Giải Thuật Di Truyền Giải thuật của Giải thuật Di truyền được biểu diễn qua các bước sau:  Bước 1: Khởi tạo quần thể P(0), chỉ số i chỉ thế hệ thứ i  Bước 2: Lặp đến khi quần thể hội tụ hoặc đạt đến tiêu chuẩn kết thúc  Đánh giá độ thích nghi của... cha và con  Vì quần thể có kích thước cố định nên phải đánh giá để chọn ra n cá thể tốt cho thế hệ kế tiếp  Lặp lại các bước trên đến khi quần thể hội tụ hoặc sau k thế hệ Kết Luận: Tuy giải thuật Genetic Algorithm - GA có thể chậm hơn một số thuật toán khác, song GA lại có các ưu điểm nổi trội như: Dễ thể hiện, không bị rơi vào trạng thái cực trị địa phương, dễ thay đổi hàm thích nghi, … Vì vậy, thuật. .. đảo chuỗi giữa hai vị trí này Ví dụ: Nhiễm sắc thể : 9385716 42 Sau khi đột biến : 9 3 1 7 5 8 6 4 2 Đột biến chèn - Insertion Mutation Chọn ngẫu nhiên một gen và sau đó chèn nó vào vị trí ngẫu nhiên Ví dụ: Nhiễm sắc thể : 9385716 42 Sau đột biến: 9357816 42 Đột biến thay thế - Displacement Mutation Chọn ngẫu nhiên một chuỗi con và chèn nó vào một vị trí ngẫu nhiên Đột biến chèn có thể được xem như trường... song GA lại có các ưu điểm nổi trội như: Dễ thể hiện, không bị rơi vào trạng thái cực trị địa phương, dễ thay đổi hàm thích nghi, … Vì vậy, thuật toán Genetic Algorithm là một lựa chọn thích hợp cho dạng bài toán quyết định Ví dụ như bài toán tìm đường, bài toán chiếc balô 4 Cài Đặt Ứng Dụng ... chọn là lai 2 điểm  Chuỗi gen được chia thành 3 phần, phần 1 có độ dài = ¼ chuỗi gene, phần 2 có độ dài = ½ chuỗi gene, phần 3 là phần còn lại  Cách lai: Bố b c Con 1 a b’ c Mẹ  a a’ b’ c’ Con 2 a’ b c’ Đột biến:  Dựa vào tỉ lệ đột biến → số lần đột biến → số cá thể đột biến  Chọn 3 vị trí để đột biến Giá trị đột boiến = vị trí  Đánh giá  Giải mã gene: Từ chuỗi mã hóa đưa về dạng bài toán Sau quá... loại bỏ các phần tử 8, 5, 7 và 1, cũng ở trong cá thể con đầu tiên là: 9-3 -2- 6-4 Cuối cùng, chuỗi này được đặt vào proto-child 1 đầu tiên để tạo ra cá thể con - bắt đầu từ điểm cắt thứ hai Cá thể con thứ nhất: Cá thể con thứ hai:  64|8571|9 32 5 7 | 2 6 1 4 |9 3 8 Toán tử đột biến: Đột biến đảo ngược - Inversion Mutation Chọn hai vị trí ngẫu nhiên trong một nhiễm sắc thể và sau đó, nghịch đảo chuỗi... ký hiệu vào những vị trí không cố định của proto-child từ trái sang phải theo trật tự của chuỗi để tạo ra cá thể con Ví dụ: Cá thể cha: 93|8571|6 42 Cá thể con: 35 |26 14|879 Phân đoạn giữa để cắt các điểm được sao chép vào cá thể con Proto-child 1: x x | 8 5 7 1| x x x Proto-child 1: x x | 2 6 1 4| x x x Chuỗi bắt đầu từ điểm cắt thứ hai của cá thể cha mẹ thứ hai: 8-7-9-3-5 -2- 6-1-4 Chuỗi sau khi loại bỏ... 9385716 42 Sau đột biến: 9368571 42 Đột biến tương hỗ - Reciprocal Exchange Mutation Chọn ngẫu nhiên hai vị trí và sau đó hoán vị gen trên những vị trí này Ví dụ: Nhiễm sắc thể: 9385716 42 Sau đột biến: 9315786 42 Đột biến chuyển dịch - Shift Mutation Trước tiên, chọn ngẫu nhiên một gen, sau đó, dịch chuyển nó đến một vị trí ngẫu nhiên bên phải hoặc bên trái vị trí của gen Ví dụ: Nhiễm sắc thể: 9385716 42 Sau... P(i)  Áp dụng các toán tử Gen - Crossover, Mutation từ các cha đã chọn để sinh ra các con  Đạt được thế hệ tiếp theo P(i + 1) gồm các cá thể con và cha P(i) Cài đặt Thuật Toán Procedure GA begin t := 0 ; initialize P(t) ; evaluate P(t) ; while (not termination-condition) do begin t := t + 1 ; select P(t) from P(t-1) ; alter P(t) ; evaluate P(t) ; end; end; Step 1 : Initialization Step 2 : Selection Step . 4 2 Sau đột biến (trái): 9 8 3 5 7 1 6 4 2 Sau đột biến (phải): 9 3 5 8 7 1 6 4 2 2. 2. Biểu Di n Giải Thuật của Giải Thuật Di Truyền Giải thuật của Giải thuật Di truyền được biểu di n. Học Viên Thực Hiện Giảng Thanh Trọn NỘI DUNG TÌM HIỂU Nội dung nghiên cứu của Bài Tập bao gồm những thành phần sau: 1. Giới Thiệu Bài Toán Chiếc Ba Lô Loại 2. 2. Tìm Hiểu Giải Thuật GA ứng dụng của nó trong việc giải quyết bài toán Chiếc ba lô loại 2 với phương pháp lựa chọn. 2. Tìm Hiểu Giải thuật Di Truyền Genetic Algorithm - GA 2. 1. Khái quát về giải thuật Di Truyền Lịch

Ngày đăng: 03/07/2015, 15:49

Từ khóa liên quan

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

Tài liệu liên quan