Quá trình quyết định đường đi của đàn kiến

Một phần của tài liệu (LUẬN văn THẠC sĩ) tối ưu hóa cơ sở dữ liệu phân tán 04 (Trang 68 - 74)

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. Thuật toán ACO metaheuristic lặp 3 giai đoạn sau:

+ 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:

++ 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ý. DDBMS hiện đang được sử dụng như một DBMS 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 nút 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)[5]

DP là một thuật toán tối ưu hóa truy vấn nổi tiếng nhất trong DBMS. DP hoạt động theo cách tiếp cận 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. Ở giai đoạn 2, thuật toán sẽ xem xét tất cả các cách có thể để kết nối các quan hệ lại với nhau, bắt đầu với kết nối 2 quan hệ bằng việc sử dụng các kế hoạch truy cập quan hệ ở giai đoạn trước. Dựa trên các kế hoạch kết nối 2 quan hệ và các kế hoạch truy cập, DP xây dựng các kế hoạch kết nối 3 quan hệ. DP tiếp tục cho đến khi xây dựng các kế hoạch kết nối n quan hệ. 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. DP 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à cây sâu trái. 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 không có hạn chế về PT thì được gọi là cây đầy đủ. Trong nghiên cứu này, sẽ sử dụng cây sâu trái.

Mô hình chi phí dựa trên tổng thời gian xử lý (CPU + I/O) đượ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. 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 vòng lặp lồng nhau. 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 CSDL phân tán [5]:

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, tìm kiếm toàn cục 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. 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à tổ hợp những lựa chọn thay thế cho các kế hoạch của DP ở mỗi mức. Nếu có 5 trạm trong phép kết nối của (A B C) thì 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, 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 không có quá trình thu gọn (cắt tỉa) này thì DP-ACO sẽ hoạt động giống DP. 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:

SSL

Pheromone (k) = ( ∑ Best_time (i) x (1/ Response_time (k))) i

Đường đi quyết định có thể được tính toán theo công thức sau:

ταij . ηβij pkij =

∑ ταil . ηβil

l ϵ subsolutions

Trong đó pkij 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.4. Kết luận

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ư Distributed INGRES, System R*, 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 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, 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 3

CHƯƠNG TRÌNH CÀI ĐẶT THUẬT TOÁN TỐI ƯU HÓA TRUY VẤN 3.1. Bài toán quản lý bệnh nhân

Trong Bệnh viện đa khoa Bắc Giang, hàng ngày có rất nhiều bệnh nhân đến khám và khám nhiều lượt khác nhau. Do đó, cần có ứng dụng để quản lý thông tin

bệnh nhân và các lần khám bệnh của bệnh nhân. Trong mỗi lần khám cần quản lý được bệnh nhân đã làm những dịch vụ nào và qua các phòng khám nào. Trong phạm vi luận văn, tôi chỉ demo một phần CSDL bệnh viện, gồm các bảng dữ liệu như sau:

 BenhNhan: Lưu thông tin về bệnh nhân khi đến khám bệnh.

Tên trường dữ liệu Kiểu dữ liệu Mô tả

Benhnhan_ID int Khóa chính

MaBenhNhan nvarchar Mã bệnh nhân

HoTen nvarchar Họ tên

NgaySinh datetime Ngày sinh

GioiTinh bit Giới tính

DiaChi nvarchar Địa chỉ

DanToc nvarchar Dân tộc

QuocTich nvarchar Quốc tịch

DienThoai nvarchar Số điện thoại

Cmt nvarchar Chứng minh thư

 Bảng CLS: Lưu thông tin về danh mục dịch vụ Cận lâm sàng

Tên trường dữ liệu Kiểu dữ liệu Mô tả

CLS_ID numeric ID (khóa chính)

NhomDichVu nvarchar Nhóm dịch vụ

MaCanLamSang nvarchar Mã cận lâm sàng

TenChuyenMon nvarchar Tên chuyên môn

DonViTinh nvarchar Đơn vị tính

DonGia money Đơn giá

 CLSKhamBenh: Lưu thông tin về các dịch vụ CLS mà bệnh nhân đến khám đã làm.

Tên trường dữ liệu Kiểu dữ liệu Mô tả

CLSKhamBenh_ID numeric ID (khóa chính)

LichSuPhongKham_ID int ID lịch sử phòng khám

CLS_ID numeric ID cận lâm sàng

KetLuan nvarchar Kết luận

LoidanBS nvarchar Lời dặn của bác sĩ

Motahinhanh nvarchar Mô tả hình ảnh

Image image Hình ảnh

 KhamBenh: Lưu thông tin một lần đến khám bệnh của bệnh nhân

Tên trường dữ liệu Kiểu dữ liệu Mô tả

KhamBenh_ID numeric ID (khóa chính)

SoPhieuKham nvarchar Số phiếu khám

SoBenhAn nvarchar Sổ bệnh án

BenhPhu nvarchar Bệnh phụ

BenhChinh nvarchar Bệnh chính

SoNgayDieuTri int Số ngày điều trị

BHYTDuyet bit BHYT duyệt không

KetLuanKham nvarchar Kết luận khám

LoiDanBS nvarchar Lời dặn bác sĩ

LyDoKham nvarchar Lý do khám

NgayDonTiep datetime Ngày đón tiếp

NgayKetLuan datetime Ngày kết luận

DoiTuong nvarchar Đối tượng

PhongKetLuan nvarchar Phòng kết luận

NoiGioiThieu nvarchar Nơi giới thiệu

YTaDieuDuong nvarchar Y tá điều dưỡng

BacSiKetLuan nvarchar Bác sĩ kết luận

IsCapCuu int Cấp cứu

TrangThai int Trạng thái

KhoaDieuTri nvarchar Khoa điều trị

TheBHYT numeric Thẻ BHYT

 LichSuPhongKham: Lưu thông tin các phòng khám mà bệnh nhân đã đến trong một lần khám bệnh.

Tên trường dữ liệu Kiểu dữ liệu Mô tả

LichSuPhongKham_ID int ID (khóa chính)

KhamBenh_ID numeric ID lần khám bệnh

Phong_ID nvarchar Phòng khám

KetLuan nvarchar Kết luận

STT tinyint STT

Một phần của tài liệu (LUẬN văn THẠC sĩ) tối ưu hóa cơ sở dữ liệu phân tán 04 (Trang 68 - 74)

Tải bản đầy đủ (PDF)

(79 trang)