Các nhãn lớp của tập dữ liệu huấn luyện đều phải được xác định trước khi xây dựng mô hình, vì vậy phương pháp này còn được gọi là học có giám sát supervised learning khác với phân nhóm d
Trang 1Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Người hướng dẫn khoa học
TS Nguyễn Huy Đức
Thái Nguyên - 2016
Trang 22
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
LỜI CAM ĐOAN
Sau quá trình học tập tại Trường Đại học công nghệ thông tin & truyền
thông, với những kiến thức lý thuyết và thực hành đã tích lũy được, với việc vận
dụng các kiến thức vào thực tế, em đã tự nghiên cứu các tài liệu, các công trình nghiên cứu, đồng thời có sự phân tích, tổng hợp, đúc kết và phát triển để hoàn thành luận văn thạc sĩ của mình
Em xin cam đoan luận văn này là công trình do bản thân em tự tìm hiểu, nghiên
cứu và hoàn thành dưới sự hướng dẫn tận tình của thầy giáo TS Nguyễn Huy Đức
Thái Nguyên, tháng 6 năm 2016
Học viên
Hoàng Hà Đức
Trang 3nỗ lực hết mình; tiếp đến cần có sự ủng hộ về tinh thần, sự giúp đỡ về chuyên môn một trong những điều kiện không thể thiếu quyết định đến việc thành công của đề tài
Để hoàn thành được đề tài này trước tiên em xin gửi lời cảm ơn đến thầy giáo
hướng dẫn TS Nguyễn Huy Đức, người đã có những định hướng cho em về nội
dung và hướng phát triển của đề tài, người đã có những đóng góp quý báu cho em về những vấn đề chuyên môn của đề tài, giúp em tháo gỡ kịp thời những vướng mắc trong quá trình làm luận văn
Em cũng xin cảm ơn các Thầy Cô giáo Trường Đại học Công nghệ thông tin
và Truyền thông Thái Nguyên, cũng như bạn bè cùng lớp đã có những ý kiến đóng góp bổ sung cho đề tài luận văn của em Xin cảm ơn gia đình, người thân cũng như đồng nghiệp luôn quan tâm, ủng hộ hỗ trợ về mặt tinh thần trong suốt thời gian từ khi nhận đề tài đến khi hoàn thiện đề tài này
Trong nội dung của luận văn chắc chắn còn nhiều thiếu sót Em rất mong các Thầy Cô cùng bạn bè đóng góp để bản luận văn của Em được hoàn thiện hơn
Em xin trân trọng cảm ơn
Thái Nguyên, tháng 6 năm 2016
Học viên
Trang 44
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
MỤC LỤC
LỜI CAM ĐOAN 1
LỜI CÁM ƠN 3
CHƯƠNG 1 TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU VÀ PHÂN CỤM DỮ LIỆU 11
1.1 Tổng quan về khám phá tri thức và khai phá dữ liệu 11
1.1.1 Giới thiệu chung về khám phá tri thức và khai phá dữ liệu 11
1.1.2 Quá trình khám phá tri thức 11
1.1.3 Quá trình khai phá dữ liệu 13
1.2 Các phương pháp khai phá dữ liệu 13
1.2.1 Phân lớp và dự đoán (Classification & Prediction) 14
1.2.2 Luật kết hợp (Association Rules) 14
1.2.3 Khai thác mẫu tuần tự (Sequential / Temporal patterns) 14
1.2.4 Phân nhóm- đoạn (Clustering / Segmentation) 15
1.2.5 Hồi quy (Regression) 15
1.2.6 Tổng hợp hóa (Summarization) 15
1.2.7 Mô hình hóa sự phụ thuộc (dependency modeling) 16
1.2.8 Phát hiện sự biến đổi và độ lệch (Change and deviation detection) 16
1.3 Phân cụm dữ liệu 16
1.3.1 Phân cụm dữ liệu là gì 16
1.3.2 Các mục tiêu của phân cụm dữ liệu 18
1.3.4 Các phương pháp phân cụm dữ liệu 19
1.3.4.1 Phương pháp phân cụm phân cấp 19
1.3.4.2 Phương pháp phân cụm dựa trên mật độ 20
1.3.4.3 Phương pháp phân cụm phân hoạch 21
1.3.4.4 Phương pháp phân cụm dựa trên lưới 22
1.3.4.5 Phương pháp phân cụm dựa trên mô hình 23
1.3.4.6 Phương pháp phân cụm có dữ liệu ràng buộc 23
CHƯƠNG 2: THUẬT TOÁN PHÂN CỤM DỮ LIỆU DỰA TRÊN GIẢI THUẬT DI TRUYỀN 25
2.1 Giải thuật di truyền 25
Trang 55
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
2.1.1 Lịch sử của giải thuật di truyền 25
2.1.2 Tóm tắt giải thuật di truyền 25
2.1.3 Cách biểu diễn bài toán trong giải thuật di truyền (hay chọn cách biểu diễn cấu trúc dữ liệu cho bài toán) 29
2.1.4 Mã hóa (encoding) 35
2.1.5 Các phương pháp chọn(Selection) 37
2.1.6 Chọn lọc Roulette (Roulette Wheel Selection) 37
2.1.7 Các toán tử trong giải thuật di truyền 41
2.1.8 Các tham số cần sử dụng trong giải thuật di truyền 44
2.1.9 Điều kiện kết thúc thuật giải di truyền 44
2.1.10 Nguyên lý hoạt động của giải thuật di truyền 44
2.1.11 Ứng dụng của thuật giải di truyền 44
2.2 Thuật toán phân cụm sử dụng giải thuật di truyền 44
2.2.1 Một số giải thuật cơ bản trong phân cụm dữ liệu 44
2.2.2 Giải thuật phân cụm dựa trên giải thuật di truyền 57
2.3 So sánh hiệu quả của thuật toán Kmeans và thuật toán Kmeans sử dụng giải thuật di truyền 61
2.3.1 Thuật Toán K-Means 61
2.3.2 Thuật toán Kmean sử dụng giải thuật di truyền 66
2.3.3 So sánh giữa k-means và k-means sử dụng giải thuật di truyền: 69
CHƯƠNG 3: THỰC NGHIỆM PHÂN CỤM DỮ LIỆU VỀ SINH VIÊN CỦA TRƯỜNG CAO ĐẲNG Y TẾ YÊN BÁI 70
3.1 Mô tả bài toán 70
3.1.1 Cơ sở dữ liệu 70
3.2 Xây dựng chương trình 71
3.2.2 Các chức năng của chương trình 71
3.2.3 Giao diện chương trình 71
3.2.3 Kết quả thực nghiệm 73
KẾT LUẬN 75
TÀI LIỆU THAM KHẢO 76
PHẦN PHỤ LỤC 78
Trang 66
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
DANH SÁCH HÌNH VẼ
Hình 1.1: Quá trình khám phá tri thức 12
Hình 1.2: Quá trình khai phá dữ liệu 13
Hình 1.3: Ví dụ về phân cụm dữ liệu 17
Hình 1.4: Ví dụ phân cụm các ngôi nhà dựa trên khoảng cách 18
Hình 1.5: Ví dụ phân cụm các ngôi nhà dựa trên kích cở 19
Hình 1.6 Các chiến lược phân cụm phân cấp 20
Hình 1.7: Ví dụ về phân cụm theo mật độ (1) 21
Hình 1.8: Ví dụ về phân cụm theo mật độ (2) 21
Hình 1.9: Cấu trúc phân cụm dựa trên lưới 22
Hình 1.10: Ví dụ về phân cụm dựa trên mô hình 23
Hình 1.11: Các cách mà các cụm có thể đưa ra 24
Hình 2.1:Sơ đồ tổng quát của giải thuật di truyền 28
Hình 2.2: Nhiễm sắc thể bằng cây 37
Hình 2.2 Minh họa trường hợp tách dữ liệu thành 3 cụm 45
Hình 2.3 Khái quát giải thuật CURE 48
Hình 2.3 Các cụm dữ liệu được khám phá bởi CURE 49
Hình 2.4 Lân cận của P với ngưỡng Eps 50
Hình 2.5: Mật độ - đến được trực tiếp 51
Hình 2.6: Mật độ đến được 51
Hình 2.7: Mật độ liên thông 51
Hình 2.8: Cụm và nhiễu 52
Hình 2.9: Hình dạng các cụm được khám phá bởi giải thuật DBSCAN 53
Hình 3.1 Cơ sở dữ liệu học sinh sinh viên 71
Hình 3.2 Giao diện chương trình 71
Hình 3.3 Màn hình khởi động 73
Hình 3.4 Màn hình phân cụm dữ liệu 73
Trang 77
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Trang 8GA Giải thuật di truyền Genetic Algorithm
DE Giải thuật tiến hóa vi phân Differential Evolution NST Nhiễm sắc thể
CDL Cụm dữ liệu
CNTT Công nghệ thông tin
Trang 9Trong ngành khoa học máy tính, tìm kiếm lời giải tối ưu cho các bài toán là vấn đề được các nhà khoa học máy tính đặc biệt rất quan tâm Mục đích chính của các thuật toán là tìm kiếm thuật giải chất lượng cao và sử dụng kỹ thuật trí tuệ nhân tạo đặc biệt rất cần thiết khi giải quyết các bài toán có không gian tìm kiếm lớn
Giải thuật di truyền (Genetic Algorithm GA) là một trong những kỹ thuật tìm kiếm lời giải tối ưu đã đáp ứng được yêu cầu của nhiều bài toán và ứng dụng Hiện nay, thuật toán di truyền được ứng dụng rất rộng rãi trong các lĩnh vực phức tạp Thuật toán di truyền chứng tỏ được hiệu quả của nó trong các vấn đề khó có thể giải quyết bằng các phương pháp thông thường hay các phương pháp cổ điển, nhất là trong các 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, trong phạm vi đề tài này, tôi chọn hướng phân cụm dữ liệu dựa trên giải thuật di truyền
Luận văn gồm có 3 chương:
Chương I: Tổng quan về khai phá dữ liệu và phân cụm dữ liệu
Phần này giới thiệu một cách tổng quát về quá trình khám phá tri thức nói chung và khai phá dữ liệu nói riêng Các phương pháp khai phá dữ liệu và phân cụm
dữ liệu
Trang 1010
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Chương II: Thuật toán phân cụm dữ liệu dựa trên giải thuật di truyền
Trong chương này trình bày giải thuật di truyền, thuật toán phân cụm sử dụng giải thuật di truyền và so sánh hiệu quả của thuật toán Kmeans và thuật toán Kmeans
sử dụng giải thuật di truyền
Chương III: Thực nghiệm phân cụm dữ liệu về sinh viên của trường Cao đẳng Y tế Yên Bái
Phần này mô tả bài toán, xây dựng chương trình Cài đặt chương trình thử nghiệm ứng dụng kỹ thuật phân cụm trong công tác học sinh sinh viên của Trường Cao đẳng Y tế Yên Bái và một kết quả thu được
Trang 1111
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
CHƯƠNG 1 TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU VÀ PHÂN CỤM DỮ LIỆU 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 [8]
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 giải thuật 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
1.1.2 Quá trình khám phá tri thức
Quy trình khám phá tri thức tiến hành qua 6 giai đoạn, xem hình 1.1 [8]:
1 Gom dữ liệu: Tập hợp dữ liệu là bước đầu tiên trong quá trình khai phá dữ liệu Đây là bước được khai thác trong một cơ sở dữ liệu, một kho dữ liệu và thậm chí các dữ liệu từ các nguồn ứng dụng Web
2 Trích lọc dữ liệu: Ở giai đọan này dữ liệu được lựa chọn hoặc phân chia theo một số tiêu chuẩn nào đó phục vụ mục đích khai thác, ví dụ chọn tất cả những
em học sinh có điểm Trung bình học kỳ lớn hơn 8.0 và có giới tính nữ
3 Làm sạch, tiền xử lý và chuẩn bị trước dữ liệu: Giai đoạn thứ ba này là giai đoạn hay bị sao lãng, nhưng thực tế nó là một bước rất quan trọng trong quá trình khai phá dữ liệu Một số lỗi thường mắc phải trong khi gom dữ liệu là tính không đủ
Trang 1212
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
chặt chẽ, logíc Vì vậy, dữ liệu thường chứa các giá trị vô nghĩa và không có khả năng kết nối dữ liệu Ví dụ : Điểm Trung bình = 12.4 Giai đoạn này sẽ tiến hành xử lý những dạng dữ liệu không chặt chẻ nói trên Những dữ liệu dạng này được xem như thông tin dư thừa, không có giá trị Bởi vậy, đây là một quá trình rất quan trọng vì dữ liệu này nếu không được “làm sạch – tiền xử lý – chuẩn bị trước” thì sẽ gây nên những kết quả sai lệch nghiêm trọng
4 Chuyển đổi dữ liệu: Tiếp theo là giai đoạn chuyển đổi dữ liệu, dữ liệu đưa
ra có thể sử dụng và điều khiển được bởi việc tổ chức lại nó, tức là dữ liệu sẽ được chuyển đổi về dạng phù hợp cho việc khai phá bằng cách thực hiện các thao tác nhóm hoặc tập hợp
5 Khai phá dữ liệu: Đây là bước mang tính tư duy trong khai phá dữ liệu Ở giai đoạn này nhiều thuật toán khác nhau đã được sử dụng để trích ra các mẫu từ dữ liệu Thuật toán thường dùng là nguyên tắc phân loại, nguyên tắc kết, v.v
6 Đánh giá các luật và biểu diễn tri thức: Ở giai đoạn này, các mẫu dữ liệu được chiết xuất ra bởi phần mềm khai phá dữ liệu Không phải bất cứ mẫu dữ liệu nào cũng đều hữu ích, đôi khi nó còn bị sai lệch Vì vậy, cần phải ưu tiên những tiêu chuẩn đánh giá để chiết xuất ra các tri thức (Knowlege) cần chiết xuất ra Đánh giá
sự hữu ích của các mẫu biểu diễn tri thức dựa trên một số phép đo Sau đó sử dụng các kỹ thuật trình diễn và trực quan hoá dữ liệu để biểu diễn tri thức khai phá được cho người sử dụng
Hi ̀nh 1.1: Quá trình khám phá tri thức
Trang 1313
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
1.1.3 Quá trình khai phá dữ liệu
Khai phá dữ liệu là một giai đoạn quan trọng trong quá trình khám phá tri thức
Về bản chất là giai đoạn duy nhất tìm ra được thông tin mới, thông tin tiềm ẩn có trong cơ sở dữ liệu chủ yếu phục vụ cho mô tả và dự đoán [8]
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
Hi ̀nh 1.2: Quá trình khai phá dữ liệu
- Xác định nhiệm vụ: Xác định chính xác các vấn đề cần giải quyết
- Xác định các dữ liệu liên quan: Dùng để xây dựng giải pháp
- 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 khai phá dữ liệu 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
- Thuật toán khai phá dữ liệu: Lựa chọn thuật toán khai phá dữ liệu và thực hiện việc khai phá dữ liệu để 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.2 Các phương pháp khai phá dữ liệu
Các kỹ thuật KPDL được có thể chia làm 2 nhóm chính [8]:
- Kỹ thuật KPDL mô tả: có nhiệm vụ mô tả về các tính chất hoặc các đặc tính chung của dữ liệu trong CSDL hiện có Nhóm kỹ thuật này gồm các phương pháp: phân nhóm (Clustering), tổng hợp hóa (Summerization), phát hiện sự biến đổi và độ lệch (Change and deviation detection), phân tích luật kết hợp (Association Rules),
Trang 1414
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
- Kỹ thuật KPDL dự đoán: có nhiệm vụ đưa ra các dự đoán dựa vào các suy diễn trên dữ liệu hiện thời Nhóm kỹ thuật này gồm các phương pháp: phân lớp (Classification), hồi quy (Regression),
1.2.1 Phân lớp và dự đoán (Classification & Prediction)
Là đặt các mẫu vào các lớp được xác định trước Nhiệm vụ chính là tìm các hàm ánh xạ các mẫu dữ liệu một cách chính xác vào trong các lớp.Ví dụ một ngân hàng muốn phân loại các khách hành của họ vào trong hai nhóm có nợ hay không nợ,
từ đó giúp họ ra quyết định cho vay hay không cho vay Quá trình phân lớp dữ liệu thường gồm 2 bước: xây dựng mô hình và sử dụng mô hình để phân lớp dữ liệu
- Bước 1: một mô hình sẽ được xây dựng dựa trên việc phân tích các mẫu dữ liệu sẵn có Mỗi mẫu tương ứng với một lớp, được quyết định bởi một thuộc tính gọi
là thuộc tính lớp Các mẫu dữ liệu này còn được gọi là tập dữ liệu huấn luyện (training data set) Các nhãn lớp của tập dữ liệu huấn luyện đều phải được xác định trước khi xây dựng mô hình, vì vậy phương pháp này còn được gọi là học có giám sát (supervised learning) khác với phân nhóm dữ liệu là học không có giám sát (unsupervised learning)
- Bước 2: sử dụng mô hình để phân lớp dữ liệu Trước hết chúng ta phải tính
độ chính xác của mô hình Nếu độ chính xác là chấp nhận được, mô hình sẽ được sử dụng để dự đoán nhãn lớp cho các mẫu dữ liệu khác trong tương lai
Trong kỹ thuật phân lớp chúng ta có thể sử dụng các phương pháp như: Cây quyết định (Decision Tree), K-Láng giềng gần nhất (k-Nearest Neighbor), Mạng Nơron (Neural networks), Giải thuật di truyền (Genetic algorithms), Mạng Bayesian (Bayesian networks), Tập mờ và tập thô (Rough and Fuzzy Sets)
1.2.2 Luật kết hợp (Association Rules)
Luật kết hợp là dạng luật biểu diễn tri thức ở dạng tương đối đơn giản Mục tiêu của phương pháp này là phát hiện và đưa ra các mối liên hệ giữa các giá trị dữ liệu trong CSDL Mẫu đầu ra của giải thuật KPDL là tập luật kết hợp tìm được
Tuy luật kết hợp là một dạng luật khá đơn giản nhưng lại mang rất nhiều ý nghĩa Thông tin mà dạng luật này đem lại rất có lợi trong các hệ hỗ trợ ra quyết định Tìm kiếm được những luật kết hợp đặc trưng và mang nhiều thông tin từ CSDL tác nghiệp là một trong những hướng tiếp cận chính của lĩnh vực khai phá dữ liệu
1.2.3 Khai thác mẫu tuần tự (Sequential / Temporal patterns)
Tương tự như khai thác 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
Trang 1515
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
biến cố X sẽ dẫn đến việc xuất hiện kế tiếp biến cố Y Hướng tiếp cận này có tính dự báo cao
1.2.4 Phân nhóm- đoạn (Clustering / Segmentation)
Mục tiêu chính của việc phân nhóm dữ liệu là nhóm các đối tượng tương tự nhau trong tập dữ liệu vào các nhóm sao cho mức độ tương tự giữa các đối tượng trong cùng một nhóm là lớn nhất và mức độ tương tự giữa các đối tượng nằm trong các nhóm khác nhau là nhỏ nhất Các nhóm có thể tách nhau hoặc phân cấp gối lên nhau và số lượng các nhóm là chưa biết trước Một đối tượng có thể vừa thuộc nhóm này, nhưng cũng có thể vừa thuộc nhóm khác Không giống như phân lớp dữ liệu, phân nhó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 nhóm dữ liệu là một cách học bằng quan sát (learning by observation), trong khi phân lớp dữ liệu là học bằng ví dụ (learning by example) Trong phương pháp này bạn sẽ không thể biết kết quả các nhóm thu được sẽ như thế nào khi bắt đầu quá trình Vì vậy, thông thường cần có một chuyên gia về lĩnh vực
đó để đánh giá các nhóm thu được Phân nhóm còn được gọi là học không có giám sát (unsupervised learning) Phân nhóm dữ liệu được sử dụng nhiều trong các ứng dụng về phân đoạn thị trường, phân đoạn khách hàng, nhận dạng mẫu, phân loại trang Web, … Ngoài ra phân nhó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 KPDL khác
1.2.5 Hồi quy (Regression)
Hồi quy là việc học một hàm ánh xạ từ một mẫu dữ liệu thành một biến dự đoán có giá trị thực Nhiệm vụ của hồi quy tương tự như phân lớp, điểm khác nhau chính là ở chỗ thuộc tính để dự báo là liên tục chứ không rời rạc Việc dự báo các giá trị số thường được làm bởi các phương pháp thống kê cổ điển chẳng hạn như hồi quy tuyến tính Tuy nhiên phương pháp mô hình hóa cũng có thể được sử dụng như cây quyết định
dạng sau: “Nếu một mục thuộc về lớp đã chỉ trong tiền đề thì mục đó có tất cả các
thuộc tính đã nêu trong kết luận”
Trang 1616
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
1.2.7 Mô hình hóa sự phụ thuộc (dependency modeling)
Là việc tìm kiếm một mô hình mô tả sự phụ thuộc giữa các biến, thuộc tính theo hai mức Mức cấu trúc của mô hình mô tả (thường dưới dạng đồ thị), trong đó, các biến phụ thuộc bộ phận vào các biến khác Và mức định lượng mô hình mô tả mức độ phụ thuộc Những phụ thuộc này thường được biểu thị dưới dạng theo luật
“nếu - thì” - nếu tiền đề đúng thì kết luận đúng Về nguyên tắc, cả tiền đề và kết luận đều có thể là sự kết hợp logic của các giá trị thuộc tính Trên thực tế, tiền đề thường
là nhóm các giá trị thuộc tính và kết luận chỉ là một thuộc tính Hơn nữa, hệ thống có thể phát hiện các luật phân lớp trong đó tất cả các luật cần phải có cùng một thuộc tính do người dùng chỉ ra trong kết luận
Quan hệ phụ thuộc cũng có thể biểu diễn dưới dạng mạng tin cậy Bayes Đó
là đồ thị có hướng, không chu trình Các nút biểu diễn thuộc tính và trọng số của liên kết phụ thuộc giữa các nút đó
1.2.8 Phát hiện sự biến đổi và độ lệch (Change and deviation detection)
Tập trung vào khám phá hầu hết sự thay đổi có nghĩa dưới dạng độ đo đã biết trước hoặc giá trị chuẩn, phát hiện độ lệch đáng kể giữa nội dung của tập con dữ liệu thực và nội dung mong đợi Hai mô hình độ lệch hay dùng là lệch theo thời gian và lệch theo nhóm Độ lệch theo thời gian là sự thay đổi có ý nghĩa của dữ liệu thời gian
Độ lệch theo nhóm là sự khác nhau của dữ liệu trong hai tập con dữ liệu, ở đây xét cả trường hợp tập con dữ liệu này thuộc tập con kia Nghĩa xác định dữ liệu trong một nhóm con của đối tượng có khác đáng kể so với toàn bộ đối tượng không? Theo cách này, sai sót dữ liệu hay sai lệch so với giá trị thông thường sẽ được phát hiện
1.3 Phân cụm dữ liệu
1.3.1 Phân cụm dữ liệu là gì
Phân cụm dữ liệu là một kỹ thuật trong Data mining nhằm tìm kiếm, phát hiện các cụm, các mẫu dữ liệu tự nhiên tiềm ẩn và quan trọng trong tập dữ liệu lớn
để từ đó cung cấp thông tin, tri thức cho việc ra quyết định [20]
Phân cụm dữ liệu là sự phân chia một cơ sở dữ liệu lớn thành các nhóm
dữ liệu với trong đó các đối tượng tương tự như nhau Trong mỗi nhóm, một số chi tiết có thể không quan tâm đến để đổi lấy dữ liệu đơn giản hóa Hay ta có thể hiểu “Phân cụm dữ liệu là quá trình tổ chức các đối tượng thành từng nhóm mà các đối tượng ở mỗi nhóm đều tương tự nhau theo một tính chất nào đó, những đối tượng không tương tự tính chất sẽ ở nhóm khác”
Trang 1717
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
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 là một ví dụ của phương pháp học không có thầy Không giống như phân lớp dữ liệu, 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 bằng quan sát, trong khi phân lớp dữ liệu là học bằng ví dụ 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ư là phân loại và mô tả đặc điểm, có tác dụng trong việc phát hiện ra các cụm
Như vậy, phân cụm dữ liệu là quá trình phân chia một tập dữ liệu ban đầu thành các cụm dữ liệu sao cho các đối tượng trong một cụm “tương tự” (Similar) với nhau và các đối tượng trong các cụm khác nhau sẽ “không tương tự” (Dissimilar) với nhau Số các cụm dữ liệu được phân ở đây có thể được xác định trước theo kinh nghiệm hoặc có thể được tự động xác định
Chúng ta có thể thấy điều này với một ví dụ đơn giản như sau:
Hi ̀nh 1.3: Ví dụ về phân cụm dữ liệu
Trong trường hợp này, chúng ta dễ dàng xác định được 4 cụm dựa vào các
dữ liệu đã cho; các tiêu chí “tương tự” để phân cụm trong trường hợp này là khoảng cách : hai hoặc nhiều đối tượng thuộc nhóm của chúng được “đóng gói” theo một khoảng cách nhất định Điều này được gọi là phân cụm dựa trên khoảng cách
Một kiểu khác của phân cụm dữ liệu là phân cụm dữ liệu dựa vào khái niệm: hai hay nhiều đối tượng thuộc cùng nhóm nếu có một định nghĩa khái niệm chung cho tất cả các đối tượng trong đó Nói cách khác, đối tượng của nhóm phải phù hợp với nhau theo miêu tả các khái niệm đã được định nghĩa, không phải theo những biện pháp đơn giản tương tự
Trang 1818
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
1.3.2 Các mục tiêu của phân cụm dữ liệu
Mục tiêu của phân cụm dữ liệu là để xác định các nhóm nội tại bên trong một
bộ dữ liệu không có nhãn Nhưng để có thể quyết định được cái gì tạo thành một cụm tốt Nhưng làm thế nào để quyết định cái gì đã tạo nên một phân cụm dữ liệu tốt ? Nó
có thể được hiển thị rằng không có tiêu chuẩn tuyệt đối “tốt nhất” mà sẽ là độc lập với mục đích cuối cùng của phân cụm dữ liệu Do đó, mà người sử dụng phải cung cấp tiêu chuẩn, theo cách như vậy mà kết quả của phân cụm dữ liệu sẽ phù hợp với nhu cầu của họ cần
Ví dụ, chúng ta có thể quan tâm đến việc tìm kiếm đối tượng đại diện cho các nhóm đồng nhất trong “các cụm tự nhiên” và mô tả thuộc tính không biết của chúng trong việc tìm kiếm các nhóm hữu ích và phù hợp hoặc trong việc tìm kiếm các đối tượng bất thường trong dữ liệu (cá biệt, ngoại lệ, nhiễu)
Hi ̀nh 1.4: Ví dụ phân cụm các ngôi nhà dựa trên khoảng cách
Một vấn đề thường gặp trong phân cụm là hầu hết các dữ liệu cần cho phân cụm đều có chứa dữ liệu nhiễu do quá trình thu thập thiếu chính xác hoặc thiếu đầy đủ, vì vậy cần phải xây dựng chiến lược cho bước tiền xử lí dữ liệu nhằm khắc phục hoặc loại bỏ nhiễu trước khi chuyển sang giai đoạn phân tích cụm dữ liệu Nhiễu ở đây được hiểu là các đối tượng dữ liệu không chính xác, không tường minh hoặc là các đối tượng dữ liệu khuyết thiếu thông tin về một số thuộc tính Một trong các kỹ thuật xử lí nhiễu phổ biến là việc thay thế giá trị các thuộc tính của đối tượng nhiễu bằng giá trị thuộc tính tương ứng Ngoài ra, dò tìm đối tượng ngoại lai cũng là một trong những hướng nghiên cứu quan trọng trong phân cụm, chức năng của nó là xác định một nhóm nhỏ các đối tượng dữ liệu khác thường
so với các dữ liệu trong cơ sở dữ liệu, tức là các đối tượng dữ liệu không tuân theo các hành vi hoặc mô hình dữ liệu nhằm tránh sự ảnh hưởng của chúng tới quá trình
và kết quả của phân cụm
Trang 1919
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Hi ̀nh 1.5: Ví dụ phân cụm các ngôi nhà dựa trên kích cở
Theo các nghiên cứu đến thời điểm hiện nay thì 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ơ
sở dữ liệu Hơn nữa, đối với 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ơ sở dữ liệu, với mỗi cách thức biểu diễn khác nhau sẽ có tương ứng 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 lĩnh vực khai phá dữ liệu
1.3.4 Các phương pháp phân cụm dữ liệu
Các kỹ thuật phân cụm có rất nhiều cách tiếp cận và các ứng dụng trong thực
tế, nó đều hướng tới hai mục tiêu chung đó là chất lượng của các cụm khám phá được
và tốc độ thực hiện của thuật toán Hiện nay, các kỹ thuật phân cụm có thể phân loại theo các phương pháp tiếp cận chính như sau: phân cụm phân họach (Partitioning Methods); phân cụm phân cấp (Hierarchical Methods); phân cụm dựa trên mật độ (Density-Based Methods); phân cụm dựa trên lưới (Grid-Based Methods); phân cụm dựa trên mô hình phân cụm (Model-Based Clustering Methods) và phân cụm có dữ liệu ràng buộc (Binding data Clustering Methods)
1.3.4.1 Phương pháp phân cụm phân cấp
Phương pháp này xây dựng một phân cấp trên cơ sở các đối tượng dữ liệu đang xem xét Nghĩa là sắp xếp một tập dữ liệu đã cho thành một cấu trúc có dạng hình cây, cây phân cấp này được xây dựng theo kỹ thuật đệ quy Có hai cách tiếp cận phổ biến của kỹ thuật này đó là: hòa nhập nhóm, thường được gọi là tiếp cận (Bottom-Up); phân chia nhóm, thường được gọi là tiếp cận (Top-Down)
- Phương pháp “dưới lên” (Bottom up) : Phương pháp này bắt đầu với mỗi
đối tượng được khởi tạo tương ứng với các cụm riêng biệt, sau đó tiến hành nhóm các đối tượng theo một độ đo tương tự (như khoảng cách giữa hai trung tâm của hai
Trang 2020
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
nhóm), quá trình này được thực hiện cho đến khi tất cả các nhóm được hòa nhập vào một nhóm (mức cao nhất của cây phân cấp) hoặc cho đến khi các điều kiện kết thúc thỏa mãn Như vậy, cách tiếp cận này sử dụng chiến lược ăn tham trong quá trình phân cụm
Hi ̀nh 1.6 Các chiến lược phân cụm phân cấp
- Phương pháp “trên xuống” (Top Down) : Bắt đầu với trạng thái là tất cả các
đối tượng được xếp trong cùng một cụm Mỗi vòng lặp thành công, một cụm được tách thành các cụm nhỏ hơn theo giá trị của một phép đo độ tương tự nào đó cho đến khi mỗi đối tượng là một cụm, hoặc cho đến khi điều kiện dừng thỏa mãn Cách tiếp cận này sử dụng chiến lược chia để trị trong quá trình phân cụm
1.3.4.2 Phương pháp phân cụm dựa trên mật độ
Kỹ thuật này nhóm các đối tượng dữ liệu dựa trên hàm mật độ xác định, mật
độ là số các đối tượng lân cận của một đối tượng dữ liệu theo một nghĩa nào đó Trong cách tiếp cận này, khi một dữ liệu đã xác định thì nó tiếp tục được phát triển thêm các đối tượng dữ liệu mới miễn là số các đối tượng lân cận này phải lớn hơn một ngưỡng
đã được xác định trước Phương pháp phân cụm dựa trên mật độ của các đối tượng
để xác định các cụm dữ liệu có thể phát hiện ra các cụm dữ liệu với hình thù bất kỳ
Kỹ thuật này có thể khắc phục được các phần tử ngoại lai hoặc giá trị nhiễu rất tốt, tuy nhiên việc xác định các tham số mật độ của thuật toán là rất khó khăn, trong khi các tham số này lại có tác động rất lớn đến kết quả phân cụm
Trang 211.3.4.3 Phương pháp phân cụm phân hoạch
Kỹ thuật này phân hoạch một tập hợp dữ liệu có n phần tử thành k nhóm cho đến khi xác định số các cụm được thiết lập Số các cụm được thiết lập là các đặc trưng được lựa chọn trước Phương pháp này là tốt cho việc tìm các cụm hình cầu trong không gian Euclidean Ngoài ra, phương pháp này cũng phụ thuộc vào khoảng cách
cơ bản giữa các điểm để lựa chọn các điểm dữ liệu nào có quan hệ là gần nhau với mỗi điểm khác và các điểm dữ liệu nào không có quan hệ hoặc có quan hệ là xa nhau
so với mỗi điểm khác Tuy nhiên, phương pháp này không thể xử lí các cụm có hình dạng kỳ quặc hoặc các cụm có mật độ các điểm dầy đặc Các thuật toán phân hoạch
Trang 2222
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
dữ liệu có độ phức tạp rất lớn khi xác định nghiệm tối ưu toàn cục cho vấn đề phân cụm dữ liệu, do nó phải tìm kiếm tất cả các cách phân hoạch có thể được Chính vì vậy, trên thực tế thường đi tìm giải pháp tối ưu cục bộ cho vấn đề này bằng cách sử dụng một hàm tiêu chuẩn để đánh giá chất lượng của cụm cũng như để hướng dẫn cho quá trình tìm kiếm phân hoạch dữ liệu Như vậy, ý tưởng chính của thuật toán phân cụm phân hoạch tối ưu cục bộ là sử dụng chiến lược ăn tham (Greedy) để tìm kiếm nghiệm
Điển hình trong phương pháp tiếp cận theo phân cụm phân họach là các thuật toán như: K_means, K-medoids, CLARA (Clustering Large Applications), CLARANS (Clustering Large Applications based on RAndomized Search)
1.3.4.4 Phương pháp phân cụm dựa trên lưới
Kỹ thuật phân cụm dựa trên lưới thích hợp với dữ liệu nhiều chiều, dựa trên cấu trúc dữ liệu lưới để phân cụm, phương pháp này chủ yếu tập trung áp dụng cho lớp dữ liệu không gian Mục tiêu của phương pháp này là lượng hóa dữ liệu thành các ô tạo thành cấu trúc dữ liệu lưới Sau đó, các thao tác phân cụm chỉ cần làm việc với các đối tượng trong từng ô trên lưới chứ không phải các đối tượng dữ liệu Cách tiếp cận dựa trên lưới này không di chuyển các đối tượng trong các ô mà xây dựng nhiều mức phân cấp của nhóm các đối tượng trong một ô Phương pháp này gần giống với phương pháp phân cụm phân cấp nhưng chúng không trộn các ô, đồng thời giải quyết khắc phục yêu cầu đối với dữ liệu nhiều chiều mà phương pháp phân phân cụm dựa trên mật độ không giải quyết được ưu điểm của phương pháp phân cụm dựa trên lưới là thời gian xử lí nhanh và độc lập với số đối tượng dữ liệu trong tập dữ liệu ban đầu, thay vào đó là chúng phụ thuộc vào số ô trong mỗi chiều của không gian lưới
Hi ̀nh 1.9: Cấu trúc phân cụm dựa trên lưới
Điển hình trong phương pháp tiếp cận theo phân cụm dựa trên lưới là các thuật toán như : STING (a STatistical INformation Grid approach) bởi Wang, Yang và
Trang 2323
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Muntz (1997), WAVECLUSTER bởi Sheikholeslami, Chatterjee và Zhang (1998), CLIQUE (Clustering In QUEst) bởi Agrawal, Gehrke, Gunopulos, Raghavan (1998)
1.3.4.5 Phương pháp phân cụm dựa trên mô hình
Phương này cố gắng khám phá các phép xấp xỉ tốt của các tham số mô hình sao cho khớp với dữ liệu một cách tốt nhất Chúng có thể sử dụng chiến lược phân cụm phân hoạch hoặc phân cụm phân cấp, dựa trên cấu trúc hoặc mô hình mà chúng giả định về tập dữ liệu và cách chúng hiệu chỉnh các mô hình này để nhận dạng ra các phân hoạch
Hi ̀nh 1.10: Ví dụ về phân cụm dựa trên mô hình
Phương pháp phân cụm dựa trên mô hình cố gắng khớp giữa các dữ liệu với
mô hình toán học, nó dựa trên giả định rằng dữ liệu được tạo ra bằng hỗn hợp phân phối xác suất cơ bản Các thuật toán phân cụm dựa trên mô hình có hai cách tiếp cận chính: mô hình thống kê và mạng nơron Phương pháp này gần giống với phương pháp phân cụm dựa trên mật độ, vì chúng phát triển các cụm riêng biệt nhằm cải tiến các mô hình đã được xác định trước đó, nhưng đôi khi nó không bắt đầu với một số cụm cố định và không sử dụng cùng một khái niệm mật độ cho các cụm
Điển hình trong phương pháp tiếp cận theo phân cụm dựa trên mô hình là các thuật toán như : EM, COBWEB, CLASSIT, AutoClass (Cheeseman and Stutz, 1996)
1.3.4.6 Phương pháp phân cụm có dữ liệu ràng buộc
Sự phát triển của phân cụm dữ liệu không gian trên cơ sở dữ liệu lớn đã cung cấp nhiều công cụ tiện lợi cho việc phân tích thông tin địa lí, tuy nhiên hầu hết các thuật toán này cung cấp rất ít cách thức cho người dùng để xác định các ràng buộc
Trang 2424
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
trong thế giới thực cần phải được thỏa mãn trong quá trình phân cụm Để phân cụm
dữ liệu không gian hiệu quả hơn, các nghiên cứu bổ sung cần được thực hiện để cung cấp cho người dùng khả năng kết hợp các ràng buộc trong thuật toán phân cụm
Hiện nay, các phương pháp phân cụm trên đã và đang được phát triển và áp dụng nhiều trong các lĩnh vực khác nhau và đã có một số nhánh nghiên cứu được phát triển trên cơ sở của các phương pháp đó như:
Phân cụm thống kê: Dựa trên các khái niệm phân tích hệ thống, nhánh nghiên cứu này sử dụng các độ đo tương tự để phân hoạch các đối tượng, nhưng chúng chỉ
áp dụng cho các dữ liệu có thuộc tính số
Phân cụm khái niệm: Kỹ thuật này được phát triển áp dụng cho dữ liệu hạng mục, chúng phân cụm các đối tượng theo các khái niệm mà chúng xử lí
Phân cụm mờ: Sử đụng kỹ thuật mờ để phân cụm dữ liệu Cácthuật toán thuộc loại này chỉ ra lược đồ phân cụm thích hợp với tất cả các hoạt động đời sống hàng ngày, chúng chỉ xử lí các dữ liệu thực không chắc chắn
Phân cụm mạng Kohonen: Loại phân cụm này dựa trên khái niệm của các mạng nơron Mạng Kohonen có tầng nơron vào và các tầng nơron ra Mỗi nơron của tầng vào tương ứng với mỗi thuộc tính của bản ghi, mỗi một nơron vào kết nối với tất cả các nơron của tầng ra Mỗi liên kết được gắn liền với một trọng số nhằm xác định vị trí của nơron ra tương ứng
Hi ̀nh 1.11: Các cách mà các cụm có thể đưa ra
Trang 2525
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
CHƯƠNG 2 THUẬT TOÁN PHÂN CỤM DỮ LIỆU DỰA TRÊN GIẢI THUẬT DI TRUYỀN
2.1 Giải thuật di truyền
2.1.1 Lịch sử của giải thuật di truyền
Trước tiên ý niệm về thuật giải di truyền đã được một số nhà sinh vật học đưa
ra từ những năm 50-60, thế kỷ XX Alex Fraser là người tiên phong nêu lên sự tương đồng giữa sự tiến hóa của sinh vật và chương trình tin học giả tưởng về genetic algorithm Tuy nhiên, John Henry Holland mới là người triển khai ý tưởng và phương thức giải quyết vấn đề dựa theo sự tiến hóa của con người Từ những bài giảng, bài báo của mình, ông đã đúc kết các ý tưởng vào trong cuốn sách đầu tay Adaptation in Natural and Artifical systems (mô phỏng theo tự nhiên và hệ thống nhân tạo ), xuất bản năm 1975 Dựa trên lý thuyết cơ bản về GA của Holland, Keneth De Jong đã triển khai, chứng minh và những thành quả do ông thực hiện đã góp phần quan trọng trong việc tạo ra nền tảng toán học cho lý thuyết thuật giải di truyền Và sau này là John koza đã tiếp nối, phát triển giải thuật di truyền
Lần đầu tiên Holland nghiên cứu các thuật giải này, chúng hoàn toàn không
có tên Do nguồn gốc của phương pháp này là từ các gen di truyền, Holland đã đặt tên cho nó là “thuật giải di truyền” [1][7]
2.1.2 Tóm tắt giải thuật di truyền
Thuật giải di truyền (GA) là kỹ thuật chung giúp giải quyết vấn đề bài toán bằng cách mô phỏng sự tiến hóa của con người hay của sinh vật nói chung (dựa trên thuyết tiến hóa muôn loài của Darwin) trong điều kiện qui định sẵn của môi trường
GA là một thuật giải, nghĩa là mục tiêu của GA không nhằm đưa ra lời giải chính xác tối ưu mà là đưa ra lời giải tương đối tối ưu [1][7]
Theo đề xuất ban đầu của giáo sư John Holland, một vấn đề-bài toán đặt ra sẽ được mã hóa thành các chuỗi bit với chiều dài cố định Nói một cách chính xác là các thông số của bài toán sẽ được chuyển đổi và biểu diễn lại dưới dạng các chuỗi nhị phân Các thông số này có thể là các biến của một hàm hoặc hệ số của một biểu thức toán học Người ta gọi các chuỗi bit này là mã genome ứng với mỗi cá thể, các genome đều có cùng chiều dài Nói ngắn gọn, một lời giải sẽ được biểu diễn bằng một chuỗi bit, cũng giống như mỗi cá thể đều được quy định bằng gen của cá thể đó vậy Như vậy, đối với thuật giải di truyền, một cá thể chỉ có một gen duy nhất và một gen cũng chỉ phục vụ cho một cá thể duy nhất
Trang 2626
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Ban đầu, ta sẽ phát sinh một số lượng lớn, giới hạn các cá thể có gen ngẫu nhiên Nghĩa là phát sinh một tập hợp các chuỗi bit ngẫu nhiên Tập các cá thể này được gọi là quần thể ban đầu (initial population) Sau đó, dựa trên một hàm nào đó,
ta sẽ xác định được một giá trị gọi là độ thích nghi - Fitness Giá trị này, có thể hiểu chính là độ "tốt" của lời giải Vì phát sinh ngẫu nhiên nên độ "tốt" của lời giải hay tính thích nghi của các cá thể trong quần thể ban đầu là không xác định
Để cải thiện tính thích nghi của quần thể, người ta tìm cách tạo ra quần thể mới Có hai thao tác thực hiện trên thế hệ hiện tại để tạo ra một thế hệ khác với độ thích nghi tốt hơn Thao tác đầu tiên là sao chép nguyên mẫu một nhóm các cá thể tốt
từ thế hệ trước rồi đưa sang thế hệ sau (selection) Thao tác này đảm bảo độ thích nghi của thế hệ sau luôn được giữ ở một mức độ hợp lý Các cá thể được chọn thông thường là các cá thể có độ thích nghi cao nhất
Thao tác thứ hai là tạo các cá thể mới bằng cách thực hiện các thao tác sinh sản trên một số cá thể được chọn từ thế hệ trước – thông thường cũng là những cá thể
có độ thích nghi cao Có hai loại thao tác sinh sản : một là lai tạo (crossover), hai là đột biến (mutation) Trong thao tác lai tạo, từ gen của hai cá thể được chọn trong thế
hệ trước sẽ được phối hợp với nhau (theo một số quy tắc nào đó) để tạo thành hai gen mới
Thao tác chọn lọc và lai tạo giúp tạo ra thế hệ sau Tuy nhiên, nhiều khi do thế
hệ khởi tạo ban đầu có đặc tính chưa phong phú và chưa phù hợp nên các cá thể không rải đều được hết không gian của bài toán Từ đó, khó có thể tìm ra lời giải tối ưu cho bài toán Thao tác đột biến sẽ giúp giải quyết được vấn đề này Đó là sự biến đổi ngẫu nhiên một hoặc nhiều thành phần gen của một cá thể ở thế hệ trước tạo ra một cá thể hoàn toàn mới ở thế thệ sau Nhưng thao tác này chỉ được phép xảy ra với tần suất rất thấp (thường dưới 0.01), vì thao tác này có thể gây xáo trộn và làm mất đi những cá thể đã chọn lọc và lai tạo có tính thích nghi cao, dẫn đến thuật toán không còn hiệu quả
Thế hệ mới được tạo ra lại được xử lý như thế hệ trước (xác định độ thích nghi
và tạo thế hệ mới) cho đến khi có một cá thể đạt được giải pháp mong muốn hoặc đạt đến thời gian giới hạn
Tóm lại: Một thuật giải di truyền (hay một chương trình tiến hóa bất kỳ) giải
một bài toán cụ thể phải gồm năm thành phần sau đây:
- Cách biểu diễn nhiễm sắc thể cho lời giải bài toán
- Cách khởi tạo quần thể ban đầu
Trang 2727
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
- Hàm lượng giá đóng vai trò môi trường, đánh giá các lời giải theo mức độ thích nghi của chúng
- Các phép toán di truyền
- Các tham số khác(kích thước quần thể,Pc , Pm …)
- Lược đồ GA:
- Input: một bài toán tối ưu max f(x) trong không gian x € X
- Output: một nghiệm tốt của f, x0 € X f(x0) đạt lân cận max
Method
1 Khởi tạo một quần thể ban đầu với n cá thể
2 Lặp m buớc, mỗi bước phát sinh một quần thể mới theo quy trình sau
2.1 Lai ghép:
- Chọn ngẫu nhiên một cặp hai cá thể cha mẹ B và M theo xác xuất Pl
- Sinh hai cá thể mới C1 và C2 từ B và M
- Tính lại độ thích nghi của các cá thể
- Chọn các cá thể có độ thích nghi tốt đưa vào quá trình mới
3 Lấy nghiệm
End
Trang 28
28
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Hi ̀nh 2.1:Sơ đồ tổng quát của giải thuật di truyền
Quần thể đủ tốt
Kết thúc
Đ
S
Trang 2929
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
2.1.3 Cách biểu diễn bài toán trong giải thuật di truyền (hay chọn cách biểu diễn cấu trúc dữ liệu cho bài toán)
Để áp dụng giải một bài toán bằng giải thuật di truyền, thao tác quan trọng nhất – là phải biết chọn cấu trúc dữ liệu phù hợp Để giải bài toán trong giải thuật di truyền, ta thường chọn sử dụng một trong 3 loại cấu trúc dữ liệu sau: Chuỗi nhị phân, chuỗi số thực và cấu trúc cây Trong đó chuỗi nhị phân và chuỗi số thực thường được
sủ dụng nhiều hơn
2.1.3.1 Biểu diễn Gen bằng chuỗi nhị phân
Quy tắc biểu diễn gen qua chuỗi nhị phân: Chọn chuỗi nhị phân ngắn nhất nhưng đủ thể hiện được tất cả kiểu gen Để biểu diễn chuỗi nhị phân, ta thường dùng các cách sau: Mảng byte, mảng bit biểu diễn bằng mảng byte, mảng bit biểu diễn bằng mảng INTEGER Mảng byte và mảng bit bây giờ ít sử dụng Đối với máy tính ngày nay, người ta thường dùng mảng integer để tối ưu truy xuất Vì vậy ở đây em chỉ giới thiệu về mảng integer
VD: Nhiễm sắc thể x ta biểu diễn bằng 1 chuỗi 15 bit
X=(010100110010101)
Mảng integer nén để tối ưu truy xuất
Trong các máy tính ngày nay, thông thường thì đơn vị truy xuất hiệu quả nhất không còn là byte nữa mà là một bội số của byte Đơn vị truy xuất hiệu quả nhất được gọi là độ dài từ (word length) Hiện nay, các máy Pentium đều có độ dài từ là 4 byte
Do đó, nếu ta tổ chức chuỗi nhị phân dưới dạng byte sẽ làm chậm phần nào tốc độ truy xuất Để hiệu quả hơn nữa, ta sử dụng mảng kiểu INTEGER Lưu ý kiểu INTEGER có độ dài phụ thuộc vào độ dài từ của máy tính mà trình biên dịch có thể nhận biết được Chẳng hạn với các version PASCAL,C trên hệ điều hành DOS, kích thước của kiểu INTEGER là 2 byte Trong khi đó, với các version PASCAL, C trên Windows 9x như Delphi, Visual C++ thì độ dài của kiểu INTEGER là 4 byte Do đó,
để chương trình của chúng ta chạy tốt trên nhiều máy tính khác nhau, ta dùng hàm sizeof(<tên kiểu>) Hàm này sẽ trả ra độ dài của kiểu dữ liệu ta đưa vào
Biểu diễn số thực bằng chuỗi nhị phân
Tuy có nhiều chọn lựa nhưng thông thường, để biểu diễn một số thực x, người
ta chỉ dùng công thức đơn giản, tổng quát sau :
Giả sử ta muốn biểu diễn số thực x nằm trong khoảng [min, max] bằng một chuỗi nhị phân A dài L bit Lúc đó, ta sẽ chia miền [min, max] (lượng hóa) thành 2L-
1 vùng Trong đó, kích thước một vùng là :
Trang 3030
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
𝑔 = max − 𝑚𝑖𝑛
2𝐿 − 1Người ta gọi g là độ chính xác của số thực được biểu diễn bằng cách này (vì g quy định giá trị thập phân nhỏ nhất của số thực mà chuỗi nhị phân dài L bit có thể biểu diễn được) Giá trị của số thực x được biểu diễn qua chuỗi nhị phân sẽ được tính như sau:
VD: Bài toán tối ưu số
Tìm giá trị lớn nhất của hàm f(x) = x*sin(10*pi*x) + 1 với x € [-1,2]
Sử dụng vectơ bit làm nhiễm sắc thể để biểu diễn giá trị thực của biến x Chiều dài vectơ phụ thuộc vào độ chính xác cần có, trong thí dụ này, ta tính chính xác đến
6 số lẻ
Miền giá trị của x có chiều dài 2 - (-1) = 3; với yêu cầu về độ chính xác 6 số
lẻ như thế phải chia khoảng [-1, 2] thành ít nhất 3*106 khoảng có kích thước bằng nhau Điều này có nghĩa là cần có 22 bit cho vevtơ nhị phân (nhiễm sắc thể):
2097152 = 221 < 3 000000 < 222 = 4194304 Ánh xạ chuỗi nhị phân (b21b20…b0) từ cơ số 2 sang cơ số 10:
(<b21b20…b0>)2 = ( i
i i
3
22 với -1 là lân cận dưới của miền giá trị và 3 là chiều dài của miền
Thí dụ, nhiễm sắc thể (1000101110110101000111) biểu diễn số 0.637197 vì x’ = (1000101110110101000111)2 = 228896710 và x = -1.0 + 2288967* 3/4194303
= 0.637197
Trang 3131
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Ta cần cực đại hóa hàm sau đây:
f(x1, x2) = 21.5 + x1* sin(4*pi*x1) + x2 * sin(10*pi*x2) Với -3.0 ≤ x1 ≤ 12.1 và 4.1 ≤ x2 ≤ 5.8
Giả sử ta cần độ chính xác đến 4 số lẻ đối với mỗi biến Miền của biến x1 có chiều dài 12.1 – (-3) = 15.1; điều kiện chính xác đòi hỏi đoạn [-3, 12.1] cần được chia thành các khoảng có kích thước bằng nhau, ít nhất là 15.1 * 10000 khoảng Điều này
có nghĩa là cần 18 bit làm phần đầu tiên của nhiễm sắc thể:
18 bit đầu tiên mã hóa x1, và 15 bit còn lại (từ 19 ðến 33) mã hóa x2
) 0 3 ( 1 12
15 = -3.0 + 4.052426
15 bit kế tiếp 111110010100010, biểu diễn
x2 = 4.1 + decimal(1111100101000102)*
1 2
1 4 8 5
1 = 4.1 + 1.655330 = 5.755330
Như vậy, nhiễm sắc thể (010001001011010000111110010100010) Tương ứng với <x1, x2> = <1.052426, 5.755330>
Độ thich nghi của nhiễm sắc thể này là: f(1.052426, 5.755330) = 20.252640
2.1.3.2 Biểu diễn gen bằng chuỗi số thực
Đối với những vấn đề bài toán có nhiều tham số, việc biểu diễn gen bằng chuỗi
số nhị phân đôi lúc sẽ làm cho kiểu gen của cá thể trở nên quá phức tạp Dẫn đến việc thi hành các thao tác trên gen trở nên kém hiệu quả Khi đó, người ta sẽ chọn biểu diễn kiểu gen dưới dạng một chuỗi số thực Tuy nhiên, chọn biểu diễn kiểu gen bằng
chuỗi số thực, bạn cần lưu ý quy tắc sau: Quy tắc biểu diễn kiểu gen bằng chuỗi số
Trang 3232
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
thực: Biểu diễn kiểu gen bằng số thực phải đảm bảo tiết kiệm không gian đối với từng thành phần gen
Quy tắc này lưu ý chúng ta phải tiết kiệm về mặt không gian bộ nhớ đối với các từng thành phần gen Giả sử nghiệm của bài toán được cấu thành từ 3 thành phần, thành phần X thực có giá trị trong khoảng [1.0, 2.0], thành phần Y nguyên trong khoảng [0,15] và thành phần Z trong khoảng [5,8] Thì chúng ta rất không nên chọn biểu diễn kiểu gen bằng một chuỗi 3 thành phần số thực Vì như chúng ta đã biết, ít nhất mỗi số thực được phải được biểu diễn bằng 6 byte Chỉ với 3 số thực, ta đã tốn hết 18 byte Như vậy với trường hợp cụ thể này, ta nên chọn biểu diễn bằng chuỗi nhị phân, trong đó dùng khoảng 10(bit) cho thành phần X (độ chính xác khoảng 0.001),
4 bit cho thành phần Y và 2 bit cho thành phần Z Tổng cộng chỉ chiếm có 16 bit = 2 byte Chúng ta đã tiết kiệm được rất nhiều bộ nhớ!
2.1.3.3 Biểu diễn gen bằng cấu trúc cây
Một loại cây thường được sử dụng trong thuật giải di truyền là dạng cây hai nhánh (ở đây chúng tôi dùng chữ hai nhánh để phân biệt với loại cây nhị phân – thường dùng trong sắp xếp và tìm kiếm)
3.1.3.4 Nguyên lý về xác định tính thích nghi
“Tính tốt của một cá thể (lời giải) trong một quần thể chỉ là một cơ sở để xác định tính thích nghi của cá thể (lời giải) đó” Nguyên lý này ban đầu có vẻ hơi bất ngờ một khi chúng ta đã hiểu những ý tưởng chung của thuật giải di truyền Thật đơn giản, người leo lên ngọn đồi cao nhất trong thế hệ hiện tại vẫn có khả năng bị”kẹt” trong các thế hệ sau cũng như một lời giải chưa tốt ở thế hệ hiện tại vẫn còn khả năng tiềm tàng dẫn đến lời giải tối ưu Tuy vậy, thường thì lời giải tốt ở thế hệ hiện tại sẽ
có xác suất dẫn đến lời giải tối ưu cao hơn những lời giải xấu hơn Do đó, người ta vẫn xem độ tốt của lời giải là một yếu tố căn bản để xác định tính thích nghi của lời giải Thông thường, độ thích nghi của lời giải cũng chính là xác suất để cá thể đó được chọn lọc hoặc lai ghép khi tiến hành sinh ra thế hệ kế tiếp Ta sẽ lần lượt tìm hiểu 3 phương pháp để xác định tính thích nghi của một cá thể
3.1.3.5 Độ thích nghi tiêu chuẩn
Hàm mục tiêu là hàm dùng để đánh giá độ tốt của một lời giải hoặc cá thể Hàm mục tiêu nhận vào một tham số là gen của một cá thể và trả ra một số thực Tùy theo giá trị của số thực này mà ta biết độ tốt của cá thể đó (chẳng hạn với bài toán tìm cực đại thì giá trị trả ra càng lớn thì cá thể càng tốt, và ngược lại, với bài toán tìm cực tiểu thì giá trị trả ra càng nhỏ thì cá thể càng tốt)
Trang 3333
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Giả sử trong một thế hệ có N cá thể, cá thể thứ i được ký hiệu là ai Hàm mục tiêu là hàm G Vậy độ thích nghi của một cá thể ai tính theo độ thích nghi tiêu chuẩn
là
( )( )
Theo công thức trên, tổng tất cả G của 6 phần tử là : 17.5
Như vậy, độ thích nghi của phần tử a1: F(a1) = 5.3 / 17.5 » 0.303
Độ thích nghi của phần tử a2: F(a2) = 2.1 / 17.5 = 0.12
Ta có bảng kết quả cuối cùng như sau :
Nhận xét: độ thích nghi luôn có giá trị biến thiên trong khoảng [0,1] Hơn
nữa, vì độ thích nghi sẽ ứng với khả năng được chọn lọc trong việc sinh ra thế hệ sau nên người ta thường chọn cách tính sao cho độ thích nghi cuối cùng là một xác suất, nghĩa là tổng độ thích nghi của các cá thể phải nhỏ hơn hoặc bằng 1
2.1.3.6 Độ thích nghi xếp hạng (rank method)
Cách tính độ thích nghi tiêu chuẩn như trên chỉ thực sự hiệu quả đối với những quần thể có độ tốt tương đối đồng đều giữa các cá thể Nếu, vì một lý do nào đó – có thể do chọn hàm mục tiêu không tốt - có một cá thể có độ tốt quá cao, tách biệt hẳn các cá thể còn lại thì các cá thể của thế hệ sau sẽ bị “hút” về phía cá thể đặc biệt đó
Do đó, sẽ làm giảm khả năng di truyền đến thế sau của các cá thể xấu, tạo nên hiện
Trang 3434
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
tượng di truyền cục bộ, từ đó có thể làm giảm khả năng dẫn đến lời giải tốt nhất (vì
cá thể đặc biệt đó chưa chắc đã dẫn đến lời giải tốt nhất)
Phương pháp xác định độ thích nghi xếp hạng sẽ loại bỏ hiện tượng di truyền cục bộ này Phương pháp này không làm việc trên giá trị độ lớn của hàm mục tiêu G
mà chỉ làm việc dựa trên thứ tự của các cá thể trên quần thể sau khi đã sắp xếp các cá thể theo giá trị hàm mục tiêu G Chính vì vậy mà ta gọi là độ thích nghi xếp hạng Phương pháp này sẽ cho ta linh động đặt một trọng số để xác định sự tập trung của
độ thích nghi lên các cá thể có độ tốt cao, mà vẫn luôn đảm bảo được quy luật: cá thể
có độ thích nghi càng cao thì xác suất được tồn tại và di truyền càng cao
Một cách ngắn gọn, ta có độ thích nghi (hay xác suất được chọn) của cá thể thứ i được tính theo công thức sau:
F(i) = p*(1-p)i-1với p là một hằng số trong khoảng [0,1]
Công thức trên được xây dựng dựa trên quy tắc được trình bày ngay sau đây
và chúng ta sẽ xem phần giải thích quy tắc này như một tư liệu tham khảo
3) Mỗi lượt chọn chỉ chọn một cá thể Trong một lượt chọn, lần lượt xét các
cá thể theo thứ tự đã sắp Nếu xét đến cá thể thứ i mà cá thể đó được chọn thì lượt chọn kết thúc, ta thực hiện lượt chọn kế tiếp Ngược lại, nếu cá thể thứ i không được chọn, ta xét đến cá thể thứ i+1 Ta quy ước rằng, khi đã xét đến một cá thể, thì xác suất để chọn cá thể đó (trong thao tác chọn lọc hoặc lai tạo) luôn là p Rất hiển nhiên, khi đã xét đến một cá thể thì xác suất (XS) để KHÔNG chọn cá thể đó sẽ là 1-p
Ta ký hiệu a[i] là cá thể thứ i Từ quy tắc trên, suy ra để a[i] được xét đến thì: + a[i-1] đã phải được xét đến
+ nhưng a[i-1] phải KHÔNG được chọn
Do đó, XS a[i] được xét đến (chứ không phải XS để được chọn!)
= XS a[i-1] được xét * XS a[i-1] KHÔNG được chọn
= XS a[i-1] được xét * (1-p)
Trong đó, XS a[1] được xét =1 vì cá thể đầu tiên luôn được xét đến
Trang 3535
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Bây giờ ta sẽ xây dựng công thức tổng quát để tính XS a[i] được xét đến dựa theo p
XS a[1] được xét = 1 = (1-p)0
XS a[2] được xét = XS a[1] được xét * (1-p) = 1*(1-p) = (1-p)1
XS a[3] được xét = XS a[2] được xét * (1-p) = (1-p)1 * (1-p) = (1-p)2
XS a[4] được xét = XS a[3] được xét * (1-p) = (1-p)2 * (1-p) = (1-p)3
Nói tóm lại:
XS a[i] được xét = XS a[i-1] được xét * (1-p) = (1-p)i-2 * (1-p) = (1-p)i-1
Như vậy XS a[i] được chọn = XS a[i] được xét * p = (1-p)i-1*p
Để thấy được tính linh động của phương pháp này, bạn hãy quan sát giá trị thích nghi ứng với mỗi giá trị p khác nhau trong bảng sau:
Giá trị p càng nhỏ thì độ giảm của tính thích nghi càng nhỏ Dựa vào đặc tính này, ta có thể dễ dàng kiểm soát được tính “hút” của các cá thể tốt trong quần thể bằng cách tăng hoặc giảm trị p tương ứng
2.1.4 Mã hóa (encoding)
2.1.4.1 Giới thiệu (Introduction)
Mã hóa nhiễm sắc thể là bước đầu tiên để giẩi quyết vấn đề bằng giải thuật di truyền Mã hóa là vấn đề quan trọng nhất
2.1.4.2 Mã hóa bằng số nhị phân (Binary Encoding)
Mã hóa bằng số nhị phân là phương pháp chính Bởi vì là phương pháp đầu tiên GA dung để mã hóa và nó đơn giản
Mỗi nhiễm sắc thể được biểu diễn bằng chuỗi bit 0 hoặc 1
Nhiễm sắc thể A 101100101100101011100101 Nhiễm sắc thể B 111111100000110000011111
Ví dụ mã hóa nhiễm sắc thể bằng chuỗi nhị phân
Trang 3636
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Mã hóa số thực biểu diễn cho nhiễm sắc thể với số lượng gen nhỏ Còn với lượng gen lớn, phương pháp này thường không giải quyết được nhiều vấn đề tự nhiên
và các phép sửa chữa sau lai ghép và đột biến
2.1.4.3 Mã hóa vị trí (Permutation Encoding)
Những vấn đề dựa trên thứ tự có thể dùng mã hóa vị trí, ví dụ như bài toán người du lịch hoặc thao tác thứ tự vấn đề
Trong mã hóa vị trí mỗi nhiễm sắc thể được biểu diễn bằng chuỗi số nguyên theo một vị trí trình tự nhất định
Nhiễm sắc thể A 1 5 3 2 6 4 7 9 8 Nhiễm sắc thể B 8 5 6 7 2 3 1 4 9
Ví dụ mã hóa nhiễm sắc thể theo vị trí
Mã hóa vị trí có thể được dùng trong nhiều vấn đề có tính trình tự Một vài phép lai ghép và đột biến đòi hỏi sự nhất quán, cho một vài vấn đề
2.1.4.4 Mã hóa theo giá trị (Value Encoding)
Mã hóa theo giá trị có thể dùng trong nhiều vấn đề, ở một vài giá trị phức tạp(ví dụ: giá trị thực) Dùng mã hóa nhị phân để giải quyết vấn đề này rất khó
Trong mã hóa theo giá trị, mỗi nhiễm sắc thể được biểu diễn theo trình tự dựa trên giá trị Phương pháp này dùng giải quyết nhiều vấn đề, ví dụ: Số thực, ký tự hoặc đối tượng không xác định
Nhiễm sắc thể A 1.2324 5.3243 0.4556 2.3293 2.4545
Nhiễm sắc thể B ABDJEIFJDHDIERJFDLDFLFEGT
Nhiễm sắc thể C (back), (back), (right), (forward), (left)
Ví dụ mã hóa nhiễm sắc thể theo giá trị
Mã hóa theo giá trị giải quyết tốt cho nhiều vấn đề đặc biệt Tuy nhiên phương pháp này thường cần để phát triển một vài vấn đề lai ghép mới và đột biến cụ thể
2.1.4.5 Cây mã hóa (Tree Encoding)
Cây mã hóa dùng trong chương trình tiến hóa hoặc biểu thức cho lập trình tiến hóa Trong cây mã hóa mỗi nhiễm sắc thể là một cây , ví dụ hàm và lệnh trong ngôn ngữ lập trình
Trang 372.1.5 Các phương pháp chọn(Selection)
Chọn lọc cá thể thông qua kết quả, hay mục đích của vấn đề dựa trên mức độ thích nghi của cá thể Vì vậy, đánh giá độ thích nghi của cá thể để tìm ra cá thể tốt nhất Thông thường, đặt mỗi vấn đề nhỏ tương ứng với một giá trị điểm thích nghi , kết quả đánh giá gồm tổng các số điểm đó Cá thể tốt nhất sẽ có điểm thấp nhất hoặc lớn nhất
Theo thuyết Darwin, cá thể tốt nhất sẽ tồn tại và tạo ra các cá thể con mới Có nhiều phương pháp để chọn các nhiễm sắc thể tốt nhất Sau đây là vài phương pháp trong số đó
2.1.6 Chọn lọc Roulette (Roulette Wheel Selection)
Các cá thể được chọn theo độ thích nghi của chúng Nhiễm sắc thể tốt hơn có
cơ hội cao hơn để tham dự vào thế hệ tiếp theo
Thuật giải chọn lọc roulette (Davis, [1991,8]) như sau:
Tính tổng độ thích nghi của mọi thành viên trong quần thể; gọi kết quả là độ thích nghi tổng cộng (total fitness)
Phát sinh n, một số ngẫu nhiên giữa 0 và độ thích nghi tổng cộng (total fitness) Trở về thành viên đầu tiên của quần thể có độ thích nghi lớn hơn hay bằng n,
bổ sung vào độ thích nghi của các thành viên đứng trước trong quần thể
Trang 382.1.6.2 Chọn lọc cạnh tranh( Tournament Selection)
* Chọn lọc cạnh tranh 2 (2- Tournament Selection)
Hai nhiễm sắc thể khác nhau được chọn ngẫu nhiên và được so sánh với nhiễm sắc thể tồn tại Nếu nhiễm sắc thể I1 không tốt hơn nhiễm sắc thể I2 nghĩa là: f(I1)≤ f(I2), thì nhiễm sắc thể I1 chết đi và bị loại ra khỏi quần thể(liên kết được phá vỡ 1 cách tùy ý) Quá trình này lặp lại đến hết N nhiễm sắc thể còn lại
* Chọn lọc cạnh tranh 3 (3- Tournament Selection)
Ba nhiễm sắc thể khác nhau được chọn ngẫu nhiên và được so sánh với nhiễm sắc thể tồn tại Nếu chúng ta có: f(I1) ≤ f(I2) và f(I1) ≤ f(I3), thì nhiễm sắc thể I1 chết
đi và bị loại ra khỏi quần thể (liên kết được phá vỡ 1 cách tùy ý) Quá trình này lặp lại đến hết N nhiễm sắc thể còn lại
2.1.6.3 Các phương pháp lai tạo (crossover) và đột biến (mutation)
Lai ghép và đột biến là hai phép cơ bản được thực hiện trong giải thuật di truyền trên nhiều vấn đề Kiểu và thực thi của phép thực hiện trên mã hóa và ngoài
ra trên vấn đề Có nhiều phuơng pháp lai ghép và đột biến Ở đây chúng ta chỉ miêu
Trang 3939
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
11001011 + 11011111 = 11011111 Lai ghép đồng dạng(Uniform crossover) – Những bit được copy ngẫu nhiên
từ nhiễm sắc thể cha thứ nhất sang nhiễm sắc thể cha thứ hai và ngược lại
11001011 + 11011101 = 11011111 Lai ghép số học (Arithmetic crossover) – Một vài phép tính số học được thực hiện khi lai ghép để tạo ra nhiễm sắc thể con (AND,OR,NOT…)
2.1.6.5 Permutation Encoding (Mã hóa vị trí)
Crossover
Single point crossover (Lai ghép một vị trí) – Chọn một vị trí lai ghép, sau đó sao ghép hai nhiễm sắc thể cha mẹ ở vị trí đã chọn, ta hãy tự điều chỉnh cho phù hợp Chú ý: ở đây có nhiều đường tạo ra nhiễm sắc thể con sau phép lai ghép này
(1 2 3 4 5 6 7 8 9) + (4 5 3 6 8 9 7 2 1) = (1 2 3 4 5 6 8 9 7)
Mutation
Thay đổi thứ tự (Order changing )- Chọn hai vị trí sau đó đổi vị trí cho nhau
(1 2 3 4 5 6 8 9 7) => (1 8 3 4 5 6 2 9 7)
Trang 4040
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
2.1.6.6 Value Encoding (mã hóa theo giá trị)
Thay đổi toán tử, số (Changing operator, number )- chọn note sau đó thay đổi
nó Một số toán tử lai ghép trong GA mã hóa số thực Xét bài toán tối ưu max f(x1,x2,…,xn) trên miền D thuộc không gian Rm
Trong bài toán dạng này, một cách tự nhiên thường sử dụng GA mã hóa số thực, mỗi cá thể được biểu thị bởi một vectơ Rn (tất nhiên phải thuộc miền xác định D) Mỗi quần thể kích cỡ m (có m cá thể) có thể biểu diễn như một ma trận thực cấp m×n Với GA mã hóa số thực, có nhiều dạng toán tử lai ghép khác nhau Sau đây là một số phương pháp lai ghép thường dùng