Thuật toán Hybrids đàn kiến tối ƣu truy vấn phân tán

Một phần của tài liệu (LUẬN văn THẠC sĩ) luận văn thạc sĩ tối ưu hóa truy vấn trong các cơ sở dữ liệu phân tán (Trang 71)

Dựa trên ƣu điểm, nhƣợc điểm của 2 thuật toán quy hoạch động và tối ƣu đàn kiến, Tansel và cộng sự đã đề xuất thuật toán DP-ACO để tối ƣu hóa truy vấn đa kết nối bằng (multi way chain equijoin queries) trong môi trƣờng CSDL phân tán. Quy hoạch động tạo ra những thiết kế tốt nhất có thể nhƣng có thời gian thực hiện dài và yêu cầu bộ nhớ rất lớn khi kích thƣớc của các quan hệ và số lƣợng kết nối tăng lên trong truy vấn. Quy hoạch động có thể thực hiện tối ƣu đến 7 quan hệ nhƣng DP-ACO đã đƣợc chứng minh là giải pháp khả thi bằng việc tạo ra các kế hoạch thực thi tốt với các câu truy vấn 15 quan hệ trong thời gian giới hạn và không gian bộ nhớ hạn chế. Một ƣu điểm khác của DP-ACO là có thể dễ dàng thích ứng với bộ tối ƣu hóa truy vấn đang tồn tại sử dụng thuật toán dựa trên quy hoạch động.

Thuật toán dựa trên hành vi của đàn kiến thực trong việc thiết lập đƣờng đi ngắn nhất giữa thức ăn và tổ của nó. Kiến có thể giao tiếp với nhau thông qua các hóa chất phát ra từ chúng trên đƣờng đi từ tổ tới chỗ thức ăn và ngƣợc lại, gọi là pheromone. Nhƣ vậy, đƣờng đi ngắn hơn là đƣờng có lƣợng pheromone cao hơn, kiến sẽ có xu hƣớng chọn con đƣờng ngắn hơn này.

Thuật toán tối ƣu đàn kiến: Hình 2.21 mô tả quy trình ra quyết định của loài kiến trong việc lựa chọn đƣờng đi của chúng. Khi các con kiến gặp nhau ở điểm ra quyết định A, một số sẽ lựa chọn đi theo hƣớng này và một số chọn đi theo hƣớng khác một cách ngẫu nhiên. Giả sử kiến có tốc độ di chuyển nhƣ nhau, những con lựa chọn bên ngắn sẽ đến B nhanh hơn so với những con chọn bên còn lại. Kết quả là lƣợng pheromone sẽ lớn hơn ở bên ngắn so với bên dài do nhiều kiến chọn hơn. Hệ thống đàn kiến nhân tạo đƣợc tạo thành từ nguyên tắc này của đàn kiến để giải quyết các vấn đề tối ƣu hóa khác nhau. Pheromone là chìa khóa ra quyết định của đàn kiến.

Hình 2.20: Quá trình quyết định đƣờng đi của đàn kiến

Trong ACO, một con kiến nhân tạo sẽ xây dựng giải pháp bằng cách đi qua đồ thị kết nối đầy đủ GC(V,E), trong đó V là tập các đỉnh, E là tập các cạnh. Theo Dorigo, kiến nhân tạo sẽ di chuyển từ đỉnh tới đỉnh dọc theo các cạnh của đồ thị để xây dựng giải pháp thành phần (partial solution). Thuật toán tối ƣu hóa đàn kiến đầu tiên đƣợc biết đến là Ant System, đƣợc đề xuất từ những năm 90. Sau đó, một số thuật toán ACO khác đã đƣợc đề xuất. Hình 2.21 mô tả thuật toán ACO metaheuristic, lặp 3 giai đoạn:

+ ConstructAntSolution: Một tập m con kiến nhân tạo xây dựng giải pháp từ các thành phần của một tập hữu hạn các giải pháp có sẵn. Ban đầu tập này rỗng.

+ ApplyLocalSearch: Khi các giải pháp đã đƣợc xây dựng và trƣớc khi cập nhật pheromone, chức năng này sẽ cải thiện các giải pháp thu đƣợc bởi các con kiến thông qua tìm kiếm cục bộ. Bƣớc này không bắt buộc.

+ UpdatePheromones: Nó làm tăng giá trị pheromone gắn liền với giải pháp tốt và làm giảm với các giải pháp xấu. Điều này đạt đƣợc bằng:

+ Giảm tất cả các giá trị pheromone qua việc bốc hơi pheromone + Tăng mức pheromone với tập các giải pháp tốt đƣợc chọn.

ACO đƣợc thiết kế và phát triển đặc biệt để giải quyết vấn đề liên tục của tối ƣu tổ hợp (tối ƣu hóa kết nối). Số lƣợng quan hệ trong một truy vấn càng tăng thì sử dụng càng nhiều bộ nhớ và nhiều xử lý. Hệ quản trị cơ sở dữ liệu phân tán hiện đang đƣợc sử dụng nhƣ một hệ quản trị cơ sở dữ liệu chuẩn trong tất cả các ứng dụng thƣơng mại bao gồm dữ liệu ở các trạm khác nhau. Hành vi đánh dấu đƣờng đi của loài kiến đƣợc áp dụng để hƣớng những con kiến đến các khu vực chƣa đƣợc khám phá trong không gian tìm kiếm và thăm tất cả các node mà không biết hình dạng đồ họa của các giải pháp tối ƣu đƣợc tạo ra trong truy vấn CSDL phân tán. Kiến tính toán thời gian chạy của các kế hoạch thực thi của truy vấn đƣợc cung cấp và đƣa ra kết quả tối ƣu, nhanh chóng, hiệu năng cao với chi phí hiệu quả.

Quy hoạch động (DP)[6]

Quy hoạch động là một thuật toán tối ƣu hóa truy vấn nổi tiếng nhất trong hệ quản trị cơ sở dữ liệu. Quy hoạch động hoạt động theo cách từ dƣới lên và xây dựng tất cả các kế hoạch con có thể. Giải pháp tối ƣu cho bất kỳ kế hoạch con nào cũng đƣợc tính toán duy nhất một lần và không đƣợc tính lại. Đầu tiên, thuật toán xây dựng các kế hoạch truy cập cho mọi quan hệ trong câu truy vấn và liệt kê tất cả các kế hoạch có hai kết nối trong giai đoạn 2. Quy hoạch động tiếp tục cho đến khi nó đã liệt kê tất cả các kế hoạch n kết nối. Một kế hoạch hiệu quả có thể tỉa các kế hoạch khác với cùng kết quả đầu ra. Quy hoạch động sẽ liệt kê (A B) và

(B A) là hai kế hoạch thay thế nhƣng chỉ có kế hoạch tốt hơn trong hai đƣợc giữ lại sau khi cắt tỉa. Các kế hoạch thực thi đƣợc trừu tƣợng hóa trong PT (Processing Trees). Đầu vào của các vấn đề tối ƣu hóa đƣợc đƣa ra nhƣ một đồ thị truy vấn. Đồ thị truy vấn này bao gồm tất cả các quan hệ đƣợc kết nối nhƣ là các nút lá. PT là một cây nhị phân đơn giản. Lá tƣơng ứng với các quan hệ cơ bản và các nút tƣơng ứng bên trong tham gia các phép kết nối. Các cạnh thể hiện luồng của kết quả thành phần từ nút lá về gốc của cây. Mỗi kế hoạch sẽ có một chi phí thực hiện. Mục đích của tối ƣu hóa là tìm kế hoạch với chi phí thấp nhất có thể. Nếu quan hệ trong của mỗi kết nối là một quan hệ cơ bản, PT đc gọi là left-deep tree. Sẽ có n! cách để phân bổ n quan hệ cơ bản tới các lá của loại PT này. Nếu ko có hạn chế về PT thì nó đƣợc gọi là bushy tree. Trong nghiên cứu này, sẽ sử dụng left-deep tree.

Mô hình chi phí dựa trên tổng thời gian xử lý (CPU time + I/O time) đƣợc sử dụng. Chi phí của một kế hoạch đƣợc tính toán từ dƣới lên. Mức đầu tiên bao gồm kết nối 2 chiều (2-way join). Tất cả các cặp có thể của n quan hệ đƣợc đánh giá cho tất cả các trạm. Nếu hai quan hệ ở trên cùng một trạm, chi phí chỉ bao gồm CPU+ I/O để thực hiện phép kết nối bằng sử dụng thuật toán kết nối nested-loop. Nếu chỉ một trong các quan hệ, gọi là A ở trạm kết nối, chi phí tổng là chi phí truy cập B từ trạm của nó, chi phí chuyển B tới trạm kết nối thông qua mạng truyền thông, chi phí kết nối các bộ của quan hệ A với các bộ của quan hệ B và ghi kết quả các bộ (A,B) đƣợc kết nối trên ổ đĩa cục bộ. Nếu không có quan hệ nào đƣợc lƣu trữ ở trạm nối, tổng chi phí là chi phí quét cả A và B, chuyển chúng qua mạng truyền thông, thực hiện phép kết nối và ghi kết quả lên ổ đĩa. Đối với các mức trên của PT, các kết quả kết nối trung gian đƣợc coi là bảng cơ sở.

Kết hợp thuật toán tối ƣu đàn kiến và quy hoạch động để tối ƣu hóa truy vấn trong cơ sở dữ liệu phân tán [6].

Cơ chế phản hồi tích cực và tính toán phân tán của ACO làm cho nó rất mạnh. ACO có khả năng xử lý song song và tìm kiếm toàn cầu, có khả năng phân tán thấp và tốc độ hội tụ cao. ACO có một số hạn chế nhƣ sự hình thành ban đầu do ACO

không có cách bắt đầu một cách có hệ thống. Tốc độ hội tụ của ACO thấp ở giai đoạn đầu do lƣợng pheromone trên các đƣờng đi khác nhau rất ít nhƣng tốc độ hội tụ tăng đối với câu trả lời tối ƣu vì cơ chế phản hồi tích cực. Từ đó, sự kết hợp của ACO với các thuật toán khác nhƣ quy hoạch động, thuật toán di truyền và thuật toán tối ƣu hóa bầy đàn đƣợc đề xuất để cung cấp kết quả tốt hơn trong xử lý truy vấn CSDL.

Khi kết hợp với quy hoạch động, chúng ta mô phỏng các hoạt động của kiến trên đồ thị của PT (Processing Trees). Mỗi quá trình tính toán thời gian chạy của một kế hoạch thực hiện sẽ đƣợc coi là một con kiến trong thuật toán. Các giải pháp đại diện cho thức ăn. Kiến có đƣợc thức ăn càng sớm thì lƣợng pheromone chúng tiết ra trên đƣờng đi của giải pháp càng nhiều. Càng cần nhiều thời gian cho một con kiến đi theo đƣờng này thì thời gian bay hơi càng nhiều. Kiến kiếm ăn liên tục tìm kiếm kế hoạch thực hiện tốt hơn. Các đƣờng đi là những lựa chọn thay thế tổ hợp cho các kế hoạch của quy hoạch động ở mỗi mức. Nếu có 5 trạm trong phép kết nối của (A B C), sẽ có 5 đƣờng đi khác nhau. A B là một trong các truy vấn con trong kế hoạch này. Với 5 trạm, chúng ta phải kiểm tra thời gian trả lời của từng trạm. Nếu có thể tìm ra giải pháp tối ƣu ở trạm 2 thì tăng pheromone của nó trong khi các giải pháp khác của (A B) bị giảm pheromone do bị bay hơi. Thuật toán sử dụng một tham số giới hạn không gian tìm kiếm (SSL-search space limit) để kiểm soát độ phức tạp thời gian và không gian của thuật toán. Không gian tìm kiếm sẽ đƣợc thu gọn bằng cách sử dụng pheromone của mỗi kế hoạch con. Nếu ko có quá trình thu gọn (cắt tỉa) này thì DP-ACO sẽ hoạt động giống quy hoạch động. Tăng giá trị SSL sẽ làm tăng theo cấp số nhân yêu cầu về thời gian và không gian của thuật toán. Pheromone của mỗi đƣờng đƣợc đánh giá theo phƣơng trình:

( ) (∑ ( ) (

( )))

Đƣờng đi quyết định có thể đƣợc tính toán theo công thức sau: ∑ l ϵ subsolutions Trong đó pk

ij là xác suất dịch chuyển của con kiến thứ k chuyển từ giải pháp con thứ i sang giải pháp con thứ j, l là một thành phần của các giải pháp con. Các giải pháp con này đƣợc sắp đặt nhƣ câu lệnh SQL, α và β kiểm soát sự quan trọng tƣơng đối của pheromone τij với các thông tin heuristic ηij.

Các giải pháp con cho mỗi kết nối đa chiều đƣợc tính toán và pheromone đƣợc cập nhật phụ thuộc vào lực lƣợng của các quan hệ. Lƣợng tỉa đƣợc kiểm soát bởi các tham số SSL.

2.5. Kết luận chƣơng

Chƣơng này đã trình bày những vấn đề cơ bản về xử lý câu truy vấn, các thành phần chính của tối ƣu hóa truy vấn, bao gồm không gian tìm kiếm, mô hình chi phí và chiến lƣợc tìm kiếm; đã minh họa việc sử dụng các kỹ thuật kết nối và nửa kết nối trong các thuật toán tối ƣu cơ bản nhƣ D-INGRES, System R*, SDD-1, DP-ACO. Mỗi phƣơng pháp tối ƣu đều có ƣu điểm, nhƣợc điểm của nó. Phƣơng pháp tối ƣu phân tán tĩnh, động có ƣu nhƣợc điểm giống nhƣ trong hệ thống tập trung, phƣơng pháp tối ƣu dựa trên phép nửa kết nối sử dụng tốt nhất với mạng chậm, phƣơng pháp hỗn hợp là tốt nhất trong môi trƣờng động ngày nay vì nó trì hoãn các quyết định quan trọng nhƣ lựa chọn sao chép và phân phối các truy vấn con đến các trạm tại thời điểm khởi động truy vấn. Vì vậy, nó có thể tăng tính sẵn sàng và cân bằng tải của hệ thống tốt hơn.

Chƣơng này tập trung nghiên cứu truy vấn nối vì truy vấn nối là các truy vấn thƣờng xuyên nhất trong môi trƣờng quan hệ và chúng đã đƣợc nghiên cứu rộng rãi. Tuy nhiên, việc tối ƣu hóa truy vấn chung chứa phép kết nối, phép hợp và hàm tính tổng là vấn đề khó hơn. Phân tán các phép hợp trên các nối là phƣơng pháp

đơn giản và tốt do truy vấn có thể đƣợc giảm nhƣ hợp của các truy vấn nối con đƣợc tối ƣu riêng lẻ. Phép hợp cũng thƣờng đƣợc sử dụng trong hệ quản trị cơ sở dữ liệu phân tán vì chúng cho phép cục bộ hóa các quan hệ đƣợc phân mảnh ngang.

CHƢƠNG 3.

CÀI ĐẶT THUẬT TOÁN TỐI ƢU HÓA TRUY VẤN PHÂN TÁN 3.1. Xác định bài toán

Trong quản lý bán hàng thì một khách hàng có thể mua một hay nhiều sản phẩm, mua một lần hay nhiều lần. Do đó, cần có phần mềm để quản lý việc bán hàng. Vì vậy khi thiết kế cơ sở dữ liệu sẽ bao gồm các thông tin về sản phẩm (mã sản phẩm, tên sản phẩm, màu sắc, kích cỡ, trọng lƣợng, giá, ngày nhập,…) và thông tin về khách hàng (tên, ngày sinh, địa chỉ, điện thoại,…) và thông tin về hàng hóa của khách hàng mỗi lần mua (mã đơn hàng, sản phẩm, số lƣợng, đơn giá, tổng tiền hóa đơn,…). Trong phạm vi luận văn, tôi sẽ demo một phần cơ sở dữ liệu gồm các bảng sau:

Table: Geography

Tên cột Kiểu dữ liệu Giải thích

GeographyKey Int Khóa chính

City nvarchar(30) Tỉnh, thành phố

StateProvinceCode nvarchar(3) Mã thành phố StateProvinceName nvarchar(50) Tên tỉnh, thành phố

CountryRegionCode nvarchar(3) Mã vùng

EnglishCountryRegionName nvarchar(50) Tên vùng

Table: InternetSales

Tên cột Kiểu dữ liệu Giải thích

ProductKey Int Khóa ngoại (bảng Product)

CustomerKey Int Khóa ngoại (bảng Customer)

SalesOrderNumber nvarchar(20) Mã đặt đơn hàng OrderQuantity Smallint Chất lƣợng yêu cầu

UnitPrice Money Giá trên một đơn vị sản phẩm

Discount Amount Float Lƣợng giảm giá

ProductStandardCost Money Giá chuẩn của sản phẩm TotalProductCost Money Tổng giá trị của sản phẩm

Table: Customer

Tên cột Kiểu dữ liệu Giải thích

CustomerKey Int Khóa chính

GeographyKey Int Khóa ngoại (bảng Geography)

FirstName nvarchar(50) Tên

MiddleName nvarchar(50) Tên đệm

LastName nvarchar(50) Tên họ

BirthDate Datetime Ngày sinh

MaritalStatus nchar(1) Tình trạng hôn nhân

Gender nvarchar(1) Giới tính

EmaiAddress nvarchar(50) Địa chỉ mail

TotalChildren Tinyint Tổng số con

NumberCarsOwned Tinyint Số xe ô tô sở hữu AddressLine1 nvarchar(120) Địa chỉ 1

AddressLine2 nvarchar(120) Địa chỉ 2

Phone nvarchar(20) Điện thoại

DateFirstPurchase Datetime Ngày đầu tiên mua hàng CommuteDistance nvarchar(15) Khoảng cách

Table: Product

Tên cột Kiểu dữ liệu Giải thích

ProductKey Int Khóa chính

ProductAlternateKey nvarchar(25) Mã sản phẩm EnglichsProductName nvarchar(50) Tên sản phẩm

SandardCost Money Giá chuẩn

Color nvarchar(15) Màu sắc

SafetyStockLevel Smallint Mức độ lƣu trữ hàng

ListPrice Money Giá ghi trên bao bì

Ze nvarchar(50) Kích thƣớc

Weight Float Cân nặng

EnglishDescription nvarchar(400) Ghi chú thêm

StartDate Datetime Ngày nhập

EndDate Datetime Ngày kết thúc

Sơ đồ quan hệ giữa các bảng như sau:

3.2. Mô hình phân tán CSDL, công cụ, ngôn ngữ lập trình

Cơ sở dữ liệu đƣợc phân tán trên 3 trạm, sử dụng hệ quản trị CSDL SQL Server 2008

• Trạm 1: gồm 2 bảng Customer (18484 bản ghi) và Geography (655 bản ghi).

• Trạm 2: bảng IntenetSales (60398 bản ghi) • Trạm 3: bảng Product (606 bản ghi)

Diễn giải các bƣớc thực hiện của thuật toán.

Bƣớc 1: Phân tách câu hỏi truy vấn thành các câu hỏi truy vấn trên từng

máy trạm

Bƣớc 2: Tìm chi phí lớn nhất khi truyền dữ liệu (bỏ qua tốc độ băng thông

mạng)

đi. Thay vào đó các chi phí nhỏ hơn sẽ đƣợc truyền đi để thực hiện quá trình tích hợp dữ liệu.

Giao diện chính:

Giao diện kết nối máy trạm 1

Thông tin để kết nối trạm 1 gồm: IP máy trạm (hoặc tên máy), loại kết nối cơ sở dữ liệu (SQL server, Mysql, Microsoft Access,…), tên truy cập, mật khẩu, tên cơ sở dữ liệu sử dụng.

Giao diện kết nối máy trạm 2.

Các thông tin của trạm 2 gồm các thành phần cũng giống nhƣ trạm 1

Giao diện kết nối máy trạm 3.

Các thông tin của trạm 3 gồm các thành phần cũng giống nhƣ trạm 1 và trạm 2

Ứng dụng cho phép truy vấn trên từng máy trạm, với các câu truy vấn chỉ lấy dữ liệu trên từng máy đơn lẻ.

3.3. Thuật toán áp dụng

Chƣơng trình sẽ cài đặt thử nghiệm thuật toán R* đƣợc trình bày ở mục 2.4.2

Một phần của tài liệu (LUẬN văn THẠC sĩ) luận văn thạc sĩ tối ưu hóa truy vấn trong các cơ sở dữ liệu phân tán (Trang 71)