1. Trang chủ
  2. » Luận Văn - Báo Cáo

Thiết kế giải thuật bộ nhớ ngoài và cấu trúc dữ liệu bộ nhớ ngoài cho một số bài toán trong hệ thống thông tin địa lý

97 23 0

Đ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

Tóm tắt Hiện ứng dụng quan trọng lónh vực sở liệu, Hệ thống Thông tin Địa lý, hệ thống thiết kế VLSI, đồ họa máy tính, … có nhu cầu sử dụng tập liệu kích thước lớn Tuy nhiên việc di chuyển liệu nhớ đóa thường gây nên tượng tắc nghẽn cổ chai làm giảm hiệu giải thuật Để vượt qua nhược điểm này, cộng đồng giải thuật bắt đầu phát triển cấu trúc liệu giải thuật quản lý tường minh thao tác xuất nhập liệu Các giải thuật gọi giải thuật nhớ Việc quản lý tường minh xuất nhập liệu nhớ tập tin lưu trữ liệu đóa phương pháp làm tăng tính hiệu giải thuật Trong luận văn thạc só này, đề xuất giải thuật phân chia tam giác Delaunay nhớ cho tập điểm không gian hai chiều Giải thuật ứng dụng để xây dựng mô hình độ cao số mạng tam giác bất quy tắc Hệ thống Thông tin Địa lý Chúng trình bày giải thuật chuyển đổi mô hình độ cao số từ mạng tam giác bất quy tắc sang mô hình đường đồng mức cách xây dựng cấu trúc liệu gọi đoạn thẳng đồng hướng nhớ Cây đoạn thẳng đồng hướng nhớ dùng để lưu trữ mô hình độ cao số mạng tam giác bất quy tắc ứng dụng để thực truy vấn Đối với giải thuật thiết kế đây, đưa đánh giá chi phí giải thuật nhớ bao gồm số thao tác I/Os, thời gian tính toán nhớ trong, dung lượng lưu trữ cấu trúc liệu đóa Cuối cùng, trình bày nghiên cứu thực nghiệm để so sánh, đánh giá tính hiệu mặt thời gian hai giải thuật phân chia tam giác Delaunay nhớ nhớ cho tập điểm có kích thước khác Chúng trình bày kết thu xây dựng đoạn thẳng đồng hướng nhớ cho mô hình độ cao số mạng tam giác bất quy tắc có giải thuật phân chia tam giác Delaunay nhớ Chúng thực truy vấn trực tiếp đoạn thẳng đồng hướng để tìm tam giác tích cực cắt mặt phẳng đồng mức Các thí nghiệm thực chi tiết kỹ lưỡng định lượng để đánh giá tính hiệu giải thuật với kích thước nhớ khác Các hành vi quan sát giải thuật thí nghiệm phù hợp với tính chất lý thuyết chúng Chúng kết hợp thư viện giải thuật cấu trúc liệu hiệu nhớ LEDA thư viện quản lý truy cập nhớ TPIE phần thực i Abstract Most important large-scale applications in the areas of database systems, geographic information systems, VLSI design systems and computer graphics, … require massive data files as input However, moving data between external and internal memory usually suffers from the I/O bottleneck and thus reduces the performance of algorithms To circumvent this drawback, the algorithmic community recently started developping data structures and algorithms that explicitly take the I/O communication into account These called external or secondary memory algorithms This is the one of methods to improve the performance of algorithms In this thesis, we propose an external Delaunay triangulation algorithm for points in 2D This algorithm is applied to construct the Digital Elevation Model (DEM) in Triangulated Irregular Networks (TIN) form in GIS We also present an external algorithm for converting DEM to contour lines, that constructs a data structure, called external interval tree, and performs queries on that tree We also estimate the performance of our external algorithms in term of the number of executed I/O operations, the number of CPU operations and the number of occupied disk blocks Finally, we present an extensive experimental study comparing and estimating the time performance of the internal and external Delaunay triangulation for point sets with different sizes We also give our results when constructing the external interval tree for TINs that we have from constructing DEM by our designed external Delaunay triangulation algorithm We perform an output-sensitive query on the tree to retrieve only those active cell that are intersected by the isosurface All the experiments provide detailed and thorough quantitative evaluation of the performance of our designed algorithms with different sizes of internal memory The observed behavior of the algorithms is consistent with their theoretical properties We implement the algorithms using the libraries LEDA ( Library of Efficient Data types and Algorithms) and TPIE (Transparent Parallel I/O Environment) under the operating system Linux ii Lời cảm ơn Tôi muốn gửi lời cảm ơn chân thành đến Thầy Tiến só Lê Ngọc Minh, người động viên, hướng dẫn, góp ý cho đề tài Trong thời gian làm luận văn, lúc gặp khó khăn thầy luôn sẵn sàng lắng nghe giúp giải vấn đề Tôi học thầy tính cẩn thận, chặt chẽ công việc Tôi muốn nói lời cảm ơn với Thầy Tiến só Lê Văn Trung vất vả tìm kiếm tập liệu địa hình thực tế, giảng giải cho kiến thức chuyên môn GIS mà thiếu khó mà hoàn thành phần thực nghiệm luận văn Tôi xin cám ơn Thầy Tiến só Dương Tuấn Anh, Thầy Thạc só Nguyễn Trung Trực thầy cô khác khoa Công Nghệ Thông Tin hỏi thăm động viên hoàn thành đề tài thời hạn quy định Mỗi lần vào khoa Công nghệ Thông tin, luôn gặp nụ cười, lời vui đùa làm thêm lạc quan chị, bạn Đó chị Hằng, chị Lan, Hằng “nhỏ”, Lan “nhỏ” Văn phòng khoa, Hằng “nhỏ” sẵn lòng cho mượn sách mà cần Tôi cám ơn Phòng Đào tạo Sau Đại học hỗ trợ thủ tục để hoàn tất luận văn Tôi cám ơn bạn lớp Trân, Vân, Hòa, Hân, Thái, …và bạn khác động viên, nhắc nhở nâng đỡ thời gian học thời gian thực luận văn Chúng trì liên lạc với để cảm thấy có bạn đồng hành công việc Và muốn nói lời cảm ơn đến gia đình nhỏ tôi, đến Ba, Mẹ, Má, Em Cháu hỗ trợ thời gian nghị lực để hoàn thành luận văn iii Mục lục Tóm tắt i Abstract ii Lời cảm ơn iii Danh sách hình vẽ vi Danh sách bảng viii Caùc quy ước ký hiệu, viết tắt thuật ngữ ix Mở đầu 1.1 1.2 1.3 1.4 Phạm vi, Động lực Mục đích Đặt vấn đề Kết luận văn thạc só Noäi dung luận văn thạc só Các giải thuật xây dựng chuyển đổi mô hình độ cao số 11 2.1 Giới thieäu 11 2.2 Các giải thuật xây dựng mô hình độ cao số TIN chuyển đổi mô hình nhớ 13 2.3 Các giải thuật nhớ lý thuyeát 22 2.4 Các hướng để thiết kế giải thuật I/O hiệu 26 2.5 Kết luận 31 Thiết kế giải thuật phân chia tam giác Delaunay đoạn thẳng đồng hướng nhớ 32 3.1 Giới thiệu 32 3.2 Xây dựng mô hình độ cao số giải thuật phân chia tam giác Delaunay nhớ 34 iv 3.3 Chuyển đổi từ mô hình độ cao số TIN sang mô hình đường đồng mức giải thuật xây dựng đoạn thẳng đồng hướng 44 3.4 Kết luận 58 Hiện thực 60 4.1 4.2 4.3 4.4 4.5 4.6 Giới thieäu 60 Các cấu trúc liệu sử dụng chương trình 60 Các thư viện sử dụng chương trình 62 Hieän thực giải thuật phân chia tam giác Delaunay nhớ 66 Xây dựng đoạn thẳng đồng hướng nhớ 72 Kết luận 80 Kết luận 82 5.1 Tóm tắt 82 5.2 Đề xuất hướng mở rộng đề tài 83 Phuï luïc …………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 84 Tài liệu tham khảo………………………………………………………………………………………… ……………………………………………………………………………………………………….86 v Danh sách hình vẽ 1.1 1.2 1.3 1.4 1.5 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 Cấu trúc nhớ phân cấp hệ thống máy tính đại Mô hình dạng lưới địa hình Các đường đồng mức địa hình Phaân chia tam giác tập điểm địa hình với cao độ đỉnh Một phân chia tam giaùc Delaunay Một ví dụ phân chia tam giác mặt phẳng Đường thẳng α đường thẳng cắt, Sα (tập tam giác màu xanh) tường tam giác; S1 S2 hai phân chia tam giác cách áp dụng giải thuật DeWall cho hai tập điểm 14 Phương pháp xây dựng tăng dần Sα không gian chiều 15 Phân chia tam giác Delaunay tập điểm cách phân chia tam giác khối phần giao tiếp cách độc lập 17 Mô hình TIN đường đồng mức cho cao độ khác 18 TIN đoạn thẳng đồng hướng tương öùng 20 Một ví dụ đoạn thẳng đồng hướng nhớ có hệ số rẽ nhánh b=5 Xv khoảng giá trị liên kết với nút v Các Xv1, Xv2, Xv3, Xv4, Xv5 khoảng nhỏ liên kết với nút v1, v2, v3, v4, v5 24 Sắp thứ tự theo hướng trộn 27 Sắp thứ tự theo hướng phân bố 28 Cây đệm 29 Chia tập điểm vào hệ thống lưới 35 Áp dụng giải thuật chia trị nhớ Guibas – Stolfi để xây dựng phân chia tam giác Delaunay DT_Left DT_Right Các đường α1, α2, α3 đường phân chia tập điểm 36 Tìm tam giác cho phần kết nối Hai cạnh tích cực E1 E2 36 Tìm tam giác tổng quát nằm phía bên trái cạnh tích cực E1 38 Phần kết nối DT_Interface cho DT_left vaø DT_right 38 Hiệu chỉnh đường biên khối phân chia tam giác Các cạnh màu xanh bị xóa khỏi phân chia tam giác 39 Kết giải thuật phân chia tam giác Delaunay nhớ đøng phân chia α1 40 Kết giải thuật phân chia tam giác Delaunay nhớ đường phân chia α2 40 Kết giải thuật phân chia tam giác Delaunay nhớ đường phaân chia α3 41 vi 3.10 Phân chia tam giác Delaunay kết 41 3.11 Giải thuật phân chia tam giác Delaunay nhớ 42 3.12 Một ví dụ đoạn thẳng đồng hướng nhớ có hệ số rẽ nhánh b=5 Gọi E khoảng giá trị liên kết với nút u Các E0, E1, E2, E3, E4 khoảng nhỏ liên kết với nuùt u0, u1, u2, u3, u4 47 3.13 Giải thuật đệ quy xây dựng đoạn thẳng đồng hướng nhớ 52 4.1 Cấu trúc nhân TPIE 64 4.2 Số thao tác I/O cho giải thuật phân chia tam giác Delaunay nhớ cho 1.000.000 điểm với kích thước khác nhớ RAM 69 4.3 Kết thực nghiệm thời gian chạy cho hai giải thuật phân chia tam giác Delaunay nhớ giải thuật phân chia tam giác Delaunay nhớ cho tập liệu sinh ngẫu nhiên có kích thước khác 71 4.4 Sự phụ thuộc tuyến tính z vào giá trị khoảng cách x………………………………………………………….……80 4.5 Bản chất cục hàm splines Khi điểm X2 tính toán lại hai đoạn thẳng bắt buộc phải tính toán lại trường hợp hàm spline tuyến tính … ….81 vii Danh sách bảng 3.1 Bảng so sánh số hiệu giải thuật xây dựng mô hình độ cao số 58 3.2 Bảng so sánh kết giải thuật xây dựng đoạn thẳng đồng hướng nhớ lý thuyết 59 4.1 Thời gian chạy số thao tác I/O thứ tự tập điểm nhớ chạy giải thuật phân chia tam giác Delaunay nhớ cho 1.000.000 điểm với kích thước nhớ RAM khác 69 4.2 Bảng thống kê thời gian chạy hai giải thuật phân chia tam giác Delaunay nhớ giải thuật phân chia tam giác Delaunay nhớ cho tập liệu sinh ngẫu nhiên có kích thước khác Thời gian chạy giải thuật phân chia tam giác Delaunay nhớ bao gồm thời gian thứ tự tập điểm nhớ ngoài, thời gian phân bổ tập điểm vào lưới đồng nhất, thời gian tính phân chia tam giác Delaunay 70 4.3 Kết giai đoạn tính toán đoạn thẳng từ mô hình độ cao số dạng TIN tập điểm khác 74 4.4 Baûng thống kê thời gian xây dựng đoạn thẳng đồng hướng nhớ kích thước tập tin lưu trữ đóa 76 4.5 Baûng thống kê thời gian truy vấn 10 giá trị độ cao 77 viii Các quy ước ký hiệu, viết tắt thuật ngữ Các ký hiệu tổng quát sau sử dụng toàn luận văn: GIS : Geographic Information System I/O : Input/Output DEM : Digital Elevation Model TIN : Triangulated Irregular Network Các ký hiệu tiệm cận dùng để đánh giá thời gian chạy chương trình: • Cho trước hàm g(n), ta ký hiệu Θ(g(n)) tập hàm số Θ(g(n)) = { f(n) : tồn số dương c1, c2, vaø n0 cho ≤ c1g(n) ≤ f(n) ≤ c2g(n) với n ≥ n0 } Chúng ta ghi f(n)= Θ(g(n)), nói g(n) giới hạn tiệm cận f(n) • Cho trước hàm g(n), ta ký hiệu O(g(n)) tập hàm số O(g(n)) = { f(n) : tồn số dương c n0 cho ≤ f(n) ≤ cg(n) với n ≥ n0 } Chúng ta ghi f(n)= O(g(n)), nói g(n) giới hạn cận f(n) • Cho trước hàm g(n), ta ký hiệu Ω (g(n)) tập hàm số Ω (g(n)) = { f(n) : tồn số dương c n0 cho ≤ cg(n) ≤ f(n) với n ≥ n0 } Chúng ta ghi f(n)= Ω (g(n)), nói g(n) giới hạn cận f(n) • Các ký hiệu biểu diễn số thao tác I/O - Chi phí I/Os thao tác quét: ⎛N⎞ O(scan(N)) = O ⎜ ⎟ = O(n) ⎝B⎠ số thao tác I/O cần thiết để đọc N phần tử từ tập tin đóa - Chi phí I/Os thao tác thứ tự: ⎛N O(sort(N)) = O ⎜ ⎝B log M B N⎞ ⎟ = O(nlogmn) B⎠ số thao tác I/O cần thiết để thứ tự N phần tử nhớ [25] ix Thuật ngữ - Cây đoạn thẳng: Segment tree - Cây đoạn thẳng đồng hướng: Interval tree - Chiến lược đọc trước: Prefetching strategy - Chiến lược lưu cache: Caching strategy - Giải thuật chia trị: Divide and conquer algorithm - Giải thuật chia trị có trộn trước: Merge-first divide and conquer algorithm - Giải thuật tăng dần ngẫu nhiên: Randomized incremental algorithm - Hướng cấu trúc liệu: Data structuring paradigm - Hướng mô PRAM: PRAM simulation paradigm - Hướng phân bố: Distribution paradigm - Hướng trộn: Merge paradigm - Định lý chủ đạo: Master theorem [8] - Máy tính truy xuất bất kỳ: Random Access Machine (RAM) - Người máy học: Robotics - Tập hợp khối: A block collection - Bài toán xử lý trọn gói: Batched problem x trình hình thành đường đồng mức Các tam giác kết lưu tập tin đóa sử dụng để tính toán đường đồng mức theo phương pháp nội suy tuyến tính xuất kết hình Như vậy, phần chuyển đổi mô hình độ cao số gồm giai đoạn sau: • Giai đoạn 1: Từ mô hình độ cao số dạng TIN, tính toán tập đoạn thẳng tương ứng với mô hình Kết nhận lưu vào tập tin đóa • Giai đoạn 2: Xây dựng đoạn thẳng đồng hướng nhớ cho tập tin đoạn thẳng kết giai đoạn Thực truy vấn đoạn thẳng đồng hướng nhớ xây dựng Kết truy vấn lưu tập tin • Giai đoạn 3: Với kết tìm giai đoạn 2, dùng phương pháp nội suy để tìm điểm có độ cao nằm tam giác hiển thị hình 4.5.2 Môi trường tính toán cài đặt Giải thuật chuyển đổi mô hình độ cao số đoạn thẳng đồng hướng nhớ thực máy tính có cấu hình để thực giải thuật xây dựng mô hình độ cao số dạng TIN giải thuật phân chia tam giác Delaunay nhớ ngoài, máy notebook TOSHIBA Tecra 780DVD với hệ điều hành Linux 7.3 Bộ nhớ máy 64MB, kích thước trang đọc đóa nhớ 128KB CPU Pentium 486 Chúng sử dụng quản lý nhớ TPIE để thay đổi phân bố kích thước nhớ RAM áp đặt giới hạn nhớ RAM sử dụng cho chương trình Chúng thực giải thuật chuyển đổi mô hình độ cao số với giá trị nhớ giới hạn 8MB Chúng sử dụng hàm MM_manager.set_memory_limit(size_t size) hàm MM_manager.enforce_memory_limit()của thư viện TPIE để áp đặt dung lượng nhớ sử dụng cho chương trình 4.5.3 Giai đoạn 1: tính toán đoạn thẳng Trong giai đoạn này, mô hình độ cao số TIN, kết giải thuật phần 4.4, đọc từ đóa vào nhớ Mỗi tam giác mô hình tính toán để tìm giá trị z_min giá trị z_max cao độ z đỉnh tạo thành tam giác Các giá trị z_min z_max với tọa độ đỉnh tam giác lưu trữ cấu trúc liệu đoạn thẳng tập tin kết đóa Mô hình độ cao số TIN lưu đóa với cấu trúc đồ thị phẳng GRAPH LEDA Các bước tìm đoạn thẳng sau: 73 • Kiểm tra xem đồ thị lưu trữ có phải đồ thị phẳng hay không Nếu không chuyển sang đồ thị phẳng Bước thứ tự lại cạnh cho nút v, thứ tự cạnh danh sách kề với nút v nằm theo chiều ngược chiều kim đồng hồ Đây điều kiện bắt buộc để xây dựng danh sách mặt đồ thị phẳng hai chiều • Tính toán danh sách mặt (faces) đồ thị • Tìm z_min z_max cho mặt có kích thước Và lưu kết tìm lên đóa Bảng 4.3 bảng thống kê kết nhận giai đoạn tính toán đoạn thẳng mô hình độ cao số dạng TIN tập điểm khác Số điểm Kích thước tập tin lưu trữ mô hình độ cao số (MB) Thời gian tính toán đoạn thẳng (giây) Số đoạn thẳng Kích thước tập tin lưu trữ đoạn thẳng (MB) Thời gian ghi đoạn thẳng vào tập tin (giây) 100.000 16,0 2.136,0 198.618 14,3 24,32 200.000 32,4 4.104,2 396.213 28,5 50,00 300.000 48,6 5.870,5 592.240 42,6 68,72 400.000 74,5 8.795,6 789.256 56,7 97,62 500.000 81,6 11.406,1 983.962 70,8 120,00 600.000 98,1 11.426,8 1.177.978 84,8 140,11 700.000 114,7 13.603,7 1.372.859 98,8 167,25 800.000 131,3 15.208,9 1.567.465 112,8 195,23 900.000 147,9 17.720,5 1.760.069 126,6 219,78 1.000.000 164,6 18.997,2 1.953.496 140,6 220,01 Bảng 4.3: Kết giai đoạn tính toán đoạn thẳng từ mô hình độ cao số dạng TIN tập điểm khác 4.5.4 Giai đoạn 2: xây dựng đoạn thẳng đồng hướng nhớ truy vấn Xây dựng đoạn thẳng đồng hướng nhớ Trong giai đoạn này, tập tin đoạn thẳng đọc vào nhớ để xây dựng đoạn thẳng đồng hướng nhớ theo giải thuật mô tả chương 3, phần 74 Cây đoạn thẳng đồng hướng lưu trữ tập tin Mỗi tập tin tập hợp khối đóa Một tập hợp dùng để lưu trữ nút Một tập hợp dùng để lưu trữ nút Một tập hợp dùng để lưu trữ leftlists Một tập hợp dùng để lưu trữ rightlists Một tập hợp dùng để lưu trữ multilists Cách sử dụng nhiều tập hợp khối đóa để lưu trữ cho phép ta lựa chọn kích thước khối cho nút trong, nút lá, leftlists, rightlists, multilists cách độc lập cho phép ta gom nhóm nút đóa nhằm tăng hiệu truy xuất Mỗi nút lưu trữ trỏ đến nút khóa để phân biệt chúng, đồng thời lưu trữ trỏ đến leftlists, rightlists, multilists tương ứng Mỗi nút lá, leftlists, rightlists, multilists lưu trữ đoạn thẳng khối đóa Một đoạn thẳng biểu diễn 88 bytes, trang trao đổi liệu nhớ đóa lưu trữ tối đa 1489 đoạn thẳng, nghóa B =1489 Trong chương trình, hệ số tách nút 10 Như đoạn thẳng đồng hướng ⎛ ⎝ nhớ có chiều cao O ⎜ log10 N⎞ ⎟ với N số đoạn thẳng B⎠ Trước tiên đoạn thẳng thứ tự nhớ hàm thứ tự nhớ AMI_sort() Sau đó, bắt đầu giai đoạn xây dựng theo thứ tự từ xuống cách quét phân bố đoạn thẳng vào nút Cách thực thể liên kết chặt chẽ công cụ xử lý công cụ xử lý khối TPIE Bảng 4.4 bảng liệt kê kết thu xây dựng đoạn thẳng đồng hướng nhớ cho tập liệu đoạn thẳng địa hình Thời gian xây dựng đoạn thẳng đồng hướng nhớ nhiều lần so với thời gian tính toán đoạn thẳng cho toàn mô hình độ cao số TIN Cấu trúc đoạn thẳng đồng hướng nhớ yêu cầu nhiều không gian đóa để lưu trữ tập tin lưu trữ mô hình độ cao số dạng TIN khoảng nhiêu không gian đóa để lưu trữ tập tin trung gian Tuy vậy, tập tin trung gian xóa kết thúc chương trình Tập tin stack có kích thước nhỏ không đổi suốt trình xây dựng đoạn thẳng đồng hướng nhớ Các tập tin lưu trữ leftlists rightlists luôn có kích thước Tỷ lệ tăng kích thước toàn tập tin lưu trữ cấu trúc đoạn thẳng đồng hướng nhớ vào khoảng lớn lần so với kích thước tập tin lưu trữ mô hình độ cao số dạng TIN Chiều cao thấp Với gần triệu đoạn thẳng mà chiều cao với hệ số tách nút 10 Điều giúp cho trình truy vấn nhanh 75 Số đoạn thẳng Giai đoạn xây dựng đoạn thẳng đồng hướng nhớ Thời gian xây dựng (giây) Kích thước tập tin lưu trữ nút (MB) Kích thước tập tin lưu trữ leftlists (MB) Kích thước tập tin lưu trữ rightlists (MB) Kích thước tập tin lưu trữ multilists (MB) Kích thước tập tin stack (KB) Tổng số kích thước lưu trữ (MB) Chiều cao Tỷ lệ tập tin lưu trữ tập tin mô hình TIN 198.618 47,73 0,82 17,5 17,5 19,5 4,1 55,32 3,46 396.213 134,47 1,27 35,5 35,5 37,5 4,1 109,77 3,37 592.240 212,26 1,49 51,5 51,5 52,5 4,1 156,99 3,23 789.256 334,89 1,69 78,5 78,5 79,5 4,1 238,27 3,19 983.962 439,09 1,89 84,5 84,5 83,5 4,2 254,39 3,11 1.177.978 528,06 1,99 100,5 100,5 99,5 4,2 302,49 3,08 1.372.859 575,96 1,99 116,5 116,5 114,5 4,2 349,49 3,05 1.567.465 747,40 2,18 133,5 133,5 129,5 4,2 398,68 3,04 1.760.069 807,79 2,39 149,5 149,5 144,5 4,2 445,89 3,01 1.953.496 934,98 2,39 165,5 165,5 159,5 4,3 492,89 2,99 Bảng 4.4: Bảng thống kê thời gian xây dựng đoạn thẳng đồng hướng nhớ kích thước tập tin lưu trữ đóa Truy vấn Cây đoạn thẳng đồng hướng nhớ xây dựng lần cho địa hình Sau trình truy vấn thực nhiều lần Khi thực truy vấn cho giá trị độ cao, kết nhận tam giác tích cực cắt mặt phẳng đồng mức Các tam giác tích cực lưu trữ tập tin Khi truy vấn, trình duyệt nút gốc, dần xuống đến nút Chương trình sử dụng cách truy xuất đến khối đóa BTE_coll_mmap, nghóa truy xuất đến khối đóa khối đọc trực tiếp từ đóa vào nhớ mà không cần sử dụng đệm Cách truy xuất giúp tiết kiệm thời gian truy xuất đến khối đóa Bảng 4.5 bảng thống kê thời gian thực 10 câu truy vấn Thời gian để đọc nút vào nhớ kiểm tra giá trị khóa không tốn nhiều thời gian Thời gian truy vấn phụ thuộc nhiều vào số lượng đoạn thẳng kết Trong bảng, thời gian tìm kết truy vấn cho 10 giá trị độ cao nhỏ nhiều so với thời gian xây dựng đoạn thẳng đồng hướng nhớ 76 số lượng đoạn thẳng tìm gấp đến lần số lượng đoạn thẳng có Giai đoạn truy vấn Số đoạn thẳng Chiều cao Thời gian (giây) Kết Thời gian ghi kết vào tập tin (giây) Kích thước tập tin lưu kết (MB) 198.618 28,92 715.903 85,59 54,4 396.213 68,20 1.414.903 165,92 100,8 592.240 117,63 2.121.838 250,12 151,2 789.256 172,12 2.828.299 301,63 237,4 983.962 228,89 3.526.032 415,40 108,4 1.177.978 275,52 4.214.597 495,60 300,4 1.372.859 330,07 4.906.054 577,95 349,7 1.567.465 409,40 5.612.347 660,90 400,0 1.760.069 487,54 6.298.028 740,38 448,9 1.953.496 592,94 6.994.319 824,19 497,0 Baûng 4.5: Bảng thống kê thời gian truy vấn 10 giá trị độ cao Như vậy, chi phí I/O để truy vấn giá trị độ cao h nói nhỏ so với thời gian xây dựng đoạn thẳng đồng hướng Giải thuật giữ nhớ hai khối liệu Một khối nút khối khối leftlist, rightlist, multilist tương ứng để tiến hành công việc tìm kiếm Sau tìm kiếm xong, chương trình xóa khối đoạn thẳng khỏi nhớ, chuẩn bị để đọc khối Do vậy, để thực truy vấn cần sử dụng nhớ 4.5.5 Giai đoạn 3: Nội suy hiển thị Kết giai đoạn truy vấn giá trị độ cao h tam giác tham gia vào trình hình thành đường đồng mức Để hiển thị đường đồng mức, điểm nằm tam giác có độ cao với độ cao h tiến hành nội suy Để đơn giản, chương trình sử dụng phương pháp nội suy tuyến tính Cách đơn giản để mô tả thay đổi phạm vi lớn mô hình hóa điểm nằm mặt phẳng thành dãy giá trị đa thức Ýù tưởng coi điểm nằm đường thẳng mặt phẳng tùy thuộc vào điểm chiều hay hai chiều 77 Giả sử điểm không gian có giá trị tọa độ x, y biến độc lập, giá trị z biến phụ thuộc Xét giá trị z đo dọc theo tập điểm p1, p2, p3, …, pn Giả sử z tăng đơn điệu theo x hình 4.3 Như thay đổi z phạm vi lớn đánh giá gần đường thẳng tuyến tính z = b0 + b1x, với b0 b1 hệ số đa thức, tính điểm cắt đường thẳng với trục z hệ số góc đường thẳng Đường thẳng coi hợp tổng giá trị sai số ∑ ⎛⎜⎝ Z − Z ⎞⎟⎠ n ^ i i =1 i laø nhỏ n mẫu thử Z x Hình 4.4: Sự phụ thuộc tuyến tính z vào giá trị khoảng cách x Trong trường hợp toán nội suy tọa độ điểm có độ cao z = h nằm tam giác, giải thuật xem tam giác mặt phẳng đồng qua đỉnh tam giác áp dụng nội suy tuyến tính để tìm tọa độ x, y điểm có độ cao z = h Tuy nhiên, nội suy tuyến tính cho kết hiển thị không đẹp vị trí đường gấp khúc Trước hiển thị đường cong, hàm splines áp dụng vị trí gấp khúc Các hàm splines hàm tính toán cục số điểm mà không cần phải tính toán lại toàn giá trị nội suy có Định nghóa chung cho hàm đa thức phần p(x) là: p(x) = pi(x) với xi < x < xi+1, i = 0, 1,…, k−1 pi(j) (j) (xi) = pi+1 (xi) với j = 0, 1,…, r−1; i = 1, 2,…, k−1 Các điểm xi,…, xk-1 chia khoảng x0, xk thành k khoảng nhỏ gọi điểm ngắt 78 x0 x1 x'2 x4 x3 x2 Hình 4.5: Bản chất cục hàm splines Khi điểm X2 tính toán lại hai đoạn thẳng bắt buộc phải tính toán lại trường hợp hàm spline tuyến tính Các điểm có độ cao z = h tìm thấy phương pháp nội suy hiển thị lên hình Các điểm hiển thị cửa sổ hình tọa độ x, y chúng Các cạnh nối liền hai điểm hiển thị hình Trường hợp đặc biệt tam giác có ba đỉnh có độ cao z = h, ba đỉnh tam giác xuất hình mà không cần phải nội suy Trường hợp tam giác có hai đỉnh có độ cao z trùng với giá trị truy vấn z = h cạnh tam giác xuất hình mà không cần phải nội suy Trong chương trình sử dụng kiểu liệu để hiển thị window LEDA để xuất nhập đối tượng hình học cho hệ thống X11 Unix 4.5.6 Nhận xét Trong phần thực chuyển đổi mô hình độ cao số dạng TIN sang mô hình đường đồng mức cấu trúc đoạn thẳng đồng hướng nhớ ngoài, nhận thấy: • Thời gian xây dựng đoạn thẳng đồng hướng từ mô hình độ cao số TIN nhớ bao gồm thời gian tạo đoạn thẳng cho tam giác mô hình, thời gian xây dựng đoạn thẳng đồng hướng nhớ Trong giai đoạn tạo đoạn thẳng chiếm nhiều thời gian Thời gian xây dựng đoạn thẳng đồng hướng nhớ nói không đáng kể so với thời gian tạo đoạn thẳng • Cây đoạn thẳng đồng hướng nhớ xây dựng có chiều cao O(logbn), số thao tác I/Os O(nlogbn) với N số đoạn thẳng, n = N B vaø b = O( B ) • Cây đoạn thẳng đồng hướng nhớ xây dựng lần cho toàn mô hình Toàn đoạn thẳng đồng hướng lưu đóa dạng tập tin Cấu trúc đoạn thẳng đồng hướng 79 chép từ vị trí sang vị trí khác mà không cần phải xây dựng lại từ đầu Sau đó, thực truy vấn nhiều lần • Giải thuật truy vấn giá trị độ cao sử dụng hai khối liệu nhớ để tìm T tam giác tích cực tham gia vào trình hình thành đường đồng mức Số lượng tam giác tích cực thường nhỏ cho giá trị độ cao Khi hiển thị đường đồng mức, ta cần đọc vào nhớ số lượng nhỏ T tam giác tích cực mà không cần phải duyệt toàn mô hình độ cao số phải đọc toàn mô hình vào nhớ • Giải thuật truy vấn thực với số thao tác I/Os O(logbn + t) với t = T B thực nghiệm chứng minh thấy chi phí I/Os cho câu truy vấn nhỏ so với toàn thời gian tìm tam giác tích cực • Thời gian hình thành đường đồng mức bao gồm thời gian tìm tam giác tích cực, thời gian lưu trữ tam giác lên đóa thời gian nội suy điểm độ cao để hiển thị hình cần Khi sử dụng phương pháp nội suy, phải áp dụng hàm splines để chỉnh lại hình dáng đường đồng mức điểm gấp khúc 4.6 Kết luận Chương phần trình bày kết thực nghiệm so sánh tính hiệu hai giải thuật phân chia tam giác Delaunay để giải toán xây dựng mô hình độ cao số dạng TIN từ tập điểm đo đạc rời rạc không gian Giải thuật thứ giải thuật phân chia tam giác Delaunay nhớ theo Guibas – Stolfi thư viện LEDA [17] Giải thuật thứ hai giải thuật phân chia tam giác Delaunay nhớ thiết kế mô tả phần 3.3 luận văn Đối với tập điểm có kích thước nhỏ 1.000.000 điểm giải thuật phân chia tam giác Delaunay nhớ có thời gian chạy lâu giải thuật phân chia tam giác Delaunay nhớ Nhưng kích thước tập điểm tăng lên thời gian chạy giải thuật phân chia tam giác Delaunay nhớ lại hơn, giải thuật phân chia tam giác Delaunay nhớ bị hệ điều hành chấm dứt chừng thiếu nhớ Số thao tác I/Os giải thuật phân chia tam giác Delaunay nhớ giai đoạn xây dựng phân chia tam giác không phụ thuộc vào kích thước nhớ RAM, mà có số thao tác I/Os giai đoạn thứ tự thay đổi theo kích thước RAM Phần chương trình bày kết nhận xây dựng đoạn thẳng đồng hướng nhớ tìm đường đồng mức Chúng chứng minh thực nghiệm thời gian tìm tam giác tích cực cho giá trị độ 80 cao nhỏ nhiều so với thời gian xây dựng đoạn thẳng đồng hướng nhớ Thời gian truy vấn không phụ thuộc vào kích thước nhớ RAM Các kết thực nghiệm giải thuật phù hợp với kết lý thuyết Điều quan trọng muốn nhấn mạnh giải thuật cấu trúc liệu nhớ đề xuất yêu cầu dung lượng nhớ Ví dụ sử dụng 4MB RAM cho phần phân chia tam giác Delaunay 8MB RAM cho phần xây dựng đoạn thẳng đồng hướng nhớ để xử lý tập tin có dung lượng gấp từ đến 17 lần dung lượng RAM sử dụng chương trình thử nghiệm Hệ điều hành sử dụng phần nhớ RAM trống cho công việc khác Như vậy, giải thuật nhớ cấu trúc liệu nhớ ứng dụng cách hiệu cho toán xử lý tập liệu có kích thước lớn mà cần nhớ RAM cho phần xử lý liệu chương trình 81 Chương Kết luận 5.1 Tóm tắt Động lực mục đích luận văn thạc só thiết kế giải thuật nhớ cấu trúc liệu nhớ cho số toán xử lý liệu có kích thước lớn Hệ Thống Thông Tin Địa Lý kiểm tra tính hiệu quản lý I/O thực tế theo mô hình nhớ Vitter Shriver [24] Phương pháp luận áp dụng phương pháp mô PRAM kết hợp kiểu truy xuất liệu tập tin theo kiểu để xây dựng giải thuật nhớ cấu trúc liệu nhớ cách hiệu Bài toán xây dựng mô hình độ cao số dạng TIN giải thuật phân chia tam giác Delaunay nhớ thực chuyển đổi mô hình độ cao số cấu trúc liệu đoạn thẳng đồng hướng nhớ đặt giải lý thuyết tiến hành thí nghiệm để kiểm tra tính hiệu thực tế giải thuật Trong luận văn thạc só này, đề xuất giải thuật nhớ cho toán phân chia tam giác Delaunay có chi phí I/O tuyến tính giai đoạn tính toán phân chia tam giác Giải thuật hình thành dựa vào hướng mô PRAM áp dụng kiểu truy xuất liệu tập tin cách Giải thuật ứng dụng GIS để xây dựng mô hình độ cao số dạng TIN cho địa hình Giải thuật sử dụng nhớ cho phần xử lý liệu chương trình Kết thực nghiệm cho thấy, tập tin điểm có kích thước từ 1.000.000 điểm trở lên thời gian thực giải thuật phân chia tam giác Delaunay nhớ (chạy với kích thước nhớ RAM 4MB) so với giải thuật phân chia tam giác Delaunay nhớ (chạy với toàn kích thước nhớ RAM trống cộng với không gian swap 439MB đóa) Chúng xây dựng đánh giá cấu trúc liệu đoạn thẳng đồng hướng nhớ theo mô hình lý thuyết L Arge Cây đoạn thẳng đồng hướng sử dụng để chuyển đổi mô hình độ cao số từ dạng TIN sang dạng đường đồng mức Giải thuật sử dụng nhớ (8MB), áp dụng cách truy xuất liệu tập tin để thực công việc Các kết thực 82 nghiệm cho thấy thời gian truy vấn đoạn thẳng đồng hướng nhớ nhỏ nhiều so với thời gian xây dựng đoạn thẳng đồng hướng Chương trình kết hợp việc sử dụng thư viện LEDA cho phần thực giải thuật nhớ trong, với TPIE để quản lý xuất nhập liệu đóa nhớ hệ điều hành Linux, để đánh giá, so sánh tính hiệu thời gian tính toán giải thuật hiển thị kết lên hình Các kết nhận sau thí nghiệm phù hợp quán với kết đánh giá lý thuyết Như vậy, việc quản lý tường minh xuất nhập liệu đóa nhớ phương pháp làm tăng tính hiệu giải thuật Nhờ không xuất hiện tượng nghẽn cổ chai liên lạc nhớ tập liệu có kích thước lớn nhớ 5.2 Đề xuất hướng mở rộng đề tài Căn vào đề tài kết luận văn thạc só, đề xuất số hướng nghiên cứu sau: Thiết kế giải thuật nhớ cho ứng dụng GIS sử dụng mô hình nhớ có diện cache Hiện nay, thiết kế giải thuật nhớ sử dụng mô hình nhớ Vitter Shriver [24] Trong mô hình cấu trúc phân cấp nhớ xem hai cấp, cấp nhớ nhớ RAM Ưu điểm mô hình nhớ đơn giản Nhược điểm mô hình tập trung nỗ lực nghiên cứu cấp cấu trúc phân cấp nhớ Một mô hình kết hợp tính đơn giản mô hình hai cấp mô hình phân cấp nhớ thực tế phức tạp đề xuất Ý tưởng mô hình có diện cache thiết kế giải thuật mô hình hai cấp không sử dụng tham số mô tả cấu trúc nhớ hai cấp phần mô tả giải thuật Bằng cách giải thuật hiệu cấu trúc nhớ hai cấp hiệu cấp cấu trúc phân cấp nhớ Thiết kế giải thuật nhớ đáp ứng thời gian thực Các cấu trúc liệu nhớ đáp ứng thời gian thực có thời gian đáp ứng nhanh với câu truy vấn cần trả lời tương lai gần chậm với câu truy vấn cần trả lời tương lai xa Các toán đáp ứng thời gian thực quan trọng toán quản lý không lưu 83 Phụ lục • Chương trình xây dựng mô hình độ cao số giải thuật phân chia tam giác Delaunay nhớ dt_external nhận tập tin nhập tập tin chứa liệu điểm point.dat.Các tham số nhập từ dòng lệnh giá trị dung lượng nhớ RAM sử dụng cho chương trình chuỗi ký tự < filename> Tập tin < filename > tập tin trung gian, lưu trữ điểm phân chia vào lưới nhớ dùng tham khảo nhiều lần bước giải thuật Giá trị xuất chương trình tập tin có tên dt.dat chứa thông tin mô hình độ cao số dạng đồ thị phẳng - Ví dụ chạy chương trình xây dựng mô hình độ cao số giải thuật phân chia tam giác Delaunay nhớ dt_external với tập tin nhập /home/user/data/point.dat tập tin xuất /home/user/data/dt.dat sau o dt_external point_to_grid.dat Sẽ sử dụng 4MB nhớ RAM để nhập điểm từ tập tin /home/user/data/point.dat,sử dụng tập tin point_to_grid.dat làm tập tin trung gian, tính toán phân chia tam giác xuất kết tập tin /home/user/data/dt.dat • Để chuyển đổi mô hình độ cao số đoạn thẳng đồng hướng nhớ ngoài, ta thực bước sau: - Tính toán đoạn thẳng cho mô hình độ cao số chương trình chuyển đổi dt_to_segment Chương trình nhận tập tin /home/user/data/dt.dat làm giá trị nhập, kết đoạn thẳng lưu tập tin /home/user/data/segment.dat Tập tin /home/user/data/segment.dat tập tin nhập cho chương trình xây dựng đoạn thẳng đồng hướng nhớ - Chương trình xây dựng mô hình đoạn thẳng đồng hướng nhớ interval_tree_external nhận tập tin nhập tập tin chứa đoạn thẳng /home/user/data/segment.dat.Các tham số nhập từ dòng lệnh giá trị dung lượng nhớ RAM sử dụng cho chương trình chuỗi ký tự tên tập tin xuất lưu trữ đoạn thẳng đồng hướng nhớ Phần mở rộng tập tin gán vào tập tin chạy chương trình Các tập tin có tên 84 tập tin lưu trữ đoạn thẳng đồng hướng sử dụng để thực truy vấn ƒ Ví dụ chạy chương trình xây dựng đoạn thẳng đồng hướng nhớ interval_tree_external sử dụng tập tin đoạn thẳng /home/user/data/segment.dat làm liệu nhập tập tin xuất để lưu trữ có tên itree.dat nằm /home/user/data sau: o interval_tree_external itree.dat Sẽ sử dụng MB nhớ RAM để nhập đoạn thẳng từ tập tin /home/user/data/segment.dat để xây dựng đoạn thẳng đồng hướng nhớ Cây kết lưu tập tin có tên itree.dat - Phần truy vấn đoạn thẳng đồng hướng nhớ thực tập tin có tên itree.dat, với tham số nhập từ dòng lệnh tên tập tin chứa đoạn thẳng đồng hướng nhớ biến ƒ Ví dụ để truy vấn đoạn thẳng đồng hướng nhớ itree.dat, chương trình query_interval_tree_external thực sau: o query_interval_tree_external itree.dat Sẽ truy vấn đoạn thẳng đồng hướng để tìm tam giác cắt mặt phẳng z= Các tam giác kết lưu tập tin /home/user/data/query.dat Sau tiến hành nội suy để tìm điểm tam giác có độ cao - Chương trình contour dùng hiển thị đường đồng mức độ cao z= Chương trình nhận tam giác /home/user/data/query.dat làm liệu nhập, tiến hành nội suy hiển thị đường đồng mức lên hình 85 Tài liệu tham khảo [1] A Aggarwal and J S Vitter The Input/Output Complexity of Sorting and Related Problems Communications of the ACM, 31(9):116-1127, 1988 [2] L Arge Efficient External - Memory Data Structures and Applications PhD Thesis, University of Aarhus, 1996 [3] L Arge, O Procopiuc, J S Vitter Implementing I/O-Efficient Data Structures Using TPIE Center for Geometric and Biological Computing, Dept of Computer Science, Duke University, Durham, NC 27708, USA, 2002 [4] Min-Bin Chen, Tyng-Ruey Chuang and Jan-Jan Wu Parallel 2D Delaunay Triangulations in HPF and MPI Institute of Information Science, Academia Sinica Nankang, Taipei 115, Taiwan 2001 [5] Y -J Chiang Dynamic and I/O-Efficient Algorithms for Computational Geometry and Graph Problems: Theoretical and Experimental Results PhD Thesis, Brown University, August 1995 [6] P Cignoni, C Montani, and R Scopigno DeWall, A fast divide and conquer Delaunay triangulation algorithm in Ed Computer-Aided Design, 30(5):333341, 1998 [7] T H Cormen and M Hirschl Early Experience in Evaluating the Parallel Disk Model with the ViC* Implementation Technical Report PCS-TR96-293, Dartmouth College, Computer Science, Hanover, NH, September 1996 [8] T H Cormen, C E Leiserson, R L Rivest, C Stein Introduction to Algorithms Second Edition MIT Press, 2002 [9] A Crauser LEDA-SM: External Memory Algorithms and Data Structures in Theory and Practice Dr Ing Thesis, University of Saarbrucken, March, 2001 [10] T P Fang and L A Piegl Delaunay Triangulation Using Uniform Grid IEEE Computer Graphics & Applications, 13(3):36-47, May 1993 [11] M T Goodrich, J -J Tsay, D.E Vengroff, and J.S Vitter External-memory computational geometry In FOCS, pages 714-723, 1993 [12] L Guibas and J Stolfi Primitives for the manipulation of General subdivision and the computation of Voronoi diagrams ACM Transaction on Graphics, 4(2):74-123, 1985 [13] S Huddleston and K Mehlhorn A new data structure for representing sorted list Acta Informatica, 17:157-184, 1982 86 [14] D Hutchinson, A Maheshwari, J R Sack, and R Velicescu Early Experiences in Implementing the Buffer Tree School of Computer Science, Carleton University, Ottawa, Ont., Canada K1S5B6 [15] P C Kanellalis, S Ramaswamy, D E Vengroff, and J S Vitter Indexing for data models with constraints and classes In Proc ACM Symp Principles of Database Systems, 1993 Invited to special issue of JCSS on Principles of Databases Systems [16] M van Kreveld Algorithms for Triangulated Terrains Dept of Computer Science Utrecht University, The Netherlands [17] K Mehlhorn and S Naher LEDA: A platform for combinatorial and geometric computing Cambridge University Press, Cambridge, 2000 [18] M H Nodine and J S Vitter Large-scale sorting in parallel memories In ACM SPAA, pages 29-39, 1991 [19] Y N Patt The I/O subsystem - a candidate for improvement Guest Editor’s Introduction in IEEE Computer, 27(3):15-16, 1994 [20] TerraFlow Project http://www.cs.duke.edu/Geo*/TerraFlow [21] D E Vengroff A transparent parallel I/O environment In Proc 1994 DAGS Symposium on Parallel Computation, 1994 [22] D E Vengroff and J S Vitter Supporting I/O efficient scientific computation in TPIE In Proc IEEE Symp on Parallel and Distributed Computing, 1995 [23] J S Vitter and M H Nodine, Large-scale sorting in uniform memory hierarchies Journal of Parallel and Distributed Computing, 17:107-114, 1993 [24] J S Vitter and E A M Shriver Algorithms for parallel memory, I: Two-level memories Algorithmica, 12(2-3):110-147, 1994 [25] J S Vitter External Memory Algorithms and Data Structures: Dealing with Massive Data ACM Computing Surveys, Vol 33, No 2, June 2001, 209 – 271 87 ... hướng thiết kế khác tìm cách chuyển đổi cấu trúc liệu nhớ sang cấu trúc liệu nhớ Cách cho phép chuyển cấu trúc liệu hiệu nhớ thành giải thuật I/O hiệu cách thay đổi cấu trúc liệu sử dụng nhớ thành... vào trình hình thành đường đồng mức GIS Các giải thuật nhớ trình bày chương giải thuật làm tảng để thiết kế giải thuật nhớ chương Chương trình bày hướng thiết kế giải thuật nhớ xây dựng cấu trúc. .. toàn nút Trong [2], L Arge thiết kế mô hình so sánh nhớ cho tất giá trị M B Mô hình cho phép thiết kế phương pháp chung để chuyển đổi giải thuật nhớ thành giải thuật nhớ trong, cho số lần so

Ngày đăng: 18/02/2021, 08:04

Xem thêm:

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w