báo cáo phân cụm cộng đồng bằng giải thuật di truyền

29 110 0
báo cáo phân cụm cộng đồng bằng giải thuật di truyền

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG ──────── * ─────── BÁO CÁO MƠN TRÍ TUỆ NHÂN TẠO ĐỀ TÀI: PHÂN CỤM CỘNG ĐỒNG BẰNG GIẢI THUẬT DI TRUYỀN Sinh viên thực : Phạm Trần Tuấn -20112449 Nguyễn Minh Vương Nguyễn Văn Luân Nhóm -2011 -20111825 : áp chót Giáo viên hướng dẫn : GS.TSKH Nguyễn Nhật Quang Nội dung Chương I : Cơ sở lý thuyết 1.Lý thuyết đồ thị 2.Bài toán Phân cụm Cộng đồng 3.Thuật giải Di truyền 4.Áp dụng thuật giải di truyền Chương II : Thiết kế chi tiết Cài đặt thuật toán 1.Xây dựng ý tưởng thiết kế 2.Lập trình chương trình phát Cụm cộng đồng Chương III: Kết luận 1.Kiểm thử Hướng phát triển TÀI LIỆU THAM KHẢO PHỤ LỤC Danh mục Hình ảnh Figure Một ví dụ đơn giản đồ thị có cụm cộng đồng Nguồn : [5] Figure Mô tả cách biểu diễn lời giải Nguồn : [9] Figure Một tả phương án Giao phối Nguồn : [9] Figure File mô tả đồ thị mạng cá heo Nguồn : Cá nhân Figure Một kết đưa Nguồn : Cá nhân Figure Demo chương trình console Nguồn : Cá nhân Figure 8:Minh họa hình vẽ kết hệ thống đồ thị tiêu chuẩn Karate Zachary Nguồn : Internet Figure 9: Kết kiểm thử hệ thống dựa đồt thị tiêu chuẩn cá Heo Nguồn : Cá nhân Figure 10 : Minh họa kết kiểm thử dựa mạng lưới cá Heo Nguồn : Internet LỜI NÓI ĐẦU Trí tuệ nhân tạo hay trí thơng minh nhân tạo (hay machine intelligence, thường viết tắt AI) trí tuệ biểu diễn hệ thống nhân tạo Thuật ngữ thường dùng để nói đến máy tính có mục đích khơng định ngành khoa học nghiên cứu lý thuyết ứng dụng trí tuệ nhân tạo Ngành khoa học trí tuệ nhân tạo ngành trọng yếu tin học Bởi vậy, trí thơng minh nhân tạo trở thành mơn học, với mục đích cung cấp lời giải cho vấn đề sống thực tế Trường Đại học Bách Khoa Hà Nội tạo điều kiện cho chúng em tiếp thu môn học Để nắm khái niệm, vấn đề liên quan đến trí tuệ nhân tạo hiểu rõ ứng dụng thực tế trí tuệ nhân tạo, chúng em thực đồ án với đề tài: “Áp dụng Giải thuật di truyền vào toán phân cụm cộng đồng” Chúng em xin gửi lời cảm ơn chân thành đến thầy Nguyễn Nhật Quang tận tình giúp đỡ chúng em hồn thành đồ án Nhóm sinh viên Phạm Trần Tuấn Nguyễn Minh Vương Nguyễn Văn Luân CHƯƠNG I CƠ SỞ LÝ THUYẾT Lý thuyết đồ thị (Graph Theory) Lý thuyết đồ thị khởi nguồn từ giải đáp Euler cho câu đố cầu Konigsberg.Từ xuất nhiều nghiên cứu Đồ thị (Graph) đặc tính tốn học nó.Trong kỷ 21,Đồ thị coi cách mô tả cho nhiều loại mạng,hệ thống (system) nhiều ngành khác nhau.Những mạng lưới Sinh học,Xã Hội,Công nghệ Thơng tin coi Đồ thị ,và việc phân tích chúng-tương đương với việc phân tích Đồ thị-đã trở thành cơng việc quan trọng nhằm hiểu rõ đặc tính hệ thống,mạng.Cũng thời gian gần với sức mạnh tính tốn kỷ nguyên máy tính,và nhu cầu cần thiết để xử lý với hệ thống,mạng lớn, tiếp cận với Đồ thị cách hồn tồn khác biệt với truyền thống,thơng qua máy tính - sức mạnh máy tính tham gia việc nghiên cứu,phát đặc tính Đồ thị mô tả hệ thống,mạng thực tế Một mạng (Network) có để biểu diễn dạng tốn học đồ thị bao gồm tập đỉnh (vertex) ,được ký hiệu (mỗi đỉnh thể đối tượng mạng mà ta xử lý với nó) tập cạnh (edge) ký hiệu ,mỗi cạnh có hai mút hai đỉnh ,cạnh biểu thị mối quan hệ một-một hai đối tượng mạng Bậc (degree) đỉnh số cạnh mà chứa đỉnh đó,nếu ký hiệu ) tạo nên dãy bậc đồ thị G bậc ,thì Một khái niệm khác để mơ tả rõ bậc đồ thị G phân phối bậc đồ thị : lấy số đỉnh có bậc Có thể thay dãy bậc đồ thị phân phối bậc , đồ thị mà có phân phối bậc đồ thị cho có tính quy (regular) Đồ thị biểu diễn Hệ thống thực tế (Real system) khơng quy (un regular-like).Chúng đối tượng bao hàm không phân cấp (disorder) phân cấp (order) Một mô thức đồ thị không phân cấp đồ thị ngẫu nhiên (random graph)– đề xướng P.Erdos A.Renyi Với đồ thị ngẫu nhiên Erdos Renyi có xác suất xuất cạnh cặp đỉnh nhau,vì hầu hết đỉnh có bậc tương tự nhau.Nó mang tính đồng (homogeneous),vì nên đồ thị ngẫu nhiên khơng thể mang tính chất giống đồ thị biểu diễn hệ thống,mạng thực tế Các mạng thực tế (real networks) mang tính chất khơng đồng ,có đặc tính thể tính thứ tự,tổ chức hệ thống thực.Các bậc đỉnh thường phân bố theo luật phân phối mũ: nhờ mà có nhiều đỉnh có bậc thấp với số đỉnh mang bậc cao,và mật độ cạnh phân phối tập trung nhóm điểm,và tản mát nhóm với nhau.Vì mạng thực mang tính chất gọi có Cấu trúc cộng đồng (community structure) hay Phân cụm (Clustering).Các Cộng đồng (communities) hay gọi Clusters Module ,là nhóm đỉnh mà chúng có thuộc tính giống (hoặc) có vai trò giống graph Chúng em xin nói qua khái niệm Đồ thị ngẫu nhiên,vì phần Định nghĩa cụm cộng đồng,khái niệm có tham chiếu tới Theo thuật ngữ Xác suất Đồ thị ngẫu nhiên biến ngẫu nhiên (random variable) định nghĩa với không gian xác suất (probability space) với hàm phân phối xác suất (probability distribution).Chúng ta thường gán cho đồ thị ngẫu nhiên vài tính chất đồ thị nhằm xác định khơng gian xác suất,nói cách khác xác suất nhận ngẫu nhiên đồ thị có tính chất Các Đồ thị ngẫu nhiên mơ tả tiến trình ngẫu nhiên sinh chúng,hoặc phân phối xác suất.Một đồ thị ngẫu nhiên với tính chất cho trước n điểm,sẽ xây dựng cách bắt đầu với n điểm độc lập,đặt cạnh chúng cách ngẫu nhiên.Các kiểu đồ thị ngẫu nhiên khác có hàm phân bố xác suất khác Giá trị kỳ vọng Đồ thị ngẫu nhiên gán cho bậc đỉnh,mật độ (density) cạnh tập đỉnh … giá trị bậc đỉnh mật độ mà có khả xuất với xác suất lớn nhất.Đồ thị ngẫu nhiên khơng xây dựng để có tính chất đặc biệt (1) đó,thế nên sử dụng để tạo dựng khái niệm đồ thị Kiểu (null model) kiểu Đồ thị ngẫu nhiên,nhưng chứa số đặc tính cấu trúc Đồ thị cho trước,để kiểm tra xem Đồ thị cho trước có tính chất đặc biệt (1) hay khơng Vì giới hạn kiến thức,chúng em xin trình bày cách sơ qua Đồ thị ngẫu nhiên,vì lĩnh vực liên quan đến lý thuyết đồ thị lý thuyết xác suất ,chúng em chưa kịp hiểu chất nó.Kiến thức Đồ thị ngẫu nhiên,và kiểu Đồ thị ngẫu nhiên tham khảo báo [14],[15],[16] Cuối cùng,một khái niệm chúng em muốn đề cập đến báo cáo “nhánh” (stub),mỗi đỉnh gồm bậc,tức có nhánh (stub) – hay gọi nửa cạnh (half edge) ,để hai đỉnh kết nối với qua cạnh đỉnh phải chia sẻ nhánh để bắt tay nhau,lúc cạnh hai đỉnh tạo ra.Khái niệm liên quan đến việc xây dựng Kiểu đề xuất Newman Girvan Bài toán phân cụm cộng đồng đồ thị Đồ thị cấu trúc sử dụng rộng rãi để miêu tả hệ thống thực tế, mạng lưới giao thông, hay mối quan hệ người tổ chức xã hội Lí thuyết đồ thị phát triển chiếm phần quan trọng phát triển ngành toán học khoa học máy tính Một vấn đề thú vị đồ thị toán phân chia đồ thị thành cụm cộng đồng dựa kết nối phần tử đồ thị Bài tốn có ý nghĩa thực tế: việc xác định tập điểm (nút, đỉnh) có liên kết chặt chẽ đồ thị tương đương với việc tìm nhóm người có mối quan hệ chặt chẽ với xã hội, cụm máy tính có liên kết chặt chẽ với Internet,từ có lợi việc phân tích liệu nhằm phục vụ cho mục tiêu tối ưu hóa dịch vụ hệ thống phục vụ lượng lớn khách hàng Trước tiên để hiểu toán ta cần đưa số định nghĩa,quan điểm cụm cộng đồng (nhóm đỉnh ta coi cộng đồng) Cách chia mạng thành cụm cộng đồng cho tốt ? 2.1 Định nghĩa Cụm cộng đồng (Community) Vấn đề tốn phân cụm cộng đồng cần tìm định nghĩa định lượng cụm cộng đồng Thật khơng có định nghĩa chung tất chấp nhận,định nghĩa cụm cộng đồng thường tùy thuộc vào kiểu hệ thống mạng / theo nhu cầu người sở hữu hệ thống mạng đó.Trong 1.1 quan niệm cách cảm quan cụm cộng đồng cần có nhiều cạnh bên cạnh kết nối với phần lại đồ thị (biểu diễn hệ thống mạng).Đó quan niệm cho tất định nghĩa khác cộng đồng,và có nhiều cộng thức định nghĩa khác phù hợp với quan niệm trên.Bài toán chúng em chưa quan tâm đến hệ thống phức tạp,chúng em xem xét cụm cộng đồng theo quan niệm trên.Và mơ hình tốn học quan niệm Cho đồ thị (subgraph) phần đồ thị ,với | | = | | = đỉnh tương ứng.Ta định nghĩa bậc (internal degree) bậc (external degree) đỉnh , ,là số cạnh kết nối với đỉnh khác bên phần lại đồ thị bên Nếu tức đỉnh kết nối với định nằm bên ,tức là cụm cộng đồng tốt dành cho ,nếu tức khơng nối với ,thì lúc cách tốt cho nên chuyển sang cụm cộng đồng khác phù hợp hơn.Bậc tổng bậc đỉnh thuộc ,và bậc tổng bậc đỉnh thuộc Tổng bậc (total degree) tổng tất bậc định thuộc , Ta định nghĩa độ đậm đặc (intra-cluster density) đồ thị tất số cạnh có bên đồ thị : Tương tự,ta định nghĩa độ phân tán (inter-cluster density) với tất số cạnh bên : tỷ số số cạnh bên tỷ số số cạnh bên Để cụm cộng đồng ,ta mong muốn lớn mật độ trung bình cạnh (average link density) - mật độ trung bình cạnh định nghĩa tổng số cạnh tổng số cạnh - hay nói cách khác cần phải cần nhỏ nhiều so với Tìm kiếm cân đối (tradeoff) tốt mục tiêu chung hầu hết thuật toán phân cụm đồ thị (clustering algorithm) Figure Một ví dụ đơn giản đồ thị có cụm cộng đồng Một đặc tính quan trọng khác cần có cụm cộng đồng tính liên thơng (connectness),tức hai đỉnh có đường kết nối hai đỉnh Tất định nghĩa cụm cộng đồng yêu cầu cụm cộng đồng cần có yêu cầu trên.Có ba lớp định nghĩa cụm cộng đồng cục (local),tổng thể (global) dựa tương tự đỉnh (based on vertex similarity).lớp định nghĩa cục coi cụm cộng đồng đối tượng có tính tự trị (autonomy) ,vì ước lượng cách độc lập với đồ thị.Lớp định nghĩa tổng thể coi cụm cộng đồng phần tồn cộng đồng,và khơng thể bỏ qua ảnh hưởng đến cộng đồng,vì định nghĩa cộng đồng có nghĩa xem xét tổng thể đồ thị.Lớp định nghĩa dựa tương tự đỉnh coi cộng đồng tập hợp đỉnh có chung tính chất Chúng em xem xét lớp định nghĩa tổng thể ,vì có liên quan tới việc xây dựng hàm fitness mà chúng em sử dụng Như bàn trên,trong việc định nghĩa cụm cộng đồng theo lớp tổng thể,người ta coi cụm cộng đồng phần tồn đồ thị,khơng thể coi riêng biệt mà khơng xét đến ảnh hưởng đến chức hệ thống.Giới học thuật đưa nhiều tiêu chuẩn để đánh giá nhận dạng cụm cộng đồng.Tuy nhiên hầu hết,các trường hợp định nghĩa gián tiếp (indirect) Mặc dù có lớp định nghĩa trực tiếp,chính xác,dựa ý tưởng : đồ thị có cấu trúc cộng đồng khác với Đồ thị ngẫu nhiên.Một đồ thị ngẫu nhiên tiêu biểu đơn giản đề xuất Erdos Renyi,đó đồ thị khơng mong đợi có cấu trúc cộng đồng đó,vì cặp đỉnh có xác suất kết nối giống nhau,tức khơng có ưu tiên dành kết nối để tạo dựng cụm cộng đồng Từ ta định nghĩa kiểu (null model) – tức đồ thị dùng để lấy làm ngưỡng tính chất Cấu trúc cộng đồng – tương tự định nghĩa số 0,lấy làm đánh giá cho độ lớn số nguyên dương đồ thị có vài đặc trưng cấu trúc giống đồ thị xét (original) khác chỗ đồ thị ngẫu nhiên Một đồ thị kiểu thông dụng đề xuất Newman Girvan,nó kiểu ngẫu nhiên (randomized version) đồ thị xét,ở cạnh nối cách ngẫu nhiên,nhưng bậc kỳ vọng (expected degree) đỉnh giống bậc đỉnh đồ thị xét.[16] Kiểu khái niệm đứng sau định nghĩa hàm mô-đun (modularity) ,là hàm để ước lượng độ tốt cách phân cụm cho đồ thị,hàm mô-đun phù hợp để định nghĩa cách tổng thể cụm cộng đồng Tiếp theo tiếp đến câu hỏi cách phân cụm tốt 2.2 Thế cách phân cụm tốt ? Cách phân cụm (partiotion) cách chia đồ thị thành nhiều cụm (clusters) ,mỗi đỉnh lại thuộc cụm.Với đồ thị biểu diễn mạng,hệ thống thực tế,mỗi đỉnh hay nhiều cụm khác Một cách phân cụm theo thứ tự phân cấp (hierarchically ordered) ,khi graph có cấu trúc với bậc,cấp khác nhau.Trong trường hợp này,các cụm xếp theo cấp bậc,mỗi cụm cấp cao có cấu trúc cộng đồng riêng,với cụm cộng đồng nhỏ bên trong,các cụm cộng đồng nhỏ có cụm cộng đồng nhỏ tạo cấu trúc cộng đồng cho riêng Một thuật giải (algorithm) phân cụm tốt giả thiết phải biết tìm cách phân cụm tốt.Nhưng coi tốt ? Nhằm phân biệt đâu “tốt” đâu “xấu”,ta đưa số đặc tính đơn giản,cảm quan dễ dàng chấp nhận Có nhiều thuật giải có khả phát tập cách phân cụm sử dụng,như kỹ thuật dựa phân cụm phân tầng (hierarchical clustering),đưa tập lớn cách phân cụm.Nhưng điều khơng có nghĩa cách phân cụm tốt nhau,vì cần kíp cần đưa tiêu chuẩn mang tính định lượng (critertion quantitative) nhằm ước lượng độ tốt cách phân cụm Hàm chất lượng (quality function) đời điều kiện đó,nó hàm sử dụng để gắn giá trị cho cách phân cụm đồ thị Từ ta dựa điểm (score) đưa hàm chất lượng nhằm xếp hạng cách phân cụm Một cách phân cụm có điểm cao cho tốt,vậy cách phân cụm có điểm cao coi tốt Cuối nên nhớ câu hỏi cách phân cụm tốt cách phân cụm vấn đề có nhiều giải đáp (ill-posed problem),nó tùy thuộc vào hình mẫu (concept) đồ thị hàm chất lượng sử dụng Một hàm chất lượng (elementary function) cho có tính cộng (additive) tồn hàm nhân tố ,mà với cách phân cụm đồ thị viết sau: ∑ Với cụm cách phân cụm yêu cầu bắt buộc .Hầu hết hàm chất lượng có tính cộng,mặc dù Một ví dụ hàm chất lượng hàm hiệu suất P (performance P),hàm tính số lượng cặp đỉnh “thơng dịch” (interpreted) xác,ví dụ hai đỉnh cụm cộng đồng có cạnh nối giữa,hoặc hai đỉnh khác cộng đồng khơng có cạnh nối coi “thơng dịch” xác |{ }| |{ }| Một ví dụ khác hàm bao phủ (coverage) tỷ số số cạnh kết nối bên (intra-community edges) tổng cạnh đồ thị Hàm chất lượng thường sử dụng hàm mơ-đun Newman Girvan (Newman and Girvan,2004) Nó dựa ý tưởng đồ thị ngẫu nhiên khơng kỳ vọng có cấu trúc cộng đồng ,vậy xuất cụm cộng đồng phát cách so sánh mật độ cạnh đồ thị đồ thị xét với mật độ cạnh kỳ vọng mà đồ thị có đỉnh gắn ngẫu nhiên mà không quan tâm đến cấu trúc cộng đồng đồ thị.Giá trị kỳ vọng mật độ phụ thuộc vào cách chọn kiểu ,nói kỹ chọn phiên chép đồ thị gốc có số đặc tính cấu trúc khơng có cấu trúc cộng đồng.Hàm Mơ-đun tổng qt cho kiểu Newman Girvan xây dựng dạng sau ∑ CHƯƠNG II THIẾT KẾT CHI TIẾT THUẬT TOÁN VÀ CÀI ĐẶT THUẬT TOÁN 1.Xây dựng ý tưởng thiết kế 1.1 Biểu diễn toán Mỗi lời giải (một cách phân cụm cộng đồng) tốn phân cụm cộng đồng đồ thị biểu diễn cách chia toàn đồ thị thành phân vùng (cluster) Mỗi nút đồ thị gán vào phân vùng phù hợp Để biểu diễn lời giải toán, nhiễm sắc thể sử dụng: phần tử nhiễm sắc thể biểu thị cho đỉnh, chứa thông tin phân vùng mà nút thuộc Để thiết kế cách biểu diễn nhiễm sắc thể dành cho cách phân cụm,thì chúng em xác định yêu cầu cách phân cụm tốt mã hóa sẵn lời giải,với cách mã hóa khơng gian tìm kiếm giảm tải,tránh phải quan tâm đến lời giải chắn khơng chấp nhận được.Trong cách mã hóa mà bọn em tìm ra,duy cách mã hóa có khả này,các cách phân cụm mã hóa cách mã hóa có cụm cộng đồng thỏa mãn tính liên thơng (connectness) – tính chất tập đỉnh để coi cụm cộng đồng Trong cách mã hóa này,mỗi nhiễm sắc thể gồm có N gen gen gán cho } Các gen a-len cách biểu diễn tượng trưng cho đỉnh giá trị a-len dãy { đồ thị Nếu gen j gán giá trị i tức đỉnh i đỉnh j phải có liên kết chúng,và cụm cộng đồng cách phân cụm mà nhiễm sắc thể mô tả.Trong thao tác giảicụm cộng đồng bắt đầu có đỉnh gia nhập đỉnh thành viên,nếu đỉnh chung cụm cộng đồng với đỉnh có cụm cộng đồng ,thao tác giải mã đảm bảo cụm cộng đồng ngun tính liên thơng qua trình phát triển,vì cụm cộng đồng cũ có tính liên thơng sau gia nhập đỉnh liên thơng đỉnh chắn có kết nối với đỉnh thành viên cụm cộng đồng từ trước Figure Mô tả cách biểu diễn lời giải 1.2 Hàm đánh giá dùng để tính giá trị thích nghi cá thể Như đề cập phần Cơ sở Lý thuyết,hàm mô-đun NewMan Girvan hàm dùng để đánh giá chất lượng Cách phân cụm,vì thích hợp để lấy làm hàm đánh giá để sử dụng cho hệ thống 1.3 Các thao tác nhằm tạo sinh hệ cho quần thể Chiến lược tạo dựng hệ cho quần thể chúng em sau: Có tập cộng đồng G chứa tất cá thể sinh lần tạo dựng.Ghép tất cá thể quần thể thành cặp riêng biệt,chúng em thực thao tác lai ghép,đột biến cặp cá thể này.Mỗi cặp cá thể sinh hai cá thể mới,hai cá thể bổ sung vào G.Sau tất cặp thao tác,ta bổ sung tập G vào tập quần thể cũ,và xếp lại thứ tự cá thể theo giá trị đánh giá cá thể Mỗi cá thể gắn giá trị gọi xác suất lai ghép tỷ lệ thuận với ranking quần thể,tức cá thể tốt có khả phối giống cao Toán tử lai ghép Toán tử lai ghép cần sinh cá thể mới,phải thỏa mãn hai điều kiện,thứ có tính thừa kế tính chất cá thể cha cá thể mẹ mẹ,thứ hai phải tạo đa dạng Chiến lược lai ghép chúng em sau.Kết lai ghép sinh hai cá thể (offspring) ,mỗi cá thể kế thừa toàn cụm cộng đồng cha(hoặc mẹ),bằng cách chép toàn giá trị a-len liên quan đến cụm cộng đồng cha (hoặc mẹ),tất gen lại chép toàn giá trị gen tương ứng mẹ (hoặc cha),các gen lại có nhiệm vụ tao nên khác biệt cá thể so với cha (hoặc mẹ) chúng Về vấn đề chọn lựa cá thể để lai ghép,xác suất hai cá thể phép lai ghép trung bình cộng xác suất lai ghép cá thể Nhờ nhờ khả hai cá thể có cụm cộng đồng tốt có khả lai ghép cao cá thể nhận hội kế thừa cụm cộng đồng tốt từ cha mẹ chúng,dù giữ nguyên khả tạo biến đổi ,góp phần làm quần thể đa dạng Toán tử đột biến Toán tử đột biến nhằm tạo đa dạng cho quần thể,đưa quần thể khỏi vùng lồi (hoặc vùng lõm) miền thích nghi - tức tránh giá trị thích nghi cá thể quần thể bị kẹt vào cực đại (hoặc cực tiểu) cục bộ,làm quần thể phát triển độ thích nghi Vì mục đích toán tử đột biến,cần tạo cách đột biến ngẫu nhiên nhất,nhằm tạo đa dạng kết cá thể sinh ra.Chúng em chọn số ngẫu nhiên Gen thay đổi ngẫu giá trị A-len nó,trong nội dung Bài tốn,thì A-len phải tượng trưng cho đỉnh mà có liên kết đỉnh tượng trưng Gen chọn Figure Một tả phương án Giao phối Toán tử chọn lọc Hệ thống chúng em khơng sử dụng tốn tử chọn lọc,mọi Nhiễm sắc thể giữ lại,và nhiễm sắc thể bị đào thải ranking Quần thể bị đẩy xuống ngưỡng Chi tiết chương trình hệ thống Hệ thống cài đặt GAs ngôn ngữ Java,theo mô thức hướng đối tượng.Chúng em hồn tồn tự cài đặt khơng tham khảo nguồn mã Đầu vào file miêu tả đồ thị gồm số đỉnh,dòng đầu file số đỉnh,các dòng sau có dạng “a b” thể cạnh hai đỉnh a đỉnh b đồ thị Figure File mô tả đồ thị mạng cá heo Đầu dãy danh sách Nhiễm sắc thể tốt nhất,cùng với cách phân cụm đồ thị mà thể hiện.kèm theo giá trị thích nghi Figure Một kết đưa Gồm có lớp Lớp Node – mơ tả cho đối tượng đỉnh đồ thị ,mỗi Node gắn cho số ID để đại diện cho Node,nó chứa thơng tin Node có liên kết với Node lưa trữ ma,và thao tác thêm Node liên kết Lớp Chromosome – mô tả (blueprint) cho đối tượng Nhiễm sắc thể,thuộc tính quan trọng lớp dãy số nguyên,với số mảng thể Gen ,và giá trị phần tử mảng thể giá trị Gen tức A-len.Trong lớp Chromosome chứa hàm evaluateFitvalue() để tính giá trị thích nghi Nhiễm sắc thể này,hàm Mutate biểu diễn toán tử đột biến,các hàm khác để thao tác thay đổi Nhiễm sắc thể Trong lớp chứa cấu trúc mảng lồng để biểu diễn Cách phân cụm mà Nhiễm sắc thể mà đối tượng thể Lớp GADetectCommunity – lớp Chromosome lớp bên lớp này,và kết tập mạnh với lớp này,mỗi lớp GADetectCommunity chứa list đối tượng Chromosome,có giới hạn số lượng phần tử giá trị nChromosome,list thể khái niệm Quần thể.Lớp GADetectCommunity chứa list đối tượng Node,chứa thông tin đỉnh đồ thị Gồm có phương thức sau Phương thức mutate(int max) chứa lớp Chromosome trả đối tượng Chromosome kết đột biến ,và có tham số đầu vào số số nguyên max biểu thị số lượng tối đa Gen bị thay đổi giá trị A-len Phương thức crossOver() phương thức để cài đặt toán tử giao phối chứa lớp GADetectCommunity ,trả list chứa hai đối tượng Chromosome kết của thao tác giao phối,chứa tham số đầu vào hai Chromosome lựa chọn để giao phối Phương thức init() chứa lớp GADetectCommunity ,phương thức khởi tạo cho quần thể cá thể Phương thức evaluteFitValue() nằm lớp Chromosome,thao tác giải mã Cách phân cụm chứa phương thức này,sau giải mã cách phân cụm,việc tính giá trị thích nghi bắt đầu,bằng cách duyệt đỉnh Cụm cộng đồng ,và sau sử dụng hàm Mơ-đun để tính giá trị thích nghi Phương thức eVOLUTION() chứa lớp GADetectCommunity, phương thức thể trình sinh quần thể từ quần thể có,giống chiến lược tạo dựng hệ chúng em nêu lên trên,tức chia quần thể cũ thành cặp Nhiễm sắc thể , cặp nhiễm sắc thể chọn lựa lai ghép đột biến phụ thuộc vào xếp hạng hai Nhiễm sắc thể cặp Nhiễm sắc thể quần thể cũ.Các Nhiễm sắc thể đưa vào list returnOffSpring,và sau Nhiễm sắc thể bổ sung vào listChromosome,sau ta xếp lại listChromosome theo giá trị thích nghi Nhiễm sắc thể chứa đó,các Nhiễm sắc thể có độ thích nghi bị loại bỏ khỏi listChromosome.Quần thể tạo chứa listChromosome.Quá trình tiếp tục Quần thể cuối chứa cá thể có giá trị thích nghi lớn 2.3 demo chương trình Chương trình chúng em chạy giao diện dòng lệnh Cách chạy chương trình dòng lệnh java –jar [n1] [n2] [C] [D] [E] n1 : số lần lặp n2 : số cá thể quần thể C : đường dẫn file mô tả đồ thị D : direct file đồ thị dùng để mơ tả đồ thị có hướng (một cạnh mô tả hai lần),là undirected file đồ thị dùng để mô tả đồ thị vô hướng (một cạnh mô tả lần) E : đường dẫn lời giải nhằm so sánh lời giải nhằm so sánh lời giải hệ thống đưa ra,nếu có ghi đường dẫn thì,chương trình đưa lời giải thực,giá trị thích nghi đánh giá theo hàm đánh giá hệ thống hệ số Rand để xem mức độ giống lời giải hệ thống đưa lời giải thực Figure Demo chương trình console CHƯƠNG III KẾT LUẬN Đánh giá kết Kiểm thử (Testing) thuật tốn tức áp dụng vào tốn mà có lời giải so sánh với lời giảithuật tốn sinh được.Trong trường hợp tốn phân cụm cộng đồng,thì tốn với lời giải xác định tốt tương ứng với đồ thị có cấu trúc cộng đồng rõ ràng (clear community structure).Một đồ thị cấu trúc cộng đồng đồ thị mà có cách phân chia với mật độ liên kết bên bên ngồi,một đồ thị khơng Có hai cách để chọn đồ thị tiêu chuẩn (benchmark graph) dùng cho kiểm thử (testing) sử dụng đồ thị tự động sản sinh thuật tốn sản sinh đồ thị,ở cấu trúc cộng đồng (built-in structure) tác giả thiết kế cách cảm quan,hoặc sử dụng cộng đồng dựa quan sát từ cộng đồng xã hội thực tế 1.1 Sử dụng đồ thị nhân tạo (computer-generated benchmarks) Các đồ thị tiêu chuẩn nhân tạo gồm loại thông dụng planted l-partition model (eg Newman and German Benchmark),Gaussian random partition generator (eg LFR Benchmark Graph) Relaxed Caveman Graphs.Trong phần phụ lục chúng em xin trình bày rõ thêm đồ thị tiêu chuẩn nhân tạo này,nhằm hiểu rõ cách kiểm thử thơng dụng tốn phân cụm cộng đồng Tuy nhiên benchmark graph cần cải thiện để mơ xác tính chất phân cụm,sự đa dạng (heterogencity) cộng đồng thực tế sống 1.2 Sử dụng đồ thị tiêu chuẩn thể cộng đồng thực tế xã hội (Real Network) Việc kiểm nghiệm thuật toán graph thể cộng đồng thực tế tập trung kiểm nghiệm số mẫu graph,trong graph vertices thơng tin cách chi tiết Có ba cơng đồng hay sử dụng là,mạng xã hội câu lạc Karate Zachary (the social network of Zachary`s karate club),mạng xã hội cá heo Doubtful Sound New Zeland (the social network of bottlenoise Dolphin in Doubtful Sound ) mạng đội bóng đại học toàn nước Mỹ NewMan Girman đề đạt (network of America College Football Teams) 1.3 So sánh hai cách phân chia đồ thị (Partition) Việc xem xét hiệu hệ thống phân cụm cộng đồng bao gồm việc định nghĩa xem giống cách phân cụm (partition) hệ thống với cách phân cụm cần phát dựa vào thực tế.Sau chúng em liệt kê vài cách thức để đo đạc giống (similarity) hai cách phân cụm cộng đồng,ta gọi cách thức độ đo (measures) Xét hai cách phân cụm đồ thị =( , ,…, ) cụm (cluster) cách phân cụm tương ứng với cụm , : =| = ( , ,…, ),với số lượng số lượng đỉnh (vertices) chung hai | Các độ đo sử dụng chia làm ba loại : độ đo dựa phép tính tốn cặp (pair counting),độ đo dựa độ trùng cụm (cluster matching),và độ đo dựa lý thuyết thông tin (information theory).Để tiện lợi chúng em gọi chúng theo nguyên nghĩa thuật ngữ tiếng anh.Trong phần Phụ lục có giới thiệu sơ qua ba loại độ đo Trong việc kiểm thử mình,chúng em sử dụng độ đo dựa pair counting.Độ đo dựa pair counting có độ đo thơng dụng Độ đo Wallace (Wallace index) Wallace để xuất năm 1983 : ∑ ∑ Với thể xác suất hai đỉnh cụm cộng đồng X cụm cộng đồng Y Độ đo Rand (Rand index) Rand đề xuất năm 1971 tỷ lệ số cặp đỉnh phân phối giống hai cách phân cụm tổng số cặp đỉnh: Độ đo Jaccard (Jaccard index): Độ đo Rand lựa chọn để sử dụng phần Kiểm Thử chúng em 1.4 Kết kiểm thử 1.4.1 Đối với cộng đồng thực tế Khi kiểm nghiệm với câu lạc Karate Zachary chúng em thu kết gồm có cụm cộng đồng sau : Figure : Kết kiểm thử đồ thị mẫu Karate Zachary Figure 9:Minh họa hình vẽ kết hệ thống đồ thị tiêu chuẩn Karate Zachary So sánh với kết thực tế,thì hệ thống đưa số cụm cộng đồng nhiều số cụm cộng đồng đưa thực tế cộng đồng,có vẻ thuật tốn phát cộng đồng nhầm lẫn,nhưng không hệ thống phát chi tiết so với thực tế,vì cặp cặp cộng đồng hệ thống đưa cộng đồng phân cụm thực tế Như hình vẽ cách phân cụm thực tế chia thành hai cụm cộng đồng mơ tả hai hình vng tròn,còn cách phân cụm đưa hệ thống chia làm 4,biểu thị màu xanh,vàng,xanh lam,trắng Khi kiểm nghiệm với cộng đồng cá heo chúng em kết gồm cụm cộng đồng sau : Figure 10: Kết kiểm thử hệ thống dựa đồt thị tiêu chuẩn cá Heo Figure 11 : Minh họa kết kiểm thử dựa mạng lưới cá Heo Kết cho có cộng đồng,so sánh với cách phân cụm thực tế,cho thấy cụm 1,cụm cụm cụm cụm cách phân cụm thực tế,còn cụm cụm cách phân cụm thực tế.Điều cho thấy hệ thống tìm chi tiết so với cách phân cụm thực tế 1.4.2 Đối với đồ thị tiêu chuẩn sinh máy tính Chúng em sử dụng đồ thị tiêu chuẩn LFR (Gaussian random partition generator) có tham số sau : Số mũ phân phối mũ độ lớn bậc đỉnh : Số mũ phân phối mũ độ lớn cụm cộng đồng : Tham số trộn : từ 0.1 đến 0.45 với khoảng nhảy 0.05 Kết liệt kê bảng sau : mixing parameter Số lần lặp 0.1 30 0.15 30 0.2 30 0.25 30 0.3 30 0,35 30 0.4 30 0.45 30 0.5 30 Độ lớn quần thể 50 50 50 50 50 50 50 50 50 Độ đo Rand 1 0.992249016 0.890098 0.78973917 0.788877 0.772268701 0.742987205 0.733759843 Nhìn vào kết sử dụng đồ thị tiêu chuẩn LFR để kiểm nghiệm hệ thống,ta thấy Tham số trộn lớn việc nhận cụm cộng đồng khó,giá trị lên cao với cách Biểu diễn gen,biện pháp Giao phối,Đột biến hệ thống trở nên chậm chạp,độ tiến triển quần thể trở nên chậm lại.Tuy nhiên chạy đủ số lần lặp cần thiết hệ thống có khả đưa lời giải xác Hướng phát triển Đối với đồ thị thể hệ thống mạng thực tế,có cấu trúc cộng đồng rõ ràng,ít kết nối cụm cộng đồng hệ thống đưa kết xác nhanh.Nhưng ngược lại,nếu với đồ thị có tượng chồng chéo cộng đồng,hay có cấu trúc cộng đồng thiếu rõ ràng,thì hệ thống trở nên chậm lại,vì cải tiến phải tập trung vào cải thiện tốc độ hệ thống làm việc với đồ thị có tính chất phức tạp.Ngồi hệ thống nên có khả phát cấu trúc phấn cấp cộng đồng,phát cộng đồng chồng chéo Thế nên hướng phát triển sau : + Thay đổi biểu diễn nhiễm sắc thể nhằm giới hạn thêm khơng gian tìm kiếm,cải tiến phương án Giao phối,Đột biến cho thao tác giúp quần thể phát triển độ thích nghi nhanh tốt + Phát triển để hệ thống có khả nhận cấu trúc phân cấp cộng đồng,và phát cộng đồng chồng chéo + Thiết kế để hệ thống áp dụng tính tốn song song nhằm tận dụng tối đa khả phần cứng để hệ thống đưa kết tối ưu nhanh TÀI LIỆU THAM KHẢO [1] Thang Nguyen Bui ; Byung Ro Moon, “Genetic Algorithm and Graph Partioning” [2] Yanan Cai, Chuan Shi, Yuxiao Dong, Qing Ke, Bin Wu, “A Novel Genetic Algorithm for Overlapping Community Detection” [3] Rohan Agrawal, “Bi-Objective Community Detection (BOCD) in Networks Using Genetic Algorithm” [4] Mursel Tasgin, Haluk Bingol, “Community Detection in Complex Networks using Genetic Algorithm” [5] Santo Fortunato, “Community detection in graphs” [6] Shangguang Wang, Hua Zou, Qibo Sun, Xilu Zhu and Fangchun Yang , “Community Detection via Improved Genetic Algorithm in Complex Network” [7] Clara Pizzuti , “GA-Net: A Genetic Algorithm for Community Detection in Social Networks” [8] Rejeb, J ; AbuElhaij, M , “New gender genetic algorithm for solving graph partitioning problems” [9] Chuan Shi, Yi Wang, Bin Wu, and Cha Zhong, “A New Genetic Algorithm for Community Detection” [10] Sahar Shazely, Hoda Baraka, Ashraf Abdel-Wahab,Hanan Kamal, “Genetic Algorithms in Solving Graph Partitioning Problem” [11] (Complex Adaptive Systems) Melanie Mitchell- “An Introduction to Genetic Algorithms” -The MIT Press (1998) [12] M E J Newman, “Detecting community structure in networks” [13] Andrea Lancichinetti, Santo Fortunato, “Community detection algorithms: a comparative analysis” [14] Remco Vando Hofstad, “Random Graph and Complex Network” [15] Fan Chung, “A whirlwind tour of Random Graphs” [16] M E J Newman, “Random Graphs as Models of Networks” Phụ lục 1.Các Đồ thị tiêu chuẩn nhân tạo (Computer-generated Benchmark Graph) dùng để testing thuật toán Phân cụm cộng đồng Dưới trình bày hai kiểu đồ thị tiêu chuẩn thường sử dụng,là hai kiểu thể kiểu dạng đồ thị - vô hướng,không đánh bậc cạnh,có cấu trúc phân cụm rõ ràng (clear community structure) – mà hệ thống thao tác tìm cách phân cụm Ngồi hai dạng đồ thị tiêu chuẩn đồ thị tiêu chuẩn khác sản sinh có tính chất đặc biệt như,chồng chéo cộng đồng (clusters overlap),lưỡng phân (bipartite),các đồ thị có cấu trúc phân cấp (embedded hierarchical structure),nhưng đối tượng hệ thống nên chúng em xin bỏ qua 1.1 Các đồ thị tiêu chuẩn kiểu Planted l-partition models Các đồ thị có cấu trúc bên sau (built-in structure) : bao gồm l nhóm (group),và nhóm có g đỉnh (vertices).Hai đỉnh bên có xác xuất liên kết hai đỉnh bên ngồi có xác suất liên kết Bậc trung bình đỉnh 〈 〉 ,bậc = , bậc vào = ( Với đồ thị planted l-partition model đồ thị có > có mật độ cạnh kết nối bên cụm (cluster) vượt mật độ cạnh kết nối bên (các cạnh kết nối liên cụm) Girvan Newman tạo trường hợp đặc biệt kiểu đồ thị planted l-partition model (Girvan and NewMan, 2002) với (tức có tổng số cạnh bậc trung bình đỉnh 〈 〉 Kiểm thử đồ thị tiêu chuẩn Girvan-Newman bao gồm việc so sánh giống cách phân cụm phát thuật tốn cách phân cụm tự nhiên với nhóm có độ lớn nhau.Một người phát triển thuật tốn dùng chương trình tạo đồ thị tiêu chuẩn GirvanNewman để sinh đồ thị với giá trị định tính tốn độ giống trung bình lời giải thuật tốn lời giải thiết kế (built-in solution).Các thao tác lặp lại vài lần với khác nhau.Kiểm nghiệm cho thấy hầu hết thuật tốn có lời giải tốt với nhỏ thất bại tiến tới Đồ thị tiêu chuẩn kiểu planted l-partition model có đặt điểm có bậc xấp xỉ giống nhau,và có độ lớn cụm cồng đồng giống hệt nhau.Cả hai đặc điểm khó thấy hệ thống thực tế (real system).Vì nên đồ thị tiêu chuẩn kiểu planted l-partition model mô tả tốt đồ thị thực (real graph) với cấu trúc cộng đồng Một kiểu đồ thị tiêu chuẩn khác,được gọi Gaussian random partition generator 1.2 Các đồ thị tiêu chuẩn kiểu Gaussian random partition generator Khác với đồ thị tiêu chuẩn planted l-partition với cụm cộng đồng có độ lớn giống nhau,độ lớn cụm cộng đồng bên Gaussian random partition generator tuân theo luật phân phối Gaussian ,vì chúng có độ lớn khơng giống nhau,nhưng khơng khác Do độ lớn cụm cộng đồng khác từ bậc đỉnh trở phân phối cách đa dạng Một kiểu đồ thị tiêu chuẩn Gaussian random partition generator kiến tạo Lancichinetti et al (LFR benchmark) Họ giả sử độ lớn cụm cộng đồng bậc đỉnh tuân theo luật phân phối hàm số mũ (power law distribution) với số mũ (exponent) tương ứng.Mỗi đỉnh có bậc dành cho đỉnh cụm cộng đồng, bậc lại dành cho đinh khác cụm cộng đồng với nó,hằng số gọi tham số trộn (parameter mixing).Đồ thị xây dựng sau Một loạt độ lớn cụm cộng đồng sinh dựa luật phân phối mũ Mỗi đỉnh i cộng đồng lại nhận bậc vào với bậc đỉnh i.Khi đỉnh i có “cành” cành cần đồng với “cành” đỉnh khác Tất “cành” đỉnh đồng ngẫu nhiên với “cành” đỉnh khác,cho đến khơng “cành” độc thân Mỗi đỉnh lại nhận thêm “cành” nữa,các “cành” lại gắn cách ngẫu nhiên với “cành” khác đỉnh cộng đồng khác,cho đến khơng “cành” độc than 2.Các cách đo lường tương tự (Similarity) khác Pair counting hai Cách phân cụm cộng đồng (Partitions) Ngoài cách đo lường dạng Pair Counting có hai dạng khác thường sử dụng Cluster Matching Information Theory 2.1 Đo lường dựa Cluster Matching Cách đo tập trung tìm chồng chéo (overlap) lớn cặp cụm cộng đồng hai cách phân cụm khác Các độ đo thông dùng cách đo lường gồm có độ đo Classification error Normalized Van Dongen metric độ đo Classification error ∑ với phép đơn ánh từ cụm cộng đồng Y sang cụm cộng đồng X [∑ Normalized Van Dongen metric ∑ ] 2.2 Đo lường dựa Information Theory Vấn đề đo lường giống đồ thị cách đo lường chuyển thành toán giải mã tin nhắn (problem of message decoding) lĩnh vực Lý thuyết Thông tin Ý tưởng là,nếu hai cách phân cụm mà giống nhau,thì cách phân cụm cần thơng tin để suy luận cách phân cụm đối phương Độ đo thường sử dụng cách Đo lường độ đo Mutual Information,độ đo sử dụng nhiều việc kiểm thử toán Phân cụm cộng đồng Đồ thị tiêu chuẩn nhân tạo ∑∑ HẾT - ... này,các cụm xếp theo cấp bậc,mỗi cụm cấp cao có cấu trúc cộng đồng riêng,với cụm cộng đồng nhỏ bên trong,các cụm cộng đồng nhỏ có cụm cộng đồng nhỏ tạo cấu trúc cộng đồng cho riêng Một thuật giải. .. cụm cộng đồng (nhóm đỉnh ta coi cộng đồng) Cách chia mạng thành cụm cộng đồng cho tốt ? 2.1 Định nghĩa Cụm cộng đồng (Community) Vấn đề toán phân cụm cộng đồng cần tìm định nghĩa định lượng cụm. .. toán Phân cụm Cộng đồng 3 .Thuật giải Di truyền 4.Áp dụng thuật giải di truyền Chương II : Thiết kế chi tiết Cài đặt thuật tốn 1.Xây dựng ý tưởng thiết kế 2.Lập trình chương trình phát Cụm cộng đồng

Ngày đăng: 16/05/2019, 17:55

Từ khóa liên quan

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

Tài liệu liên quan