NGHIÊN CỨU MỘT SỐ THUẬT GIẢI HEURISTIC CHO BÀI TOÁN POT VÀ ỨNG DỤNG

26 467 0
NGHIÊN CỨU MỘT SỐ THUẬT GIẢI HEURISTIC  CHO BÀI TOÁN POT VÀ ỨNG DỤNG

Đ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

NGHIÊN CỨU MỘT SỐ THUẬT GIẢI HEURISTIC CHO BÀI TOÁN POT VÀ ỨNG DỤNG Chương 1: Trình bày tổng quan về các phương pháp phân mảnh dữ liệu và cách tái cấu trúc quan hệ, phương pháp tạo cây toán tử SQL và AQL từ các mảnh. Chương 2: Giới thiệu bài toán POT và các thuật toán trên POT, nghiên cứu các thuật toán Heuristic cho bài toán POT Chương 3: Ứng dụng tại trường THCS Gia Thanh, nhằm giảm tối đa chi phí truyền thông và tăng tốc độ truy cập giữa các vị trí mạng của trường.

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG Đặng Phương Nga Chuyên ngành: Khoa học máy tính Mã số: 60.48.01.01 TÓM TẮT LUẬN VĂN THẠC SĨ HÀ NỘI - 2014 NGHIÊN CỨU MỘT SỐ THUẬT GIẢI HEURISTIC CHO BÀI TOÁN POT VÀ ỨNG DỤNG Luận văn được hoàn thành tại: HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG Người hướng dẫn khoa học: NCVC.PGS.TS. Lê Huy Thập Phản biện 1: …………………………………………………………………………… Phản biện 2: ………………………………………………………………………… Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc sĩ tại Học viện Công nghệ Bưu chính Viễn thông Vào lúc: giờ ngày tháng năm Có thể tìm hiểu luận văn tại: - Thư viện của Học viện Công nghệ Bưu chính Viễn thông 1 MỞ ĐẦU Cây ton t là cch thể hiện bằng đồ thị của một câu truy vấn dạng SQL (Structured Query Language) hay AQL (Algebraic Query Language). Dạng đặc biệt của cây toán t là cây ton t đưng ng POT (Pipelined Operator Tree). POT là cây mà một s ton t của n c thể thc hiện song song vi d liệu ra của ton t này c thể là d liệu vào của ton t. Trên POT, chúng ta có thể thc hiên các thao tc như cân bằng ti, lập lịch truy vấn ti ưu, thc hiện các nhát cắt cục bộ, phân phi các toán t cho các bộ x lí, đưc thc hiện bởi các thuật ton. Khi POT đã đưc x bởi các thuật toán, thì việc thc hiện câu truy vấn tương ứng sẽ gim ti đa thi gian truyền d liệu, tăng tc độ truy cập. Đề tài nghiên cứu các thuật toán Heuristic trên POT là vấn đề chưa đưc nghiên cứu và chưa đưc ứng dụng cụ thể trong thc tế. Kết qu đạt đưc của đề tài c thể đưc ứng dụng để gii quyết cc bài ton phân chia ton t trong câu truy vấn của hệ CSDL phân tn và hệ đa x l phân tn. C thể ứng dụng cho cc vấn đề thc tế khc như chấm thi tuyển vào cc cơ sở đào tạo, bn hàng qua mạng…. Sau một thi gian tìm hiểu nhng vấn đề nêu trên, tôi xin chọn đề tài “Nghiên cứu một số thuật giải heuristic cho bài toán POT và ứng dụng” làm đề tài nghiên cứu luận văn của mình. Ngoài phần mở đầu và kết luận, luận văn này gồm 3 chương: Chương 1: Trình bày tổng quan về các phương php phân mnh d liệu và cách tái cấu trúc quan hệ, phương php tạo cây toán t SQL và AQL từ các mnh. Chương 2: Gii thiệu bài toán POT và các thuật toán trên POT, nghiên cứu các thuật toán Heuristic cho bài toán POT Chương 3: Ứng dụng tại trưng THCS Gia Thanh, nhằm gim ti đa chi phí truyền thông và tăng tc độ truy cập gia các vị trí mạng của trưng. 2 CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1. Các phương pháp phân mảnh và khôi phục các quan hệ. 1.1.1. Các phương pháp phân mảnh Cc kiểu phân mnh cơ bn là: - Phân mnh ngang. + Phân mnh ngang nguyên thủy + Phân mnh ngang dẫn xuất - Phân mnh dọc. - Phân mnh hỗn hp. 1.1.1.1. Phân mảnh ngang Thông tin về CSDL cần thiết cho phân mnh ngang. Thông tin về CSDL là thông tin về lưc đồ khi niệm toàn cục của CSDL. Tức là chúng ta cần biết đưc cch mà quan hệ con sẽ hp lại vi nhau như thế nào. Trong mô hình quan hệ, cc liên kết gia cc thc thể cũng đưc biểu thị bằng quan hệ. Vi mục đích thiết kế phân tn, cc mi liên kết cũng đưc mô hình ho theo kiểu mô hình quan hệ. Theo cch này, chúng ta sẽ vẽ một đưng ni c hưng từ quan hệ Parent đến quan hệ Child. C hai loại phân mnh ngang cơ bn là: phân mnh ngang nguyên thuỷ và phân mnh ngang dẫn xuất. Phân mảnh ngang nguyên thủy Phân mnh ngang nguyên thuỷ là phân rã một quan hệ thành cc tập gồm cc bộ da trên cc vị từ đưc định nghĩa trên quan hệ đ. Phân mnh ngang nguyên thuỷ đưc định nghĩa bằng một thuật ton chọn trên cc quan hệ nguồn của một lưc đồ CSDL. Mnh ngang R i bao gồm cc bộ của R đưc chọn ra theo công thức: R i = 𝜎 Fi (R), 1≤ i ≤ z. Trong đ F i là công thức chọn đưc s dụng để c đưc mnh R i . Chú  rằng chúng ta xét F i c dạng chuẩn hội, n là một vị từ hội sơ cấp (m i ). 3 Phân mảnh ngang dẫn xuất Phân mnh ngang dẫn xuất là phân mnh một quan hệ da vào cc vị từ đưc định nghĩa trên quan hệ chủ (Parent). Phân mnh ngang dẫn xuất là phân mnh ngang trên quan hệ đích của một đưng ni da theo phép ton chọn trên quan hệ nguồn của đưng ni đ. Nếu cho trưc một đưng ni L, trong đ Nguon (L) = S và Dich (L) = R, các mnh ngang dẫn xuất của R đưc định nghĩa là: R i = R S i , 1 ≤ i ≤ Trong đ  là s lưng các mnh đưc định nghĩa trên R, và S i = 𝜎 Fi (S) vi F i là công thức định nghĩa mnh ngang nguyên thuỷ S i . Các thông tin cần cho phân mảnh ngang dẫn xuất : Mun thc hiện phân mnh ngang dẫn xuất, chúng ta cần ba thông tin vào: tập cc mnh của quan hệ nguồn, quan hệ đích và tập cc vị từ ni na gia nguồn và đích Một số vấn đề phức tạp cần phải chú ý. Trong lưc đồ CSDL, chúng ta hãy gặp nhiều đưng ni đến một quan hệ R (ví dụ như trong hình 1.1, PhanNhiem c hai đưng ni đến). Như thế c thể c nhiều cch phân mnh ngang dẫn xuất cho R. Quyết định chọn cch phân mnh nào cần da trên hai tiêu chuẩn: (1) Phân mnh c đặc tính ni tt hơn. (2) Phân mnh đưc s dụng trong nhiều ứng dụng hơn. 1.1.1.2.Phân mảnh dọc Cho R là một quan hệ trên tập cc thuộc tính Ω = {A 1 , A 2 ,…, A n }. Khi đ phân mnh dọc quan hệ R sinh ra cc mnh R 1 , R 2 ,, …, R n sao cho mỗi mnh là một quan hệ chứa một tập con cc thuộc tính cu quan hệ R và kha của n. Tức là Ω sẽ đưc phân mnh sao cho Ω = Ω 1 ᴗ Ω 2 ᴗ…. Ω n , trong đ R i là mnh quan hệ trên cc thuộc tính Ω i , i=1…k. 4 Mục đích của phân mnh dọc là phân chia quan hệ R thành tập cc quan hệ nhỏ hơn để c nhiều ứng dụng c thể chỉ cần thc hiện trên một mnh, điều này làm gim đng kể chi phí. Mnh ti ưu là mnh sinh ra một lưc đồ phân mnh cho phép gim thiểu thi gian thc hiện của ứng dụng trên mnh đ. Kỹ thuật phân mnh dọc phức tạp hơn phân mnh ngang, vì s la chọn phân hoạch rất ln. Trong trưng hp c m thuộc tính không phi kha chính, thì s mnh c thể là m m . Để c đưc li gii ti ưu cho bài ton phân mnh dọc rất kh, không hiệu qu. Vì vậy vần phi s dụng cc phương php Heuristic cho phân mnh dọc cc quan hệ toàn cục. C hai phương php Heuristic: a. Nhm thuộc tính: bắt đầu gn mỗi thuộc tính cho một mnh và trong mỗi bưc, ni một s mnh lại vi nhau cho đến khi thỏa mãn điều kiện phân mnh. b. Tch mnh: bắt đầu bằng một quan hệ và quyết định cch phân chia quan hệ da trên hành vi truy xuất của cc ứng dụng trên cc thuộc tính. Ở đây chúng ta chỉ xem xét kỹ thuật tch mnh vì n thích hp vi phương php thiết kế CSDLPT từ trên xung. Việc nhân bn cc thuộc tính kha của quan hệ toàn cục trong cc mnh là một đặc trưng của phương php phân mnh dọc cho phép khôi phục quan hệ toàn cục và bo đm tính toàn vẹn ng nghĩa và làm gim đi qu trình trao đổi d liệu. Vì vậy phương php phân mnh dọc chỉ đề cập đến cc thuộc tính không kha. 1.1.1.3.Phân mảnh hỗn hợp Trong đa s cc trưng hp, phân mnh ngang hoặc phân mnh dọc đơn gin cho một lưc đồ CSDL không đủ đp ứng cc yêu cầu từ cc ứng dụng. Trong trưng hp đ, phân mnh dọc c thể đưc thc hiện sau một phân mnh ngang hoặc ngưc lại, sinh ra một li phân hoạch c cấu trúc cây (Hình 1.3). Bởi vì, hai loại chiến lưc phân hoạch này đưc p dụng lần lưt, chọn la này đưc gọi là phân mnh hỗn hp (hybrid fragmentation). 5 1.1.2 Tái cấu trúc quan hệ 1.Tái thiết quan hệ phân mảnh ngang Tái thiết quan hệ từ các mnh thc hiện bằng toán t hp trong c phân mnh ngang nguyên thủy lẫn dẫn xuất  một quan hệ R vi phân mnh F R = {R 1 , R 2 , R 3 , … R m } ta có: R = ∪ R i ; ∀R i ∈ F R 2. Tái thiết quan hệ phân mảnh dọc Quan hệ R có phân mnh dọc F R = {R 1 , R 2 , R 3 , … R r } và các thuộc tính khóa K R = K R i , ∀R i ∈ F R 3. Tái thiết phân mảnh hỗn hợp Trong phân mnh hỗn hp, hai loại phân mnh ngang và phân mnh dọc này đưc áp dụng lần lưt. Vì thế tùy vào từng trưng hp cụ thể, chúng ta tái thiết phân mnh hỗn hp da trên tái thiết quan hệ phân mnh ngang và tái thiết phân mnh dọc đã nêu ở trên. 1.2. Phương pháp tạo cây toán tử dạng SQL và dạng AQL từ các mảnh. Cây ton t là cch thể hiện bằng đồ thị của một câu truy vấn dạng SQL (Structured Query Language) hay AQL (Algebraic Query Language). 1.2.1. Chuyển SQL sang AQL 1.Các phép toán quan hệ 2. Các câu lệnh trong SQL 3. Chuyển SQL sang AQL Phép chiếu: đưc kí hiệu là π, sau đ là cc thuộc tính nằm sau SELECT, nêu điều kiện liên quan đến thuộc tính của quan hệ xuất hiện trong mệnh đề FROM. 6 Phép chọn: đưc kí hiệu là σ, sau đ là cc thuộc tính nằm sau WHERE, nêu điều kiện liên quan đến thuộc tính của quan hệ xuất hiện trong mệnh đề FROM. Thưng s dụng AND, OR, NOT, BETWEEN, các phép toán so sánh. Phép kết nối: đưc kí hiệu là , trong mệnh đề WHERE thưng c điều kiện kết ni nếu như trong mệnh đề FROM có nhiều hơn hai quan hệ. 1.2.2. Tạo cây toán tử dạng SQL và AQL Định nghĩa cây toán tử: Một cây toán t là cây vi mỗi nút lá biểu thị cho một quan hệ đưc lưu trong cơ sở d liệu, nút không phi là lá biểu thị một quan hệ trung gian đưc sinh ra bởi phép toán quan hệ. Chuỗi cc phép ton để đi theo hưng lá đến gc, gc biểu thị kết qu vấn tin. Cách biến đổi câu vấn tin phép tính quan hệ trở thành một cây toán tử như sau: i. Trưc hết tạo ra cc nút l là cc quan hệ trong SQL cc nút l nằm sau FROM. ii. Nút gc đưc tạo ra như phép chiếu chứa cc thuộc tính kết qu, cc thuộc tính này nằm sau SELECT. iii. Lưng t ho (vị từ sau WHERE ) đưc chuyển thành cc phép tính quan hệ thích hp (phép chọn, phép ni ,…) đi từ cc nút l đến gc. Chuỗi này c thể đưc cho trc tiếp qua thứ t xuất hiện của cc vị trí và cc ton t. 1.3 Kết luận chương 1 Trong CSDl quan hệ, các thể hiện của quan hệ là các bng. Vấn đề là tìm một kiểu phân mnh phù hp để phân rã một bng thành nhiều bng con khác nhau, sao cho các câu vấn tin đưc tham chiếu đến các bng d liệu một cch đơn gin nhất. Có ba loại phân mnh cơ bn bao gồm: - Phân mnh ngang 7 + Phân mnh ngang nguyên thủy: Một quan hệ đưc thc hiện trên cc vị từ đưc định nghĩa trên chính quan hệ đ. + Phân mnh ngang dẫn xuất: Phân mnh quan hệ dừa vào vị từ đưc định nghĩa trên quan hệ chủ. - Phân mnh dọc: chia một quan hệ thành nhiều quan hệ con. Phân mnh dọc cho phép vấn tin vi cc quan hệ nhỏ hơn nên gim đưc s truy cập và tăng tc độ truy cập. - Phân mnh hỗn hp: là tổng hp của phân mnh ngang và phân mnh dọc. Tùy vào công việc sau đ chọn kiểu phân mnh nào cho phù hp. Trong mô hình tổ chức d liệu, việc lưu tr d liệu dạng cây giúp cho công việc tìm kiếm d liệu trở nên dễ dàng hơn gọi là cây toán t. Cây ton t là cch thể hiện bằng đồ thị của một câu truy vấn dạng SQL hay AQL. 8 CHƯƠNG 2. MỘT SỐ THUẬT TOÁN GIẢI BẰNG HEURISTIC 2.1. Giới thiệu bài toán POT và các thuật toán trên POT. Chúng ta sẽ tập trung nghiên cứu vào bài ton xc định cây truy vấn ti ưu cho toán t mà một s toán t của cây có thể thc hiện song song vi nhau. Còn nhng đỉnh khác phi thc hiện tuần t tức là d liệu sn xuất ra tại đỉnh này là d liệu tiêu thụ tại đỉnh kế tiếp sau của cây toán t. Cây toán t vi tính chất này đưc gọi là cây toán tử dạng ống- POT (Pipelined Operator Tree). Gọi T = (V,E), là cây toán t vi V là tập đỉnh, mỗi đỉnh đại diện cho một toán t, E là tập các cạnh, t i là trọng s của đỉnh i, c ij là trọng s của cạnh (i,j), và p là s bộ x lý. Vì mỗi cây toán t kiểu này đều đẳng cấu vi ma trận liền kề IP (Isomorphous) [10], [11] mà đỉnh, chính là tiêu đề cột và hàng kèm vi trọng s t i của nó và Ô (cell) - giao của cột và hàng, chính là trọng s cạnh c ij . Gia T và IP có một song ánh, cho nên khi nói về cây toán t T chúng ta có thể hiểu là ma trận liền kề IP. Do đ c thể gọi ma trận liền kề IP là ma trận truy vấn, IP truy vấn hay đơn gin là IP. Để x lý (bằng my tính) đồ thị nói chung- cây toán t ni riêng, ngưi ta dùng IP. Định nghĩa 2.1. Cây truy vấn của cây toán t T (IP truy vấn) là một phân hoạch cc đỉnh của V (hàng hoặc cột của IP) thành p tập F 1 ,…,F p , vi tập đỉnh (cột- hàng) thuộc F k do bộ x lý thứ k thc thi. Chi phí để thc hiện tại bộ x lý k là chi phí thc hiện cc đỉnh trong F k cộng vi trọng s từ cc đỉnh này đến cc đỉnh trên nhng bộ x lý khác. Nói cách khác, chi phí thc hiện F k và tổng trọng s của các cạnh (cell) ni từ một đỉnh (cột- hàng) bất kỳ trong F k đến một đỉnh (cột- hàng) bên ngoài. Quy ưc, c ij = 0 nếu không có cạnh từ i đến j. Định nghĩa 2.2.Ti trên bộ x lý k, kí hiệu L k , là chi phí thc hiện các toán t định vị trên bộ x lý này cộng vi chi phí truyền thông từ bộ x l k đến các bộ x lý [...]... tải mà còn cho các cây truy vấn hình sao Tính đúng đắn của thuật toán được suy từ thuật toán BalancedCuts Khi n= p thì kết quả của thuật toán chính là kết quả của thuật toán BalancedCuts 2.2 Nghiên cứu các thuật toán Heuristic cho bài toán POT 2.2.1 Giới thiệu thuật toán nhát cắt cục bộ cho bài toán POT Thuật toán nhát cắt cục bộ (LocalCuts) là một mở rộng của thuật toán tìm cây tối ưu cho cây toán... xét: Thuật toán có độ phức tạp O(n), n là số đỉnh của cây toán tử đã qua tiền xử lý 15 Kết quả thuật toán là một phân hoạch liên thông không thể đoán trước được nên thông thường thuật toán này sẽ cùng đi đôi với một thuật toán khác (cân bằng tải chẳng hạn) để phân phối các phân hoạch liên thông này cho các bộ xử lý Thuật toán LocalCuts chỉ xem xét sử dụng toán tử collapse hay cut cho một. .. xây dựng một thuật toán trên cơ sở sử dụng hai phép toán gộp đỉnh và cắt cạnh của cây toán tử để quyết định vị trí các đỉnh kề nhau nên đặt cùng một nhóm Fk nào đó hay không, tức là những toán tử nào sẽ được giao cho bộ xử lý k thực hiện 2.1.1 Các thuật toán tách - gộp các đỉnh của POT Định nghĩa 2.5 Cho cây toán tử T(V,E), toán tử Gop(i,j) hay (Collapse(i,j)) gộp hai đỉnh i và j trong... này là dựa vào các nghiên cứu ở các chương trước để ứng dụng lập lịch bài toán POT Tức là chuyển POT sang bảng ( ma trận), từ đó có thể dùng các phép tính ma trận để tiến hành phân chia công việc Việc ứng dụng được thực hiện trên dữ liệu giả định với số toán tử cho trước Tuy nhiên việc xử lý có thể được thực hiện hoàn toàn trên mảng thông qua các chỉ số i và j với số toán tử không... phân hoạch (F1,…,Fp) Thuật toán trên có độ phức tạp O(n2) Tuy thuật toán không để ý trọng số nhưng đơn giản và bảo đảm cân bằng tải giữa các bộ xử lý nên thường được sử dụng kết hợp với các thuật toán khác để cho những kết quả tốt hơn 2.2.4 Ví dụ minh họa Thuật toán cân bằng tải kết hợp với thuật toán LocalCuts: 17 2.3 Kết luận chương 2 Giải thuật Heuristic cho phép tìm kiếm phương... thể ứng dụng cho các vấn đề thực tế khác như chấm thi tuyển vào các cơ sở đào tạo, bán hàng qua mạng, xử lí các thông tin về thiên tai, an ninh, Hướng phát triển của luận văn: Lập lịch tự động tìm và rút trích xâu con để tìm ra các toán tử của SQL và cho tương ứng với các toán tử đại số quan hệ, chuyển sang câu vấn tin đại số, từ đó xây dựng thành IP truy vấn (không còn qua POT) và áp dụng. .. việc là nhanh nhất Thuật toán Dividing độ phức tạp đa thức 2.1.3 Thuật toán Dividing-BalancedCuts Chúng ta thấy rằng đầu ra của thuật toán BalancedCuts [4] là một phân hoạch liên thông có số tập như ý muốn (số tập này phụ thuộc vào số bộ xử lý) Nếu áp dụng thuật toán BalancedCuts cho các trường hợp bộ xử lý thay đổi từ p đến n thì sẽ thu 13 được (n-p+l) bộ cây tối ưu tương ứng Sau đó kết... sinh trong môi trường tính toán phân tán vì thế nhằm giảm tối đa chi phí truyền thông và tăng tốc độ truy cập giữa các vị trí mạng của trường, tác giả ứng dụng lí thuyết vào xây dựng cơ sở dữ liệu quản lý học sinh Áp dụng bảng vấn tin cho bài toán lập lịch Các bước để áp dụng bảng vấn tin vào bài toán lập lịch:  Xây dựng trước câu vấn tin SQL  Tạo lập cây toán tử với: - i: các... tn, là thời gian thực hiện tương ứng với các công việc và khác 0 - p: số bộ xử lý Đầu ra: - Kết quả phân hoạch F chứa các (F1, F2, … Fp) sao cho max1≤i≤pCost(Fi) là nhỏ nhất Kết quả của thuật toán phân hoạch (F1,F2,…,Fp) sao cho maxCost (Fi) là nhỏ nhất Thuật toán Dividing-BalancedCuts có độ phức tạp đa thức Thuật toán được áp dụng khá tốt không những cho những cây truy vấn thông thường... cạnh nối với i và j được chuyển thành nối với m Định nghĩa 2.6 Cho cây toán tử T(V,E), toán tử Tach(i, j) (hay cut(i,j)) được sử dụng cắt cạnh (i, j) với hai đỉnh i và j trong tập Fk để tách hai đỉnh này như sau: - i và j thuộc hai tập Fk, Fl khác nhau - Các đỉnh i và j sẽ có trọng số mới là: tinew = tiold + cij tjnew = tjold + cij 1 .Thuật toán gộp: Gop(i,m) gộp hàng con i vào hàng cha m . Phân mnh ngang. + Phân mnh ngang nguyên thủy + Phân mnh ngang dẫn xuất - Phân mnh dọc. - Phân mnh hỗn hp. 1.1.1.1. Phân mảnh ngang Thông tin về CSDL cần thiết cho phân mnh ngang. Thông. quan hệ Child. C hai loại phân mnh ngang cơ bn là: phân mnh ngang nguyên thuỷ và phân mnh ngang dẫn xuất. Phân mảnh ngang nguyên thủy Phân mnh ngang nguyên thuỷ là phân rã một quan. Phân mảnh ngang dẫn xuất Phân mnh ngang dẫn xuất là phân mnh một quan hệ da vào cc vị từ đưc định nghĩa trên quan hệ chủ (Parent). Phân mnh ngang dẫn xuất là phân mnh ngang trên quan

Ngày đăng: 24/10/2014, 15:26

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan