Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 59 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
59
Dung lượng
1,54 MB
Nội dung
ĐẠI HỌC THÁI NGUYÊN TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG LUẬN VĂN THẠC SĨ ĐỀ TÀI Mơ hình đồ thị ứng dụng toán cộng đồng mạng xã hội Giáo viên hướng dẫn : TS Vũ Vinh Quang Học viên : Hoàng Văn Dũng Lớp : Cao học K17 Thái Nguyên, tháng năm 2020 LỜI CẢM ƠN Đầu tiên, em xin gửi lời cảm ơn chân thành sâu sắc tới thầy Vũ Vinh Quang, người trực tiếp hướng dẫn tận tình đóng góp ý kiến q báu suốt trình em làm luận văn tốt nghiệp Tiếp theo em xin gửi lời cảm ơn đến đến thầy cô giáo trường Đại học Công nghệ Thông tin Truyền thông - Đại học Thái Nguyên, tận tâm truyền đạt kiến thức quý báu làm tảng để em hoàn thành luận văn Học Viên Hoàng Văn Dũng LỜI CAM ĐOAN Tơi xin cam đoan mơ hình đồ thị ứng dụng toán cộng đồng mạng xã hội trình bày luận văn tơi thực hướng dẫn thầy Vũ Vinh Quang Tất tham khảo từ nghiên cứu liên quan nêu nguồn gốc cách rõ ràng từ danh mục tài liệu tham khảo luận văn Trong luận văn khơng có việc chép tài liệu, cơng trình nghiên cứu người khác mà khơng rõ tài liệu tham khảo Thái Nguyên, ngày tháng năm 2020 Học viên Hoàng Văn Dũng MỤC LỤC LỜI MỞ ĐẦU…………………………………………………………………… …….……1 Chƣơng 1: MỘT SỐ KIẾN THỨC CƠ BẢN VỀ MƠ HÌNH ĐỒ THỊ……………………3 Một số khái niệm ………… ………………………………… …………………… Định nghĩa đồ thị…………… …………………………………………………………… Các thuật ngữ bản………………… ………………………………………………………4 Đường đi, chu trình Đồ thị liên thơng………………… ………… ….……………….…5 Một số phƣơng pháp mô tả đồ thị…………… …………………………………… ….… Cấu trúc ma trận kề ……………….………………………………………… ….… Cấu trúc danh sách kề…………………………………………………………….……………7 Một số thuật toán đồ thị…………………… ……………………………….…………8 Các thuật toán duyệt đồ thị……………….…………………………………………….…………8 Bài toán khung nhỏ nhất………… ……………….………………………….…… …… Bài toán xác định đường ngắn nhất…………………………………………….… ….…….12 Kết luận chương 1……….………………………………………………………… …… 15 Chƣơng 2: MƠ HÌNH MẠNG XÃ HỘI VÀ BÀI TOÁN CỘNG ĐỒNG………… ……17 Khái niệm toán cộng đồng………………….…………………………….…………17 Một số độ đo đồ thị…… ………………………………………………………………18 Độ đo trung tâm đỉnh……………… ……………………………………….….…… 18 Độ đo trung gian đỉnh……………………………………………………………………19 Độ đo gần theo khoảng cách trắc địa……….………… ………………………21 Độ đo trung tâm đồ thị…………………….………………………… ………………………22 Độ đo trung gian cạnh…………………………………………… ……………….……22 Độ trung tâm véc tơ đặc trưng………………………………………… ……………….….25 Thuật toán phát cộng đồng………… ……………………………………….… … 26 Giới thiệu họ thuật toán Girvan Newman……………….………………….… …27 Giới thiệu thuật toán CONGA………………………………….……………… ………28 Kết luận chương 2……….……………………………………………………… … …… 33 Chƣơng 3: MỘT SỐ KẾT QUẢ THIẾT KẾ VÀ THỰC NGHIỆM CÁC THUẬT TOÁN Xác định độ đo trung tâm đỉnh…………………….………………………………….34 Xác định độ đo trung gian đỉnh…………………….………………………… ….….35 Xác định độ đo trung gian cạnh………………… ……………………………… ….36 Kết luận chương 3……….……………………………………………………… … …… 41 TÀI LIỆU THAM KHẢO………………………………………………………………… 42 DANH SÁCH CÁC HÌNH VẼ Hình 1.1: (a) Một đồ thị vơ hướng; …………………… ………………………………………6 (b) Biểu diễn ma trận kề;……………………….………………………………………6 (c) Biểu diễn danh sách kề…………………….….……………………………………6 Hình 1.2: (a) Một đồ thị có hướng; ………………….….…………………………… …………7 (b) Ma trận kề: ………………….….……………………………………… …………7 (c) Biểu diễn danh sách kề ……………….….…………………………… …………7 Hình 1.3: (a) Đồ thị trọng số; ……………….….………….………………………… …………7 (b) Ma trận kề: …………………………….….…………………………… …………7 (c) Danh sách kề.……………….….…………………………….………… …………7 Hình 1.4: Duyệt theo chiều rộng BFS…………………………………………….………….9 Hình 2.1: Hai đỉnh v2, v5 hạng đỉnh lại hạng 2……………………… 19 Hình 2.2: Ví dụ trường hợp khơng phân tách đỉnh v đồ thị……………… …………….30 Hình 2.3: Ví dụ phép phân chia đỉnh đồ thị………………… … …… ……… 31 Hình 2.4: Tìm phép phân chia tối ưu……………………………………….…………… ……32 Hình 3.1: Độ đo trung tâm đỉnh đồ thị ………… ………………… ….35 Hình 3.2: Đồ thị G vơ hướng …………………………………… ………………………….36 Hình 3.3……………………………………………………………………………………….40 MỞ ĐẦU Mơ hình đồ thị mơ hình cấu trúc liệu kinh điển tin học, mơ hình này, thường quan tâm đến việc mơ tả cấu trúc máy tính điện tử thuật tốn tìm kiếm, tối ưu mơ hình Có thể nói việc nghiên cứu ứng dụng mơ hình đồ thị thực tế lĩnh vực vơ rộng lớn có ý nghĩa thực tế cao Đa số nguồn liệu biểu diễn dạng cấu trúc liệu đồ thị, thí dụ liệu mạng internet, mạng xã hội, cấu trúc protein, hợp chất hóa học, quy trình chương trình…Cấu trúc đồ thị đánh giá cấu trúc có tính bao qt mơ tả đối tượng so với cấu trúc tuần tự, cây, mạng ngữ nghĩa…và dựa cấu trúc thiết kế nhiều thuật toán giải nhiều toán có độ tính tốn phức tạp cao Mỗi liệu lớn hệ thống mạng biểu diễn dạng đồ thị mối quan hệ chúng theo liên kết kết nối vật lý; kết nối mạng lớp mạng; mối quan hệ mạng xã hội; siêu liên kết trang web tương tác phức tạp thực thể Các đồ thị chứa đựng thông tin giá trị cho việc ứng dụng vào hệ thống mạng phát từ cộng đồng, điểm chung; phân lớp; tìm kiếm mạng; hệ thống đưa theo thứ tự đó; độ tin cậy uy tín; tìm kiếm lấy liệu từ điểm đến điểm Để đưa liệu xét vào dạng đồ thị, cần phải định nghĩa ma trận mô tả cấu trúc tổng thể đồ thị; định nghĩa ma trận mô tả mẫu đặc trưng giao tiếp bên đồ thị phải tìm cấu trúc có tính đặc trưng cộng đồng mạng; hiểu rõ mơ hình việc lấy từ đồ thị; phát triển ứng dụng thuật toán hiểu để khai thác liệu hệ thống mạng Nhiều liệu có cấu trúc biểu diễn mạng, tập hợp đỉnh nối với theo cặp liên kết, mạng sinh học, hợp tác nhà nghiên cứu,… Đặc điểm quan trọng gắn kết mạng lại với cấu trúc cộng đồng, có nhóm có mật độ kết nối mạnh đỉnh nhóm kết nối yếu nhóm Do đó, việc xác định cộng đồng xem việc tìm kiếm cụm đỉnh phân nhóm Một cộng đồng nhóm thực thể dùng chia sẻ tài sản tương tự kết nối với thông qua mối quan hệ lựa chọn Việc xác định kết nối định vị thực thể cộng đồng khác coi mục tiêu nghiên cứu phát cộng đồng Bằng trực quan dễ dàng tìm nhóm cộng đồng có độ tập trung cao, cộng đồng hình thành mối liên hệ chặt chẽ dễ thấy số cộng đồng hình thành dạng ẩn Điều quan trọng phải tìm phân phối cạnh đỉnh, từ phát đưa cộng đồng tồn bên mạng xã hội Như vậy, khai phá liệu đồ thị phát cấu trúc cộng đồng mạng xã hội lĩnh vực nghiên cứu hấp dẫn nhà khoa học quan tâm nghiên cứu Xuất phát từ đồ thị mạng xã hội, người ta tìm cụm, nhóm cộng đồng có mối liên hệ chặt chẽ với nhau, từ phát tìm đặc tính cấu trúc mạng Mục tiêu luận văn đặt nghiên cứu đặc trưng mơ hình đồ thị, số thuật tốn tìm kiếm tối ưu mơ hình đồ thị Khái niệm toán cộng đồng số thuật toán xác định cộng đồng mạng xã hội Dự kiến nội dung báo cáo luận văn gồm: Phần mở đầu, chương chính, phần kết luận, tài liệu tham khảo, phụ lục Bố cục trình bày sau: Phần mở đầu: Nêu lý chọn đề tài hướng nghiên cứu luận văn Chƣơng 1: Trình bày tổng quan mơ hình đồ thị bao gồm: Các khái niệm bản, phương pháp mơ tả đồ thị, thuật tốn duyệt đồ thị trọng tâm thuật toán xác định đường ngắn đồ thị [1, 2, 3, 4, 6, 7] Chƣơng Trình bày khái niệm mơ hình mạng xã hội tốn cộng đồng bao gồm: Tổng quan mạng xã hội, khái niệm độ đo đỉnh độ đo cạnh, thuật toán tương ứng Khái niệm cộng đồng số thuật toán xác định cộng đồng, Họ thuật toán Girvan_Newman, thuật toán CONGA[5, 8, 9] Chƣơng Đưa số kết cài đặt thuật toán: thuật toán xác định độ đo đỉnh, thuật toán xác định độ đo cạnh, thuật toán xác định cộng đồng Các kết cài đặt thuật toán thực môi trường Matlab version 7.0 Chƣơng MỘT SỐ KIẾN THỨC CƠ BẢN VỀ MƠ HÌNH ĐỒ THỊ Nội dung chương đưa khái niệm lý thuyết đồ thị, thuật tốn mơ hình đồ thị Các kiến thức tham khảo tài liệu [1] [2] 1.1 Một số khái niệm [1] 1.1.1 Định nghĩa đồ thị Đồ thị cấu trúc rời rạc bao gồm đỉnh cạnh nối đỉnh này, loại đồ thị khác phân biệt kiểu số lượng cạnh nối hai đỉnh đồ thị Giả sử V tập hữu hạn, khơng rỗng phần tử Bộ G = (V,E) gọi đồ thị hữu hạn Mỗi phần tử V gọi đỉnh phần tử u = (x,y) E gọi cạnh đồ thị G = (V,E) Xét cạnh u E tồn hai đỉnh x, y V cho u = (x,y), ta nói x nối với y x y phụ thuộc u Nếu cạnh u = (x,y) mà x y hai đỉnh phân biệt ta nói x, y hai đỉnh kề Nếu u = (x,x) u cạnh có hai đỉnh trùng ta gọi khuyên Nếu u = (x,y) mà x, y cặp đỉnh có phân biệt thứ tự hay có hướng từ x đến y u cung, x gốc y x đỉnh vào, y đỉnh Khi cặp đỉnh (x,y) có nhiều cạnh ta nói cạnh cặp đỉnh cạnh song song cạnh bội Trong thực tế ta gặp nhiều vấn đề mà dùng mơ hình đồ thị để biểu diễn, sơ đồ mạng máy tính, sơ đồ mạng lưới giao thơng, sơ đồ thi cơng cơng trình Định nghĩa Đơn đồ thị vô hướng G = (V,E) bao gồm V tập đỉnh E tập cặp khơng có thứ tự gồm hai phần tử khác V gọi cạnh Định nghĩa Đa đồ thị vô hướng G = (V,E) bao gồm V tập đỉnh, E họ cặp khơng có thứ tự gồm hai phần tử khác V gọi cạnh Hai cạnh e1 e2 gọi cạnh lặp chúng tương ứng với cặp đỉnh Rõ ràng đơn đồ thị đa đồ thị, đa đồ thị đơn đồ thị, đa đồ thị có hai (hoặc có nhiều hơn) cạnh nối cặp đỉnh Định nghĩa Giả đồ thị vô hướng G = (V,E) bao gồm V tập đỉnh, E họ cặp khơng có thứ tự (khơng thiết phải khác nhau) V gọi cạnh Cạnh e gọi khuyên có dạng e = (u,u) Định nghĩa Đơn đồ thị có hướng G = (V,E) bao gồm V tập đỉnh E cặp có thứ tự gồm hai phần tử khác V gọi cung Nếu mạng có đa kênh thoại chiều, ta phải sử dụng đến khái niệm đa đồ thị có hướng: Định nghĩa Đa đồ thị có hướng G = (V,E) bao gồm V tập đỉnh E họ cặp có thứ tự gồm hai phần tử khác V gọi cung Hai cung e1, e2 tương ứng với cặp đỉnh gọi cung lặp Trong phần tử chủ yếu làm việc với đơn đồ thị vô hướng đơn đồ thị có hướng Vì vậy, để ngắn gọn, ta bỏ qua tính từ đơn nhắc đến chúng 1.1.2 Các thuật ngữ Định nghĩa Hai đỉnh u v đồ thị vô hướng G gọi kề (u,v) cạnh đồ thị G Nếu e = (u,v) cạnh đồ thị ta nói cạnh liên thuộc với hai đỉnh u v, nói cạnh e nối đỉnh u đỉnh v, đồng thời đỉnh u v gọi đỉnh đầu cạnh (u,v) Định nghĩa Ta gọi bậc đỉnh v đồ thị vô hướng số cạnh liên thuộc với ký hiệu deg(v) Định nghĩa Nếu e = (u,v) cung đồ thị có hướng G ta nói hai đỉnh u v kề nhau, nói cung (u,v) nối đỉnh u với đỉnh v nói cung khỏi đỉnh u vào đỉnh v Đỉnh u(v) gọi đỉnh đầu(cuối) cung (u,v) Định nghĩa Ta gọi bán bậc (bán bậc vào) đỉnh v đồ thị có hướng số cung đồ thị khỏi (đi vào nó) ký hiệu deg+(v)(deg-(v)) 1.1.3 Đường đi, chu trình Đồ thị liên thơng Định nghĩa 10 Đường độ dài n từ đỉnh u đến đỉnh v, n số nguyên dương, đồ thị vô hướng G = (V,E) dãy x0, x1,…, xn-1, xn u = x0, v = xn, (xi, xi+1) E, i = 0,1,2,…, n-1 Đường nói cịn biểu diễn dạng dãy cạnh: (x0,x1), (x1,x2),…, (xn-1,xn) Đỉnh u gọi đỉnh đầu, đỉnh v gọi đỉnh cuối đường Đường có đỉnh đầu trùng với đỉnh cuối (tức u = v) gọi chu trình Đường hay chu trình 0 Hình 3.1: Độ đo trung tâm đỉnh đồ thị Sử dụng cấu trúc danh sách cạnh, G mơ tả véc tơ Soure = [1; 8; 1; 2; 1; 3; 2; 8; 2; 3; 3; 5; 10; 7; 10; 6; 9; 8; 10; 9; 4; 10; 10; 5]; Tanget= [8; 1; 2; 1; 3; 1; 8; 2; 3; 2; 5; 3; 7; 10; 6; 10; 8; 9; 9; 10; 10; 4; 5; 10]; Kết xác định bậc đỉnh thực thuật toán 3.1 sau Đỉnh 10 Độ đo 3 1 3 Nhận xét + Thuật tốn 3.1 xác định xác độ đo trung tâm đồ thị vô hướng, với độ phức tạp O(n ) Thuật tốn chi tiết mơ tả phần phụ lục + Thuật toán làm sở để thiết kế thuật toán xác định cộng đồng phần sau 3.2 Xác định độ đo trung gian đỉnh Xuất phát từ định nghĩa độ đo trung gian đỉnh, sử dụng thuật toán Floyd để xác định tất đường ngắn cặp đỉnh từ xác định đường có qua đỉnh thứ k để xác định bậc trung gian tương ứng Từ việc xác định độ đo trung gian tất đỉnh đồ thị G mơ tả thuật tốn sau đây: Thuật toán 3.2 (Xác định độ đo trung gian đỉnh) Input : G = (V, E) mô tả ma trận trọng số C với trọng số cạnh =1 Output: D=(d(1),d(2),…,d(n)) độ đo trung gian đỉnh BEGIN 44 For k=1 to n Begin D(k)=0; For i=1 to n For j=1 to n Begin + Xác định đường ngắn (i,j) kí hiệu L(i,j) + If j if or(i==k,j==k) %diem dau hoac diem cuoi qua dinh k trong_so(k)=trong_so(k)+1; thanh_vien(k,i)=i; ok=true; else vet=j; while not(P(i,vet)==i) vet=P(i,vet); if vet==k trong_so(k)=trong_so(k)+1; thanh_vien(k,i)=i; ok=true; end; end; end; end; if ok %ton tai duong di qua dinh k vet=j; muc_do(k,vet)=muc_do(k,vet)+1; if P(i,vet)==i muc_do(k,i)=muc_do(k,i)+1; else while not(P(i,vet)==i) vet=P(i,vet); muc_do(k,vet)=muc_do(k,vet)+1; end; muc_do(k,i)=muc_do(k,i)+1; end; end; end; end; end; trong_so thanh_vien muc_do Thuật toán xác định độ đo trung gian cạnh function cong_dong_canh_1=thuat_toan_33(thuat_toan_33.m) % xac dinh so cua canh % so cac duong di ngan nhat di qua canh 53 % Muc phu thuoc cua cac dinh clc; load d:\hien_trinh\data; n=length(A); M=n*(n-1)/2; muc_do=zeros(n,M); trong_so=zeros(1,M); canh=zeros(1,2); for i=1:n for j=1:n D(i,j)=A(i,j); P(i,j)=i; end; end; for r=1:n for i=1:n for j=1:n if D(i,j)>D(i,r)+D(r,j) D(i,j)=D(i,r)+D(r,j); P(i,j)=P(r,j); end; end; end; end; % tinh bac cua canh m=0; for k=1:n-1 for l=k+1:n m=m+1; if A(k,l)0,trong_so(m)