Giải thuật di truyền và áp dụng cho bài toán chiếc ba lô loại 2

12 4,312 89
  • Loading ...
1/12 trang

Thông tin tài liệu

Ngày đăng: 02/04/2014, 20:24

Giải thuật di truyền và áp dụng cho bài toán chiếc ba lô loại 2 Genetic Algorithms and Knapsack 02 problem Lý Thanh Bình – TH46Giải thuật gene vàBài toán chiếc ba loại 21Genetic Algorithms and Knapsack 02 problem Lý Thanh Bình – TH46I. Giới thiệu chung.Xuất phát từ khái niệm lý thuyết Darwin của sự tồn tại thích hợpnhất được John Holland đưa ra lần đầu tiên vào năm 1975.Thuật toán gene (GAs – Genetic Algorithms) là thuật toán tìmkiếm, chọn lựa giải pháp tối ưu để giải quyết các bài toán khácnhau dựa trên mô phỏng cơ chế tiến hoá của tự nhiên.Trong cơ thể sinh vật, các gene liên kết với nhau theo cấu trúcdạng chuỗi gọi là nhiễm sắc thể (Chromosomes), nó đặc trưng comỗi loài quyết định sự sống còn của cơ thể đó. Trong tự nhiênmột loài muốn tồn tại phải thích nghi với môi trường, cơ thểsống nào thích nghi với môi trường tốt thì tồn tại phát triển,ngược lại với những loài không thích nghi với môi trường sốngsẽ bị đào loại bỏ dần dần tuyệt chủng. Môi trường tự nhiênthay đổi nên cấu trúc nhiễm sắc thể cũng thay đổi để thích nghivới môi trường nên thế hệ sau luôn có độ thích nghi cao hơn thếhệ trước. Dựa vào đó các nhà khoa học máy tính xây dựng nênmôi trường giải thuật tìm kiếm dựa trên cơ sở chọn lọc tự nhiênvà quy luật tiến hoá, gọi là giải thuật gene.Năm 1989, Goldberg chỉ ra sự khác nhau chủ yếu giữa GAs vàphương pháp tối ưu truyền thống như sau:- GAs sử dụng theo xác suất, không phải theo quyết định, để tìmkiếm các quy tắc.- GAs sử dụng các thông tin từ hàm mục tiêu, không sư dụngthông tin biết được khác.- Đăc trưng của GAs là sử dụng chính sự mã hoá của tập hợpbiến quyết định, không phải là biến quyết định chính bảnthân.- Những sự tìm kiếm của GAs xuất phát từ tập hợp các biếnquyết định của quần thể, không phải tập hợp biến quyết địnhriêng lẻ.2Genetic Algorithms and Knapsack 02 problem Lý Thanh Bình – TH46II. Giải thuật gene.1. Các khái niệm.- Nhiễm sắc thể (Chromosomes):o Trong GAs mỗi cá thể được mã hoá bởi 1 cấu trúc dữ liệu mô tảcấu trúc gen của cá thể đó, ta gọi là nhiễm sắc thể. Chúng đạidiện cho không gian của các giải pháp ứng cử viên. Nhiễm sắcthể có thể được mã hoá nhị phân, hoán vị, giá trị mã hoá cây.o Đối với bài toán chiếc ba loại 2, ta sử dụng mã hoá giá trị.- Quần thể (Population):o Là một tập hợp các cá thể, được tiến hoá từ thế hệ này tới thếhệ khác phụ thuộc vào sự thích nghi của các cá thể.- Thế hệ (Generation):o GAs sẽ làm việc trên các cá thể của nhiều quần thể, mỗi quần thểứng với một giai đoạn phát triển gọi là thế hệ.- Hàm thích nghi (Fitness function):o GAs yêu cầu 1 hàm thích nghi để chứa điểm của mỗi cá thể trongcộng đồng hiện tại. Từ đó có thể tính toán giải pháp nào đượcmã hoá nắm được cách mà chúng giải quyết vấn đề.- Kỳ vọng (Hope):o Hy vọng hế hệ sinh ra sẽ chứa lời giải tốt cho bài toán.- Toán tử tái sinh (Reproduction) hay toán tử chọn lọn(Selection):o Các cá thể tốt được chọn lọc để đưa vào thế hệ sau dựa trên hàmthích nghi.- Toán tử lại ghép (Crossover):o Hai cá thể cha mẹ trao đổi các Gen để tạo ra 2 cá thể con.- Toán tử đột biến (Mutation):o Một cá thể thay đổi 1 số Gen không theo quy luật để tạo ra thế hệmới.3Genetic Algorithms and Knapsack 02 problem Lý Thanh Bình – TH462. Cấu trúc cơ bản của GAs.4Cài đặt hàmProcedure GAbegin t := 0 ;initialize P(t) ;evaluate P(t) ;while (not termination-condition) dobegint := t + 1 ;select P(t) from P(t-1) ;alter P(t) ;evaluate P(t) ;end;end;Genetic Algorithms and Knapsack 02 problem Lý Thanh Bình – TH46a. Mã hoá (Encoding).- Mã hoá nhị phân (Binary Encoding – BE):o Là kiểu mã hoá thông dụng nhất bởi vì: nghiên cứu đầu tiên vềthuật toán Gen sử dụng kiểu mã hóa này bởi vì nó đơn giản.o Trong BE, mọi nhiễm sắc thể là chuỗi bits - 0 or 1.o NST A 101100101100101011100101o NST B 111111100000110000011111o Các mã hóa này thường không tự nhiên cho nhiều bài toán vàthỉnh thoảng sai sau khi thự hiện các phép toán lai ghép độtbiến.- Mã hoá hoán vị (Permutation Encoding – PE):o Có thể sử dụng để giải quyết các bài toán có thứ tự như: Ngườibán hàngo Trong PE, tất cả các NST là chuỗi các số biểu diễn vị trí trongmột dãy.o NST A 1 5 3 2 6 4 7 9 8o NST B 8 5 6 7 2 3 1 4 9o PEđược sử dụng trong các bài toán có thứ tự. Trong một vàitrường hợp, việc hiệu chỉnh lai ghép đột biến phải thực hiệnđể tạo ra NST phù hợp.- Mã hoá giá trị (Value Encoding – VE):o Được sử dụng trong các bài toán mà việc mã hóa nhị phân làkhó thực hiện (Như bài toán knapsack 02).o Trong VE mỗi nhiễm sắc thể là một chuỗi các giá trị có thể nhậndạng bất kỳ tùy thuộc vào từng bài toán cụ thể.o NST A 1.2324 5.3243 0.4556 2.3293 2.4545o NST B ABDJEIFJDHDIERJFDLDFLFEGTo NST C (back), (back), (right), (forward), (left)o Với kiểu mã hóa này thường sẽ phải xây dựng một số phép laighép đột biến cho các bài tóan cụ thể. - Mã hoá dạng cây (Tree Encoding – TE):o TE thường được sử dụng trong các bài toán hoặc các biểu thứcsuy luận.o Trong TE, mỗi NST là một cây gồm các đối tượng như là cáchàm hoặc các câu lệnh của ngôn ngữ lập trình.o TE thường được dùng đối với các bìa tóan suy luận hoặc các cấutrúc có thể biểu diễn bằng cây.o Các phép lai ghép đột biến đối với kiểu mã hóa này cũngtương đối dễ thực hiện.b. Khởi tạo quần thể.- Thường được chọn random dựa vào yêu cầu bài toán.5Genetic Algorithms and Knapsack 02 problem Lý Thanh Bình – TH46c. Hàm thích nghi.- Hàm thích nghi định nghĩa tiêu chuẩn để xếp hạng các giả thuyếttiềm ẩn để chọn lọc chúng theo xác suất để đưa vào quần thể thếhệ kế tiếp.- Mỗi bài toán có một hàm thích nghi riêng.d. Chọn lọc.- Các nhiễm sắc thể được chọn từ quần thể là các cha cho lai ghép(crossover).- Theo thuyết tiến hoá của Darwin những cá thể tốt nhất sẽ được họnđể lai ghép.- Có nhiều phương pháp lựa chọn như:o Roulette Wheel Selection:   !"# $%&''!'( )*!+, roulette wheel /0123131-44544-6%0!37 $89-:3131-44544-%+,;<=-2-> +,%0!37-0?& ,@3A3.;B9CD1!(• [Tính tổng],ES!37"B!31F• [Lựa chọn] GH.!37 r 3112(0,S) • [Vòng lặp]I0!37H.rJK6%0!1;LASA!;1@ML@@'o Rank Selection: N1-44O44-+4-41?;%"&L;>L!-0P!611101001000000010101011110101010100001001000111010010000000101010111001011000001010001011110100100000001010101100010001000110101100111101001000 11101011000Các chuỗi ban đầu Các cá thể conLai ghép điểm đơn:Lai ghép điểm kép:Lai ghép đồng nhất:Đột biến điểm:Genetic Algorithms and Knapsack 02 problem Lý Thanh Bình – TH46 I<Q(@+,";-RSTA!+,L!3"-> NL4-412FF.%;+,D-2!377U9C2 +,V"?;-1K+,V6-24%+,"?;-N+31F#o Elitism: /21F09W311%431*1K;-"!" X'!'Elitism1'Y'1'ZP!1*%!#F0 ,'F8-2F21=!L! X'!'Elitism;:1[\K%A;:L-"!o Steady-State Selection. ,31"!@M?;%+,I01#21+,10 $%+,V%0"'#?97 ;9]%!+,10?Z@^ XF8-2F213@M0o Boltzman selection.o …e. Lai ghép đột biến.- Đây là 2 phép toán cơ bản của thuật toán gen. Sự hình thành luậtcủa GAs phụ thuộc rất nhiều vào 2 phép toán này.- Kiểu sự thể hiện của các toán tử này phụ thuộc vào kiểu mã hóavà cũng phụ thuộc vào bài toán.7 ,32  !  ?ZEL?  Z  E9C2! _`Z  a  "  B!  +,  ?  ;    H.    ->+194b1343L3'1bc44#+1b433L3'1b13<43943#Genetic Algorithms and Knapsack 02 problem Lý Thanh Bình – TH46- Có nhiều cách để thực hiện việc lai ghép đột biến:f. Tiêu chuẩn kết thúc.- Thuật toán dừng khi quần thể hội tụ, i.e. cá thể tốt nhất trong quầnthể giống với kết quả mong muốn.- Kết thúc khi số thế hệ sinh ra đạt đến số vòng lặp xác định trước.- Kết thúc khi các cả thể trở lên giống nhau.- Kết thúc khi cá thể tốt nhất trong quần thể không thay đổi theothời gian.8Genetic Algorithms and Knapsack 02 problem Lý Thanh Bình – TH46III. Áp dụng thuật toán gene vào bài toán Knapsack 02.1. Mô tả bài toán.2. Phương án giải bài toán.a. Mã hoá:Đối với bài toán knapsack 02, do mỗi vật có thể được chọn nhiều lần nênta dùng mã hoá giá trị cho các nhiễm sắc thể.– VD: Có 1 đoạn gen: 0498392• Số 0 đầu tiên có nghĩa là vật 1 được chọn 0 lần.• Số 4 thứ 2 có nghĩa là vật 2 được chọn 4 lần.• ….b. Khởi tạo quần thể.Sau khi mã hoá ta được quần thể với các gen ngẫu nhiên nên sẽ có nhữngcá thể không thoả mãn yêu cầu đề bài là khối lượng. Những cá thể thoảmãn sẽ được giữ lại tạo thành 1 quần thể mới. Quần thể này dung để chọnlọc lai ghép.c. Hàm thích nghi.9• Đơn vị đ/c chuẩn bị hànhquân.• Ngoài những quân dụng bắtbuộc phải mang theo, đ/c cònphải chọn một số vật dụngkhác phải mang theo để phụcvụ sinh hoạt• Tuy nhiên balo của đ/c có hạnvà chỉ để được một khốilượng k. Giả sử 1 đồ dùng cókhối lượng w giá trị sửdụng c, 1 vật có nhiều sốlượng có thể chọn nhiềulần.• Đ/c phải chọn đồ để bỏ vàobalo sao cho không vượt quákhối lượng k giá trị sửdụng c sao cho lớn nhất cóthể.Genetic Algorithms and Knapsack 02 problem Lý Thanh Bình – TH46 Hàm thích nghi được xây dựng trên tổng khối lượng của mỗi cá thể.Sau khi chọn được cá thể ta sẽ tính khối lượng dựa trên số lần chọn vật vàkhối lượng từng vật.– Nếu tổng khối lượng lớn hơn khả năng chứa của balo thì cá thể sẽbị loại bỏ. – Nếu tổng khối lượng nhỏ hơn hoặc bằng sức chứa của balo thì tatiếp tục thuật toán.– Nếu số cá thể còn lại ít hơn số cá thể giới hạn của quần thể thì tatiếp tục lai ghép các cá thể bố mẹ cho đến khi nào đủ cá thể thoảmãn cho quần thể mới.d. Lựa chọn cá thể.Theo yêu cầu của bài toán ta sử dụng phương pháp chọn Elitism.Phương pháp này cho phép copy những cá tốt sang quần thể mới.Những cá thể còn lại sẽ được chọn theo phương pháp khác.Để đánh giá cá thể tốt hay không ta cần 1 hàm đánh giá, hàm đánh giánày trả về giá trị là tổng giá trị trong balo sau khi chọn các vật. Các cá thểcó giá trị cao sẽ được lưu lại.e. Lai ghépLà 1 phép toán cơ bản của thuật toán Gen. Có nhiều cách để lai ghépphụ thuộc vào cách mã hoá ở trên. Với cách mã hoá giá trị, ta sử dụngcách lai ghép:Cắt một đoạn Gen của cá thể a ghép vào 1 đoạn gen của cá thể b. Saumỗi lần lai ghép ta phải kiểm tra hàm thích nghi, chỉ lấy những cá thểthoả mã hàm thích nghi.Đối với bài toán này, ta lấy tỉ lệ lai ghép mặc định là 80%.f. Đột biến.Đối với bài toán mã hoá theo giá trị ta cộng hoặc trừ đi 1 số từ các giátrị được chọn trong cá thể đột biến.Về tỉ lệ đột biến: Nếu ta chọn tỉ lệ quá cao thì kết quả sẽ khó có thể hộitụ được. Còn nếu quá thấp thì cũng sẽ có ít khả năng ảnh hưởng đến bàitoán.Trong chương trình, ta lấy tỉ lệ đột biến mặc định là 1%.g. Điều kiện dừng.10[...]... tốt Nên dùng giải thuật gene để giải bài toán này khi giữ lại những cá thể tốt trong quần thể chưa chắc sau khi lai ghép đã sinh ra được cá thể tốt hơn Kết luận Thuật toán gene là một thuật toán tối ưu khá hiệu quả, mô phỏng sự tiến hoá của tự nhiên Thuật toán này có ưu điểm mà các thuật toán tìm kiếm khác thường mắc phải đó là giảm thiểu được khả năng rơi vào khoảng nghiệm cục bộ của bài toán Trong... Algorithms and Knapsack 02 problem Lý Thanh Bình – TH46 Nếu đủ thời gian ta sẽ cho thuật toán chạy đến khi các cá thể không thay đổi theo thời gian hoặc các cá thể sinh ra là giống hệt nhau Nếu không có đủ thời gian ta sẽ lấy kết quả tốt nhất trong thời gian chạy thuật toán để làm lời giải cho bài toán Trong chương trình, tôi để mặc định là chạy 1000 lần thì dừng thuật toán IV 1 - 2 - V Ưu nhược điểm Ưu... nhược điểm Ưu điểm GAs có khả năng chạy song song Ít bị rơi vào cực trị địa phương (Giải quyết bằng đột biến) Với cùng cách mã hoá có thể thay đổi hàm thích nghi Khi đã có thuật toán gene cơ bản, chỉ cần viết 1 nhiễm sắc thể mới để xử lý một bài toán khác Nhược điểm Thời gian tính toán có thể chậm hơn các thuật toán khác Quá trình tính toán có thể kết thúc bất cứ lúc nào, không có kế hoạch trước Giống... nghiên cứu còn nhiều thiếu xót, kính mong thầy nhận xét bổ sung cho em để em có thể hoàn thiện được kiến thức của mình Em xin chân thành cảm ơn !!! Tài liệu tham khảo: 11 Genetic Algorithms and Knapsack 02 problem o o Lý Thanh Bình – TH46 Bài 3 -2: Slide trí tuệ nhân tạo – TS.Ngô Hữu Phúc một số tài liệu khác trên webside: www. 123 doc.vn 12 . Genetic Algorithms and Knapsack 02 problem Lý Thanh Bình – TH46 Giải thuật gene và Bài toán chiếc ba lô loại 2 1 Genetic Algorithms and Knapsack 02 problem Lý Thanh Bình. các giá trị có thể nhận dạng bất kỳ tùy thuộc vào từng bài toán cụ thể. o NST A 1 .23 24 5. 324 3 0.4556 2. 329 3 2. 4545 o NST B ABDJEIFJDHDIERJFDLDFLFEGT o NST C (back), (back), (right), (forward),. thay đổi theo thời gian. 8 Genetic Algorithms and Knapsack 02 problem Lý Thanh Bình – TH46 III. Áp dụng thuật toán gene vào bài toán Knapsack 02. 1. Mô tả bài toán. 2. Phương án giải bài toán. a.
- Xem thêm -

Xem thêm: Giải thuật di truyền và áp dụng cho bài toán chiếc ba lô loại 2, Giải thuật di truyền và áp dụng cho bài toán chiếc ba lô loại 2, Giải thuật di truyền và áp dụng cho bài toán chiếc ba lô loại 2, Cấu trúc cơ bản của GAs.

Từ khóa liên quan

Gợi ý tài liệu liên quan cho bạn