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 ton t là cch 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 ton t đưng ng POT (Pipelined Operator Tree). POT là cây mà một s ton t của n c thể thc hiện song song vi d liệu ra của ton t này c thể là d liệu vào của ton t. Trên POT, chúng ta có thể thc hiên các thao tc như cân bằng ti, lập lịch truy vấn ti ưu, thc hiện các nhát cắt cục bộ, phân phi các toán t cho các bộ x lí, đưc thc hiện bởi các thuật ton. Khi POT đã đưc x bởi các thuật toán, thì việc thc hiện câu truy vấn tương ứng sẽ gim ti đa thi gian truyền d liệu, tăng tc độ 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 thc tế. Kết qu đạt đưc của đề tài c thể đưc ứng dụng để gii quyết cc bài ton phân chia ton t trong câu truy vấn của hệ CSDL phân tn và hệ đa x l phân tn. C thể ứng dụng cho cc vấn đề thc tế khc như chấm thi tuyển vào cc cơ sở đào tạo, bn hàng qua mạng…. Sau một thi gian tìm hiểu nhng 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 php phân mnh d liệu và cách tái cấu trúc quan hệ, phương php tạo cây toán t SQL và AQL từ các mnh. Chương 2: Gii 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 gim ti đa chi phí truyền thông và tăng tc độ truy cập gia 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 Cc kiểu phân mnh cơ bn là: - Phân mnh ngang. + Phân mnh ngang nguyên thủy + Phân mnh ngang dẫn xuất - Phân mnh dọc. - Phân mnh hỗn hp. 1.1.1.1. Phân mảnh ngang Thông tin về CSDL cần thiết cho phân mnh ngang. Thông tin về CSDL là thông tin về lưc đồ khi niệm toàn cục của CSDL. Tức là chúng ta cần biết đưc cch mà quan hệ con sẽ hp lại vi nhau như thế nào. Trong mô hình quan hệ, cc liên kết gia cc thc thể cũng đưc biểu thị bằng quan hệ. Vi mục đích thiết kế phân tn, cc mi liên kết cũng đưc mô hình ho theo kiểu mô hình quan hệ. Theo cch này, chúng ta sẽ vẽ một đưng ni c hưng từ quan hệ Parent đến quan hệ Child. C hai loại phân mnh ngang cơ bn là: phân mnh ngang nguyên thuỷ và phân mnh ngang dẫn xuất. Phân mảnh ngang nguyên thủy Phân mnh ngang nguyên thuỷ là phân rã một quan hệ thành cc tập gồm cc bộ da trên cc vị từ đưc định nghĩa trên quan hệ đ. Phân mnh ngang nguyên thuỷ đưc định nghĩa bằng một thuật ton chọn trên cc quan hệ nguồn của một lưc đồ CSDL. Mnh ngang R i bao gồm cc 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 mnh 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 mnh ngang dẫn xuất là phân mnh một quan hệ da vào cc vị từ đưc định nghĩa trên quan hệ chủ (Parent). Phân mnh ngang dẫn xuất là phân mnh ngang trên quan hệ đích của một đưng ni da theo phép ton chọn trên quan hệ nguồn của đưng ni đ. Nếu cho trưc một đưng ni L, trong đ Nguon (L) = S và Dich (L) = R, các mnh 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 mnh đưc định nghĩa trên R, và S i = 𝜎 Fi (S) vi F i là công thức định nghĩa mnh ngang nguyên thuỷ S i . Các thông tin cần cho phân mảnh ngang dẫn xuất : Mun thc hiện phân mnh ngang dẫn xuất, chúng ta cần ba thông tin vào: tập cc mnh của quan hệ nguồn, quan hệ đích và tập cc vị từ ni na gia 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 ni đến một quan hệ R (ví dụ như trong hình 1.1, PhanNhiem c hai đưng ni đến). Như thế c thể c nhiều cch phân mnh ngang dẫn xuất cho R. Quyết định chọn cch phân mnh nào cần da trên hai tiêu chuẩn: (1) Phân mnh c đặc tính ni tt hơn. (2) Phân mnh đư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 cc thuộc tính Ω = {A 1 , A 2 ,…, A n }. Khi đ phân mnh dọc quan hệ R sinh ra cc mnh R 1 , R 2 ,, …, R n sao cho mỗi mnh là một quan hệ chứa một tập con cc thuộc tính cu quan hệ R và kha của n. Tức là Ω sẽ đưc phân mnh sao cho Ω = Ω 1 ᴗ Ω 2 ᴗ…. Ω n , trong đ R i là mnh quan hệ trên cc thuộc tính Ω i , i=1…k. 4 Mục đích của phân mnh dọc là phân chia quan hệ R thành tập cc quan hệ nhỏ hơn để c nhiều ứng dụng c thể chỉ cần thc hiện trên một mnh, điều này làm gim đng kể chi phí. Mnh ti ưu là mnh sinh ra một lưc đồ phân mnh cho phép gim thiểu thi gian thc hiện của ứng dụng trên mnh đ. Kỹ thuật phân mnh dọc phức tạp hơn phân mnh ngang, vì s la chọn phân hoạch rất ln. Trong trưng hp c m thuộc tính không phi kha chính, thì s mnh c thể là m m . Để c đưc li gii ti ưu cho bài ton phân mnh dọc rất kh, không hiệu qu. Vì vậy vần phi s dụng cc phương php Heuristic cho phân mnh dọc cc quan hệ toàn cục. C hai phương php Heuristic: a. Nhm thuộc tính: bắt đầu gn mỗi thuộc tính cho một mnh và trong mỗi bưc, ni một s mnh lại vi nhau cho đến khi thỏa mãn điều kiện phân mnh. b. Tch mnh: bắt đầu bằng một quan hệ và quyết định cch phân chia quan hệ da trên hành vi truy xuất của cc ứng dụng trên cc thuộc tính. Ở đây chúng ta chỉ xem xét kỹ thuật tch mnh vì n thích hp vi phương php thiết kế CSDLPT từ trên xung. Việc nhân bn cc thuộc tính kha của quan hệ toàn cục trong cc mnh là một đặc trưng của phương php phân mnh dọc cho phép khôi phục quan hệ toàn cục và bo đm tính toàn vẹn ng nghĩa và làm gim đi qu trình trao đổi d liệu. Vì vậy phương php phân mnh dọc chỉ đề cập đến cc thuộc tính không kha. 1.1.1.3.Phân mảnh hỗn hợp Trong đa s cc trưng hp, phân mnh ngang hoặc phân mnh dọc đơn gin cho một lưc đồ CSDL không đủ đp ứng cc yêu cầu từ cc ứng dụng. Trong trưng hp đ, phân mnh dọc c thể đưc thc hiện sau một phân mnh ngang hoặc ngưc lại, sinh ra một li 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 la này đưc gọi là phân mnh hỗn hp (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 mnh thc hiện bằng toán t hp trong c phân mnh ngang nguyên thủy lẫn dẫn xuất một quan hệ R vi phân mnh 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 mnh 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 mnh hỗn hp, hai loại phân mnh ngang và phân mnh dọc này đưc áp dụng lần lưt. Vì thế tùy vào từng trưng hp cụ thể, chúng ta tái thiết phân mnh hỗn hp da trên tái thiết quan hệ phân mnh ngang và tái thiết phân mnh 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 ton t là cch 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à cc 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à cc 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 ni 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 vi 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 phi là lá biểu thị một quan hệ trung gian đưc sinh ra bởi phép toán quan hệ. Chuỗi cc phép ton để đi theo hưng lá đến gc, gc 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 cc nút l là cc quan hệ trong SQL cc nút l nằm sau FROM. ii. Nút gc đưc tạo ra như phép chiếu chứa cc thuộc tính kết qu, cc thuộc tính này nằm sau SELECT. iii. Lưng t ho (vị từ sau WHERE ) đưc chuyển thành cc phép tính quan hệ thích hp (phép chọn, phép ni ,…) đi từ cc nút l đến gc. Chuỗi này c thể đưc cho trc tiếp qua thứ t xuất hiện của cc vị trí và cc ton 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 bng. Vấn đề là tìm một kiểu phân mnh phù hp để phân rã một bng thành nhiều bng con khác nhau, sao cho các câu vấn tin đưc tham chiếu đến các bng d liệu một cch đơn gin nhất. Có ba loại phân mnh cơ bn bao gồm: - Phân mnh ngang 7 + Phân mnh ngang nguyên thủy: Một quan hệ đưc thc hiện trên cc vị từ đưc định nghĩa trên chính quan hệ đ. + Phân mnh ngang dẫn xuất: Phân mnh quan hệ dừa vào vị từ đưc định nghĩa trên quan hệ chủ. - Phân mnh dọc: chia một quan hệ thành nhiều quan hệ con. Phân mnh dọc cho phép vấn tin vi cc quan hệ nhỏ hơn nên gim đưc s truy cập và tăng tc độ truy cập. - Phân mnh hỗn hp: là tổng hp của phân mnh ngang và phân mnh dọc. Tùy vào công việc sau đ chọn kiểu phân mnh nào cho phù hp. 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 ton t là cch 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 ton xc định cây truy vấn ti ưu cho toán t mà một s toán t của cây có thể thc hiện song song vi nhau. Còn nhng đỉnh khác phi thc hiện tuần t tức là d liệu sn 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 vi 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 vi 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 vi ma trận liền kề IP (Isomorphous) [10], [11] mà đỉnh, chính là tiêu đề cột và hàng kèm vi 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 . Gia 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 gin là IP. Để x lý (bằng my tính) đồ thị nói chung- cây toán t ni 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 cc đỉnh của V (hàng hoặc cột của IP) thành p tập F 1 ,…,F p , vi tập đỉnh (cột- hàng) thuộc F k do bộ x lý thứ k thc thi. Chi phí để thc hiện tại bộ x lý k là chi phí thc hiện cc đỉnh trong F k cộng vi trọng s từ cc đỉnh này đến cc đỉnh trên nhng bộ x lý khác. Nói cách khác, chi phí thc hiện F k và tổng trọng s của các cạnh (cell) ni 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.Ti trên bộ x lý k, kí hiệu L k , là chi phí thc hiện các toán t định vị trên bộ x lý này cộng vi 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 mnh ngang. + Phân mnh ngang nguyên thủy + Phân mnh ngang dẫn xuất - Phân mnh dọc. - Phân mnh hỗn hp. 1.1.1.1. Phân mảnh ngang Thông tin về CSDL cần thiết cho phân mnh ngang. Thông. quan hệ Child. C hai loại phân mnh ngang cơ bn là: phân mnh ngang nguyên thuỷ và phân mnh ngang dẫn xuất. Phân mảnh ngang nguyên thủy Phân mnh ngang nguyên thuỷ là phân rã một quan. Phân mảnh ngang dẫn xuất Phân mnh ngang dẫn xuất là phân mnh một quan hệ da vào cc vị từ đưc định nghĩa trên quan hệ chủ (Parent). Phân mnh ngang dẫn xuất là phân mnh ngang trên quan