Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 14 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
14
Dung lượng
268,6 KB
Nội dung
Mục lục Tổng quan Thuậtgiảiditruyềnứngdụng 1.1 Metaheuristic 1.2 TìmhiểuThuậtgiảiditruyềnứngdụng 1.2.1 Giới thiệu thuậtgiảidi truyền: 1.2.2 Các bước thuậtgiảidi truyền: .4 1.2.3 Các thành phần thuậtgiảiditruyền .4 1.2.4 Cấu trúc giảithuậtditruyền tổng quát Ứngdụngthuậttoánditruyềnvàotoándựđoánpassword gồm chữ số .9 2.1 Giới thiệu toán 2.2 Thiết kế thuậtgiảiditruyềndựđoánpassword 11 2.3 Cài đặt thuậtgiảiditruyền C# 11 2.4 Màn hình chính: .14 Kết luận 14 Tài liệu tham khảo 15 1 Tổng quan Thuậtgiảiditruyềnứngdụng 1.1 Metaheuristic Metaheuristic cách gọi chung cho giảithuật heuristic việc giảitoán tổ hợp khó Metaheuristic bao gồm chiến lược khác việc khám phá không gian tìm kiếm cách sử dụngphương thức khác phải đạt cân tính đa dạng chuyên sâu không gian tìm kiếm Một cài đặt thành công metaheuristic toán tổ hợp phải cân khai thác kinh nghiệm thu thập trình tìm kiếm để xác định vùng với lời giải có chất lượng cao gần tối ưu Những ví dụ metaheuristic bao gồm giảithuật luyện thép (SA - Simulated Annealing), giảithuậtditruyền (GA - Genetic Algorithm), giảithuật đàn kiến (ACO ), tìm kiếm tabu (Tabu search) 1.2 TìmhiểuThuậtgiảiditruyềnứngdụng 1.2.1 Giới thiệu thuậtgiảidi truyền: Genetic Algorithms tạm dịch Thuậtgiảiditruyền (ngắn gọn gọi GA) bắt nguồn từ ý niệm tiến hóa để tồn phát triển tự nhiên GA phương thức giảivấnđề bắt chước lối hành xử người để tồn phát triển Nó giúp tìmgiảipháp tối ưu hay tốt điều kiện thời gian không gian cho phép GA xét đến toàngiải pháp, cách xét trước số giảipháp sau loại bỏ thành phần không thích hợp chọn thành phần thích nghi để tạo sinh biến hóa nhằm mục đích tạo nhiều giảipháp có hệ số thích nghi ngày cao Hệ số thích nghi đểdùng làm tiêu chuẩn đánh giá giảipháp Cấu trúc liệu + giảithuậtditruyền = chương trình tiến hóa Thuật ngữ “chương trình tiến hóa” công thức khái niện dùngđể chương trình máy tính có sử dụngthuậttoántìm kiếm tối ưu hóa dựa nguyên lý tiến hóa tự nhiên 1.2.2 Các bước thuậtgiảidi truyền: Bước 1: Chọn mô hình (model) để tượng trưng cho giảipháp Các mô hình dãy (String) số nhị phân: 0, thập phân chữ hay hỗn hợp chữ số Bước 2: Chọn hàm số thích nghi đểdùng làm tiêu chuẩn đánh giá giảipháp Bước 3: Tiếp tục hình thức biến hóa đạt giảipháp tốt đến thời gian cho phép chấm dứt 1.2.3 Các thành phần thuậtgiảiditruyền Quá trình lai ghép (phép lai) +Chọn ngẫu nhiên hai (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-1 (ta gọi điểm lai) +Đưa hai cá thể vào quẩn thể để tham gia trình tiến hóa Quá trình đột biến (phép đột biến) +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, ≤ k ≤ m +Thay đổi gen thứ k trả cá thể quần thể để tham giá trình tiến hóa Quá trình sinh sản +Tính độ thích nghi cá thể quẩn thể hành, lập bảng cộng dồn giá trị thích nghi (theo số thứ tự gán cho cá thể) 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 Fti, tổng độ thích nghi toàn quần thể Fm +Tạo số ngẫu nhiên F đoạn từ đến Fm +Chọn cá thể thứ k thỏa mãn F ≥ Ftk đưa vào quần thể hệ Mỗi cặp bố mẹ sinh hai theo hai phươngpháp sau +Vô tính Mỗi ấu nhi xác từ cha Mỗi ấu nhi xác từ mẹ +Hữu tính (giao nhau) Một vài bits từ mẹ, vài bits chép từ cha Cứ tiếp tục từ cặp bố mẹ chừng điểm giao nhau, chép từ cặp bố mẹ khác Quá trình chọn lọc +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 Ở đây, tả giả sử quần thể có kích thước cố định n Điều kiện dừnggiải thuật: Chúng ta khảo sát điều kiện đơn giản đểdừng số hệ vượt ngưỡng cho trước Trong số phiên chương trình tiến hoá cá thể tiến hoá lại Vài cá thể có khả vượt từ hệ sang hệ khác mà không thay đổi Trong trường hợp vậy, đếm số lần lượng hàm Nếu số lần lượng hàm vượt xác định trước dừng việc tìm kiếm Chúng ta nhận thấy, điều kiện dừng giả thiết người sử dụng biết đặc trưng hàm, có ảnh hưởng tới chiều dài tìm kiếm Trong số trường hợp khó xác định số lượng hệ (hay lượng giá hàm) phải Giảithuật kết thúc hội cho cải thiện quan trọng chưa bắt đầu Có hai loại điều kiện dừng Các điều kiện dùng đặc trưng tìm kiếm để định ngừng trình tìm kiếm -Dựa cấu trúc nhiễm sắc thể: hội tụ quần thể cách kiểm soát số alen hội tụ, alen coi hội tụ số phần trăm quần thể định trước có (hoặc tương đương biểu diễn không nhị phân) giá trị alen Nếu số alen hội tụ vượt số phần trăm tổng số alen, việc tìm kiếm kết thúc -Dựa ý nghĩa đặc biệt nhiễm sắc thể: đo tiến giảithuật số hệ cho trước Nếu tiến nhỏ số ε xác định, kết thúc tìm kiếm 1.2.4 Cấu trúc giảithuậtditruyền tổng quát Bắt đầu t = 0; Khởi tạo P(t); Tính độ thích nghi cho cá thể thuộc P(t); Khi (điều kiện dừng chưa thỏa mãn) lặp t = t+1; Tái sinh P’(t) từ P(t); Lai Q(t) từ P(t-1); Đột biến R(t) từ P(t-1); Chọn lọc P(t) từ P(t-1) U Q(t) U R(t) U P(t); Hết lặp Kết thúc 1.2.5 Thuậtgiảiditruyền so với phươngpháptruyền thống Chúng ta xét toán đơn giản sau đây: tối ưu hoá hàm y = f(x) khoảng xác định D Khi dùngphươngpháptruyền thống có số cách giải sau đây: Phươngpháp liệt kê: Duyệt tất điểm nằm vùng khảo sát D đểtìm điểm cực trị Phươngpháp không thích hợp liệu đầu vào lớn Trong trường hợp miền D có không gian lớn để đếm Phươngphápgiải tích: Tìm điểm cực trị cách giải tập phương trình cho Gradient Để xét Gradient phải tính đạo hàm hàm số Điều không giải trường hợp hàm số không liên tục đạo hàm Ngoài hàm nhiều cực trị phươngpháp bỏ cực trị, cực trị tìm mang tính chất địa phương Phươngpháptìm kiếm ngẫu nhiên: phươngpháp kết hợp phươngpháp tính toángiải tích sơ đồ liệt kê Tuy nhiên việc làm ngẫu nhiên với giảithuậttìm kiếm ngẫu nhiên phải bị suy yếu thiếu tính hiệu Đối với Thuậtgiảidi truyền: thông số toántìm kiếm phải mã hoá thành chuỗi hữu hạn ký tự tập hữu hạn ký tự Chuỗi tương tự chuỗi gen thể sinh vật Có nhiều cách để mã hóa tập thông số Một cách đơn giản mã hoá thành chuỗi bit tập ký tự {0,1} Mỗi chuỗi đại diện cho điểm tìm kiếm không gian GA xuất phát với quần thể chuỗi khởi tạo cách ngẫu nhiên sau sản sinh quần thể thông qua việc sử dụng lựa chọn ngẫu nhiên công cụ Nhờ Thuậtgiảiditruyềntìm kiếm nhiều điểm song song có khả leo lên nhiều cực trị lúc Thông qua toán tử mình, giảithuật trao đổi thông tin cực trị với nhau, từ làm giảm thiểu khả giảithuật kết thúc cực trị địa phương bỏ qua cực trị toàn cục Đây đặc trưng Thuậtgiảiditruyền so với phươngpháptruyền thống 1.2.6 Các ứngdụngthuậtgiảiditruyền +Tối ưu hoá máy học: Trong lĩnh vực tối ưu hóa có nhiều toán áp dụngThuậtgiảiditruyền thành công tối ưu hoá hàm biến, tối ưu hóa hàm nhiều biến, hay toán người du lịch, toán hộp đen, toán kinh doanh, nhận dạng điều khiển hệ thống Sau giới thiệu số toán tối ưu hóa: David E.Golderg ứngdụng GA để tối ưu hóa toán điều khiễn hệ thống đường ống dẫn khí thiên nhiên Trong toán này, mục tiêu cực tiểu hóa lượng trình nén, phụ thuộc vào áp suất tối đa áp suất tối thiểu ràng buộc tỉ lệ áp suất Tối ưu hoá kết cấu: Mục tiêu toán cực tiểu hóa trọng lượng kết cấu, phụ thuộc vào ràng buộc ứng suất lớn ứng suất nhỏ Một mã cho khung kết cấu theo ma trận tiêu chuẩn dùngđể phân tích thiết kế tạo Thuậtgiảiditruyền Trong lĩnh vực máy học, Thuậtgiảiditruyền sử dụng cho việc tìmhiểu quy luật có cấu trúc cấu trúc IF-THEN môi trường nhân tạo, khai phá liệu data mining +Ghi ảnh y học với ThuậtgiảiditruyềnThuậtgiảiditruyền đơn giản sử dụngđể thực ghi hình ảnh, phận hệ thống lớn có tên Digital Subtraction Angiography (DSA) Trong DSA, bác sĩ cố gắng xem xét bên động mạch khả nghi cách so sánh hình ảnh x-quang, chụp trước tiêm thuốc nhuộm màu vào động mạch, chụp sau tiêm thuốc Cả hai hình số hóa trừ theo điểm một, với kết mong muốn cuối nhận hình ảnh sai khác phác họa rõ ràng hình ảnh bên động mạch chủ Tuy nhiên chuyển động nhẹ bệnh nhân tạo hai hình ảnh kế nhau, làm rối loạn phần hình ảnh sai khác Kết là, hình ảnh phải xếp kế nhau, để tính toán phần hình ảnh sai khác Thuậtgiảiditruyềndùngđểtìm kiếm hệ số biến đổi đểtìm kiếm hệ số giúp cực tiểu hóa sai biệt hình ảnh trước sau tiêm, sở sai khác hình ảnh tuyệt đối Các Thuậtgiảiditruyền làm việc với mã hoá tập thông số không làm việc với giá trị thông số Các Thuậtgiảiditruyềntìm kiếm từ quần thể điểm từ điểm Các Thuậtgiảiditruyền sử dụng thông tin tiêu chuẩn tối ưu hàm mục tiêu không dùng thông tin hỗ trợ khác Các Thuậtgiảiditruyền sử dụng luật chuyển đổi mang tính xác suất luật chuyển đổi mang tính xác định Các Thuậtgiảiditruyền thường dễ cài đặt, áp dụng Tuy nhiên lúc cho lời giải xác Một số Thuậtgiảiditruyền cung cấp lời giải tiềm cho toán xác định để người sử dụng lựa chọn Ứngdụngthuậttoánditruyềnvàotoándựđoánpassword gồm chữ số 2.1 Giới thiệu toán Một ví dụ đơn giản tìm mật để mở khóa – giả định password cho nhập số gồm ký tự Với toán có tổng cộng 10^6 = 1.000.000 mật mã khác Trước vấnđề ta phải thử ngẫu nhiên vét cạn đểtìm kiếm passwordtìm kiếm lên tới 1.000.000 đểtìmpasswordDĩ nhiên, đứng trước vấn đề-bài toán vậy, người ta thường tìm cách cải thiện thuậttoán cách cung cấp thêm số thông tin khác Chẳng hạn với toán mở khóa thông tin cho biết hai mật mã phát sinh ra, mật mã "tốt" (nghĩa có khả mở khóa cao hơn) Có thể bạn đọc thắc mắc "bằng cách để biết hai mật mã, mật mã có khả mở khóa cao hơn?" Thông thường, mở khóa, người ta thường dựa tác nhân vật lý – tiếng động bên ổ khóa đưa vào mật mã – đểdựđoán tính "tốt" mật mã thử Khi biết được độ "tốt" mật mã, ta sử dụngphươngpháptìm kiếm thông minh - mà người ta thường gọi tìm kiếm theo kiểu leo đồi (hillclimbing) Với tìm kiếm leo đồi, ta tưởng tượng không gian tìm kiếm vấn đề-bài toán vùng đất gập ghềnh (landscape), có nhiều đồi cao thấp khác Trong đó, đồi cao vùng đất lời giải tốt vị trí có độ cao lớn "gần" với lời giải tốt (độ cao đồng nghĩa với độ tốt lời giải) Tìm kiếm theo kiểu leo đồi có nghĩa phải phát sinh lời giải cho sau lời giải tiến "gần" tới lời giải tốt Thao tác giống thao tác leo đồi (vì ngày ta lên cao hơn) Thuậtgiảiditruyền hoạt động giống leo đồi Tuy nhiên, kiểu giải gặp trở ngại là, vùng đất có nhiều đồi nhỏ khác bên cạnh đồi cao có khả thuậttoán bị "kẹt" đồi nhỏ Do tư tưởng "càng ngày lên cao" nên lên đến đỉnh đồi nhỏ thuậttoán tiếp (vì lên cao nữa, muốn tìm đến đồi cao phải xuống đồi tại, mà xuống đồi không tư tưởng ngày lên cao) Bạn tưởng tượng máy tính giảivấn đề-bài toán theo kiểu leo đồi người leo đồi với tư tưởng "càng leo cao" Nếu có người leo đồi có khả người bị "kẹt" đỉnh đồi thấp Như vậy, có nhiều người leo đồi leo nhiều địa điểm khác khả có người leo đến đỉnh núi cao cao Càng nhiều người khả đến đỉnh núi cao cao Nhưng tư tưởng chưa có mẻ, đơn giản 30 dùng nhiều máy tính để chia việc mà Hơn nữa, với không gian tìm kiếm cỡ 10 toán mở khóa, cần phải dùng siêu máy tính? Mà quan trọng nữa, cho dù có nhiều người leo đồi, số lượng người leo đồi so với số lượng đồi khả tất người leo đồi bị "kẹt" cao Đến đầu bạn nảy lên ý nghĩ Tại không cho nhiều "thế hệ" người leo đồi? Nghĩa là, toàn người leo đồi (giả sử 1000 người chẳng hạn) không đạt đến đỉnh đồi cao ta cho 1000 người leo đồi khác tiếp tục leo Tuy nhiên, nảy sinh vấn đề, có khả nhóm người leo đồi mới, có người lại leo lại đồi mà nhóm trước leo Bạn nghĩ nào? Vậy ghi nhận lại đồi leo để nhóm sau thừa hưởng kết nhóm trước Hay nói cách tổng quát : để người giỏi (leo cao nhất) số người leo đồi truyền lại "kinh nghiệm" leo đồi cho 1000 người hệ sau để cho 1000 người "hậu duệ" leo cao họ Và 1000 người sau lại thất bại, người giỏi số họ lại truyền "kinh nghiệm" cho hệ 1000 người tiếp để người hệ leo cao Tiến trình tiếp tục lúc đến hệ đó, có người leo đến đỉnh đồi cao hết thời gian cho phép Trong trường hợp hết thời gian cho phép toàn hệ, người leo cao chọn Đây tư tưởng thuậtgiảiditruyền Rất đơn giản, thay phát sinh lời giải, ban đầu ta phát sinh lúc nhiều (thậm chí nhiều) lời giải lúc Sau đó, số lời giải tạo ra, chọn lời giải tốt để làm sở phát sinh nhóm lời giải sau với nguyên tắc "càng sau" tốt Quá trình tiếp diễn lúc tìm lời giải tối ưu Đó tư tưởng sơ khởi ban đầu thuậtgiảiditruyền Càng sau, người ta hoàn thiện phươngpháp luận ý tưởng này, dẫn đến đời hệ thống hoàn chỉnh phương pháp, nguyên lý dùngthuậtgiảiditruyền 2.2 Thiết kế thuậtgiảiditruyềndựđoánpassword Bài toán: cho người dùng nhập vàopassword gồm ký tự Viết chương trình máy tính tìmpassword mà người dùng nhập Giải thuật: Qua phần giới thiệu, ta biết toánđoánpassword có không gian lời giải 10^6 trường hợp, lời giải số gồm chữ số với chữ số có giá trị từ 0->9 nên thiết kế thuậtgiảiditruyền sau: Cá thể (Chromosome): số gồm chữ số với chữ số có giá trị từ 0->9 Quần thể, tỉ lệ sống sót qua hệ: list gồm nhiều cá thể, số lượng cá thể quần thể thay đổi theo phươngpháp thử sai đến kết khả quan nhất, mặc định cho 100 cá thể RGB Tỉ lệ sống sót thay đổi để đạt kết tốt nhất, mặc định cho 20 cá thể sống sót qua hệ Trong cá thể, ta lấy 10 cá thể có hàm Fitness tốt hệ trước 10 cá thể ngẫu nhiên sống sót tạo thành hệ sau Hàm thích nghi (Fitness function): có đáp án rõ ràng số gồm sáu chữ số người dùng nhập vào từ ban đầu, ta thiết kế hàm Fitness sau: giá trị hàm Fitness tổng khác biệt chữ số cá thể xét chữ số ban đầu Hàm đột biến (mutation function): ta cho đột biến số từ tới theo biên độ +/- cá thể sống sót quần thể trước tạo nhiều cá thể đột biến đưa vào quần thể đủ số lượng Hàm dừng (stop function): ta có sẵn đáp án người dùng nhập vào nên thuậtgiảidừng lại quần thể có cá thể password đáp án 2.3 Cài đặt thuậtgiảiditruyền C# -Cài đặt lớp password: 10 - Cài đặt lớp cá thể chromosome password, có bao gồm hàm Fitness -Cài đặt lớp đoánpasswordthuậtgiảidi truyền: 11 -Hàm đột biến 12 2.4 Màn hình chính: 13 Kết luận Cùng với phát triển nhanh chóng, vượt bậc ngành công nghiệp máy tính, nhu cầu người dùng máy tính ngày cao hơn: không giải công việc lưu trữ, tính toán bình thường, người dùng mong đợi máy tính có khả thông minh hơn, giảivấnđề người Thuậtgiảiditruyền sử dụngvào nhiều lĩnh vực Ứngdụng viết mức ví dụ sơ đẳng thuậtgiảiditruyền Hướng phát triển tiểu luận sau đề xuất thiết kế, phươngpháp áp dụngthuậtgiảiditruyềnđể xây dựng hệ thống thông minh hổ trợ định Tài liệu tham khảo [1] Slide giảng môn Thuậttoánphươngphápvấn đề– PGS.TS Đỗ Văn Nhơn [2] Machine Learning And Its Applications - Georgios Paliouras [3] Genetic Algorimths in search Optimization and Machine learning David E.Goldberg [4] Luận văn báo cáo Thuậtgiảiditruyềnứngdụng – nguồn internet 14 ... xác Một số Thuật giải di truyền cung cấp lời giải tiềm cho toán xác định để người sử dụng lựa chọn Ứng dụng thuật toán di truyền vào toán dự đoán password gồm chữ số 2.1 Giới thiệu toán Một ví... Algorithm), giải thuật đàn kiến (ACO ), tìm kiếm tabu (Tabu search) 1.2 Tìm hiểu Thuật giải di truyền ứng dụng 1.2.1 Giới thiệu thuật giải di truyền: Genetic Algorithms tạm dịch Thuật giải di truyền. .. chỉnh phương pháp, nguyên lý dùng thuật giải di truyền 2.2 Thiết kế thuật giải di truyền dự đoán password Bài toán: cho người dùng nhập vào password gồm ký tự Viết chương trình máy tính tìm password