Tiểu luận môn 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

15 695 1
Tiểu luận môn 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

ĐẠI HỌC QUỐC GIA TP.HCM TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN Tiểu luận môn 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 GVHD: PGS.TS. Đỗ Văn Nhơn HVTH: Lê Đỗ Minh Nga MSHV: CH1301101 TP HCM, tháng 10 năm 2014 1 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ì Metaheuristic là một cách gọi chung cho các giải thuật heuristic trong việc giải quyết các bài toán tổ hợp khó. Metaheuristic bao gồm những chiến lược khác nhau trong việc khám phá không gian tìm kiếm bằng cách sử dụng những phương thức khác nhau và phải đạt được sự cân bằng giữa tính đa dạng và chuyên sâu của không gian tìm kiếm. Một cài đặt thành công của metaheuristic trong một bài toán tổ hợp phải cân bằng giữa sự khai thác được kinh nghiệm thu thập được trong quá trình tìm kiếm để xác định được những vùng với những lời giải có chất lượng cao gần tối ưu. Những ví dụ của 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) 2 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: Genetic Algorithms tạm dịch là Thuật giải di truyền (ngắn gọn gọi là GA) bắt nguồn từ ý niệm tiến hóa để tồn tại và phát triển trong tự nhiên. GA là phương thức giải quyết vấn đề bắt chước lối hành xử của con người để tồn tại và phát triển. Nó giúp tìm ra giải pháp tối ưu hay tốt nhất trong điều kiện thời gian và không gian cho phép. GA xét đến toàn bộ các giải pháp, bằng cách xét trước nhất một số giải pháp sau đó loại bỏ những thành phần không thích hợp và chọn những thành phần thích nghi hơn để tạo sinh và biến hóa nhằm mục đích tạo ra nhiều giải pháp mới có hệ số thích nghi ngày càng cao Hệ số thích nghi để dùng làm tiêu chuẩn đánh giá các giải pháp. Cấu trúc dữ 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” trong công thức trên là khái niện dùng để chỉ các chương trình máy tính có sử dụng thuật toán tìm kiếm và tối ưu hóa dựa trên nguyên lý tiến hóa tự nhiên 1.2.2 Các bước chính của thuật giải di truyền: Bước 1: Chọn mô hình (model) để tượng trưng cho các giải pháp. Các mô hình có thể là dãy (String) những số nhị phân: 1 và 0, thập phân và có thể là chữ hay hỗn hợp giữa chữ và số. Bước 2: Chọn hàm số thích nghi để dùng làm tiêu chuẩn đánh giá các giải pháp. Bước 3: Tiếp tục các hình thức biến hóa cho đến khi đạt được các giải pháp tốt nhất hoặc đến khi thời gian cho phép chấm dứt. 1.2.3 Các thành phần cơ bản của 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ể bất kỳ trong quần thể. Giả sử các nhiễm sắc thể của cha mẹ đều có m gen. +Tạo một số ngẫu nhiên trong khoảng từ 1 đến m-1 (ta gọi là điểm lai). +Đưa hai cá thể mới này vào quẩn thể để tham gia các quá trình tiến hóa tiếp theo.  Quá trình đột biến (phép đột biến) 3 +Chọn ngẫu nhiên một cá thể bất kỳ cha mẹ trong quần thể. +Tạo một số ngẫu nhiên k trong khoảng từ 1 đến m, 1 ≤ k ≤ m. +Thay đổi gen thứ k và trả cá thể này về quần thể để tham giá quá trình tiến hóa tiếp theo  Quá trình sinh sản +Tính độ thích nghi của từng cá thể trong quẩn thể hiện hành, lập bảng cộng dồn các giá trị thích nghi (theo số thứ tự gán cho từng cá thể). Giả sử quần thể có n cá thể. Gọi độ thích nghi của cá thể thứ i là Fi, tổng dồn thứ i là Fti, tổng độ thích nghi của toàn quần thể là Fm. +Tạo một số ngẫu nhiên F trong đoạn từ 0 đến Fm. +Chọn cá thể thứ k đầu tiên thỏa mãn F ≥ Ftk đưa vào quần thể của thế hệ mới. Mỗi cặp bố mẹ sinh hai con theo một trong hai phương pháp sau +Vô tính Mỗi ấu nhi là một bản sao chính xác từ cha Mỗi ấu nhi là một bản sao chính xác từ mẹ +Hữu tính (giao nhau) Một vài bits được sao từ mẹ, vài bits được sao chép từ cha Cứ tiếp tục sao từ một cặp bố mẹ cho đến chừng nào điểm giao nhau, thì sao 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ác cá thể cuối dãy để chỉ giữ lại n cá thể tốt nhất. Ở đây, tả giả sử quần thể có kích thước cố định n.  Điều kiện dừng của giải thuật: Chúng ta sẽ khảo sát điều kiện đơn giản nhất để dừng khi số thế hệ vượt quá một ngưỡng cho trước. Trong một số phiên bản về chương trình tiến hoá 4 không phải mọi cá thể đều tiến hoá lại. Vài cá thể trong đó có khả năng vượt từ thế hệ này sang thế hệ khác mà không thay đổi gì cả. Trong những trường hợp như vậy, chúng ta đếm số lần lượng hàm. Nếu số lần lượng hàm vượt quá một hằng xác định trước thì dừng việc tìm kiếm. Chúng ta nhận thấy, các điều kiện dừng ở trên giả thiết rằng người sử dụng đã biết đặc trưng của hàm, có ảnh hưởng như thế nào tới chiều dài tìm kiếm. Trong một số trường hợp khó có thể xác định số lượng thế hệ (hay lượng giá hàm) phải là bao nhiêu. Giải thuật có thể kết thúc khi cơ hội cho một cải thiện quan trọng chưa bắt đầu. Có hai loại điều kiện dừng cơ bản. Các điều kiện này dùng các đặc trưng tìm kiếm để quyết định ngừng quá trình tìm kiếm . -Dựa trên cấu trúc nhiễm sắc thể: do sự hội tụ của quần thể bằng cách kiểm soát số alen được hội tụ, ở đây alen được coi như hội tụ nếu một số phần trăm quần thể đã định trước có cùng (hoặc tương đương đối với các biểu diễn không nhị phân) giá trị trong alen này. Nếu số alen hội tụ vượt quá số phần trăm nào đó của tổng số alen, việc tìm kiếm sẽ kết thúc. -Dựa trên ý nghĩa đặc biệt của một nhiễm sắc thể: đo tiến bộ của giải thuật trong một số thế hệ cho trước. Nếu tiến bộ này nhỏ hơn một hằng 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ác 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); 5 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 các phương pháp truyền thống Chúng ta xét bài toán đơn giản sau đây: tối ưu hoá hàm y = f(x) trên khoảng xác định D. Khi dùng phương pháp truyền thống có một số cách giải sau đây: • Phương pháp liệt kê: Duyệt tất cả các điểm nằm trong vùng khảo sát D để tìm ra điểm cực trị của nó. Phương pháp này không thích hợp khi dữ liệu đầu vào quá lớn. Trong trường hợp này miền D có không gian quá lớn để có thể đếm được. • Phương pháp giải tích: Tìm điểm cực trị bằng cách giải tập các phương trình khi cho Gradient bằng 0. Để xét được Gradient phải tính đạo hàm của hàm số. Điều này không giải quyết được trong trường hợp hàm số không liên tục hoặc không có đạo hàm. Ngoài ra đối với hàm nhiều cực trị thì có thể phương pháp này bỏ mất cực trị, cực trị tìm được chỉ mang tính chất địa phương. • Phương pháp tìm kiếm ngẫu nhiên: là phương pháp kết hợp giữa phương pháp tính toán giải tích và sơ đồ liệt kê . Tuy nhiên những việc làm ngẫu nhiên cùng với giải thuật tìm kiếm ngẫu nhiên cũng phải bị suy yếu bởi thiếu tính hiệu quả. • Đối với Thuật giải di truyền: các thông số của bài toán tìm kiếm phải được mã hoá thành một chuỗi hữu hạn các ký tự trên một tập hữu hạn các ký tự. Chuỗi này tương tự như các chuỗi gen của các cơ thể sinh vật. Có rất nhiều cách để mã hóa tập thông số. Một cách đơn giản là chúng ta có thể mã hoá thành các chuỗi bit trên tập ký tự {0,1}. Mỗi một chuỗi đại diện cho một điểm tìm kiếm trong không gian. GA xuất phát với một quần thể các chuỗi được khởi tạo một cách ngẫu nhiên sau đó sẽ sản sinh các quần thể tiếp theo thông qua việc sử dụng lựa chọn ngẫu nhiên như một công cụ. Nhờ đó Thuật giải di truyền tìm kiếm trên nhiều điểm song song có khả năng leo lên nhiều cực trị cùng một lúc. Thông qua các toán tử của mình, 6 giải thuật trao đổi thông tin giữa các cực trị với nhau, từ đó làm giảm thiểu khả năng giải thuật kết thúc tại các cực trị địa phương và bỏ qua mất cực trị toàn cục Đây là các đặc trưng của Thuật giải di truyền so với các phương pháp truyền thống 1.2.6 Các ứng dụng của thuật giải di truyền +Tối ưu hoá và máy học: Trong lĩnh vực tối ưu hóa có nhiều bài toán được áp dụng Thuật giải di truyền và đã thành công như tối ưu hoá hàm một biến, tối ưu hóa hàm nhiều biến, hay như bài toán người du lịch, bài toán hộp đen, các bài toán kinh doanh, nhận dạng điều khiển hệ thống . Sau đây sẽ giới thiệu một số bài toán tối ưu hóa: David E.Golderg đã ứng dụng GA để tối ưu hóa bài toán điều khiễn hệ thống đường ống dẫn khí thiên nhiên. Trong bài toán này, mục tiêu là cực tiểu hóa năng lượng do quá trình nén, phụ thuộc vào áp suất tối đa và áp suất tối thiểu và các ràng buộc tỉ lệ áp suất. Tối ưu hoá kết cấu: Mục tiêu của bài toán này là cực tiểu hóa trọng lượng của kết cấu, phụ thuộc vào các ràng buộc về ứng suất lớn nhất và ứng suất nhỏ nhất của mỗi thanh. Một bộ mã cho khung kết cấu theo ma trận tiêu chuẩn được dùng để phân tích mỗi thiết kế tạo ra bởi Thuật giải di truyền. Trong lĩnh vực máy học, Thuật giải di truyền được sử dụng cho việc tìm hiểu các quy luật có cấu trúc như cấu trúc IF-THEN trong môi trường nhân tạo, khai phá dữ 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 đã được sử dụng để thực hiện ghi hình ảnh, như là bộ phận của hệ thống lớn có tên là Digital Subtraction Angiography (DSA). Trong DSA, bác sĩ sẽ cố gắng xem xét bên trong của một động mạch khả nghi bằng cách so sánh hình ảnh x-quang, một được chụp trước khi tiêm thuốc đã nhuộm màu vào động mạch, một và một được chụp sau khi tiêm thuốc. Cả hai hình được số hóa và được trừ nhau theo từng điểm một, với kết quả mong muốn cuối cùng nhận được một hình ảnh sai khác phác họa rõ ràng hình ảnh bên trong động mạch chủ. Tuy nhiên sự chuyển động nhẹ của bệnh nhân có thể tạo ra hai hình ảnh kế nhau, làm rối loạn phần hình 7 ảnh sai khác. Kết quả là, các hình ảnh phải được xếp kế nhau, để tính toán phần hình ảnh sai khác. Thuật giải di truyền được dùng để tìm kiếm các hệ số biến đổi để tìm kiếm các hệ số giúp cực tiểu hóa sự sai biệt hình ảnh trước và sau khi tiêm, trên cơ sở các sai khác hình ảnh tuyệt đối. • Các Thuật giải di truyền làm việc với sự mã hoá của tập thông số chứ không làm việc với các giá trị của các thông số. • Các Thuật giải di truyền tìm kiếm từ một quần thể các điểm chứ không phải từ một điểm. • Các Thuật giải di truyền chỉ sử dụng thông tin về các tiêu chuẩn tối ưu của hàm mục tiêu chứ không dùng các thông tin hỗ trợ nào khác. • Các Thuật giải di truyền sử dụng các luật chuyển đổi mang tính xác suất chứ không phải là các 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 không phải lúc nào cũng cho lời giải chính xác. Một số Thuật giải di truyền có thể cung cấp lời giải tiềm năng cho một bài toán xác định để người sử dụng lựa chọ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 Một ví dụ rất đơn giản tìm mật khẩu để mở khóa – giả định rằng password này chỉ cho nhập số và gồm 6 ký tự. Với bài toán này sẽ có tổng cộng 10^6 = 1.000.000 mật mã khác nhau. Trước vấn đề này ta phải thử ngẫu nhiên hoặc vét cạn để tìm kiếm password và có thể tìm kiếm lên tới 1.000.000 để tìm password Dĩ nhiên, khi đứng trước những vấn đề-bài toán như vậy, người ta thường tìm cách cải thiện thuật toán bằng cách cung cấp thêm một số thông tin khác. Chẳng hạn như với bài toán mở khóa trên là thông tin cho biết trong hai mật mã được phát sinh ra, mật mã nào là "tốt" hơn (nghĩa là có khả năng mở khóa cao hơn). Có thể bạn đọc sẽ thắc mắc "bằng cách nào để biết được giữa hai mật mã, mật mã nào có khả năng mở khóa cao hơn?". Thông thường, khi mở khóa, người ta 8 thường dựa trên các tác nhân vật lý – như tiếng động bên trong ổ khóa khi đưa vào một mật mã – để dự đoán được tính "tốt" của mật mã đang thử. Khi biết được được độ "tốt" của các mật mã, ta sẽ sử dụng một phương pháp tìm kiếm thông minh hơn - mà người ta thường gọi là tìm kiếm theo kiểu leo đồi (hill- climbing). Với tìm kiếm leo đồi, ta tưởng tượng rằng không gian tìm kiếm của vấn đề-bài toán là một vùng đất gập ghềnh (landscape), có nhiều ngọn đồi cao thấp khác nhau. Trong đó, ngọn đồi cao nhất của vùng đất này sẽ là lời giải tốt nhất và vị trí có độ cao càng lớn thì càng "gần" với lời giải tốt nhất (độ cao đồng nghĩa với độ tốt của lời giải). Tìm kiếm theo kiểu leo đồi có nghĩa là chúng ta phải phát sinh các lời giải sao cho càng về sau các lời giải càng tiến "gần" tới lời giải tốt nhất hơn. Thao tác này cũng giống như thao tác leo đồi vậy (vì càng ngày ta càng 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 quyết này vẫn còn gặp trở ngại cơ bản là, nếu vùng đất của chúng ta có nhiều đồi nhỏ khác bên cạnh ngọn đồi cao nhất thì sẽ có khả năng thuật toán của chúng ta bị "kẹt" ở một ngọn đồi nhỏ. Do tư tưởng là "càng ngày càng lên cao" nên khi lên đến đỉnh một ngọn đồi nhỏ thuật toán sẽ không thể đi tiếp được (vì không thể lên cao được nữa, muốn tìm đến một ngọn đồi cao hơn thì phải xuống đồi hiện tại, mà xuống đồi thì không đúng tư tưởng càng ngày càng lên cao). Bạn hãy tưởng tượng một máy tính giải quyết vấn đề-bài toán theo kiểu leo đồi là một người leo đồi với tư tưởng "càng leo càng cao". Nếu chỉ có một người leo đồi thì có khả năng người đó sẽ bị "kẹt" trên một đỉnh đồi thấp. Như vậy, nếu có nhiều người leo đồi cùng leo ở nhiều địa điểm khác nhau thì khả năng có một người leo đến đỉnh núi cao nhất sẽ cao hơn. Càng nhiều người thì khả năng đến đỉnh núi cao nhất sẽ cao hơn. Nhưng tư tưởng này cũng chưa có gì mới mẻ, đơn giản chỉ là 30 dùng nhiều máy tính để chia việc ra mà thôi. Hơn nữa, với không gian tìm kiếm cỡ 10 như bài toán mở khóa, chúng ta cần phải dùng bao nhiêu siêu máy tính? Mà quan trọng hơn nữa, cho dù có nhiều người leo đồi, nhưng nếu số lượng người leo đồi quá ít so với số lượng đồi thì khả năng tất cả người leo đồi đều bị "kẹt" cũng vẫn còn rất cao. Đến đây thì rất có thể trong đầu các bạn chợt nảy lên một ý nghĩ. Tại sao không cho nhiều "thế hệ" người leo đồi? Nghĩa là, nếu toàn bộ người leo đồi đầu tiên (giả sử 1000 người chẳng hạn) đều không đạt đến đỉnh đồi cao nhất thì ta sẽ cho 1000 người leo đồi khác tiếp tục leo. Tuy nhiên, sẽ nảy sinh một vấn đề, có khả năng là trong nhóm người leo đồi mới, có những người lại đi leo lại những ngọn đồi mà nhóm trước đã leo rồi. Bạn nghĩ thế nào? Vậy thì hãy ghi nhận lại những ngọn đồi đã leo để những nhóm sau còn thừa hưởng được kết quả của nhóm trước. Hay nói một cách tổng quát hơn : hãy làm sao để những người giỏi nhất 9 (leo cao nhất) trong số những người leo đồi đầu tiên truyền lại "kinh nghiệm" leo đồi của mình cho 1000 người thế hệ sau để sao cho 1000 người "hậu duệ" này sẽ leo cao hơn họ. Và nếu 1000 người sau lại thất bại, những người giỏi nhất trong số họ sẽ lại truyền "kinh nghiệm" của mình cho thế hệ 1000 người tiếp nữa để những người thế hệ 3 này leo cao hơn nữa. Tiến trình cứ thế tiếp tục cho đến lúc đến một thế hệ nào đó, có một người leo đến đỉnh đồi cao nhất hoặc hết thời gian cho phép. Trong trường hợp hết thời gian cho phép thì trong toàn bộ các thế hệ, người nào leo cao nhất sẽ được chọn. Đây là tư tưởng chính của thuật giải di truyền . Rất đơn giản, thay vì chỉ phát sinh một lời giải, ban đầu ta phát sinh một lúc nhiều (thậm chí rất nhiều) lời giải cùng lúc. Sau đó, trong số lời giải được tạo ra, chọn ra những lời giải tốt nhất để làm cơ sở phát sinh ra nhóm các lời giải sau với nguyên tắc "càng về sau" càng tốt hơn. Quá trình tiếp diễn cho đến lúc tìm được một lời giải tối ưu. Đó là tư tưởng sơ khởi ban đầu của thuật giải di truyền. Càng về sau, người ta càng hoàn thiện hơn phương pháp luận của ý tưởng này, dẫn đến sự ra đời của một hệ thống hoàn chỉnh các phương pháp, nguyên lý dùng trong 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 một password gồm 6 ký tự. Viết chương trình máy tính tìm ra password mà người dùng đã nhập Giải thuật: Qua phần giới thiệu, ta biết bài toán đoán password có không gian lời giải là 10^6 trường hợp, mỗi lời giải là một số gồm 6 chữ số với mỗi chữ số có giá trị từ 0->9 nên thiết kế thuật giải di truyền như sau: Cá thể (Chromosome): chính là một số gồm 6 chữ số với mỗi chữ số có giá trị từ 0->9 Quần thể, tỉ lệ sống sót qua mỗi thế hệ: là một list gồm nhiều cá thể, số lượng cá thể của quần thể có thể thay đổi theo phương pháp thử sai đến khi được kết quả khả quan nhất, mặc định cho là 100 cá thể RGB. Tỉ lệ sống sót có thể thay đổi để đạt kết quả tốt nhất, mặc định cho 20 cá thể sống sót qua mỗi thế hệ. Trong 2 cá thể, ta lấy 10 cá thể có hàm Fitness tốt nhất của thế hệ trước và 10 cá thể ngẫu nhiên để cho sống sót tạo thành thế hệ sau. Hàm thích nghi (Fitness function): do đã có một đáp án rõ ràng là một số gồm sáu chữ số của người dùng nhập vào từ ban đầu, ta thiết kế hàm Fitness như 10 [...]... thể giải quyết vấn đề như con người Thuật giải di truyền được sử dụng vào nhiều lĩnh vực Ứng dụng trong bài viết chỉ ở mức ví dụ sơ đẳng nhất về thuật giải di truyền Hướng phát triển của tiểu luận sau này là có thể đề 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 như hổ trợ ra quyết định Tài liệu tham khảo 14 [1] Slide bài giảng môn Thuật toán và phương pháp quyết. .. di truyền bằng C# -Cài đặt lớp password: - Cài đặt lớp cá thể chromosome password, có bao gồm hàm Fitness 11 -Cài đặt lớp đoán password bằng thuật giải di truyền: 12 -Hàm đột biến 2.4 Màn hình chính: 13 3 Kết luận Cùng với sự phát triển nhanh chóng, vượt bậc của ngành công nghiệp máy tính, nhu cầu của người dùng đối với máy tính ngày một cao hơn: không chỉ giải quyết những công việc lưu trữ, tính toán. .. xét và chữ số ban đầu Hàm đột biến (mutation function): ta cho đột biến các chỉ số từ 0 tới 9 theo biên độ +/- 1 trên các cá thể sống sót của quần thể trước và tạo ra nhiều cá thể đột biến đưa vào quần thể mới cho đến khi đủ số lượng Hàm dừng (stop function): ta đã có sẵn đáp án do người dùng nhập vào nên thuật giải sẽ dừng lại khi nào trong quần thể có cá thể password đúng đáp án 2.3 Cài đặt thuật giải. .. quyết định Tài liệu tham khảo 14 [1] Slide bài giảng môn Thuật toán và phương pháp quyết 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 về Thuật giải di truyền và ứng dụng – nguồn internet 15 . TP.HCM TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN Tiểu luận môn 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 GVHD: PGS.TS. Đỗ Văn Nhơn HVTH:. người sử dụng lựa chọ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 Một ví dụ rất đơn giản tìm mật khẩu để mở khóa – giả định rằng password. 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 một password gồm 6 ký tự. Viết chương trình máy tính tìm ra password mà người dùng đã nhập Giải

Ngày đăng: 23/05/2015, 21:04

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

Tài liệu liên quan