Tài liệu Các kỹ thuật phân cụm trong khai phá dữ liệu sử dụng tính toán tiến hóa

  • Số trang: 52 |
  • Loại file: PDF |
  • Lượt xem: 202 |
  • Lượt tải: 1
quangtran

Đã đăng 3721 tài liệu

Mô tả:

TRƯỜNG ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ PHAN MINH HẢI CÁC KỸ THUẬT PHÂN CỤM TRONG KHAI PHÁ DỮ LIỆU SỬ DỤNG TÍNH TOÁN TIẾN HÓA Ngành: Công nghệ thông tin Chuyên ngành: Công nghệ phần mềm Mã số: 60.48.10 LUẬN VĂN THẠC SĨ CÔNG NGHỆ PHẦN MỀM NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. BÙI THU LÂM Hà Nội, 2013 2 LỜI CAM ĐOAN Tôi xin cam đoan đây là công trình nghiên cứu của bản thân, được xuất phát từ yêu cầu phát sinh trong công việc để hình thành hướng nghiên cứu. Các số liệu có nguồn gốc rõ ràng tuân thủ đúng nguyên tắc và kết quả trình bày trong luận văn được thu thập được trong quá trình nghiên cứu là trung thực chưa từng được ai công bố trước đây. Hà Nội, tháng 9 năm 2013 Tác giả luận văn Phan Minh Hải 3 LỜI CẢM ƠN Luận văn được thực hiện dưới sự hướng dẫn của TS. Bùi Thu Lâm – Học viện Kỹ thuật Quân sự. Em xin bày tỏ lòng biết ơn sâu sắc tới Thầy đã hướng dẫn và có ý kiến chỉ dẫn quý báu trong quá trình em làm luận văn. Em xin chân thành cảm ơn các Thầy giáo trong bộ môn Công nghệ phần mềm. Em cũng xin cảm ơn các thầy cô giáo trong Khoa, cán bộ thuộc phòng Khoa học và Đào tạo sau Đại học, Trường Đại học Công nghệ đã tạo điều kiện trong quá trình học tập và nghiên cứu tại Trường. Cuối cùng xin bày tỏ lòng cảm ơn tới những người thân trong gia đình, bạn bè đã động viên và giúp đỡ để tôi hoàn thành bản luận văn này. Hà Nội, Tháng 9 năm 2013 Học viên thực hiện Phan Minh Hải 4 LỜI CAM ĐOAN.........................................................................................................2 DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT.................................................6 DANH MỤC CÁC BẢNG...........................................................................................7 MỞ ĐẦU....................................................................................................................... 9 1.1. Tổng quan về khám phá tri thức và khai phá dữ liệu......................................10 1.1.1. Giới thiệu chung về khám phá tri thức và khai phá dữ liệu...........................10 1.1.2. Quá trình khám phá tri thức...........................................................................11 1.1.3. Quá trình khai phá dữ liệu.............................................................................12 1.1.4. Các phương pháp khai phá dữ liệu................................................................12 1.1.5. Các lĩnh vực ứng dụng thực tiễn của KPDL..................................................13 1.1.6. Các hướng tiếp cận cơ bản và kỹ thuật áp dụng trong KPDL........................13 1.2. Tổng quan về lập trình tiến hóa và thuật toán di truyền.................................14 1.2.1. Giới thiệu chung về thuật toán di truyền........................................................14 1.2.2. Các đặc tính của thuật toán di truyền..............................................................14 1.2.2.1. Các quá trình cơ bản trong thuật toán di truyền.......................................15 1.2.2.2. Các tham số của thuật toán di truyền.......................................................17 1.2.3. Thuật tiến hóa vi phân....................................................................................20 1.2.3.1. Nguyên lý hoạt động................................................................................20 1.2.3.2. Xây dựng sơ đồ thuật toán.......................................................................20 1.3. Kết luận...............................................................................................................22 CHƯƠNG 2 MỘT SỐ GIẢI THUẬT PHÂN CỤM................................................23 2.1. Khái niệm và mục tiêu của phân cụm dữ liệu..................................................23 2.2. Các ứng dụng của phân cụm dữ liệu................................................................24 2.3. Các yêu cầu của phân cụm................................................................................25 2.4. Những kỹ thuật tiếp cận trong phân cụm dữ liệu............................................26 2.4.1. Phương pháp phân cụm phân hoạch...............................................................26 2.4.2. Phương pháp phân cụm phân cấp...................................................................27 2.4.3. Phương pháp phân cụm dựa trên mật độ........................................................28 2.4.4. Phương pháp phân cụm dựa trên lưới.............................................................28 5 2.4.5. Phương pháp phân cụm dựa trên mô hình......................................................29 2.4.6. Phương pháp phân cụm có dữ liệu ràng buộc.................................................29 2.5. Một số thuật toán cơ bản trong phân cụm dữ liệu..........................................30 2.5.1. Các thuật toán phân cụm phân hoạch.............................................................30 2.5.2. Các thuật toán phân cụm phân cấp.................................................................33 2.5.3. Các thuật toán phân cụm dựa trên mật độ......................................................34 2.5.4. Các thuật toán phân cụm dựa trên lưới...........................................................37 2.5.5. Các thuật toán phân cụm dựa trên mô hình....................................................39 2.5.6. Giải thuật phân cụm dựa trên giải thuật di truyền...........................................40 CHƯƠNG 3 GIẢI THUẬT PHÂN CỤM DỰA TRÊN LAI GHÉP GIẢI THUẬT DI TRUYỀN VÀ KMEANS......................................................................................41 3.1. Giải thuật phân cụm trong tính toán tiến hóa..................................................41 3.1.1.Giải thuật tổng quát cho phân cụm sử dụng giải thuật di truyền......................42 3.1.2. Khởi tạo đại diện cá nhân và quần thể............................................................42 3.1.3. Tính toán độ thích nghi..................................................................................42 3.1.4. Phép chọn (Selection).....................................................................................43 3.1.5. Crossover (lai ghép).......................................................................................44 3.1.6. Mutation (Đột biến)........................................................................................44 3.1.7. Kmeans dựa trên thuật toán di truyền.............................................................45 3.1.8. Phân cụm Kmeans sử dụng thuật tiến hóa vi phân.........................................46 3.2. So sánh giữa thuật toán Kmens và Kmeans sử dụng giải thuật di truyền......48 CHƯƠNG 4 CÀI ĐẶT VÀ THỬ NGHIỆM............................................................49 4.1. Chuẩn bị dữ liệu..................................................................................................49 4.2. Kết quả và phân tích...........................................................................................50 4.2.1. Thí nghiệm với giải thuật Kmeans.................................................................50 4.2.2. Thí nghiệm với giải thuật Kmeans có sử dụng giải thuật di truyền................51 KẾT LUẬN................................................................................................................53 TÀI LIỆU THAM KHẢO.........................................................................................55 6 DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT CDL Cụm dữ liệu CNTT Công nghệ thông tin CSDL Cơ sở dữ liệu CX Lai ghép chu trình Cycle Crossover DE Thuật tiến hóa vi phân Differential Evolution DL Dữ liệu GA Giải thuật di truyền KPDL Khai phá dữ liệu KPTT Khai phá thông tin LOX Lai ghép có thứ tự tuyến tính Liner Order Crossover MX Lai ghép đa điểm Multipoint Crossover OX Lai ghép có trật tự Order Crossover PBX Lai ghép dựa trên vị trí Position Based Crossover PCDL Phân cụm dữ liệu PMX Lai ghép từng phần Genetic Algorithm Partially-Matched Crossover 7 DANH MỤC CÁC BẢNG Bảng 4.1: Bộ dữ liệu tự sinh có 3 trường dữ liệu..............................................48 Bảng 4.2: Bộ dữ liệu Order Details của Northwind..........................................48 Bảng 4.3: Thuật toán Kmeans với số cụm bằng 2.............................................49 Bảng 4.4: Thuật toán Kmeans với số cụm bằng 3.............................................49 Bảng 4.5: Thuật toán Kmeans với số cụm bằng 6.............................................49 Bảng 4.6: Thuật toán Genetic Kmeans với số cụm bằng 2...............................50 Bảng 4.7: Chạy lại thuật toán Genetic Kmeans với số cụm bằng 2..................50 Bảng 4.8: Khi chạy thuật toán Genetic Kmeans với số cụm bằng 3.................50 Bảng 4.9: Chạy lại thuật toán Genetic Kmeans với số cụm bằng 3..................51 8 DANH MỤC CÁC HÌNH VẼ VÀ ĐỒ THỊ Hình 1.1: Quá trình KPTT................................................................................11 Hình 1.2: Quá trình KPDL...............................................................................12 Hình 1.3: Lai ghép hai cá thể...........................................................................16 Hình 1.4: Đột biến một nhiễm sắc thể..............................................................17 Hình 1.5: Sơ đồ quá trình tính toán của thuật toán di truyền............................18 Hình 1.6: Sơ đồ thuật toán tiến hóa vi phân......................................................20 Hình 2.1: Mô tả tập dữ liệu vay nợ được phân thành 3 cụm.............................23 Hình 2.2: Các chiến lược phân cụm phân cấp..................................................27 Hình 2.3: Cấu trúc phân cấp.............................................................................28 Hình 2.4: Các cách mà các cụm có thể đưa ra.................................................29 Hình 2.5: Các thiết lập để xác định ranh giới các cụm ban đầu.......................31 Hình 2.6: Tính toán trọng tâm của các cụm mới..............................................31 Hình 2.7: Khái quát thuật toán CURE..............................................................33 Hình 2.8: Các cụm dữ liệu được khám phá bởi CURE....................................33 Hình 2.9: Hình dạng các cụm được khám phá bởi thuật toán DBSCAN.........35 9 MỞ ĐẦU Phân cụm dữ liệu là quá trình nhóm một tập các đối tượng tương tự nhau trong tập dữ liệu vào các cụm sao cho các đối tượng thuộc cùng một cụm là tương đồng còn các đối tượng thuộc các cụm khác nhau sẽ không tương đồng. Phân cụm dữ liệu không đòi hỏi phải định nghĩa trước các mẫu dữ liệu huấn luyện. Vì thế, có thể coi phân cụm dữ liệu là một cách học không giám sát (unsupervised learning). Các Kỹ thuật phân cụm được ứng dụng rất nhiều trong các lĩnh vực tài chính ngân hành để phân lọai các nhóm khách hàng khác nhau. Ngoài ra phân cụm dữ liệu còn có thế được sử dụng như một bước tiền xử lý cho các thuật toán khai phá dữ liệu khác như phân loại và mô tả đặc điểm, có tác dụng phát hiện ra các cụm. Theo các nghiên cứu cho thấy thì hiện nay chưa có một phương pháp phân cụm tổng quát nào có thể giải quyết trọn vẹn cho tất cả các dạng cấu trúc của các CSDL. Hơn nữa, các phương pháp phân cụm cần có cách thức biểu diễn cấu trúc của các CSDL, với mỗi cách thức biểu diễn khác nhau sẽ có một thuật toán phân cụm phù hợp. Vì vậy phân cụm dữ liệu vẫn đang là một vấn đề khó và mở, vì phải giải quyết nhiều vấn đề cơ bản một cách trọn vẹn và phù hợp với nhiều dạng dữ liệu khác nhau, đặc biệt là đối với dữ liệu hỗn hợp đang ngày càng tăng trong các hệ quản trị dữ liệu và đây cũng là một trong những thách thức lớn trong KPDL. Một điểm khác nữa là các hàm mục tiêu của các thuật toán phân cụm như K-means thường tồn tại nhiều điểm tối ưu cục bộ. Do đó mà đề tài tập trung vào tìm hiểu “Các kỹ thuật phân cụm trong khai phá dữ liệu sử dụng tính toán tiến hóa”; một kỹ thuật tiến hóa được thiết kế để khắc phục tính chất cục bộ của các thuật toán phân cụm. Luận văn gồm có 4 chương chính: Chương 1: Tổng quan về khám phá tri thức, khai phá dữ liệu và thuật toán di truyền Chương 2: Một số giải thuật phân cụm Chương 3: Giải thuật phân cụm dựa trên lai ghép giải thuật di truyền và Kmeans Chương 4: Cài đặt và thử nghiệm Kết luận định hướng phát triển kết quả nghiên cứu 10 CHƯƠNG 1 TỔNG QUAN VỀ KHÁM PHÁ TRI THỨC, KHAI PHÁ DỮ LIỆU VÀ THUẬT TOÁN DI TRUYỀN 1.1. Tổng quan về khám phá tri thức và khai phá dữ liệu 1.1.1. Giới thiệu chung về khám phá tri thức và khai phá dữ liệu Nếu cho rằng, điện tử và truyền thông chính là bản chất của khoa học điện tử, thì dữ liệu, thông tin, và tri thức hiện đang là tiêu điểm của một lĩnh vực mới để nghiên cứu và ứng dụng, đó là khám phá tri thức và khai phá dữ liệu. Thông thường, chúng ta coi dữ liệu như là một chuỗi các bits, hoặc các số và các ký hiệu hay là các “đối tượng” với một ý nghĩa nào đó khi được gửi cho một chương trình dưới một dạng nhất định. Các bits thường được sử dụng để đo thông tin, và xem nó như là dữ liệu đã được loại bỏ phần tử thừa, lặp lại, và rút gọn tới mức tối thiểu để đặc trưng một cách cơ bản cho dữ liệu. Tri thức được xem như là các thông tin tích hợp, bao gồm các sự kiện và mối quan hệ giữa chúng, đã được nhận thức, khám phá, hoặc nghiên cứu. Nói cách khác, tri thức có thể được coi là dữ liệu ở mức độ cao của sự trừu tượng và tổng quát. Khám phá tri thức hay phát hiện tri thức trong CSDL là một quy trình nhận biết các mẫu hoặc các mô hình trong dữ liệu với các tính năng: Phân tích, tổng hợp, hợp thức, khả ích và có thể hiểu được. Khai phá dữ liệu là một bước trong quá trình khám phá tri thức, gồm các thuật toán khai thác dữ liệu chuyên dùng dưới một số qui định về hiệu quả tính toán chấp nhận được để tìm ra các mẫu hoặc các mô hình trong dữ liệu. Nói cách khác, mục tiêu của Khai phá dữ liệu là tìm kiếm các mẫu hoặc mô hình tồn tại trong CSDL nhưng ẩn trong khối lượng lớn dữ liệu. 11 1.1.2. Quá trình khám phá tri thức Hình 1.1: Quá trình KPTT Bao gồm các bước sau: Làm sạch dữ liệu (Data Cleaning): Loại bỏ dữ liệu nhiễu và dữ liệu không nhất quán. Tích hợp dữ liệu (Data Intergation): Dữ liệu của nhiều nguồn có thể được tổ hợp lại. Lựa chọn dữ liệu (Data Selection): Lựa chọn những dữ liệu phù hợp với nhiệm vụ phân tích trích rút từ cơ sở dữ liệu. Chuyển đổi dữ liệu (Data Transformation): Dữ liệu được chuyển đổi hay được hợp nhất về dạng thích hợp cho việc khai phá. Khai phá dữ liệu (Data Mining): Đây là một tiến trình cốt yếu trong đó các phương pháp thông minh được áp dụng nhằm trích rút ra mẫu dữ liệu. Đánh giá mẫu (Pattern Evaluation): Dựa trên một độ đo nào đó xác định lợi ích thực sự, độ quan trọng của các mẫu biểu diễn tri thức. Biểu diễn tri thức (Knowledge Presentation): Ở giai đoạn này các kỹ thuật biểu diễn và hiển thị được sử dụng để đưa tri thức lấy ra cho người dùng. 12 1.1.3. Quá trình khai phá dữ liệu KPDL là một giai đoạn quan trọng trong quá trình KPTT. Về bản chất, nó là giai đoạn duy nhất tìm ra được thông tin mới, thông tin tiềm ẩn có trong CSDL chủ yếu phục vụ cho mô tả và dự đoán. Mô tả dữ liệu là tổng kết hoặc diễn tả những đặc điểm chung của những thuộc tính dữ liệu trong kho dữ liệu mà con người có thể hiểu được. Dự đoán là dựa trên những dữ liệu hiện thời để dự đoán những quy luật được phát hiện từ các mối liên hệ giữa các thuộc tính của dữ liệu trên cơ sở đó chiết xuất ra các mẫu, dự đoán được những giá trị chưa biết hoặc những giá trị tương lai của các biến quan tâm. Quá trình KPDL bao gồm các bước chính được thể hiện như Hình 1.2 sau: Hình 1.2: Quá trình KPDL o Xác định nhiệm vụ: Xác định chính xác các vấn đề cần giải quyết. o Xác định các dữ liệu liên quan: Dùng để xây dựng giải pháp. o Thu thập và tiền xử lý dữ liệu: Thu thập các dữ liệu liên quan và tiền xử lý chúng sao cho thuật toán KPDL có thể hiểu được. Đây là một quá trình rất khó khăn, có thể gặp phải rất nhiều các vướng mắc như: dữ liệu phải được sao ra nhiều bản (nếu được chiết xuất vào các tệp), quản lý tập các dữ liệu, phải lặp đi lặp lại nhiều lần toàn bộ quá trình (nếu mô hình dữ liệu thay đổi), v.v.. o Thuật toán khai phá dữ liệu: Lựa chọn thuật toán KPDL và thực hiện việc PKDL để tìm được các mẫu có ý nghĩa, các mẫu này được biểu diễn dưới dạng luật kết hợp, cây quyết định... tương ứng với ý nghĩa của nó. 1.1.4. Các phương pháp khai phá dữ liệu Với hai mục đích khai phá dữ liệu là Mô tả và Dự đoán, người ta thường sử dụng các phương pháp sau cho khai phá dữ liệu: o Luật kết hợp (association rules) o Phân lớp (Classfication) 13 o Hồi qui (Regression) o Trực quan hóa (Visualiztion) o Phân cụm (Clustering) o Tổng hợp (Summarization) o Mô hình ràng buộc (Dependency modeling) o Biểu diễn mô hình (Model Evaluation) o Phân tích sự phát triển và độ lệch (Evolution and deviation analyst) o Phương pháp tìm kiếm (Search Method) Có nhiều phương pháp khai phá dữ liệu được nghiên cứu ở trên, trong đó có ba phương pháp được các nhà nghiên cứu sử dụng nhiều nhất đó là: Luật kết hợp, Phân lớp dữ liệu và Phân cụm dữ liệu. 1.1.5. Các lĩnh vực ứng dụng thực tiễn của KPDL KPDL là một lĩnh vực mới phát triển nhưng thu hút được khá nhiều nhà nghiên cứu nhờ vào những ứng dụng thực tiễn của nó. Sau đây là một số lĩnh vực ứng dụng thực tế điển hình của KPDL: - Phân tích dữ liệu và hỗ trợ ra quyết định - Phân lớp văn bản, tóm tắt văn bản, phân lớp các trang Web và phân cụm ảnh màu - Chuẩn đoán triệu chứng, phương pháp trong điều trị y học - Tìm kiếm, đối sánh các hệ Gene và thông tin di truyền trong sinh học - Phân tích tình hình tài chính, thị trường, dự báo gía cổ phiếu trong tài chính, thị trường và chứng khoán - Phân tích dữ liệu marketing, khách hàng. - Điều khiển và lập lịch trình - Bảo hiểm - Giáo dục..... 1.1.6. Các hướng tiếp cận cơ bản và kỹ thuật áp dụng trong KPDL. Vấn đề khai phá dữ liệu có thể được phân chia theo lớp các hướng tiếp cận chính sau: - Phân lớp và dự đoán (classification &prediction): Là quá trình xếp một đối tượng vào một trong những lớp đã biết trước (ví dụ: phân lớp các bệnh nhân theo dữ liệu hồ sơ bệnh án, phân lớp vùng địa lý theo dữ liệu thời tiết...). Đối với hướng tiếp cận này thường sử dụng một số kỹ thuật của học máy như cây 14 quyết định (decision tree), mạng nơron nhân tạo (neural network),... Hay lớp bài toán này còn đươc gọi là học có giám sát - Học có thày (supervised learning). - Phân cụm (clustering/segmentation): Sắp xếp các đối tượng theo từng cụm dữ liệu tự nhiên, tức là số lượng và tên cụm chưa được biết trước. Các đối tượng được gom cụm sao cho mức độ tương tự giữa các đối tượng trong cùng một cụm là lớn nhất và mức độ tương tự giữa các đối tượng nằm trong các cụm khác nhau là nhỏ nhất. Lớp bài toán này còn được gọi là học không giám sát - Học không thày (unsupervised learning). - Luật kết hợp (association rules): Là dạng luật biểu diễn tri thức ở dạng khá đơn giản (Ví dụ: 80% sinh viên đăng ký học CSDL thì có tới 60% trong số họ đăng ký học Phân tích thiết kế hệ thống thông tin). Hướng tiếp cận này được ứng dụng nhiều trong lĩnh vực kinh doanh, y học, tin sinh học, giáo dục, viễn thông, tài chính và thị trường chứng khoán,... - Phân tích chuỗi theo thời gian (sequential/temporal patterns): Cũng tương tự như khai phá dữ liệu bằng luật kết hợp nhưng có thêm tính thứ tự và tính thời gian. Một luật mô tả mẫu tuần tự có dạng tiêu biểu X -> Y, phản ánh sự xuất hiện của biến cố X sẽ dẫn đến việc xuất hiện biến cố Y. Hướng tiếp cận này được ứng dụng nhiều trong lĩnh vực tài chính và thị trường chứng khoán bởi chúng có tính dự báo cao. - Mô tả khái niệm (concept desccription & summarization): Lớp bài toán này thiên về mô tả, tổng hợp và tóm tắt khái niệm (Ví dụ: tóm tắt văn bản). 1.2. Tổng quan về giải thuật tiến hóa Tính toán tiến hóa (Evolutionary computation): ứng dụng các khái niệm sinh học như quần thể, biến dị và đấu tranh sinh tồn để sinh các lời giải ngày càng tốt hơn cho bài toán. Có một số phương pháp tiếp cận được tuân thủ theo tính toán tiến hóa và thuật ngữ chung cho cách tiếp cận này là giải thuật tiến hóa. Hình thức sử dụng rộng rãi nhất của giải thuật tiến hóa là giải thuật di truyền (Genetic Algorithms). Và trong phần trình bày dưới đây sẽ mô tả giải thuật di truyền và thuật tiến hóa vi phân (Differential Evolution). 1.2.1. Giải thuật di truyền Giống như thuật toán tiến hóa nói chung, thuật toán di truyền hình thành dựa trên quan niệm cho rằng quá trình tiến hóa tự nhiên là quá trình hoàn hảo và hợp lý nhất và tự nó đã mang tính tối ưu. Đây là một tiên đề đúng, không thể chứng minh được nhưng phù hợp với thực tế khách quan. Trong tính tối ưu trong tự nhiên thể hiện ở chỗ thế hệ sau bao giờ cũng tốt hơn thế hệ trước nhờ hai quá 15 trình cơ bản là sinh sản và chọn lọc tự nhiên. Những cá thể nào phát triển thích nghi với môi trường sẽ tồn tại và ngược lại, những cá thể nào không thích nghi với môi trường sẽ bị đào thải. Sự thay đổi của môi trường sẽ tác động đến quá trình tiến hóa và bản thân quá trình tiến hóa cũng có tác động và làm thay đổi môi trường. Cá thể mới sinh ra trong quá trình tiến hóa nhờ vào sự lai ghép ở thế hệ cha-mẹ. Một cá thể mới có thể mang những đặc tính của cha-mẹ ở thế hệ trước (di truyền) hoặc mang những đặc tính mới hoàn toàn (đột biến). Di truyền và đột biến là hai cơ chế quan trọng như nhau trong quá trình tiến hóa mặc dù xác suất để xảy ra hiện tượng đột biến nhỏ nhiều (hàng chục đến hàng trăm lần tùy từng quá trình) so với hiện tượng di truyền. Mặc dù cơ chế là ngẫu nhiên nhưng thuật toán di truyền không phải là một thuật toán ngẫu nhiên. Thuật toán khai thác và tận dụng được một cách hiệu quả thông tin quá khứ để có được những kết quả mới đạt kết quả như mong muốn. Các cải tiến trong việc sử dụng thuật toán di truyền đã làm tăng thêm hiệu quả của việc sử dụng thuật toán trong các bài toán phức tạp. Điều này thể hiện ở việc giảm thời gian tính toán ngày càng hiệu quả mà ta sẽ tìm hiểu cụ thể hơn ở dưới đây. 1.2.1.1. Các quá trình cơ bản trong thuật toán di truyền a, Mã hóa dữ liệu: hay còn gọi là biểu diễn di truyền cho lời giải của bài toán: Đây là bước đầu tiên và rất quan trọng đối với việc tìm ra lời giải của bài toán. Mỗi lời giải của bài toán được biểu diễn dưới dạng một chuỗi ký tự hữu hạn hay còn được gọi là một nhiễm sắc thể. Các ký tự có thể là số nhị phân, số thập phân, … tùy vào từng bài toán cụ thể. Trong quá trình này, việc mã hóa cái gì, mã hóa như thế nào, trật tự các thành phần trong nhiễm sắc thể ra sao,… luôn là những thách thức cho những người giải bài toán. b, Khởi tạo quần thể (xây dựng tập hợp nghiệm ban đầu) có thể ngẫu nhiên hoặc không ngẫu nhiên: Có nhiều cách để khởi tạo giá trị quần thể nghiệm ban đầu, tùy từng bài toán mà ta lựa chọn phương pháp phù hợp. Thông thường, hệ nghiệm ban đầu được chọn ngẫu nhiên trong không gian tìm kiếm. Tuy vậy, việc chọn này cũng cần phải xem xét về tương quan giữa độ thích nghi của các nhiễm sắc thể để tránh tình trạng nghiệm tìm ra là nghiệm tối ưu cục bộ hay còn gọi là cực trị địa phương. Còn vấn đề số lượng nghiệm của tập nghiệm hay qui mô của quần thể cũng cần được xem xét kỹ dựa vào độ phức tạp của bài toán, độ chính xác yêu cầu (cao hay thấp) và thời gian tính toán yêu cầu (nhanh hay chậm) c, Xác định hàm thích nghi hay hàm lượng giá cho mỗi nhiễm sắc thể hay chính là cho các phương án nghiệm trong tập nghiệm. Hàm này dùng để đánh giá độ thích nghi của các nhiễm sắc thể. Hàm thích nghi cần phai đánh giá được 16 mức độ thích nghi cho tất cả các nghiệm khả thi và luôn được giả định là không âm để hiện độ thích nghi của các cá thể. Công thức biểu diễn hàm cần phải thể hiện được tất cả các đặc tính mong muốn của nhiễm sắc thể, thông qua đó có thể chọn lọc được các quần thể nghiệm tốt nhất cho bài toán. d, Quá trình lai ghép: đây là quá trình nhiễm sắc thể mới được hình thành dựa trên nhiễm sắc thể cha-mẹ bằng cách lai ghép một hay nhiều đoạn nhiễm sắc thể cha mẹ với nhau. Phép lai ghép xay ra với xác suất là p 1 có thể được mô phỏng như sau: o Chọn hai (hay nhiều) cá thể bất kỳ trong quần thể. Quần thể ở đây bao gồm các nhiễm sắc thể (cha-mẹ) có độ dài bằng nhau. o Chọn điểm lai là một điểm có vị trí bất kỳ (như nhau) trên nhiễm sắc thể cha-mẹ và thực hiện hoán đổi các đoạn gen của nhiễm sắc thể cha-mẹ tại điểm lai này. o Đưa hai cá thể này vào quần thể để thực hiện vào các quá trình tiến hóa tiếp theo Hình 1.3: Lai ghép hai cá thể Tuy nhiên trong quá trình tồn tại và phát triển, thuật toán di truyền đã được bổ sung rất nhiều các phương pháp lai ghép để nhằm thích ứng với nhiều kiểu bài toán và cũng là để tăng hiệu quả của thuật toán. Có thể kể một số phép lai cải tiến như sau: Lai ghép có xét tới các đặc tính trội và lặn trong tự nhiên. Các đặc tính này được quy định trước trong khi biểu diễn cấu trúc nhiễm sắc thể. Bằng việc xem xét tới các đặc tính trội-lặn, quá trình sản sinh ra các "quần thể chất lượng tốt" sẽ nhanh hơn và do đó thời gian tính toán cũng được rút ngắn. o Lai ghép từng phần: Việc giữ lại những đoạn mã đã "tối ưu" trong nhiễm sắc thể cũng là một cách để quá trình lai ghép trở nên hiệu quả hơn o Lai ghép có trật tự o Lai ghép dựa trên vị trí o Lai ghép chu trình 17 o Lai ghép thứ tự tuyến tính o Lai ghép đa điểm: Với phương pháp này, chúng ta có thể cho 2 cá thể lai ghép ở 2 hay nhiều điểm lai ghép. Phương thức này làm cho thuật toán trở nên linh hoạt hơn, nhờ đó các thế hệ cá thể con cũng sẽ có chất lượng tốt hơn. e, Quá trình đột biến là quá trình cá thể con mang một bay một số tính trạng không có trong mã di truyền của cha-mẹ. Quá trình này xảy ra với xác suất p 2 (nhỏ hơn nhiều so với p1) có thể được mô tả như sau: o Chọn ngẫu nhiên một cá thể bất kỳ trong quần thể o Chọn một gen bất kỳ của cá thể vừa chọn o Thay đổi giá trị gen đó (đối với cách mã hóa gen theo số nhị phân thì quá trình thay đổi giá trị là đổi giá trị từ 0 thành 1 hoặc từ 1 thành 0) rồi trả về quần thể để thực hiện các quá trình tiếp theo Hình 1.4: Đột biến một nhiễm sắc thể Tương tự như quá trình lai ghép, trong quá trình phát triển của thuật toán di truyền cũng đã được bổ sung rất nhiều cách thức để thực hiện quá trình gây đột biến ngày càng hiệu quả hơn: o Đột biến đảo ngược (Inversion Mutation) o Đột biến chèn (Insertion Mutation) o Đột biến thay thế (Raplacement Mutation) o Đột biến tương hỗ (Reciprocal Exchange Mutation) o Đột biến dịch chuyển (Shift Mutation) f, Quá trình chọn lọc: Quá trình mà các cá thể mới sinh ra được giữ lại hay bị loại bỏ khỏi quần thể dựa vào độ thích nghi của chúng. Độ thích nghi ở đây thường là một hàm gán một giá trị thực cho các cá thể trong quần thể. Đối với quá trình này có rất nhiều cách để xác định trình tự tính toán và thực hiện tùy vào cách lựa chọn độ thích nghi của cá thể nói riêng và của cả quần thể nói chung. 1.2.1.2. Các tham số của thuật toán di truyền o Kích cỡ hệ nghiệm (pop-size): số lượng cá thể phù hợp trong mỗi thế hệ 18 o Xác suất lai tạo (pc): xác suất để mỗi cá thể trong quần thể được tham gia quá trình lai ghép. o Xác suất đột biến (pm): xác suất để mỗi bit trong nhiễm sắc thể bị đột biến Thông thường, kích cỡ của quần thể phụ thuộc vào độ phức tạp của bài toán. Bài toán càng phức tạp, nhiều ràng buộc-đơn hoặc đa mục tiêu- thì số lượng cá thể trong mỗi thế hệ càng phải lớn. Hai thông số xác suất trong quá trình di truyền có khoảng giá trị rất khác nhau. Đối với xác suất lai tạo, giá trị thường rơi trong khoảng 0,5-0,95 nhưng giá trị thông thường của xác suất đột biến thấp hơn nhiều, chỉ ở khoảng 0,001-0,05. Điều này cũng phản ánh đúng xác suất xảy ra hai quá trình trong thực tế. Từ một ví dụ trên đây có thể tính được một số ưu điểm của thuật toán di truyền như phương pháp này tìm từ một quần thể các điểm chứ không phải một điểm. Điều này làm cho việc giải các bài toán đa mục tiêu hay việc tìm một tập hợp các phương án lân cận nghiệm trở nên dễ dàng. Thêm vào đó, việc đánh giá thông tin bằng hàm mục tiêu chứ không dùng đạo hàm hay các tri thức bổ sung cũng là một ưu điểm của thuật toán. 19 Hình 1.5: Sơ đồ quá trình tính toán của thuật toán di truyền Nhận xét cụ thể các bước trong lưu đồ trên: Bước 1: Khởi tạo/lựa chọn các thông số cho quá trình tính toán: Bước này người lập trình tính toán phải lựa chọn các thông số như: Số lượng cá thể trong quần thể, cách thức hóa bài toán cần tính toán dưới dạng các nhiễm sắc thể (độ dài của nhiễm sắc thể, kiểu số biểu diễn dữ liệu,…), số thế hệ tính toán, xác suất lai ghép, xác suất đột biến, hàm thích nghi,… 20 Bước 2: Khởi tạo quần thể ban đầu: xác định bằng phương pháp tạo số ngẫu nhiên để tạo giá trị cho các nhiễm sắc thể cho quần thể ban đầu. Tùy vào cách biểu diễn của các nhiễm sắc thể mà ta chọn phương pháp tạo số ngẫu nhiên phù hợp Bước 3: Đánh giá các nhiễm sắc thể bằng hàm thích nghi đã xác định ở bước 1. Trong bước này, ngoài việc đánh giá các nhiễm sắc thể riêng rẽ, chúng ta còn có thể đánh giá độ thích nghi của một nhiễm sắc thể hay cả quần thể. Nếu một nhóm hay cả quần thể có độ thích nghi "trung bình" (theo tiêu chí của từng trường hợp của người lập trình) thấp thì có thể loại nhóm nhiễm sắc thể hay quần thể đó ra khỏi quá trình di truyền. Bước 4: Thực hiện quá trình di truyền thông qua các cơ chế lai ghép và đột biến. Có thể thực hiện lần lượt hai quá trình này hoặc thực hiện đồng thời theo các phương pháp đã đề cập bên trên. Trong quá trình thực hiện thuật toán di truyền, giai đoạn này là giai đoạn mà mỗi người có thể thực hiện theo những phương pháp rất khác nhau. Giai đoạn này cũng là giai đoạn quyết định tới sự thành công của thuật toán. Người thực hiện cũng có thể đưa ra những phương thức tiến hành lai ghép hay đột biến mới trong giai đoạn này. Trong quá trình thực hiện, để có được một bộ các thông số lai ghép hay đột biến hiệu quả, người lập trình thường phải trải qua nhiều bước tính toán thử. Khâu này phụ thuộc nhiều vào kinh nghiệm và kỹ năng tính toán của người lập trình. Bước 5: Tạo quần thể mới bằng quá trình chọn lọc. Quá trình này cũng dựa vào đánh giá các nhiễm sắc thể thông qua hàm thích nghi. Cá thể nào có độ thích nghi cao sẽ được gữ lại cho thế hệ kế tiếp. Cũng giống như ở bước 3, chúng ta có thể sử dụng những hàm thích nghi phù hợp để đánh giá từng cá thể dơn lẻ hoạc cả một nhóm các cá thể. Sau quá trình này, nhóm cá thể nào thỏa mã tiêu chuẩn đánh giá với mức độ từ cao xuống thấp sẽ được dưa vào quần thể mới. Bước 6: Đánh giá quần thể vừa có được trong bước 5. Thông thường có hai tiêu chí để dừng quá trình di truyền tại bước này. Thứ nhất, độ thích nghi của từng cá thể và cả quần thể thỏa mãn một điều kiện hội tụ đã được đặt ra ban đầu. Các điều kiện hội tụ thể hiện mức độ chấp nhận được của kết quả tìm được. Thứ hai, quần thể mới tạo thành là quần thể ở thế hệ thứ (N+1) với N là số thế hệ dự định tính toán đã giả thiết ban đầu. Trong khi thực hiện các quá trình di truyền, những người tính toán có thể đưa ra những tiêu chí riêng để dừng quá trình di truyền. Các tiêu chí đưa ra góp phần quyết định tới thành công của thuật toán.
- Xem thêm -