Đề tài: Tìm hiều và ứng dụng của thuật giải di truyền trong bài toán xếp ba lô pptx

28 2.1K 14
Đề tài: Tìm hiều và ứng dụng của thuật giải di truyền trong bài toán xếp ba lô pptx

Đ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 LỜI NÓI ĐẦU Với khả nay, máy tính giúp giải nhiều tốn khó mà trước thường bó tay Mặc dù có số lớn tốn thú vị mà chưa có giải thuật hợp lý để giải chúng Trong tốn tối ưu toán thường gặp thực tiễn Bài toán tối ưu hóa tổ hợp xem tốn tìm kiếm giải pháp tố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 tìm kiếm lớn phải dùng kỹ thuật trí tuệ nhân tạo đặc biệt Thuật giải di truyền (GA) kỹ thuật Giải thuật di truyền kỹ thuật khoa học máy tính nhằm tìm kiếm giải pháp thích hợp cho toán tối ưu tổ hợp (combinatorial optimization) Giải thuật di truyền phân ngành giải thuật tiến hóa vận dụng nguyên lý tiến hóa di truyền, đột biến, chọn lọc tự nhiên, trao đổi chéo Ngày nay, giải thuật di truyền dùng phổ biến số ngành tin sinh học, khoa học máy tính, trí tuệ nhân tạo, tài số ngành khác Bài tốn xếp ba lơ (một số sách ghi tốn túi) tốn tối ưu hóa tổ hợp Bài toán đặt tên từ vấn đề chọn quan trọng nhét vừa vào túi (với giới hạn khối lượng) để mang theo chuyến Các toán tương tự thường xuất kinh doanh, toán tổ hợp, lý thuyết độ phức tạp tính tốn, mật mã học tốn ứng dụng Chính ứng dụng lớn giải thuật di truyền( GA) tốn xếp ba lơ, với giúp đỡ thầy Trần Thanh Hùng giáo viên môn Giải thuật di truyền, chúng em tiến hành tìm hiểu giải thuật di truyền ứng dụng giải thuật di truyền toán xếp ba lơ với đề tài “Tìm hiều ứng dụng thuật giải di truyền toán xếp ba lô” Sinh viên thực hiện: Trần Quang Hợp MSSV: 0441060068 Lớp: KHMT1-K4-Đại học công nghiệp Hà Nội(Haui) Email: hauiquanghop@gmail.com Môn Giải thuật di truyền ứng dụng CHƯƠNG I - TỔNG QUAN VỀ GIẢI THUẬT DI TRUYỀN Khái niệm Giải thuật di truyền kỹ thuật khoa học máy tính nhằm tìm kiếm giải pháp thích hợp cho tốn tối ưu tổ hợp (combinatorial optimization) Giải thuật di truyền phân ngành giải thuật tiến hóa vận dụng nguyên lý tiến hóa di truyền, đột biến, chọn lọc tự nhiên, trao đổi chéo Ngày nay, giải thuật di truyền dùng phổ biến số ngành tin sinh học, khoa học máy tính, trí tuệ nhân tạo, tài số ngành khác Tư tưởng thuật tốn di truyền mơ tượng tự nhiên: Kế thừa đấu tranh sinh tồn để 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 hóa quần thể thỏ sau: Có quần thể thỏ, 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, tồn dể làm tốt : 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ỏ cịn 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ố nhanh nhẹn có với thỏ nhanh nhẹn, số thông minh với thỏ đần độn… Và tất 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 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 lồi thỏ Thuật tố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 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 hóa 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 tố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 xuất sắc, 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 biệt quan trọng tìm kiếm GA phương pháp tìm kiếm khác GA trì xử lý tập lời giải (ta gọi quần thể) Theo đề xuất giáo sư John Holland, vấn đề toán đặt mã hóa thành chuỗi với chiều dài bit cố định Nói cách xác thơng số toán chuyển đổi biểu diễn lại dạng chuỗi nhị phân Các thông số biến hàm hệ số biểu thức toán học Người ta gọi chuỗi bít mã genome ứng với cá thể, genome có chiều dài Nói ngắn gọn, lời giải biểu diễn chuỗi bít, cá thể quy định gen cá thể Như vậy, thuật giải di truyền, cá thể có gen mọt gen phục vụ cho cá thể nhât Do đó, gen cá thể cá thể gen Ban đầu, ta phát sinh số lượng lớn, giới hạn cá thể có gen ngẫu nhiên nghĩa phát sinh tập hợp chuỗi bit ngẫu nhiên Tập cá thể gọi quần thể ban đầu (initial population) Sau đó, dựa hàm đó, ta xác định giá trị có độ thích nghi - Fitness Giá trị này, để đơn giản cho đơn giản độ "tốt" lời giải hay đọ cao tìm kiếm theo kiểu leo đồi Vì phát sinh ngẫu nhiên nên độ "tốt" lời giải hay tính thích nghi cá thể quần thể ban đầu không xác định Để cải thiện tính thích nghi quần thể người ta tìm cách tạo quần thể Có hai cách thao tác thực hệ để tạo hệ khác với độ thích nghi tốt Thao tác chép nguyên mẫu nhóm cá thể tốt từ hệ trước đưa sang hệ sau (selection) Thao tác đảm bảo độ thích nghi hệ sau giữ mức độ hợp lý Các cá thể chọn thông thường cá thể có độ thích nghi cao Thao tác thứ hai tạo cá thể cách thực thao tác sinh sản số cá thể chọn từ hệ trước, thông thường cá thể có độ thích cao Có hai loại thao tác sinh sản: thao tác lai tạo (crossover), hai đột biến (mutalion) Trong thao tác lai tạo, từ gen hai cá thể chọn hệ trước phối hợp với (theo quy tác đó) để tạo thành hai gen Thao tác chọn lọc lai tạo giúp tạo hệ sau Tuy nhiên, nhiều hệ khởi tạo ban đầu có đặc tính chưa phong phú chưa phù hợp nên cá thể không rải không gian toán (tương tự trường hợp leo đồi, người leo đồi tập trung dồn vào góc vùng đất) Từ đó, khó tìm lời giải tối ưu cho toán Thao tác đột biến giúp giải vấn đề Đó biến đổi ngẫu nhiên nhiều thành phần gen cá thể hệ trước tạo cá thể hoàn toàn hệ sau Nhưng thao tác phép xảy với tần suất thấp (thường 0.01), thao tác gây xáo trộn làm cá thể chọn lọc lai tạo có tính thích nghi cao, dẫn đến thuật tốn khơng cịn hiệu Thế hệ tạo lại xử lý hệ trước có cá thể đạt giải pháp mong muốn đạt đến thời gian giới hạn Hình Sơ đồ giải thuật di truyền Cấu trúc giải thuật di truyền sau: T=0 Initialize P(t) evaluate structures in P(t) While not end T= t + Select C(t) from P(t - 1) Recombine Mutate structures in C(t) forming C'(t) structures in C' (t) forming C'' (t) Evaluate structures in C''(t) Replace P(t) from C''(t) and/or P (t - 1) Các bước giải thuật di truyền 2.1 Khởi tạo quần thể (initialize) Quần thể khởi tạo cách ngẫu nhiên từ tập hợp cá thể riêng lẻ Kích cỡ quần thể phụ thuộc vào yếu tố tự nhiên tốn, nhìn chung tốn có đến hàng trăm hay hàng nghìn giải pháp hợp lý Tập hợp giải pháp hợp lý cho vấn đề gọi khơng gian tìm kiếm (search space) Trước toán áp dụng thuật toán di truyền, ta cần phải xác định rõ nhiễm sắc thể cá thể cho vấn đề, thơng thường kết cuối Việc phân tích dựa kết tốt Ví dụ: v1: 0 1 v2: 1 1 0 v3: 1 1 v4: 1 0 1 v5: 1 0 v6: 1 1 2.2 Tính tốn độ thích nghi(evaluate) Các q trình tiến hóa diễn vịng lặp While, hệ thứ t, thuật tốn di t t t t x ,…, x } Mỗi lời giải x đánh 1, 2, n i giá "độ thích nghi ", hay độ "tốt" lời giải truyền trì tập lời giải P(t) = {x 2.3 Chọn lọc(select) Phép chọn trình loại bỏ cá thể xấu quần thể để lại quần thể cá thể tốt Phép chọn mô phỏng: 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 để giữ lại n cá thể tốt Giả sử quần thể có kích thước cố định n Có nhiều phương pháp chọn lọc nhiễm sắc thể: Chọn lọc Roulette (Roulett Wheel Selection) Chọn lọc xếp hạng (Rank Selection) Chọn lọc cạnh tranh (Tournament Selection) Ví dụ Chọn lọc Roulette (Roulett Wheel Selection) Hình Bánh xe Roulette Chia phần bánh xe Roulette tùy thuộc vào độ thích nghi nhiễm sắc thể Độ thích nghi cao phần nhiễm sắc thể lớn Rơi random nhiều xác suất rơi chủ yếu vào phần lớn lớn Từ xác định nhiễm sắc thể tốt 2.4 Q trình sinh sản Có hai loại thao tác sinh sản - Phép lai tạo (Crossover): trình hình thành nhiễm sắc thể sở nhiễm sắc thể cha mẹ cách ghép hay nhiều đoạn gen hai hay nhiều nhiễm sắc thể cha mẹ với Có phương pháp lai ghép sau: - Lai ghép ánh xạ phần (PMX Partial Mapped Crossover) Lai ghép có trật tự (OX order Crossover) Lai ghép dựa vị trí (Position Based Crossover) Lai ghép dựa thứ tự (Order Base Crossover) Lai ghép có chu trình (CX cycle Crossover) Lai ghép thứ tự tuyến tính (LOX Linear order Crossover) Phép lai tạo xảy với xác suất p , mô sau: c Chọn ngẫu nhiên hay nhiều cá thể quần thể Giả sử nhiễm sắc thể cha mẹ có m gen Tạo số ngẫu nhiên khoảng từ đến m - (được gọi điểm lai) Điểm lai chia chuỗi cha mẹ có độ dài m thành hai nhóm chuỗi với độ dài m , m hai chuỗi nhiễm sắc thể m + m m + m 11 12 21 22 Đưa hai cá thể vào quần thể để tham gia q trình tiến hóa Ví dụ : Hai nhiễm sắc thể cha mẹ : Thì việc trao đổi chéo nhiễm sắc thể sau gen thứ năm tạo hai con: - Phép đột biến (mutalion): Phép đột biến tượng cá thể mang (hoặc số) tính trạng có mã di truyền cha mẹ, tức sửa đổi một vài gen nhiễm sắc thể chọn cách thay đổi ngẫu nhiên với xác suất tỷ lệ đột biến Khơng đánh giá phương pháp đột biến tốt hơn, có vài phương pháp đơn giản, có vài trường hợp phức tạp Người ta thường chọn phương pháp sau : - Đột biến đảo ngược (Inversion Mutation) - Đột biến chèn (Insertion Mutation) - Đột biến thay (Displacement Mutation) - Đột biến tương hỗ (Reciprocal Exchange) - Đột biến chuyển dịch (Shift Mutation) Phép đột biến xảy với xác suất p m nhỏ nhiều so với xác suất lai p c Phép đột biến mơ phỏng: - Chọn ngẫu nhiên cá thể cha mẹ quần thể - Tạo số ngẫu nhiên k khoảng từ đến m với 1≤ k ≤ m Thay đổi gen thứ k trả cá thể quần thể để tham gia vào trình tiến hóa Một thuật giải di truyền, giải tốn cho phải có năm thành phần: - Một cấu trúc liệu biểu diễn không gian lời giải toán - Phương pháp khởi tạo quần thể ban đầu P(0) - Hàm định nghĩa độ thích nghi evaluate đóng vai trị mơi trường - Các phép tốn di truyền mơ - Và tham số thuật toán di truyền sử dụng (kích thước, quần thể, xác suất lai, đột biến…) Điều kiện kết thúc Thốt q trình tiến hóa quần thể, dựa vào tốn mà có cách kết thúc vấn đề khác nhau, đạt đến mức yêu cầu Một vài trường hợp thông thường sau: - Kết thúc theo kết quả: đạt đến mức giá trị yêu cầu chấm dứt trình thực Kết thúc dựa vào số hệ: chọn số hệ, trình dừng lại số hệ qui định trước, không cần biết kết - Tính theo thời gian: Khơng cần biết hệ hay kết nào, cần dựa vào số qui định mà kết thúc Tổ hợp: dung nhiều phương án khác cho vấn đề, chẳng hạn như: chạy theo số hệ xong sau đánh giá cho chạy theo kết quả, ngược lại CHƯƠNG II - BÀI TỐN XẾP BA LƠ Giới thiệu Bài tốn xếp ba lơ (một số sách ghi toán túi) toán tối ưu hóa tổ hợp Bài tốn đặt tên từ vấn đề chọn quan trọng nhét vừa vào túi (với giới hạn khối lượng) để mang theo chuyến Các toán tương tự thường xuất kinh doanh, toán tổ hợp, lý thuyết độ phức tạp tính tốn, mật mã học toán ứng dụng Bài toán xếp ba lô thường giải quy hoạch động, chưa có thuật tốn thời gian đa thức cho tốn tổng qt Cả xếp ba lơ tổng qt tốn tổng NP-khó, điều dẫn đến cố gắng sử dụng tổng làm sở cho hệ thống mật mã hóa khóa cơng khai, chẳng hạn Merkle-Hellman Các cố gắng thường dùng nhóm thay số ngun Merkle-Hellman số thuật toán tương tự khác bị phá, toán tổng cụ thể mà họ tạo thực lại giải thuật toán thời gian đa thức Phiên tốn định xếp ba lơ mơ tả NP-đầy đủ thực tế 21 toán NP-đầy đủ Karp Bài tốn giải nhiều thuật toán thuật toán tham lam, giải thuật di truyền,… Nội dung toán Một kẻ trộm đột nhập vào cửa hiệu tìm thấy có n mặt hàng có trọng lượng giá trị khác nhau, mang theo túi có sức chứa trọng lượng tối đa M Vậy kẻ trộm nên bỏ vào ba lơ số lượng để đạt giá trị cao khả mà mang 10 Bài tốn: Cho bảng đồ vật có khối lượng giá trị tương ứng sau: Khối lượng Giá trị 8 4 10 6 4 Khối lượng tối đa ba lơ chứa 22 Sơ đồ tốn xếp ba lơ giải theo giải thuật di truyền sau: Điều kiện chấm dứt sơ đồ là: - 90% NST dân số có độ thích nghi 14 Khởi tạo liệu( đồ vât, khối lượng & giá trị tương ứng Mã hóa liệu Khởi tạo số lượng dân số ngẫu nhiên Tính tổng khối lượng, tổng giá trị NST Từ tính độ thích nghi NST Kiểm tra tỷ lệ giống độ thích nghi dân số Tỷ lệ >90% Lựa chọn ngẫu nhiên NST Thực chéo NST Thực đột biến NST thu Tỷ lệ > 90% & số lượng hệ lớn giới hạn 15 2.2 Mã hóa liệu Khởi tạo số lượng dân số ngẫu nhiên Chọn dân số với giá trị ngẫu nhiên v1 v2 v3 v4 v5 v6 1 1 1 1 0 0 1 0 0 1 1 1 0 0 1 0 T KL 24 19 22 21 16 15 T GT 19 20 28 11 18 15 Cho pop-size =6 Xác suất lai ghép = 0.67 Xác suất đột biến = 0.1 2.3 Tính độ thích nghi NST Tính độ thích nghi NST Chúng ta tính tốn độ thích nghi nhiễm sắc thể cách tổng hợp giá trị đồ vật có ba lơ, đảm bảo khối lượng ba lô không vượt khối lượng cho phép Nếu khối lượng nhiễm sắc thể lớn khối lượng ba lơ bit nhiễm sắc thể có giá trị đảo ngược nhiễm sắc thể kiểm tra lần Đây sơ đồ thuật tốn tính độ thích nghi 16 Đối với NST ta tiến hành: Tính tổng khối lượng tổng giá trị NST Nếu tổng KL> giới hạn khối lượng ba lô Chọn ngẫu nhiên mục NST có bit Lấy tổng khối lượng tổng giá trị NST cho vào mảng độ thích nghi[] Loại bỏ mặt hàng khỏi ba lô(thay đổi bit thành bit 0) Hàm tính độ thích nghi: 17 Ví dụ: v1 v2 v3 v4 v5 v6 1 1 1 1 0 0 1 0 0 1 1 1 0 0 1 0 T KL 24 19 22 21 16 15 T GT 19 20 28 11 18 15 Trong bảng: v1 có T.KL = 24 > khối lượng tối đa ba lơ chứa Đổi bit thành bit mục NST v1, ta bảng dân số mới( thỏa mãn điều kiện khối lượng tối đa ba lô) v1 v2 v3 v4 v5 v6 T KL T GT 1 1 1 0 0 1 0 0 1 1 1 0 0 1 0 16 19 22 21 16 15 16 20 28 11 18 15 Độ thích nghi = T.GT NST Eval(v1)= 16 Eval(v2)= 20 Eval(v3)= 28 Eval(v4)= 11 Eval(v5)= 18 Eval(v6)= 15 Ta thấy độ thích nghi v3 lớn v4 yếu 2.4 Chọn lọc Tỉ lệ giống < 90% Ta tiếp tục bước lựa chọn ngẫu nhiên NST, việc lựa chọn ta có nhiều cách lựa chọn - Lựa chọn với bánh xe roulette Bánh xe Roulette phương pháp đơn giản việc thực lựa chọn độ thích nghi-tương ứng Mỗi NST phần bánh xe roulette, độ lớn phần tùy theo độ thích nghi Các bánh xe quay N lần, N số NST có 18 dân số (N = Size) Sau vòng xoay, bánh xe dừng NST ghi lại Phương pháp thực theo cách sau: Tính độ lớn NST bánh xe Roulette Chọn ngẫu nhiên số từ – Size làm giới hạn Bánh xe quay qua tất phần tương ứng NST Tổng hợp vị trí rơi vịng quay Các NST rơi vào nhiều chọn làm cha mẹ hệ Tổng độ thích nghi quần thể: F = 16+ 20+ 28+ 11+ 18+ 15 = 108 Xác suất chọn lọc pi NST vi (i= 6) là: p1= 16*100/(16+20+28+11+18+15) = 14,8 % p2= 20*100/(16+20+28+11+18+15) = 18,5 % p3= 28*100/(16+20+28+11+18+15) = 25,9 % p4= 11*100/(16+20+28+11+18+15) = 10,2 % p5= 18*100/(16+20+28+11+18+15) = 16,7 % p6= 15*100/(16+20+28+11+18+15) = 13,9 % Các vị trí sác xuất qi NST vi (i=1…6) là: 19 q1= 14.8% = 0.148 q2= 14,8+ 18.5 = 33.3 % = 0.333 q3= 14,8+ 18.5+ 25,9 = 59.2% = 0.592 q4= 14,8+ 18.5+ 25,9+ 10,2 = 69.4 % = 0.694 q5= 14,8+ 18.5+ 25,9+ 10,2+ 16,7 = 86.1 % = 0.861 q6= 14,8+ 18.5+ 25,9+ 10,2+ 16,7+ 13,9 = 100% = 1.000 Giả sử quay lần bánh xe Roulette, lần chọn NST cho quần thể mới, đạt giá trị ngẫu nhiên khoảng từ [0,1] sau: NST cũ V1 V2 V3 V4 V5 V6 Số lần quay bánh xe Lần Lần Lần Lần Lần Lần Vị trí rơi 0.277 0.521 0.811 0.111 0.498 0.602 Giải thích 0.148

Ngày đăng: 18/03/2014, 02:20

Từ khóa liên quan

Mục lục

  • MỤC LỤC

  • LỜI NÓI ĐẦU

  • CHƯƠNG I - TỔNG QUAN VỀ GIẢI THUẬT DI TRUYỀN

    • 1. Khái niệm

      • Hình 1. Sơ đồ giải thuật di truyền

      • 2. Các bước của giải thuật di truyền

        • 2.1. Khởi tạo quần thể (initialize)

        • 2.2. Tính toán độ thích nghi(evaluate)

        • 2.3. Chọn lọc(select)

          • Hình 2. Bánh xe Roulette

          • 2.4. Quá trình sinh sản

          • CHƯƠNG II - BÀI TOÁN XẾP BA LÔ

            • 1. Giới thiệu

            • 2. Nội dung bài toán

              • Hình 3. Ba lô

              • 3. Bài toán xếp ba lô dạng 0-1

              • 4. Ví dụ

              • CHƯƠNG III - ỨNG DỤNG GIẢI THUẬT DI TRUYỀN TRONG BÀI TOÁN XẾP BA LÔ

                • 1. Tiếp cận giải thuật di truyền trong bài toán ba lô

                • 2. Sử dụng giải thuật di truyền để giải bài toán xếp ba lô

                  • 2.1. Khởi tạo dữ liệu

                  • 2.2. Mã hóa dữ liệu. Khởi tạo số lượng dân số ngẫu nhiên

                  • 2.3. Tính độ thích nghi của mỗi NST

                  • 2.4. Chọn lọc

                  • 2.5. Lai ghép

                  • 2.6. Đột biến

                  • KẾT LUẬN

                  • TÀI LIỆU THAM KHẢO

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

Tài liệu liên quan