NGHIÊN CỨU TÍNH TOÁN MỀM VÀ ỨNG DỤNG
BỘ GIÁO DỤC ĐÀO TẠO TRƯỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG --------o0o-------- iso 9001 : 2000 NGHIÊN CỨU TÍNH TOÁN MỀM VÀ ỨNG DỤNG ĐỒ ÁN TỐT NGHIỆP HỆ ĐẠI HỌC CHÍNH QUY Ngành: Công nghệ thông tin Sinh viên thực hiện : BÙI THỊ OANH Giáo viên hướng dẫn : PGS.TS.TRỊNH NHẬT TIẾN Mã sinh viên : 090112 HẢI PHÒNG 2009 LỜI CẢM ƠN Em xin chân thành cảm ơn sự giúp đỡ của PGS.TS.Trịnh Nhật Tiến, người đã trực tiếp hướng dẫn, tận tình chỉ bảo tạo điều kiện cho em hoàn thành khóa luận đúng thời hạn. Em xin chân thành cảm ơn tất cả các thầy cô giáo trong khoa Công nghệ thông tin - Trường ĐHDL Hải Phòng, những người đã nhiệt tình giảng dạy và truyền đạt những kiến thức cần thiết trong suốt thời gian em học tập tại trường, để em hoàn thành tốt khóa luận. Cuối cùng em xin cảm ơn tất cả các bạn đã góp ý, trao đổi hỗ trợ cho em trong suốt thời gian vừa qua. Em xin chân thành cảm ơn! Hải Phòng, tháng 07 năm 2009 Sinh viên Bùi Thị Oanh 2 MỤC LỤC LỜI CẢM ƠN .2 Danh mục các từ viết tắt 3 LỜI NÓI ĐẦU 4 Tổng số lần xuất hiện của 15 bộ đôi đó là 0,2703 ∼ 0,27 .54 Nếu tính cả dấu cách (∪), thì có thêm ba bộ đôi với tần suất xuất hiện như sau: 54 Danh mục các từ viết tắt NST Nhiễm sắc thể GA Genetics Algorithms DES Data Encryption Standard. Danh mục các thuật ngữ thông dụng trong giải thuật di truyền Trong tự nhiên Trong giải thuật di truyền Gene Đặc tính, ký tự Chromosome (Nhiễm sắc thể) Chuỗi Allele (gene tương ứng) Giá trị của đặc tính Locus (ổ gene) Vị trí chuỗi Genetype (kiểu hình) Tập thông số, giải pháp luân phiên, cấu trúc được giải mã 3 LỜI NÓI ĐẦU Trong thực tế cuộc sống, các bài toán liên quan đến hệ thống nhận thức, tri thức của con người, đều hàm chứa những đại lượng, thông tin, mà bản chất là không chính xác, không chắc chắn, không đầy đủ…. cho các hệ thống ra quyết định. Ví dụ: Sẽ chẳng bao giờ có thông tin, dữ liệu, cũng như các mô hình tính toán đầy đủ và chính xác cho bài toán dự báo thời tiết. Trong lĩnh vực khoa học cũng vậy, các hệ thống phức tạp trên thực tế thường không thể mô tả đầy đủ, và chính xác bởi các phương trình toán học truyền thống. Kết quả là những cách tiếp cận kinh điển dựa trên kỹ thuật phân tích, và các phương trình toán học nhanh chóng không còn phù hợp. Vì thế công nghệ tính toán mềm chính là giải pháp cần thiết trong lĩnh vực này. Công nghệ tính toán mềm bao gồm 3 thành phần chính: - Điều khiển mờ (Fuzzy Control) - Mạng nơ-ron nhân tạo (Neural Network) - Giải thuật di truyền (Genetic Algorithm) 4 Do thời gian không nhiều và khối lượng công việc tìm hiểu khá lớn nên trong khuôn khổ đồ án tốt nghiệp này, để tìm hiểu cho sâu, em tập trung nghiên cứu giải thuật di truyền. Hiện nay, thuật toán di truyền cùng với logic mờ được ứng dụng rộng rãi trong các lĩnh vực phức tạp, các vấn đề khó, sử dụng các kỹ thuật tìm kiếm lời giải, với không gian tìm kiếm rất lớn, nhất là những bài toán cần có sự lượng giá, đánh giá sự tối ưu của kết quả thu được. Chính vì vậy, thuật giải di truyền đã trở thành đề tài nghiên cứu thú vị và đem đến nhiều ứng dụng trong thực tiễn. Xuất phát từ những vấn đề trên, khóa luận đã tìm hiểu, nghiên cứu giải thuật di truyền. Sau đó sử dụng giải thuật di truyền cổ điển kết hợp với phương pháp thống kê ngôn ngữ học giải quyết bài toán “Dò tìm mã DES”. Khóa luận không tránh khỏi những thiếu sót, rất mong được sự giúp đỡ, chỉ bảo của thầy cô và các bạn! Chương 1: TÍNH TOÁN MỀM 1.1. KHÁI NIỆM TÍNH TOÁN MỀM Tính toán mềm (Soft Computing) khác với tính toán cứng truyền thống (Hard Computing) ở chỗ: không như tính toán cứng, tính toán mềm cho phép sự không chính xác, tính bất định, gần đúng, xấp xỉ trong tính toán. Các mô hình tính toán mềm thường dựa vào kinh nghiệm của con người, sử dụng dung sai cho phép của sự không chính xác, tính bất định, gần đúng, xấp xỉ để tìm lời giải hiệu quả - đơn giản, dễ hiểu, dễ thực hiện, chi phí thấp. Tính toán mềm biểu thị một sự chuyển dịch, biến hoá quan trọng trong các hướng tính toán. Sự chuyển dịch này phản ánh sự kiện trí tuệ con người, không như máy tính, có khả năng đáng kể trong việc lưu trữ và xử lý thông tin không chính xác và bất định, và đây mới là những thông tin thực tế và thường gặp. Các ứng dụng thành công của tính toán mềm cho thấy tính toán mềm ngày càng phát triển mạnh và đóng vai trò đặc biệt trong các lĩnh vực khác nhau của khoa học và kỹ thuật. Tính toán mềm được ứng dụng trong hầu hết các chuyên ngành kỹ thuật 5 như kỹ thuật điện, kỹ thuật điều khiển, kỹ thuật hố học, kỹ thuật xây dựng, . Kỹ thuật điện là lĩnh vực đầu tiên ứng dụng tính tốn mềm trong các lĩnh vực như điều khiển mờ, xử lý ảnh mờ, mạch điện tử dùng logic, người máy, Khái niệm “Tính tốn mềm” được Zadeh đưa ra lần đầu tiên vào năm 1994 được mơ tả như sau: “Một cách cơ bản, tính tốn mềm khơng phải là thể thống nhất các khái niệm và kỹ thuật. Đúng ra, nó là sự kết hợp của các phương pháp riêng biệt theo cách này hay cách khác để thích nghi với ngun lý của nó. Tại điểm giao đó, mục đích cuối cùng của tính tốn mềm là khai thác khả năng thứ lỗi (Tolerance) cho tính khơng chính xác hay tính bất định để đạt được mục tiêu với chi phí thấp”. Một cách đơn giản hơn, “Tất cả các tính tốn có bao gồm tính khơng chính xác một cách có chủ đích trong tính tốn ở một hay nhiều mức và cho phép tính khơng chính xác này làm thay đổi (làm giảm) độ chính xác của bài tốn, hay “làm mềm” mục tiêu tối ưu ở một số bước, đều bị coi là thuộc lĩnh vực tính tốn mềm”. 1.2. PHÂN BIỆT TÍNH TỐN MỀM VÀ TÍNH TỐN CỨNG Tính tốn truyền thống, hay còn gọi là tính tốn cứng, là phương pháp sử dụng các kỹ thuật tính tốn, dựa trên dữ liệu đầu vào để đưa ra kết quả cuối cùng một cách chính xác theo u cầu của bài tốn. Bảng dưới đây đưa ra một số điểm khác biệt giữa tính tốn mềm và tính tốn cứng, để chúng ta có được một hình dung cụ thể hơn về tính tốn mềm. Điểm so sánh Tính tốn cứng Tính tốn mềm Dữ liệu xử lý - Xử lý bài tốn dựa trên số liệu chính xác. - Ví dụ: Giá trị của A phải là 0 hoặc 1: {0,1} -Khơng đòi hỏi dữ liệu phải chính xác. -Ví dụ: Giá trị của A có thể nằm trong khoảng từ 0 đến 1: [0,1] Kết quả đầu ra - u cầu đưa ra kết quả tối ưu (kết quả chính xác hồn tồn) - u cầu đưa ra kết quả gần tối ưu (cho phép sự sai lệch nhất định trong kết quả tìm được) Kỹ thuật tính tốn - Sử dụng kỹ thuật tính tốn truyền thống - Kỹ thuật tính tốn dựa trên Heuristic được sử dụng phổ 6 biến Thời gian tính toán - Thời gian tính toán thường chậm hơn. Trong một số trường hợp, không thể đưa ra kết quả trong thời gian chấp nhận được - Thời gian tính toán nhanh hơn với chi phí thấp hơn Lĩnh vực áp dụng - Các bài toán yêu cầu lời giải chính xác, không cho phép sự sai lệch. - Các bài toán không yêu cầu lời giải chính xác, song phải đưa ra kết quả trong một khoảng thời gian nhất định với chi phí nhất định Bảng 1: So sánh tính toán cứng và tính toán mềm 1.3. TẠI SAO CẦN PHẢI CÓ TÍNH TOÁN MỀM Trong thực tế cuộc sống, các bài toán liên quan đến hệ thống nhận thức, trí tuệ của con người đều hàm chứa những đại lượng, thông tin không chính xác, không chắc chắn, không đầy đủ. Ví dụ: sẽ chẳng bao giờ có các thông tin, dữ liệu cũng như các mô hình tính toán đầy đủ, và chính xác cho bài toán dự báo thời tiết. Nhìn chung con người luôn ở trong bối cảnh không có thông tin chính xác, và đầy đủ cho các hệ thống ra quyết định. Trong lĩnh vực khoa học kỹ thuật cũng vậy, các hệ thống phức tạp trên thực tế thường không thể mô tả một cách đầy đủ, và chính xác bởi các phương trình toán học truyền thống. Kết quả là những cách tiếp cận kinh điển dựa trên kỹ thuật phân tích, và các phương trình toán học nhanh chóng tỏ ra không còn phù hợp. Vì thế, công nghệ tính toán mềm chính là giải pháp trong lĩnh vực này. Một số đặc điểm của công nghệ tính toán mềm: - Tính toán mềm căn cứ trên các đặc điểm, hành vi của con người, và tự nhiên để đưa ra quyết định hợp lý trong điều kiện không chính xác, không chắc chắn. - Các thành phần của tính toán mềm có sự bổ sung, hỗ trợ nhau. 7 - Tính toán mềm là một hướng nghiên cứu mở, bất kỳ một kỹ thuật mới nào được tạo ra từ việc bắt chước trí thông minh của con người, đều có thể trở thành một thành phần mới của tính toán mềm. - Chính nhờ những đặc điểm đó mà tính toán mềm đang được nghiên cứu và ứng dụng rộng rãi trong nhiều lĩnh vực, đặc biệt là: trí tuệ nhân tạo, khoa học máy tính và học máy. Cụ thể: ◊ Không phải bài toán nào cũng có thuật toán có thể giải quyết được bằng tính toán cứng. ◊ Không phải bài toán nào có thuật toán có thể giải quyết được bằng tính toán cứng, cũng có thể thực hiện với chi phí và thời gian chấp nhận được. ◊ Khi bản thân dữ liệu là không chính xác thì không thể giải quyết được bằng phương pháp chính xác. Với những ưu thế đó, tính toán mềm đang dần thể hiện vai trò của mình nhất là trong việc giải quyết vấn đề mới. 1.4. CÁC KỸ THUẬT TRONG TÍNH TOÁN MỀM Công nghệ tính toán mềm bao gồm 3 thành phần chính: - Điều khiển mờ (Fuzzy Control) - Mạng nơ-ron nhân tạo (Neural Network) - Giải thuật di truyền (Genetic Algorithm) 1.4.1. Logic mờ (Fuzzy Logic – FL) Khái niệm tập mờ (Fuzzy set) được Zadeh đưa ra vào năm 1965 với mục đích cho phép các phần tử thuộc về một tập liên tục thay cho rời rạc. Kể từ đó, các ứng dụng và phát triển dựa trên khái niệm tưởng chừng rất đơn giản này, đã mang lại những kết quả khó có thể tin được, thậm chí khó có thể chỉ ra các ứng dụng, phát triển hay sản phẩm nào không có liên quan đến khái niệm tập mờ. Ví dụ: chúng ta thường nghe đến nhiều thuật ngữ như: máy giặt fuzzy, quạt fuzzy, xe máy fuzzy . Khái niệm tập mờ có vai trò rất quan trọng trong việc giải quyết các bài toán tối ưu, đưa ra các bài toán có tính thực tế, giải quyết bài toán với chi phí thấp và trong thời gian nhanh hơn (mặc dầu chấp nhận việc có thể có sai số). Trong lĩnh vực an 8 toàn thông tin, tập mờ cũng được sử dụng rất rộng rãi. Tất cả các thuật toán, giải thuật, kỹ thuật được giới thiệu dưới đây đều được xuất phát từ tập mờ. 1.4.2. Mạng Nơron (Neural Network – NN). NN là mô hình tính toán dựa trên bộ não. Mô hình NN bao gồm các bộ xử lý _ các Nơron _ có mối liên kết chặt chẽ với nhau, tương tự như họat động của các Nơron trong não người. Các Nơron được kết nối bởi các đường liên kết có đánh trọng số, truyền tín hiệu từ nơron này đến nơron khác. Mỗi nơron nhận các tín hiệu đầu vào (có trọng số) thông qua các đường kết nối và tạo một tín hiệu đầu ra. Hình vẽ sau đây mô tả mô hình của mạng nơron điển hình: 9 W 1 W 2 W 3 Y Neuro n X 1 X 2 X 3 y y y Input Signals Weights Output Signals Hình 1. Mô hình mạng Nơron điển hình 1.4.3. Chương trình tiến hóa (Evolutionary Computation – EC) Kĩ thuật EC bao gồm rất nhiều các giải thuật khác nhau, ở đây, tiểu luận trình bày một trong những giải thuật tiến hóa phổ biến nhất – giải thuật di truyền (Genetic Allgothm –GA). Hình vẽ bên dưới mô tả hoạt động của một giải thuật di truyền điển hình. 10 Population New Population Mutation Mating Selection Hình 2 – Mô hình hoạt động của giải thuật di truyền. [...]... truyền Có một số lớn các bài toán người ta chưa tìm thuật toán tương đối nhanh để giải quyết chúng Nhiều bài toán trong lớp này là các bài toán quy hoạch thường nảy sinh trong các ứng dụng Với bài toán quy hoạch thuộc loại khó, có thể tìm được thuật toán “nhanh”, cho kết quả gần tối ưu Đối với một số bài toán quy hoạch khó, ta cũng có thể tìm thuật toán xác suất, thuật toán này không đảm bảo cho kết... Xác định hàm mục tiêu cho các chuỗi NST mới, và đưa nó vào trong Xác định giá trị hàm mục tiêu của các chuỗi (nếu tính đến ghép chéo và đột biến xảy ra NST có) Tạo một dân số mới các chuỗi NST bằng cách sinh sản - từ các chuỗi NST hiện tại (có tính đến Bước 5: Nếu điều kiện kết thúcbiến xảy ra) đã thỏa mãn thì dừng lại, và trả về ghép chéo và đột thuật toán chuỗi NST tốt nhất cùng với giá trị hàm mục... hàm mục tiêu của nó, nếu không thì quay về bước 3 Tính toán các giá trị mục tiêu của chuỗi NST mới và đưa nó vào quần thể mới Sơ đồ giải thuật di truyền đơn giản: N Kiểm tra điều kiện kết thúc thuật toán thỏa mãn chưa? 21 Kết thúc Y 2.4 MỘT SỐ CẢI TIẾN CỦA THUẬT TOÁN DI TRUYỀN ĐƠN GIẢN 2.4.1 Cải tiến phương pháp chọn lọc Thuật toán di truyền đơn giản áp dụng phương pháp chọn lọc dùng bánh xe Roulette... xứng là hệ mã hóa mà biết được khóa lập mã thì có thể “dễ” tính được khóa giải mã và ngược lại Đặc biệt một số hệ mã hóa có khóa lập mã và khóa giải mã trùng nhau (ke = kd), như hệ mã hóa “dịch chuyển” hay DES Hệ mã hóa khóa đối xứng còn gọi là Hệ mã hóa khóa bí mật, hay khóa riêng, vì phải giữ bí mật cả 2 khóa.Trước khi dùng hệ mã hóa khóa đối xứng, người gửi và người nhận phải thỏa thuận thuật toán. .. sử dụng hệ mã hóa khóa đối xứng Hệ mã hóa khóa đối xứng thường được sử dụng trong môi trường mà khóa chung có thể dễ dàng trao chuyển bí mật, chẳng hạn trong cùng một mạng nội bộ Hệ mã hóa khóa đối xứng thường dùng để mã hóa những bản tin lớn, vì tốc độ mã hóa và giải mã nhanh hơn hệ mã hóa công khai 3.1.2.2 Hệ mã hóa khóa phi đối xứng (hệ mã hóa khóa công khai) 1/ Khái niệm Hệ mã hóa khóa phi đối xứng... xứng và khóa công khai - Hệ mã hóa khóa đối xứng có khóa lập mã và khóa giải mã “giống nhau”, theo nghĩa biết được khóa này thì “dễ” tính được khóa kia Vì vậy phải giữ bí mật cả 2 khóa - Hệ mã hóa khóa công khai thì có khóa lập mã khác khóa giải mã (ke ≠ kd), biết được khóa này cũng “khó” tính được khóa kia Vì vậy chỉ cần bí mật khóa giải mã, còn công khai khóa lập mã 3.1.2.1 Hệ mã hóa khóa đối xứng... 11 - Thuật toán di truyền làm việc với một mã hóa của tập hợp tham số, chứ không phải là một tham số - Thuật toán di truyền tìm kiếm từ một quần thể các điểm, chứ không phải là một điểm hoặc một vài điểm như phương pháp tìm kiếm leo đồi (Hill Climbing) - Thuật toán di truyền đánh giá thông tin với hàm mục tiêu, mà không dựa vào đạo hàm hay thông tin bổ sung khác - Thuật toán di truyền sử dụng các luật... thuật toán mã hóa và khóa chung (lập mã hay giải mã), khóa phải được bí mật Độ an toàn của Hệ mã hóa loại này phụ thuộc vào khóa, nếu để lộ ra khóa này nghĩa là bất kỳ người nào cũng có thể mã hóa và giải mã thông báo trong hệ thống mã hóa Sự mã hóa và giải mã của hệ thống mã hóa khóa đối xứng biểu thị bởi: Ek: P → C và Dk: C → P 2/ Ví dụ: • Hệ mã hóa cổ điển là Mã hóa khóa đối xứng: dễ hiểu, dễ thực... cao Vì giới hạn tính toán chỉ trong phạm vi bảng chữ cái, sử dụng trong bản tin cần mã, ví dụ Z26 nếu dùng các chữ cái tiếng anh Với hệ mã hóa cổ điển, nếu biết khóa lập mã hay thuật toán lập mã, có thể “dễ” xác định được bản rõ, vì “dễ” tìm được khóa giải mã • Hệ mã hóa DES (1973) là Mã hóa khóa đối xứng hiện đại, có độ an toàn cao 3/ Đặc điểm • Ưu điểm: Hệ mã hóa khóa đối xứng: mã hóa và giải mã nhanh... chế: (i) Mã hóa khóa đối xứng chưa thật an toàn với lý do sau: Người mã hóa và người giải mã có “chung” một khóa Khóa phải được giữ bí mật tuyệt đối, vì biết khóa này “dễ” xác định được khóa kia và ngược lại (ii) Vấn đề thỏa thuận khóa và quản lý khóa chung là khó khăn và phức tạp Người gửi và người nhận phải luôn thống nhất với nhau về khóa Việc thay đổi 35 khóa là rất khó và dễ bị lộ Khóa chung phải