Thuật Toán và Phương Pháp Giải Quyết Vấn Đề Tìm hiểu thuật giải di truyền và ứng dụng vào dự đoán password

14 378 1
Thuật Toán và Phương Pháp Giải Quyết Vấn Đề Tìm hiểu thuật giải di truyền và ứng dụng vào dự đoán password

Đ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 Tổng quan Thuật giải di truyền ứng dụng 1.1 Metaheuristic 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: 1.2.2 Các bước thuật giải di truyền: .4 1.2.3 Các thành phần thuật giải di truyền .4 1.2.4 Cấu trúc giải thuật di truyền tổng quát Ứng dụng thuật toán di truyền vào toán dự đoán password gồm chữ số .9 2.1 Giới thiệu toán 2.2 Thiết kế thuật giải di truyền dự đoán password 11 2.3 Cài đặt thuật giải di truyề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ật giải di truyền ứng dụng 1.1 Metaheuristic Metaheuristic cách gọi chung cho giải thuật heuristic việc giải toá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ụng phươ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ải thuật luyện thép (SA - Simulated Annealing), giải thuật di truyền (GA - Genetic 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 (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ải vấn đề bắt chước lối hành xử người để tồn phát triển Nó giúp tìm giải phá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àn giải pháp, cách xét trước số giải phá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ải phá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ải pháp Cấu trúc liệu + giải thuật di truyề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ụng thuật toán tì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ật giải di truyền: Bước 1: Chọn mô hình (model) để tượng trưng cho giải phá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ải pháp Bước 3: Tiếp tục hình thức biến hóa đạt giải pháp tốt đến thời gian cho phép chấm dứt 1.2.3 Các thành phần thuật giải di truyề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ương phá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ừng giả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ải thuậ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ải thuậ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ải thuật di truyề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ật giải di truyền so với phương pháp truyề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ùng phương pháp truyền thống có số cách giải sau đây:  Phương phá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ương phá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ương pháp giả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ương pháp bỏ cực trị, cực trị tìm mang tính chất địa phươngPhương pháp tìm kiếm ngẫu nhiên: phương pháp kết hợp phương pháp tính toán giải tích sơ đồ liệt kê Tuy nhiên việc làm ngẫu nhiên với giải thuật tìm kiếm ngẫu nhiên phải bị suy yếu thiếu tính hiệu  Đối với Thuật giải di truyền: thông số toán tì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ật giải di truyền tì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ải thuật trao đổi thông tin cực trị với nhau, từ làm giảm thiểu khả giải thuậ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ật giải di truyền so với phương pháp truyền thống 1.2.6 Các ứng dụng thuật giải di truyề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ụng Thuật giải di truyề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 ứng dụ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ật giải di truyền Trong lĩnh vực máy học, Thuật giải di truyền sử dụng cho việc tìm hiể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ật giải di truyền Thuật giải di truyề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ật giải di truyền dù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ật giải di truyề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ật giải di truyền tìm kiếm từ quần thể điểm từ điểm  Các Thuật giải di truyề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ật giải di truyề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ật giải di truyề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ậ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í 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 password tìm kiếm lên tới 1.000.000 để tìm password 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ật toá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ụng phương pháp tì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ật giải di truyề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ật toá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ật toá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ải vấ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 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ọ 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ật giải di truyề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ật giải di truyền Càng sau, người ta hoàn thiện phương phá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ù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 mà người dùng nhập Giải thuật: Qua phần giới thiệu, ta biết toán đoán password 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ật giải di truyề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ương phá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ật giải dừng lại quần thể có cá thể password đáp án 2.3 Cài đặt thuật giải di truyề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án password thuật giải di 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ải vấn đề người Thuật giải di truyền sử dụng vào nhiều lĩnh vực Ứng dụng viết mức ví dụ sơ đẳng thuật giải di truyền Hướng phát triển tiểu luận sau đề xuất thiết kế, phương pháp áp dụng thuật giải di truyề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ật toán phương pháp vấ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ật giải di truyền ứng dụ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

Ngày đăng: 08/06/2017, 20:03

Từ khóa liên quan

Mục lục

  • 1. Tổng quan về Thuật giải di truyền và các ứng dụng.

    • 1.1 Metaheuristic là gì

    • 1.2 Tìm hiểu Thuật giải di truyền và ứng dụng

    • 1.2.1 Giới thiệu thuật giải di truyền:

    • 1.2.2 Các bước chính của thuật giải di truyền:

    • 1.2.3 Các thành phần cơ bản của thuật giải di truyền

    • 1.2.4 Cấu trúc giải thuật di truyền tổng quát

      • +Tối ưu hoá và máy học:

      • +Ghi ảnh y học với Thuật giải di truyền

      • 2. Ứng dụng thuật toán di truyền vào bài toán dự đoán password gồm 6 chữ số

        • 2.1. Giới thiệu bài toán

        • 2.2. Thiết kế thuật giải di truyền dự đoán password

        • 2.3 Cài đặt thuật giải di truyền bằng C#

        • 2.4 Màn hình chính:

        • 3. Kết luận

        • Tài liệu tham khảo

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

  • Đang cập nhật ...

Tài liệu liên quan