Luận văn thạc sĩ mô hình đồ thị và ứng dụng đối với bài toán cộng đồng trên mạng xã hội

20 2 0
Luận văn thạc sĩ mô hình đồ thị và ứng dụng đối với bài toán cộng đồng trên mạng xã hội

Đ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

ĐẠ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ị và ứng dụng đối với bài toán cộng đồng trên mạng xã hội Giáo viên hướng dẫn TS Vũ Vinh Qua[.]

ĐẠ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 gọi đơn khơng có cạnh bị lặp lại Khái niệm đường chu trình đồ thị có hướng định nghĩa hồn tồn tương tự trường hợp đồ thị vô hướng, khác ta có ý đến hướng cung Định nghĩa 11 Đồ thị vô hướng G = (V,E) gọi liên thơng ln tìm đường hai đỉnh Như hai máy tính mạng trao đổi thông tin với đồ thị tương ứng với mạng đồ thị liên thông 1.2 Một số phƣơng pháp mô tả đồ thị [1][2] Với biểu đồ định có số biểu diễn khác Việc dễ dàng cài đặt thuật toán đồ thị hiệu thuật toán phụ thuộc vào lựa chọn cách biểu diễn đồ thị đắn Hai cấu trúc sử dụng phổ biến để biểu diễn đồ thị (có hướng hay vơ hướng) ma trận kề danh sách kề 1.2.1 Cấu trúc ma trận kề Giả sử G = (V, E) đơn đồ thị có số đỉnh (ký hiệu |V| n), khơng tính tổng qt coi đỉnh đánh số 1, 2, , n Khi đó, ta biểu diễn đồ thị ma trận vuông A cấp n A(i,j)=1 cạnh (i,j) tồn A(i,j)=0 cạnh (i,j) không tồn Trong trường hợp đồ thị có trọng số có cấu trúc ma trận trọng số ma trận vng A cấp n A(i,j)=trọng số cạnh cạnh (i,j) tồn A(i,j)=  cạnh (i,j) không tồn (A(i,i)=0 không tồn khuyên  Các tính chất ma trận liền kề: + Với đồ thị vô hướng G, ma trận liền kề tương ứng ma trận đối xứng + Nếu G đồ thị vô hướng A ma trận liền kề tương ứng ta có Tổng số hàng i = tổng số cột i = Bậc đỉnh i = deg(i)  Ưu điểm ma trận liền kề: Đơn giản, trực quan, dễ cài đặt 10  Nhược điểm ma trận liền kề: Số cạnh đồ thị nhiều hay ít, ma trận liền kề ln địi hỏi n2 ô để lưu phần tử ma trận gây lãng phí nhớ dẫn tới khơng thể biểu diễn đồ thị với số đỉnh lớn Hình 1.1: (a) Một đồ thị vô hướng; (b) Biểu diễn ma trận kề; (c) Biểu diễn danh sách kề Hình 1.2: (a) Một đồ thị có hướng; (b) Ma trận kề: (c) Biểu diễn danh sách kề 11 Hình 1.3: (a) Đồ thị trọng số ; (b) Ma trận kề: (c) Danh sách kề 1.2.2 Cấu trúc danh sách kề Để mô tả đồ thị G, sử dụng cấu trúc danh sách theo tư tưởng: đỉnh x lưu trữ đỉnh kề với x danh sách tuyến tính  Các tính chất danh sách kề: + Với cấu trúc danh sách kề số phần tử danh sách kề với đỉnh bậc đỉnh + Thường sử dụng cấu trúc trỏ để mô tả 1.3 Một số thuật toán đồ thị [1][2] 1.3.1 Các thuật toán duyệt đồ thị  Thuật toán duyệt theo chiều sâu DFS Tư tưởng thuật toán: theo tư tưởng đệ quy tức đỉnh x kề với S đến từ S, với đỉnh x đỉnh y kề với x đến từ S Điều gợi ý cho ta viết thủ tục đệ quy DFS(u) mô tả việc duyệt từ đỉnh u cách thông báo thăm đỉnh u tiếp tục trình duyệt DFS(v) với v đỉnh chưa thăm kề với u Để cài đặt đệ quy ta cần ý: Để không đỉnh bị liệt kê tới hai lần, ta sử dụng kỹ thuật đánh dấu, lần thăm đỉnh, ta đánh dấu đỉnh lại để bước duyệt đệ quy khơng duyệt lại đỉnh Để lưu lại đường từ đỉnh xuất phát S, thủ tục DFS(u), trước gọi đệ quy DFS(v) với v đỉnh kề với u mà chưa đánh dấu, ta lưu lại vết đường từ u tới v cách đạt TRACE[v] := u, tức TRACE[v] lưu lại đỉnh liền trước v đường từ S tới v Thủ tục DFE mô tả sau 12 Procedure DFS(u) Input: G, u Output: Danh sách đỉnh BEGIN 1: Đánh dấu u thăm (có thể tới từ S); 2: Xét đỉnh v kề với u mà chưa thăm, với đỉnh v đó; + Trace[v] := u; //Lưu vết đường + DFS(v); // Gọi đệ quy END;  Thuật toán duyệt theo chiều rộng BFS Tư tưởng: Việc thăm đỉnh lên lịch duyệt đỉnh kề với Như vậy, thứ tự duyệt ưu tiên chiều rộng Ví dụ: Trong Hình 1.3, bắt đầu thăm đỉnh S Việc thăm đỉnh S phát sinh thứ tự duyệt đỉnh kề với S Chọn đỉnh x để thăm Khi thăm đỉnh x phát sinh yêu cầu duyệt đỉnh kề với x… Hình 1.4: Duyệt theo chiều rộng BFS Thuật toán duyệt theo chiều rộng mô tả thủ tục sau đây: Procedure BFS(u) Input: G, u Output: Danh sách đỉnh 1: Khởi tạo: + Các đỉnh trạng thái chưa đánh dấu, trừ đỉnh xuất phát S + Hàng đợi Q=S //Chứa đỉnh duyệt theo thứ tự 2: Đẩy S vào ngăn xếp; 13 3: repeat 4: Lấy u khỏi hàng đợi; 5: Thông báo thăm u; //Bắt đầu việc duyệt đỉnh u 6: if then 7: Ghi nhận vết đường từ u tới v; 8: Đẩy v vào hàng đợi; //v chờ duyệt bước sau 9: end if 10: until (Hàng đợi rỗng:); 11: Truy vết tìm đường đi; End 1.3.2 Bài tốn khung nhỏ Giới thiệu tốn Bài tốn tìm khung nhỏ đồ thị số tốn tối ưu đồ thị tìm ứng dụng nhiều lĩnh vực khác đời sống Trong phần ta có hai thuật toán để giải toán Trước hết, nội dung toán phát biểu sau Cho G = (V, E) đồ thị vô hướng liên thông Với V= {1,2, , n } tập cạnh E gồm m cạnh Với cạnh e đồ thị gán với số không âm c(e) gọi độ dài Giả sử H=(V, T) khung đồ thị G (T tập cạnh nhỏ khung) Ta gọi độ dài C(H) khung H tổng độ dài cạnh nó: C(H) =  c (e) eT Bài toán đặt số tất khung đồ thị G tìm khung với độ dài C(H) nhỏ Cây khung gọi khung nhỏ đồ thị toán đặt gọi toán khung nhỏ Do tính chất cây, nên đồ thị G có n đỉnh khung có n-1 cạnh Để minh hoạ cho ứng dụng toán khung nhỏ nhất, hai mơ hình thực tế tiêu biểu cho * Bài toán xây dựng hệ thống đường sắt: Giả sử ta muốn xây dựng hệ thống đường sắt nối n thành phố cho hành khách từ thành phố đến số thành phố lại Mặt khác, quan điểm kinh tế đòi 14 hỏi chi phí xây dựng hệ thống đường phải nhỏ Rõ ràng đồ thị mà đỉnh thành phố cạnh tuyến đường sắt nối thành phố tương ứng, với phương án xây dựng tối ưu phải Vì vậy, tốn đặt dẫn tốn tìm khung nhỏ đồ thị đầy đủ n đỉnh, đỉnh tương ứng với thành phố với độ dài cạnh chi phí xây dựng hệ thống đường sắt nối hai thành phố * Bài toán nối mạng máy tính: Cần nối mạng hệ thống gồm n máy tính đánh số từ đến n Biết chi phí nối máy i với máy j m(i,j) (thơng thường chi phí phụ thuộc vào độ dài cáp nối cần sử dụng) Hãy tìm cách nối mạng cho tổng chi phí nhỏ Bài tốn dẫn tốn tìm khung nhỏ Bài tốn tìm khung nhỏ có thuật toán hiệu để giải chúng Sau nghiên cứu thuật toán khung nhỏ kinh điển  Thuật toán Kruskal Tư tưởng thuật toán duyệt danh sách cạnh xếp từ nhỏ đến lớn theo trọng số, kết nạp cạnh vào tập T cho khơng tạo thành chu trình tập Thuật toán dừng T chứa n-1 cạnh Thuật tốn mơ tả sau: Procedure Kruskal Begin Sắp xếp Ci,j; T=; While |T|

Ngày đăng: 28/02/2023, 20:31