Tối ưu hóa truy vấn tìm đường ngắn nhất trên đồ thị động quy mô lớn

61 31 0
Tối ưu hóa truy vấn tìm đường ngắn nhất trên đồ thị động quy mô lớ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

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ PHẠM HẢI ĐĂNG TỐI ƯU HĨA TRUY VẤN TÌM ĐƯỜNG NGẮN NHẤT TRÊN ĐỒ THỊ ĐỘNG QUY MÔ LỚN LUẬN VĂN THẠC SĨ NGÀNH HỆ THỐNG THÔNG TIN Hà Nội – 2016 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CƠNG NGHỆ TRANG PHỤ BÌA PHẠM HẢI ĐĂNG TỐI ƯU HĨA TRUY VẤN TÌM ĐƯỜNG NGẮN NHẤT TRÊN ĐỒ THỊ ĐỘNG QUY MÔ LỚN Ngành: Hệ thống thông tin Chuyên ngành: Hệ thống thông tin Mã số: 60480104 LUẬN VĂN THẠC SĨ NGÀNH HỆ THỐNG THÔNG TIN NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS Nguyễn Ngọc Hóa Hà Nội – 2016 LỜI CẢM ƠN Để hồn thiện luận văn thạc sỹ mình, trước tiên, tơi xin bày tỏ lịng biết ơn sâu tới thầy – PGS.TS Nguyễn Ngọc Hóa (bộ mơn Các hệ thống thông tin – trường Đại học Công nghệ – Đại học Quốc gia Hà Nội) Sự gần gũi, khích lệ nhiệt tình hướng dẫn thầy nguồn động lực lớn suốt thời gian thực luận văn Tôi xin gửi lời cảm ơn chân thành tới tất thầy, cô môn Các hệ thống thông tin, thầy, cô khoa Công nghệ thông tin – trường Đại học Công nghệ – Đại học Quốc gia Hà Nội nhiệt tình giảng dạy, cung cấp cho kiến thức, kinh nghiệm khơng học tập mà cịn sống hàng ngày Đồng thời xin gửi lời cảm ơn đến cha mẹ, người thân gia đình, bạn học viên, đồng nghiệp giúp đỡ, động viên, tạo điều kiện tốt cho suốt khóa học Trường Đại học Cơng nghệ – Đại học Quốc gia Hà Nội để tơi hồn thiện tốt luận văn thạc sỹ Hà Nội, tháng 11 năm 2016 Học viên Phạm Hải Đăng LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp “Tối ưu hóa truy vấn tìm đường ngắn đồ thị động quy mơ lớn” cơng trình nghiên cứu thực thân, thực sở nghiên cứu lý thuyết, kiến thức chuyên ngành, nghiên cứu khảo sát tình hình thực tiễn hướng dẫn khoa học PGS.TS Nguyễn Ngọc Hóa Các kết viết chung với tác giả khác đồng ý tác giả trước đưa vào luận văn Những phần tham chiếu, trích dẫn luận văn nêu rõ phần tài liệu tham khảo Các số liệu, kết trình bày luận văn hồn tồn trung thực Nếu sai tơi xin chịu hồn tồn trách nhiệm chịu kỷ luật khoa nhà trường đề Hà Nội, tháng 11 năm 2016 Học viên Phạm Hải Đăng MỤC LỤC TRANG PHỤ BÌA LỜI CẢM ƠN LỜI CAM ĐOAN MỤC LỤC DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT DANH MỤC CÁC BẢNG DANH MỤC CÁC HÌNH VẼ Giới thiệu chung Động lực nghiên cứu Mục tiêu nội dung luận văn Tổ chức luận văn Chương 1: Cơ sở lý thuyết vấn đề liên quan 1.1 Đồ thị 1.1.1 Giới thiệu đồ thị 1.1.2 Một số thuật ngữ 1.1.3 Biểu diễn đồ thị 1.1.4 Các thuật tốn tìm kiếm đồ thị ứng dụng 1.2 Bài tốn tìm đường ngắn 1.3 Tổng kết chương Chương 2: Bài toán, cách tiếp cận phương pháp giải 2.1 Định nghĩa toán 2.2 Các vấn đề liên quan 2.3 Cách tiếp cận giải toán 2.4 Cấu trúc liệu phù hợp 2.5 Tối ưu trình thêm xóa cạnh đồ th 2.5.1 Thêm cạnh 2.5.2 Xóa cạnh 2.6 Tối ưu trình xử lý truy vấn tìm đường n 2.6.1 Cải thiện thuật tốn tìm đường ngắn từ hai hướng 2.6.2 Song song hóa truy vấn tìm đường ngắn 2.7.Tổng kết chương Chương 3: Thực nghiệm đánh giá 3.1.Cài đặt 3.2.Thực nghiệm 3.2.1 Cuộc thi ACM Sigmod Contest 2016 3.2.2 Kiểm nghiệm với liệu SNAP 3.3.Tổng kết chương Kết luận chung Các đóng góp Hướng phát triển Danh mục cơng trình khoa học tác giả Tài liệu tham khảo DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT Kí hiệu GPS ACM Sigmod DFS BFS BBFS SNAP DANH MỤC CÁC BẢNG Bảng 1.1: Một số thống kê độ phức tạp số phương phức đồ thị [11] Bảng 2.1: Độ trễ nhớ 2016 Bảng 3.1:Thống kê liệu ACM Sigmod Bảng 3.2: Kết thi ACM Sigmod (tính theo giây) Bảng 3.3: Thống kê liệu LiveJournal Pokec Bảng 3.4: Kết thử nghiệm (tính theo mili giây) DANH MỤC CÁC HÌNH VẼ Hình 1.1: Mạng xã hội Hình 1.2: Đường mạng xã hội Hình 1.3: Chu trình mạng xã hội Hình 1.4: Bản đồ khoảng cách số tỉnh thành phía Bắc Hình 1.5: Mạng xã hội có hướng Hình 1.6: Đồ thị Hình 1.7: Đồ thị có hướng Hình 2.1: Dữ liệu đầu vào Hình 2.2: Lơ liệu kiểm thử Hình 2.3: Giới thiệu OpenMP Hình 2.4: Giới thiệu Pthread Hình 2.5: Song song hóa truy vấn Cilk Plus Hình 2.6: Cấu trúc liệu đồ thị Hình 2.7: Thêm cạnh cách chèn vào mảng Hình 2.8: Cấu trúc liệu danh sách kề cấp phát trước khoảng trống Hình 2.9: Thêm cạnh cách cấp trước khoảng trống Hình 2.10: Quá trình thêm cạnh Hình 2.11: Quá trình xóa cạnh Hình 2.12: Thứ tự duyệt đỉnh thuật toán duyệt đồ thị theo chiều rộng từ hai hướng Hình 3.1: Thời gian thực thi hai phép toán thao tác mảng bit Hình 3.2: Kết thi ACM Sigmod 2016 Hình 3.3: Kết thử nghiệm với liệu SIGMOD TEST Hình 3.4: Kết thử nghiệm với liệu POKEC Hình 3.5: Kết thử nghiệm với liệu LIVEJOURNAL 43 Thủ tục 2: Thêm cạnh (u, v) vào đồ thị G Để tích hợp q trình song song hóa tìm khoảng cách ngắn nhất, trước thực xóa cạnh, tất truy vấn tìm đường ngắn danh sách trước thực Thủ tục xóa cạnh (u, v) đồ thị G mô tả Thủ tục 3: Xóa cạnh (u, v) đồ thị G Thủ tục quan trọng tìm đường ngắn hai đỉnh (u, v) dựa thuật toán duyệt đồ thị theo chiều rộng từ hai hướng cải tiến sử dụng hai mảng đỉnh vào (incoming_array) đỉnh (outgoing_array) Q trình mơ tả cụ thể Thủ tục 44 Thủ tục 4: Tìm đường ngắn hai đỉnh (u, v) theo phương pháp duyệt đồ thị theo chiều rộng từ hai hướng cải tiến Trong thuật toán duyệt đồ thị theo chiều rộng (mục 1.1.4), có bước đánh dấu đỉnh duyệt Để đánh dấu đỉnh này, thuật toán cài đặt theo mã giả giới thiệu (mục 1.1.4) Khi đó, để đánh dấu đỉnh xét/chưa xét cần khởi tạo mảng số lượng đỉnh đồ thị Ví dụ đồ thị triệu cạnh, cần có mảng triệu phần tử Với phần tử kiểu chiếm dung lượng byte nhớ, không gian lưu 45 trữ mảng byte * 1.000.000 = 4.000.000 byte ~ megabyte nhớ Tuy nhiên, thao tác trực tiếp đến bit, dùng thứ tự bit để đánh dấu đỉnh đồ thị, đỉnh chưa xét giá trị bit 0, đỉnh xét giá trị bit Khi khơng gian lưu trữ mảng đánh dấu đồ thị có triệu 1.000.000 bit ~ 125.000 byte ~ 0.125 megabyte nhớ Như vậy, không gian nhớ giảm 32 lần Điều cần thiết thao tác với đồ thị quy mô liệu lớn Mặt khác, cài đặt mảng đánh dấu theo kiểu truy xuất đến bit, phép toán bit nhanh nhiều so với phép toán phần tử mảng Đồ thị Hình 3.1 miêu tả chi tiết thời gian thực thi hai phép toán thao tác mảng thao tác bit Trong đồ thị, số lượng phép toán bao gồm tổng số lần gán phần tử (một bit) số lần kiểm tra xem phần tử gán hay chưa milisecond Thời gian thực thi hai ph mảng b 1000 Số lượng phép tốn Bit Hình 3.1: Thời gian thực thi hai phép Cuối cùng, Cilk Plus dùng để song song hóa thủ tục tìm đường ngắn Thủ tục 5: Xử lý song song truy vấ 46 3.2 Thực nghiệm 3.2.1 Cuộc thi ACM Sigmod Contest 2016 Trong thi này, liệu đồ thị lớn dùng để đánh giá giải pháp đội Mỗi bao gồm tập q trình thêm cạnh, xóa cạnh, truy vấn tìm đường ngắn liên tục Bảng 3.1 thống kê chi tiết thông số liệu kiểm tra ACM Sigmod Bảng 3.1:Thống kê liệu ACM Sigmod Thông số Đỉnh Cạnh Bậc lớn Bậc lớn Dựa quy định ban tổ chức, tất giải pháp đội kiểm nghiệm máy tính có cấu sau: + CPU: x Intel E5-2620v2 (12 cores / 24 threads) + RAM: 20GB + Hệ điều hành: Ubuntu 14.04 Linux + Phần mềm: Automake 1.15, gcc5.2.1 Dưới kết giải pháp cài đặt ngơn ngữ lập trình C: Bảng 3.2: Kết thi ACM Sigmod (tính theo giây) Bộ liệu Đội Small Medium X-Large XX-Large 0.118 0.494 1.284 2.878 0.107 0.220 0.886 2.333 akgroup (giải pháp luận văn/đồng giải ba) H_minor_free (giải nhất) Với kết trên, giải pháp lựa chọn năm đội xuất sắc thi lập trình ACM Sigmod 2016 (Hình 3.2) mời đến trình bày kết hội nghị Sigmod 2016 3.2.2 Kiểm nghiệm với liệu SNAP Hai liệu phù hợp với mô hình chọn LiveJournal Pokec Trong LiveJournal liệu cộng đồng trực tuyến miễn phí với gần 10 triệu thành viên, lượng đáng kể số lượng thành viên thường xuyên hoạt động (có khoảng 300.000 cập nhật/ngày) LiveJournal cho phép thành viên trì tạp chí, blog cá nhân nhóm Nó cho phép người cộng đồng tự kết bạn với [5] Pokec liệu mạng xã hội trực tuyến phổ biến Slovakia Mặc dù Facebook phát triển đây, số lượng người dùng Pokec ổn định Mạng xã hội Pokec triển khai 10 năm có khoảng 1,6 triệu người kết nối Bộ liệu bao gồm liệu người dùng (ẩn danh) tồn mạng Nó bao gồm giới tính, tuổi, sở thích, giáo dục… Thơng tin cung cấp dạng ngôn ngữ Slovakia Kết nối mạng xã hội có hướng [5] 48 Hình 3.2: Kết thi ACM Sigmod 2016 49 Chi tiết hai liệu miêu tả Bảng 3.3 Bảng 3.3: Thống kê liệu LiveJournal Pokec Thông số Đỉnh Cạnh Độ dài khoảng cách lớn Bậc lớn Bậc lớn Cấu hình máy thử nghiệm + CPU: x Intel Xeon E7- 4850 @ 2.00GHz (10 cores / 20 threads) + RAM: 128GB + Hệ điều hành: CentOS 6.7 Linux + Phần mềm: Automake 1.15, gcc5.2.0 Khối lượng kiểm nghiệm Để kiểm nghiệm phương pháp, công cụ sinh tự động kiện xây dựng theo phương pháp trình bày mục 2.1 Với đồ thị, sinh kiểm thử với khoảng 1.000.000 kiện Tỉ lệ kiện truy vấn/thêm cạnh/xóa cạnh tương ứng 8/1/1 Thực chất, có khoảng 800.000 truy vấn tìm đường ngắn nhất, 100.000 kiện thêm cạnh 100.000 kiện xóa cạnh Kết thử nghiệm Thuật tốn trình bày luận văn so sánh với hai giải pháp Reference, Snap trình bày mục 2.2, với giải pháp thi ACM Sigmod Contest 2016 Trong giải pháp Reference, đồ thị lưu trữ dạng danh sách liền kề theo kiểu dictionary ngơn ngữ lập trình python Mỗi kiện thêm cạnh xóa cạnh thực Sự kiện truy vấn sử dụng thuật tốn tìm kiếm tìm đường ngắn từ hai hướng Cịn giải pháp Snap, đồ thị 50 lưu trữ dạng danh sách liền kề theo cấu trúc liệu vector ngơn ngữ lập trình C++ Hai kiện thêm cạnh xóa cạnh thực Sự kiện truy vấn sử dụng thuật toán tìm đường ngắn từ hai hướng Thêm nữa, giải pháp bốn đội xuất sắc thi ACM Sigmod 2016 sử dụng để so sánh Dưới tóm tắt giải pháp bốn đội H_minor_free (đội đạt giải nhất): Lưu trữ đồ thị dạng danh sách cạnh liền kề theo cấu trúc vector ngôn ngữ C++ Mỗi cạnh gán thêm thuộc tính ALIVE: cạnh qua, DEAD: cạnh qua, UNKNOWN: cạnh thay đổi q trình thực lơ Với lơ, thuật toán thực qua ba bước Bước 1: Với cạnh thêm vào xóa thay đổi thuộc tính cạnh thành UNKNOWN Bước 2: Sử dụng thuật toán duyệt đồ thị theo chiều rộng từ hai hướng sử dụng OpenMP để song song truy vấn Bước 3: Thay đổi thuộc tính cạnh thành ALIVE (sự kiện thêm cạnh), DEAD (sự kiện xóa cạnh) sau trình truy vấn Uoa_team (đội đạt giải nhì): Đồ thị biểu diễn dạng danh sách kề, gồm danh sách kề đỉnh vào danh sách kề đỉnh Các kiện thêm cạnh xóa cạnh không thực song song mà lưu cấu trúc liệu khác với phiên Sự kiện truy vấn sử dụng thuật toán duyệt đồ thị theo chiều rộng từ hai hướng kết hợp với phương pháp threadpool để tăng tốc trình truy vấn While1: Đồ thị biểu diễn dạng hai danh sách kề đỉnh đỉnh vào Mỗi kiện thêm cạnh xóa cạnh thêm vào danh sách transaction Sau kết thúc lô, transaction áp dụng để thêm cạnh xóa cạnh từ đồ thị Chương trình sử dụng nhiều luồng để tăng tốc xử lý kiện Luồng xử lý kiện thêm, xóa cạnh Sự kiện truy vấn sử dụng thuật toán duyệt đồ thị theo chiều rộng từ hai hướng phân phối cho luồng lại gStreamPKU: Lưu trữ đồ thị dạng danh sách cạnh liền kề theo cấu trúc unordered_map ngôn ngữ C++ Một đồ thị tạm gọi Delta Graph xây dựng để lưu kiện thêm cạnh xóa cạnh với nhãn thời gian kiện Thuật toán duyệt đồ thị theo chiều rộng từ hai hướng sử dụng kiện truy vấn kết hợp với Threading Building Blocks (TBB) để tăng tốc trình truy vấn 51 Để đánh giá hiệu thuật toán, phương pháp chạy tổng cộng lần, sau lấy kết trung bình Đối với giải pháp luận văn đội thi ACM Sigmod 2016, chương trình thực thi với 24 luồng (giống điều kiện máy kiểm thử ban tổ chức) Kết trung bình trình bày chi tiết Bảng 3.4 Bảng 3.4: Kết thử nghiệm (tính theo mili giây) Bộ liệu Giải pháp Giải pháp luận văn Reference Snap H_minor_free Uoa_team While1 gStreamPKU Bên cạnh đó, luận văn so sánh phương pháp giải pháp thay đổi số lượng luồng xử lý truy vấn Kết chi tiết miêu tả Hình 3.3, Hình 3.4 Hình 3.5 Milliseconds Milliseconds Hình 3.3: Kết thử nghiệm với liệu SIGMOD TEST Hình 3.4: Kết thử nghiệm với liệu POKEC Milliseconds Hình 3.5: Kết thử nghiệm với liệu LIVEJOURNAL Dựa kết thu được, rút kết luận, tùy thuộc vào liệu mà q trình song song hóa có hiệu hay khơng Bộ liệu Sigmod có số lượng đỉnh có bậc bậc ngồi lớn Nói cách khác, số đỉnh tập trung đến, tập trung từ vài đỉnh, không phân bố đồ thị Hệ số lượng đỉnh treo nhiều Do đó, truy vấn tìm đường ngắn thực thi nhanh Khi đó, chi phí cho việc quản lý nhiều luồng khơng bù lại chi phí thi hành song song hóa Bởi vậy, trường hợp số lượng luồng cho kết tốt Ngược lại, hai liệu LiveJournal Pokec có quy mô liệu đồ sộ nhiều lần so với liệu Sigmod (gấp khoảng 25 10 lần), có tỉ lệ đỉnh/cạnh lớn (3/4 1/2), kết hợp với cạnh phân bố hơn, đó, q trình song song hóa thực có tác dụng Tuy nhiên, việc tăng số lượng luồng lên đến mức định Quá giới hạn này, chương trình gặp phải vấn đề chi phí quản lý luồng đề cập Vì vậy, với liệu, phải dựa vào thực tế để tìm ngưỡng luồng đạt hiệu cao 3.3 Tổng kết chương Chương trình bày chi tiết phương án cài đặt dựa phân tích chương Bên cạnh đó, luận văn so sánh kết thực nghiệm với hai thư viện NetworkX Snap, so sánh cụ thể với bốn đội đạt kết tốt thi lập trình ACM Sigmod 2016 Kết thu cho phép kết luận phương án luận văn đạt hiệu tốt 54 Kết luận chung Các đóng góp Sau thời gian nghiên cứu tìm hiểu đề tài, luận văn hoàn thành đạt nội dung đề với mục tiêu tối ưu truy vấn tìm đường ngắn đơn đồ thị, động, có hướng, không trọng số với quy mô liệu lớn Về lý thuyết, luận văn trình bày số kiến thức đồ thị, dạng đồ thị ứng dụng lý thuyết đồ thị toán cụ thể đời sống hàng ngày Tiếp theo, luận văn trình bày bốn mơ hình liên quan đến việc cài đặt đồ thị thực tế phân tích ưu, nhược điểm mơ hình Bên cạnh đó, luận văn trình bày tốn tìm đường ngắn đồ thị, thuật toán hay sử dụng ứng dụng toán thực tiễn Kế tiếp, luận văn trình bày cơng cụ mã nguồn mở, vấn đề liên quan xử lý toán liên quan đến đồ thị, kết hợp với đánh giá mặt thuận lợi khó khăn áp dụng với đơn đồ thị, động, có hướng, khơng trọng số với quy mô liệu lớn Về thực nghiệm, luận văn đưa phương pháp để cải thiện trình tìm đường ngắn nhất, cài đặt hồn chỉnh mã nguồn ngơn ngữ C Phương pháp kiểm nghiệm thi lập trình ACM Sigmod 2016 cho kết khả quan Thêm vào đó, thuật tốn luận văn so sánh với số công cụ mã nguồn mở cho xử lý toàn liên quan đến đồ thị tốt với bốn đội xuất sắc từ thi lập trình ACM Sigmod 2016 hai LiveJournal Pokec Kết cho thấy phương pháp đạt kết tốt dựa việc sử dụng cấu trúc liệu phù hợp, tối ưu thuật toán duyệt đồ thị theo chiều rộng từ hai hướng, sử dụng công cụ Cilk Plus để song song hóa q trình truy vấn Hướng phát triển Dựa đó, hướng phát triển đề tài tối ưu hóa thuật tốn, áp dụng phương pháp khác vào trình tìm kiếm đường ngắn tính tốn trước hay dự kiến đường ngắn hai đỉnh qua số đỉnh trung gian Từ giảm nhiều thời gian tính tốn lần lại phải tính tốn lại từ đầu đường ngắn Tiếp theo áp dụng kỹ thuật giảm tỉ lệ cache miss CPU cho toán cần hiệu cao khác xử lý giao dịch trực tuyến (Online Transaction Processing) 55 Danh mục cơng trình khoa học tác giả Phuong-Hanh DU, Hai-Dang PHAM, Ngoc-Hoa NGUYEN, "Optimizing the Shortest Path Query on Large-Scale Dynamic Directed Graph", Proceedings of the 3rd IEEE/ACM International Conference on Big Data Computing Applications and Technologies (BDCAT 2016), Shanghai, China, 2016 (Accepted) 56 Tài liệu tham khảo Tiếng Việt [1] Nguyễn Đức Nghĩa, Nguyễn Tơ Thành, Tốn rời rạc.: Nhà xuất Đại học Quốc gia Hà Nội, 2006 Tiếng Anh [2] Dip Sankar Banerjee, Shashank Sharma, and Kishore Kothapalli, "Work efficient parallel algorithms for large graph exploration," in 20th Annual International Conference on High Performance Computing, 2013, pp 433 - 442 [3] Venkatesan T Chakaravarthy, Fabio Checconi, Fabrizio Petrini, and Yogish Sabharwal, "Scalable Single Source Shortest Path Algorithms for Massively Parallel Systems," in Parallel and Distributed Processing Symposium, 2014 IEEE 28th International, 2014, pp 889 - 901 [4] Cilk Plus [Online] https://www.cilkplus.org [5] Stanford Large Network Dataset Collection [Online] http://snap.stanford.edu/data/index.html [6] The ACM SIGMOD Programming Contest (2016) [Online] http://dsg.uwaterloo.ca/ sigmod16contest/ [7] Tom Cormen and Devin Balkcom KHANACADEMY [Online] https://www.khanacademy.org/computing/computer-science/algorithms/ [8] Jayanta Mondal and Amol Deshpande, "Managing large dynamic graphs efficiently," in ACM SIGMOD International Conference on Management of Data, 2012, pp 145-156 [9] Joseph E Gonzalez, Yucheng Low, Haijie Gu, Danny Bickson, and Carlos Guestrin, "PowerGraph: Distributed Graph-Parallel Computation on Natural Graphs," in OSDI'12 Proceedings of the 10th USENIX conference on Operating Systems Design and Implementation, 2012, pp 17-30 [10] Joseph E Gonzalez et al., "GraphX: Graph Processing in a Distributed Dataflow Framework," in OSDI'14 Proceedings of the 11th USENIX conference on Operating Systems Design and Implementation, 2014, pp 599-613 [11] Michael T Goodrich, Roberto Tamassia, and Michael H Goldwasser, Data Structures and Algorithms in Java, 6th ed United States of America: Wiley, 2014 57 [12] Aric A Hagberg, Daniel A Schult, and Pieter J Swar, "Exploring network structure, dynamics, and function using NetworkX," in Proceedings of the 7th Python in Science Conference (SciPy), 2008, pp 11-15 [13] Charles E Leiserson and Tao B Schardl, "A work-efficient parallel breadth-first search algorithm (or how to cope with the nondeterminism of reducers)," in Proceedings of the twenty-second annual ACM symposium on Parallelism in algorithms and architectures, 2010, pp 303-314 [14] Qingxia Li and Wenhong Wei, "A parallel single-source shortest path algorithm based on bucket structure," in 2013 25th Chinese Control and Decision Conference (CCDC), 2013, pp 3445 - 3450 [15] Waqas Nawaz, Kifayat-Ullah Khan, and Young-Koo Lee, "CORE Analysis for Efficient Shortest Path Traversal Queries in Social Graphs," in In Social Graphs,Big Data and Cloud Computing (BdCloud), 2014 IEEE Fourth International Conference, Sydney, 2014, pp 363-370 [16] NetworkX [Online] http://networkx.github.io [17] Open Multi-Processing [Online] http://openmp.org/ [18] POSIX https://computing.llnl.gov/tutorials/pthreads/ [19] Grégoire Scano, Marie-José Huguet, and Sandra Ulrich Ngueveu, "Adaptations of k-shortest path algorithms for transportation networks," in Industrial Engineering and Systems Management (IESM), 2015 International Conference on, 2015, pp 663 - 669 [20] Stanford Network Analysis Platform [Online] http://snap.stanford.edu [21] Leong Hou U, Hong Jun Zhao, Man Lung Yiu, Yuhong Li, and Zhiguo Gong, "Towards Online Shortest Path Computation," IEEE Transactions on Knowledge and Data Engineering, vol 26, no 4, pp 1012 - 1025, Apr 2014 [22] Jian Wei, Kai Chen, Yi Zhou, Qu Zhou, and Jianhua He, "Benchmarking of Distributed Computing Engines Spark and GraphLab for Big Data Analytics," in 2016 IEEE Second International Conference on Big Data Computing Service and Applications (BigDataService), 2016, pp 10 - 13 ... 2.6 Tối ưu trình xử lý truy vấn tìm đường ngắn Trong trình xử lý truy vấn tìm đường ngắn nhất, thuật toán duyệt đồ thị theo chiều rộng sử dụng Thuật toán xem phương pháp tối ưu đồ thị quy mơ lớn, ... song hóa truy vấn tìm đường ngắn nhất, trước thêm cạnh, tất truy vấn tìm đường ngắn danh sách trước thực Thủ tục để thêm cạnh (u, v) vào đồ thị G mô tả 43 Thủ tục 2: Thêm cạnh (u, v) vào đồ thị. .. chúng Trong đồ thị, tìm đường (ngắn nhất) vấn đề tìm kết nối hai đỉnh đồ thị đảm bảo đường ngắn dựa số yêu cầu cho trước Đây vấn đề tảng áp dụng nhiều ứng dụng thực tế tìm đường ngắn hai địa

Ngày đăng: 11/11/2020, 22:20

Từ khóa liên quan

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

Tài liệu liên quan