Tỉm hiểu Giải thuật di truyền và xây dựng ứng dụng minh họa

30 1.9K 5
Tỉm hiểu Giải thuật di truyền và xây dựng ứng dụng minh họa

Đ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

Giải thuật di truyền GA(GENETIC ALGORITHM) do D.E. Goldberg đề xuất, sau đó được L. Davis và Z. Michalevicz phát triển, đây cũng chính là một trong các thuật toán tiến hóa. Thuật toán tiến hóa là các chương trình máy tính có dùng các thuật toán tìm kiếm, tối ưu hóa dựa trên nguyên lý tiến hóa tự nhiên.

MỤC LỤC CHƯƠNG 1: GIẢI THUẬT DI TRUYỀN 1.1 GIỚI THIỆU 1.2 CÁC KHÁI NIỆM CƠ SỞ .3 1.2.1 Lai ghép 1.2.2 Đột biến 1.2.3 Chọn lọc 1.2.4 Nhiễm sắc thể 1.2.5 Cá thể .4 1.2.6 Quần thể 1.3 SƠ ĐỒ CHUNG CỦA GIẢI THUẬT DI TRUYỀN .5 1.4 CÁC PHƯƠNG PHÁP MÃ HÓA VÀ KHỞI TRỊ 1.4.1 Mã hóa dạng nhị phân .7 1.4.2 Mã hóa dạng số thực .8 1.4.3 Mã hoá hoán vị: .9 1.4.4 Tạo lập lời giải ban đầu (khởi tạo quần thể) 1.5 XÂY DỰNG HÀM THÍCH NGHI (hàm phù hợp) .9 1.6 CÁC TOÁN TỬ DI TRUYỀN .10 1.6.1 Toán tử chọn lọc (Selection) 11 1.6.2 Toán tử lai ghép (crossover) 13 1.6.3 Toán tử đột biến (Mutation) 17 CHƯƠNG2: ỨNG DỤNG GIẢI THUẬT DI TRUYỀN GIẢI BÀI TOÁN RA ĐỀ THI TỐI ƯU 21 2.1 Bài toán 21 2.2 Các yêu cầu chung việc đề: .22 Các yêu cầu đề thi: 22 2.3 Mơ hình tốn đề thi: 24 2.3.1 Phân tích tốn: 24 2.3.2 Bài tốn tìm đề thi tối ưu thuộc vào lớp toán NP-đầy đủ 25 2.3.3 Xây dựng cá thể, hàm thích nghi phép toán di truyền 25 1 CHƯƠNG 1: GIẢI THUẬT DI TRUYỀN 1.1 GIỚI THIỆU Giải thuật di truyền GA(GENETIC ALGORITHM) D.E Goldberg đề xuất, sau L Davis Z Michalevicz phát triển, thuật tốn tiến hóa Thuật tốn tiến hóa chương trình máy tính có dùng thuật tốn tìm kiếm, tối ưu hóa dựa nguyên lý tiến hóa tự nhiên Giải thuật di truyền hình thành dựa quan niệm: q trình tiến hóa tự nhiên q trình hồn hảo hợp lý nhất, tự q trình mang tính tối ưu Quan niệm tiên đề đúng, không chứng minh phù hợp với thực tế khách quan Tính tối ưu q trình tiến hóa thể đặc điểm, hệ sau tốt (phát triển hơn, hồn thiện hơn) hệ trước Tiến hóa tự nhiên trì nhờ hai trình sinh sản chọn lọc tự nhiên, suốt q trình tiến hóa tự nhiên, hệ sinh để bổ sung thay thế hệ cũ Cá thể phát triển hơn, thích ứng với môi trường tồn tại, cá thể khơng thích ứng với mơi trường bị đào thải Sự thay đổi môi trường động lực thúc đẩy q trình tiến hóa, ngược lại tiến hóa tác động trở lại góp phần thay đổi mơi trường Giải thuật di truyền giải thuật tìm kiếm, chọn lựa giải pháp tối ưu để giải toán thực tế khác nhau, dựa chế chọn lọc tự nhiên: từ tập lời giải ban đầu, thơng qua nhiều bước tiến hố, hình thành tập lời giải phù hợp hơn, cuối dẫn đến lời giải tối ưu toàn cục Trong tự nhiên, cá thể muốn tồn phát triển phải thích nghi với mơi trường, cá thể thích nghi tồn tại, cá thể thích nghi bị tiêu diệt Trong cá thể, gen liên kết với theo cấu trúc dạng chuỗi, gọi nhiễm sắc thể (NST) Mỗi NST đặc trưng cho lồi định sống cịn cá thể Do mơi trường tự nhiên ln biến đổi nên cấu trúc NST thay đổi để thích nghi với mơi trường hệ sau ln thích nghi hệ trước Cấu trúc có trao đổi thơng tin có tính ngẫu nhiên với mơi trường bên ngồi NST với Từ ý tưởng đó, nhà khoa học nghiên cứu xây dựng nên giải thuật di truyền dựa sở chọn lọc tự nhiên quy luật tiến hoá Giải thuật di truyền sử dụng thuật ngữ lấy từ di truyền học như: lai ghép, đột biến, NST, cá thể Ở cá thể đặc trưng tập nhiễm sắc thể, để đơn giản trình bày, ta xét trường hợp tế bào cá thể NST Các NST chia nhỏ thành gen xếp theo dãy tuyến tính Mỗi cá thể (hay NST) biểu diễn lời giải toán Một xử lý tiến hoá duyệt tập NST tương đương với việc tìm kiếm lời giải khơng gian lời giải tốn Q trình tìm kiếm phải đạt hai mục tiêu: + Khai thác lời giải tốt + Xem xét toàn khơng gian tìm kiếm 1.2 CÁC KHÁI NIỆM CƠ SỞ 1.2.1 Lai ghép Lai ghép tự nhiên kết hợp tính trạng bố mẹ để sinh hệ Trong giải thuật di truyền, lai ghép 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 1.2.2 Đột biến Đột biến biến đổi (hay số) gen nhiễm sắc thể ban đầu để tạo nhiễm sắc thể Đột biến có xác suất xảy thấp lai ghép Đột biến tạo cá thể tốt xấu cá thể ban đầu Tuy nhiên giải thuật di truyền ta ln muốn tạo phép đột biến cho phép cải thiện lời giải qua hệ 1.2.3 Chọn lọc Trong tự nhiên, trình chọn lọc đấu tranh sinh tồn làm thay đổi cá thể quần thể Những cá thể tốt, thích nghi với điều kiện sống có khả đấu tranh lớn hơn, tồn sinh sản Các cá thể khơng thích nghi với điều kiện sống dần Dựa vào nguyên lý trình chọn lọc đấu tranh sinh tồn tự nhiên, chọn lựa cá thể GA cách chọn cá thể có độ thích nghi tốt để đưa vào hệ lai ghép, với mục đích sinh cá thể tốt Có nhiều cách để lựa chọn cuối nhằm đáp ứng mục tiêu cá thể tốt có khả chọn cao 1.2.4 Nhiễm sắc thể Một NST tạo thành từ nhiều gen, gen có giá trị khác để quy định tính trạng Trong GA, gen coi phần tử chuỗi NST 1.2.5 Cá thể Một cá thể giải thuật di truyền, biểu diễn giải pháp tốn Tuy nhiên khơng giống với tự nhiên, cá thể có nhiều nhiễm sắc thể, có gọi thể đơn bội, cịn có nhiều thể đa bội, để giới hạn giải thuật di truyền ta quan niệm cá thể có nhiễm sắc thể Do khái niệm cá thể nhiễm sắc thể giải thuật di truyền tiểu luận coi tương đương 1.2.6 Quần thể Là tập hợp cá thể loài, sống khoảng không gian xác định vào thời gian định, có khả sinh sản tạo thành hệ Trong giải thuật di truyền ta quan niệm quần thể tập lời giải toán 1.3 SƠ ĐỒ CHUNG CỦA GIẢI THUẬT DI TRUYỀN Với khái niệm nêu trên, giải thuật di truyền mơ tả vắn tắt sau: Bắt đầu Khởi tạo quần thể Đánh giá độ thích nghi Chọn lọc Lai ghép Đột biến Kiểm tra điều kiện Khơng Thỏa Kết Kết thúc Hình: Sơ đồ cấu trúc giải thuật di truyền Giải thích khối sơ đồ: [Bắt đầu ] Nhận tham số cho thuật toán [Khởi tạo quần thể] Sinh ngẫu nhiên quần thể gồm M cá thể (là M lời giải cho toán) Tạo quần thể cách lặp lại bước sau quần thể hoàn thành a.[Đánh giá độ thích nghi] Đánh giá độ thích nghi eval(x) cá thể quần thể b.[Chọn lọc] Chọn hai cá thể bố mẹ từ quần thể cũ theo độ thích nghi chúng (cá thể có độ thích nghi cao có nhiều khả chọn) c.[Lai ghép] Với xác suất lai ghép chọn, lai ghép hai cá thể bố mẹ để tạo cá thể d.[Đột biến] Với xác suất đột biến chọn, biến đổi cá thể e.[Kiểm tra điều kiện] Kiểm tra điều kiện kết thúc giải thuật [Kết quả] Nếu điều kiện dừng thỏa mãn thuật tốn kết thúc trả lời giải tốt quần thể 1.4 CÁC PHƯƠNG PHÁP MÃ HĨA VÀ KHỞI TRỊ Việc mơ tả di truyền cho lời giải cho toán gồm hai phần bản: + Xây dựng cấu trúc gen cho lời giải toán để từ lời giải ta mã hố thành NST (chuỗi gen) + Giải mã NST để nhận lời giải Đây vấn đề cần giải trước giải toán với GA Tuỳ thuộc vào nội dung tốn mà ta có cách mã hoá khác Sau phương pháp mã hóa thường dùng: 1.4.1 Mã hóa dạng nhị phân Mã hóa nhị phân phổ biến nhất, chủ yếu cơng trình GA sử dụng loại mã hóa Trong mã hóa nhị phân nhiễm sắc thể chuỗi bit Ví dụ: Nhiễm sắc thể A: 101100101100101011100101 Nhiễm sắc thể B: 111111100000110001 Mã hoá - Biểu diễn biến véc tơ nhị phân Ta sử dụng véc tơ nhị phân có độ dài L NST để biểu diễn giá trị thực biến x ∈ [lx, ux] Độ dài L NST phụ thuộc vào yêu cầu cụ thể toán Một bit mã hoá x ứng với giá trị khoảng [0, L] ánh xạ lên giá trị thực thuộc miền [lx,ux] Nhờ ta kiểm sốt miền giá trị biến tính xác chúng Tỷ lệ co giãn ánh xạ tính sau: g = u x −l x 2L Giá trị x tương ứng với chuỗi NST nhị phân là: x = lx+ decimal(NST) * g đó, decimal(NST) giá trị thập phân chuỗi NST nhị phân Chẳng hạn ta muốn tìm cực tiểu hàm k biến f(x1,…,xk): Rk → R Giả sử thêm biến xi nhận giá trị miền Di = [ai, bi] ⊆ R f(x1,…,xk) > với xi thuộc Di Ta muốn tối ưu hố hàm f với độ xác cho trước số lẻ giá trị biến Rõ ràng để đạt độ xác miền Di phân cắt thành (bi – ai)*106 miền Gọi mi số nguyên nhỏ cho: (bi – ai)*106 ≤ 2mi - Như vậy, biến xi biểu diễn chuỗi nhị phân có chiều dài mi Biểu diễn trên, rõ ràng thoả mãn điều kiện độ xác u cầu Cơng thức sau tính giá trị thập phân chuỗi nhị phân biểu diễn biến xi X i = a i + decimal (1100 012 ) bi − a i mi − decimal(chuỗi2) cho biết giá trị thập phân chuỗi nhị phân Bây giờ, nhiễm sắc thể (là lời giải) biểu diễn chuỗi nhị phân có chiều dài L= ∑ki=1 mi m1 bit biểu diễn giá trị khoảng [a1, b1]; ; mk bit cuối biểu diễn giá trị khoảng [ak, bk] Để khởi tạo quần thể, cần đơn giản tạo pop-size (kích cỡ quần thể) nhiễm sắc thể ngẫu nhiên theo bit Phần lại thuật giải di truyền đơn giản: hệ, ta lượng giá nhiễm sắc thể (tính giá trị hàm f chuỗi biến nhị phân giải mã), chọn quần thể thoả phân bố xác suất dựa độ thích nghi thực phép đột biến lai để tạo cá thể hệ Sau số hệ, khơng cịn cải thiện thêm nữa, nhiễm sắc thể tốt xem lời giải tốn tối ưu (thường tồn cục) Thông thường, ta cho dừng thuật giải di truyền sau số bước lặp cố định tuỳ thuộc vào điều kiện tốc độ tài nguyên máy tính 1.4.2 Mã hóa dạng số thực Mỗi NST mã hố vecto không gian R m chẳng hạn X = (a1, a2, , am) với ∈ R Cách mã hoá thường tự nhiên toán tối ưu số phát triển mạnh thời gian gần Ví dụ: Nhiễm sắc thể A 1,2324 5,3243 0,4556 2,3293 2,4545 Nhiễm sắc thể B 3,134 5,234 0,245 2,976 1.4.3 Mã hoá hoán vị: Mỗi cá thể tương ứng với hoán vị tập n ký hiệu Chẳng hạn cách biểu diễn áp dụng cho toán người du lịch: Một thương gia phải qua nhiều thành phố (n) Hãy vạch lộ trình qua tất thành phố cho quãng đường ngắn Biết thành phố qua lần Kí hiệu thành phố T1, T2, , Tn cá thể - mã hoá lời giải danh sách hoán vị T1, T2, , Tn biểu diễn lộ trình mà người thương gia qua Thí dụ T 8T5T9T3 kí hiệu hành trình từ T → T5 → T9 → T3 Như chuỗi biểu diễn cho đỉnh khơng gian tìm kiếm qua thể cách trả lời có tốn Sau chuỗi nhiễm sắc thể giải mã lại để trả thông số ban đầu toán 1.4.4 Tạo lập lời giải ban đầu (khởi tạo quần thể) Tập lời giải ban đầu thường khởi tạo ngẫu nhiên từ miền xác định lời giải Cách tạo lập tập lời giải ban đầu phụ thuộc nhiều vào cách mã hoá NST Với phương pháp mã hoá nhị phân: xây dựng NST cách tạo ngẫu nhiên chuỗi bit Với phương pháp mã hoá hoán vị: xây dựng NST ban đầu cách hoán vị ngẫu nhiên thứ tự Với mã hoá số thực: tạo ngẫu nhiên N vecto thực Rm 1.5 XÂY DỰNG HÀM THÍCH NGHI (hàm phù hợp) Hàm phù hợp đánh giá khả phù hợp tập lời giải theo yêu cầu toán Hàm xây dựng cho tốn với u cầu cụ thể Thơng thường tốn tối ưu hàm hàm mục tiêu toán Biến đổi hàm mục tiêu thành hàm phù hợp: Do giá trị phù hợp giải thuật di truyền không âm, nên để áp dụng GA cho toán tối ưu ta cần phải chuyển giá trị hàm mục tiêu thành hàm phù hợp Nếu toán tối ưu cực tiểu hàm mục tiêu g(x) ta chuyển sang hàm phù hợp sau: C − g ( x ) f ( x ) =  max  g ( x ) < C max nguoc lai Trong đó, Cmax tham số vào người sử dụng chọn, thường chọn C max giá trị lớn hàm mục tiêu tập Nếu toán tối ưu cực đại hàm mục tiêu g(x), ta chuyển sang hàm phù hợp sau : C + g ( x ) f ( x ) =   g ( x ) + C > nguoc lai Trong Cmin tham số đầu vào, Cmin giá trị tuyệt đối bé hàm mục tiêu tập k vịng lặp cuối 1.6 CÁC TỐN TỬ DI TRUYỀN Trong giải thuật di truyền, cá thể liên tục sinh q trình tiến hóa nhờ lai ghép hệ cha mẹ Một cá thể mang tính trạng cha mẹ (di truyền), mang tính trạng hoàn toàn (đột biến) Di truyền đột biến hai chế có vai trị quan trọng tiến trình tiến hóa, đột biến xảy với xác suất nhỏ nhiều so với tượng di truyền Các thuật tốn tiến hóa, có điểm khác biệt, mơ ba toán tử bản: lai ghép, đột biến chọn lọc 10 Ví dụ: Với P1 = (1 1 0 0 0) P2 = (0 0 1 1) hai chuỗi nhị phân độ dài 11, giả sử chuỗi bít nhị phân (mặt nạ) khởi tạo ngẫu nhiên ta có kết sau: Các chuỗi ban đầu Mặt nạ lai ghép Các cá thể Lai ghép điểm đơn: 11101001000 11111000000 00001010101 11101010101 00001001000 Lai ghép điểm kép: 11101001000 00111110000 00001010101 11001011000 00101000101 Lai ghép đồng nhất: 11101001000 00001010101 00111110000 10001000100 01101011001 Đột biến điểm: 11101001000 11101011000 Hình: Các tốn tử chung cho thuật giải di truyền 16 Thủ tục lai ghép sau : Procedure lai_mat_na(U, P1, P2; var C1, C2); Begin For i:=1 to L Begin If U[i]=1 then Begin C1[i] := P1[i]; C2[i] := P2[i]; End Else Begin C1[i] := P2[i]; C2[i] := P1[i]; End; End; End; 1.6.3 Toán tử đột biến (Mutation) Toán tử đột biến gán xác suất p m (nhỏ nhiều so với xác suất lai ghép pc) Điều suy diễn tự nhiên đột biến xảy Phép đột biến mô tả sau: - Chọn ngẫu nhiên NST quần thể - Tạo số ngẫu nhiên k khoảng từ tới m, ≤ k ≤ m - Thay đổi bít thứ k Đưa nhiễm sắc thể vào quần thể để tham gia trình tiến hóa hệ Ví dụ : v1 = 101101010 v2 = 101111010 NST v1 chọn để đột biến vị trí gen thứ năm, gen 0, sau đột biến trở thành Khi NST v1 trở thành v2 17 Tóm lại, giải thuật di truyền cổ điển mơ tả cách tường minh sau: Algorithm GA; BEGIN {Khởi tạo quần thể m cá thể} t := 0; {Khởi tạo } B0 = (b10 , b20 , , bm0 ); {Đánh giá độ thích nghi} WHILE (not (điều kiện dừng)) DO BEGIN {chọn lọc tỷ lệ} FOR i:=1 TO m DO BEGIN r:=random[0,1]; k:=1; ∑ r< ∑ i WHILE (k

Ngày đăng: 22/10/2014, 10:33

Từ khóa liên quan

Mục lục

  • 1 CHƯƠNG 1: GIẢI THUẬT DI TRUYỀN

    • 1.1 GIỚI THIỆU

    • 1.2 CÁC KHÁI NIỆM CƠ SỞ

      • 1.2.1 Lai ghép

      • 1.2.2 Đột biến

      • 1.2.3 Chọn lọc

      • 1.2.4 Nhiễm sắc thể

      • 1.2.5 Cá thể

      • 1.2.6 Quần thể

      • 1.3 SƠ ĐỒ CHUNG CỦA GIẢI THUẬT DI TRUYỀN

      • 1.4 CÁC PHƯƠNG PHÁP MÃ HÓA VÀ KHỞI TRỊ

        • 1.4.1 Mã hóa dạng nhị phân

        • 1.4.2 Mã hóa dạng số thực

        • 1.4.3 Mã hoá hoán vị:

        • 1.4.4 Tạo lập lời giải ban đầu (khởi tạo quần thể)

        • 1.5 XÂY DỰNG HÀM THÍCH NGHI (hàm phù hợp)

        • 1.6 CÁC TOÁN TỬ DI TRUYỀN

          • 1.6.1 Toán tử chọn lọc (Selection)

          • 1.6.2 Toán tử lai ghép (crossover)

          • 1.6.3 Toán tử đột biến (Mutation)

          • 2 CHƯƠNG2: ỨNG DỤNG GIẢI THUẬT DI TRUYỀN GIẢI BÀI TOÁN RA ĐỀ THI TỐI ƯU

            • 2.1 Bài toán

            • 2.2 Các yêu cầu chung của việc ra đề:

              • Các yêu cầu của đề thi:

              • 2.3 Mô hình bài toán ra đề thi:

                • 2.3.1 Phân tích bài toán:

                • 2.3.2 Bài toán tìm đề thi tối ưu thuộc vào lớp bài toán NP-đầy đủ

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

Tài liệu liên quan