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ý
9
khc. Nghĩa là, L
K
=
)(
KK
Fj
ij
Fi
i
Ct
hoặc L
K
=
)(
KK
Fj
ij
Fi
i
Cellt
, trong trưng hp
IP.
Định nghĩa 2.3.
Gọi L là thi gian hoàn thành cây truy vấn dạng ng đưc tính từ thi gian các
toán t khởi động cho đến khi toán t cui cùng hoàn tất công việc. Một cây ti ưu sẽ
tồn tại ít nhất một bộ x lý ở tình trạng “ bão hòa”. Tức là thi gian thc thi của cây
truy vấn ti ưu vi p bộ x l đưc xc định bởi biểu thức:
L= max
l ≤k ≤ p
L
k
= max
l ≤k ≤ p
[
)(
KK
Fj
ij
Fi
i
Ct
]
Hoặc:
L= max
l ≤k ≤ p
L
k
= max
l ≤k ≤p
[
)(
KK
Fj
ij
Fi
i
Cellt
] trong trưng hp IP.
Định nghĩa 2.4. Tỉ lệ ti tại toán t. Tỉ lệ ti tại toán t i trên bộ x l k đưc
tính bởi công thức: f
i
=
1
𝐿
(t
i
+
K
Fj
ij
C
),
i
V.
Từ cc định nghĩa trên, chúng ta định nghĩa bài ton lập cây toán t dạng ng
như sau:
Bài toán POT: Cho cây toán t dạng ng T = (V,E), trong đ V là tập các toán
t ( gọi là cc đỉnh), t
i
là chi phí khi dùng toán t i ( trọng s của đỉnh i thuộc V), C
ij
chi phí truyền thông gia hai bộ x lý ( trọng s của cạnh (i,j) thuộc E); p là s bộ x
l ( k= l,…,p). Hãy tìm một truy vấn vi thi gian tr li cc tiểu. Nghĩa là:
Tìm một phân hoạch (F
l
,…,F
p
) của V, tức là gom các toán t vào các nhóm
{F
k
}
k=l,…,p
sao cho:
L= max
l ≤k ≤ p
L
k
= max
l ≤k ≤ p
[
)(
KK
Fj
ij
Fi
i
Ct
] là ít nhất.
Hoặc:
L= max
l ≤k ≤ p
L
k
= max
l ≤k ≤p
[
)(
KK
Fj
ij
Fi
i
Cellt
] là ít nhất, trong trưng hp IP.
10
Đây là bài ton NP - kh. Để tìm li gii ti ưu cho cây ton t dạng ng,
chúng ta xây dng một thuật ton 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í cc đỉnh kề nhau nên đặt cùng một nhóm F
k
nào đ hay không, tức là nhng toán t nào sẽ đưc giao cho bộ x lý k thc 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 tập F
k
để tạo ra đỉnh m như sau:
- t
m
= t
i
+ t
j
.
- Cc cạnh ni vi i và j đưc chuyển thành ni vi 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) vi hai đỉnh i và j trong tập F
k
để tch hai đỉnh này như sau:
- i và j thuộc hai tập F
k
, F
l
khác nhau.
- Cc đỉnh i và j sẽ c trọng s mi là:
t
i
new
= t
i
old
+ c
ij
t
j
new
= t
j
old
+ c
ij
1.Thuật toán gộp:
Gop(i,m) gộp hàng con i vào hàng cha m. Gi s IP truy vấn cấp n ×n
Input: Hàng con i, hàng cha m
Output: IP truy vấn đã gộp hàng con i vào hàng cha m
Begin
t
m
= t
m
+ t
i
For k=1 to n do
c
m,k
+=c
i,k
End For
Ghi nhãn hàng con i vào bên cạnh hàng cha m
11
Xóa hàng i và cột i
End.
Độ phức tạp của thuật toán là O(n).
2.Thuật toán Tách
Tach(i,m) tách hàng con i ra khỏi hàng cha m.
Input: Toán tử cần tách
Output: Các toán tử đã được tách
Begin
t
m
new
= t
m
old
+ c
i,m
{với i là hàng con, m là hàng cha}
t
i
new
= t
i
old
+ c
i,m
{với i là hàng con, m là hàng cha}
End.
Độ phức tạp của thuật toán là O(n).
2.1.2. Thuật toán Dividing
Gi s có p bộ x lý, n công việc x
1
, x
2
,…, x
n
có thi gian thc hiện lần lưt là
t
1
, t
2
,…, t
n
. Mỗi công việc có thể thc hiện trên một bộ x lý bất kỳ nhưng phi thc
hiện trọn vẹn. Hãy tìm cách phân chia n công việc cho p bộ x lý sao cho thi gian
hoàn thành là nhanh nhất.
Thuật toán Dividing
Đầu vào:
- JOBS: tập gồm c n công việc x
1
, x
2
,…, x
n
- Cây ton t đơn điệu T, chứa cc t
1
,…, t
n
, là thi gian thc hiện tương
ứng vi cc công việc và khc 0.
- p: s bộ x l
12
- F: tập gồm cc phân hoạch F
1,
F
2
,…F
p
để phân chia công việc vào đ.
Tập F ban đầu đưc khởi tạo bằng rỗng (Ø)
Đầu ra:
- Tập kết qu F chứa cc F
i
và các công việc x
i
đã đưc phân chia.
Cách thức hoạt động:
Bưc 1:
- Nhập vào tập công việc JOBS = {x
1
,…, x
n
}
- Nhập vào tập thi gian thc hiện cc công việc T = {t
1
,…, t
n
}
- Nhập vào s lưng mnh d liệu p và khởi tạo tập F = {F
1
,…,F
p
} = Ø
Bưc 2:
- Chọn ra F
i
c tổng t(F
i
) là nhỏ nhất trong tập F
- Chọn ra x
j
có t
j
ln nhất trong tập JOBS.
- Đưa x
j
vào tập F
i
- Loại bỏ x
j
khỏi tập JOBS
Bưc 3:
- Kiểm tra xem tập JOBS c rỗng không.
+ Nếu không quay lại bưc 2
+ Nếu c thì thc hiện bưc 4
Bưc 4:
- Lưu phân hoạch F vi cc phần t (F
1
,…, F
p
)
chứa cc phần t x
j
sao cho
thi gian hoàn thành cc cô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ư mun (s tập này phụ thuộc vào s bộ x lý). Nếu áp dụng
thuật ton BalancedCuts cho cc trưng hp bộ x l thay đổi từ p đến n thì sẽ thu
13
đưc (n-p+l) bộ cây ti ưu tương ứng. Sau đ kết qu của mỗi trưng hp sẽ đưc áp
dụng tiếp cho thuật toán phân chia công việc Dividing. Cui cùng ta thu đưc (n-p+l)
cây truy vấn vừa bo đm tính ti ưu truyền thông vừa đm bo cân bằng ti. Chúng
ta chọn kết qu tt nhất trong (n-p+l) cây này để làm cây truy vấn ti ưu. Kết qu kết
hp này bao gi cũng không xấu hơn kết qu của từng thuật toán riêng lẻ.
Thuật toán Dividing-BalancedCuts
Đầu vào:
- Cây ton t đơn điệu T, chứa cc t
1
,…, t
n
, là thi gian thc hiện tương
ứng vi cc công việc và khc 0.
- p: s bộ x l
Đầu ra:
- Kết qu phân hoạch F chứa cc (F
1,
F
2
, … F
p
) sao cho max
1≤i≤p
Cost(F
i
) là
nhỏ nhất.
Kết qu của thuật toán phân hoạch (F
1
,F
2
,…,F
p
) sao cho maxCost (F
i
) là nhỏ
nhất.
Thuật toán Dividing-BalancedCuts c độ phức tạp đa thức. Thuật ton đưc áp
dụng khá tt không nhng cho nhng cây truy vấn thông thưng vi yêu cầu về cân
bằng ti mà còn cho các cây truy vấn hình sao. Tính đúng đắn của thuật ton đư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
ti ưu cho cây ton t POT. Mở rộng này có thể gii quyết trong trưng hp s nhóm
sinh ra bởi thuật toán LocalCuts nhiều hơn s bộ x l cho phép, đồng thi bo đm
yếu t cân bằng ti gia các bộ x lý.
14
2.2.2. Thuật toán LocalCuts
Thuật toán LocalCuts
Input:
Cây ton t đã qua tiền x l T [4], gồm n đỉnh.
Tham s α> 1, trong đ α là một gi trị nhỏ hơn tỉ s gia trọng s của
đỉnh l và cạnh s cạnh ni đỉnh l đ vi đỉnh mẹ.
Output : Phân hoạch liên thông (T
l
,…,T
k
).
Thuật toán xem xét s dụng toán t Collapse hay cut cho một đỉnh l và đỉnh
cha của nó ( xem xét kh năng ni nó vi đỉnh cha vào một phân hoạch liên thông).
Cách thức hoạt động:
Bưc 1:
- Nhập vào tập thi gian thc hiện cc công việc T = {t
1
,…, t
n
}
- Nhập vào tham s α > 1
Bưc 2:
- Xét đỉnh con j
- Nếu t
j
> α.c
jm
thc hiện ton t cut(j,m).
- Nếu t
j
≤ α.c
jm
thc hiện ton t collapse(j,m).
Bưc 3:
- Kiểm tra xem nếu còn đỉnh cha m c đỉnh con i không.
+ Nếu có quay lại bưc 2
+ Nếu không thì thc hiện bưc 4
Bưc 4:
- Lưu phân hoạch liên thông T vi cc phần t (T
1
,…, T
k
)
.
Nhận xét:
Thuật ton 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ể đon trưc đưc
nên thông thưng thuật toán này sẽ cùng đi đôi vi một thuật toán khác (cân bằng ti
chẳng hạn) để phân phi 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
đỉnh l và đỉnh cha của nó (hay xem xét kh năng ni nó vi đỉnh cha vào một phân
hoạch liên thông), nên quyết định này độc lập vi trọng s của đỉnh cha, do đ trong
một s trưng hp sẽ làm tăng trọng s của đỉnh cha lên một cch đng kể.
Từ đây, chúng ta c thể gộp cc đỉnh trong mnh và dùng thuật toán Dividing
để cân bằng ti trên các bộ x lý (vi s lưng) cho trưc.
Chú ý: Có thể gán cho các giá trị α > 1 khc nhau để đưc các phân hoạch khác
nhau.
2.2.3.Thuật toán cân bằng tải dựa vào Dividing
Gi s có p bộ x lý, n công việc x
1
, x
2
,…, x
n
có thi gian thc hiện lần lưt là
t
1
, t
2
,…, t
n
. Mỗi công việc có thể thc hiện trên một bộ x lý bất kỳ nhưng phi thc
hiện trọn vẹn.
Thuật toán cân bằng ti da vào nguyên tắc sau: “ Giao công việc có thi gian
thc hiện ln nhất trong các công việc chưa đưc phân công cho bộ x lý hiện thi có
ti ít nhất” trong đ, ti của bộ x l k đưc xc định bởi công thức L
K
=
)(
KK
Fj
ij
Fi
i
Ct
Đầu vào:
- JOBS: tập gồm c n công việc x
1
, x
2
,…, x
n
- Cây ton t đơn điệu T, chứa cc t
1
,…, t
n
, là thi gian thc hiện tương
ứng vi cc công việc và khc 0.
- p: s bộ x l
16
- F: tập gồm cc phân hoạch F
1,
F
2
,…, F
p
để phân chia công việc vào đ.
Tập F ban đầu đưc khởi tạo bằng rỗng (Ø)
Đầu ra:
- Tập kết qu F chứa cc F
i
và cc công việc x
i
đã đưc phân chia.
Cách thức hoạt động:
Bưc 1:
- Nhập vào tập công việc JOBS = {x
1
,…,x
n
}
- Nhập vào tập thi gian thc hiện cc công việc T = {t
1
,…, t
n
}
- Nhập vào s lưng mnh d liệu p và khởi tạo tập F = {F
1
,…,F
p
} = Ø
Bưc 2:
- Chọn ra F
i
có Ti(F
i
) là nhỏ nhất trong tập F
- Chọn ra x
j
có t
j
ln nhất trong tập JOBS.
- Đưa x
j
vào tập F
i
- Loại bỏ x
j
khỏi tập JOBS
Bưc 3:
- Kiểm tra xem tập JOBS c rỗng không.
+ Nếu không quay lại bưc 2
+ Nếu c thì thc hiện bưc 4
Bưc 4:
- Lưu lại tập kết qu phân hoạch (F
1
,…,F
p
).
Thuật ton trên c độ phức tạp O(n
2
).
Tuy thuật ton không để ý trọng s nhưng đơn gin và bo đm cân bằng ti
gia các bộ x l nên thưng đưc s dụng kết hp vi các thuật ton khc để cho
nhng kết qu tt 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
Gii thuật Heuristic cho phép tìm kiếm phương n phân chia công việc tt nhất
cho các bộ x l để ti ưu về cân bằng ti và truyền thông. Đặc biệt, việc trình bày
song song gia cây toán t và IP truy vấn bằng ánh xạ đẳng cấu cho phép chúng ta
vừa có cái nhìn trc quan rõ ràng dễ hiểu vừa có thể s dụng một ngôn ng lập trình
bậc cao để thể hiện kết qu vi d liệu thc trên các mng.
18
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
3.1 Bài toán
Bài toán lập lịch là một trong nhng vấn đề quan trọng đưc nghiên cứu trong
cc môi trưng tính ton, đặc biệt là cc môi trưng tính ton phân tn như môi
trưng tính toán song song.
Trong quá trình hoạt động thc tiễn, công việc của tác gi đòi hỏi phi qun lý
học sinh trong môi trưng tính toán phân tán vì thế 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, tác gi ứng dụng lí
thuyết vào xây dng cơ sở d liệu qun lý học sinh.
Áp dụng bảng vấn tin cho bài toán lập lịch
Cc bưc để áp dụng bng vấn tin vào bài toán lập lịch:
Xây dng trưc câu vấn tin SQL.
Tạo lập cây ton t vi:
- i: cc nút (ton t) trong cây ton t.
- t
i
:
trọng s của nút thứ i, là chi phí (thi gian x l hoặc chi phí
tiền) thc hiện phép ton tại nút này.
- C
ij
:
trọng s cạnh, là chi phí (thi gian hoặc chi phí tiền) để truyền
d liệu từ ton t i sang ton t j hoặc ngưc lại.
Chuyển cây ton t sang bng IP (truy vấn)
Áp dụng thuật ton Dividing cơ bn hoặc thuật ton cân bằng ti (c
thuật gii Heuristic) để gii bài ton phân chia công việc .
3.2. Xây dựng Cơ sở dữ liệu
Vi bài toán trên, tác gi da vào quá trình hoạt động thc tiễn đề đề xuất xây
dng cơ sở d liệu qun lý học sinh. Vi các bng như sau:
Môn học: Chứa thông tin về cc môn học trong trưng c ging dạy.
Khối học: Chứa thông tin về cc khi học trong trưng.
Khối học: Chứa thông tin về cc lp học của trưng.
19
Học sinh: Chứa thông tin về cc học sinh trong trưng.
Điểm: Chứa thông tin về điểm của học sinh cc học kỳ và cc năm trong
trưng.
Chúng ta c sơ đồ quan hệ như hình 3.1
3.3. Thu thập dữ liệu
D liệu đưc thu thập tương ứng vi các bng nêu trên, từ trung tâm thông tin
của trưng trung học cơ sở Gia Thanh – Gia Viễn – Ninh Bình.
Hình 3.1: Sơ đồ cơ sở dữ liệu quan hệ
3.4. Cài đặt
3.4.1 Xây dựng câu truy vấn
Xây dng câu truy vấn SQL lấy ra tên các học sinh đủ tiêu chuẩn đi thi học
sinh giỏi khoa học t nhiên cấp tỉnh. Điều kiện là phi đạt điểm xuất sắc 3 môn toán,
lý, ha (c điểm tổng kết trung bình 3 môn này từ 9 trở lên) thuộc khi 8, 9 và đang
học các lp chọn (lp A).
SELECT C.HoTen
20
FROM Khoi A JOIN Lop B ON A.KhoiID = B.KhoiID
AND A.KhoiID IN (8, 9)
JOIN HocSinh C ON B.LopID = C.LopID
AND B.TenLop LIKE '%A'
JOIN Diem E ON C.HocSinhID = E.HocSinhID
JOIN MonHoc D ON D.MonHocID = E.MonHocID
AND D.TenMon IN (N'Toán', N'Lý', N'Hóa')
GROUP BY C.HoTen
HAVING AVG(E.DiemTK) >= 9
3.4.2 Tạo lập cây toán tử
Da vào câu truy vấn đưc xây dng ở trên, chúng ta xây dưng đưc cây toán
t hình 3.3. Trọng s các cạnh (chi phí x lý) đưc gi định.
Hình 3.3: Cây toán tử
3.4.3 Chuyển cây toán tử sang bảng IP (truy vấn)
Vi cây toán t vi cc đỉnh và trọng s như hình 3.3, chúng ta c thể chuyển
thành bng IP để thc cài đặt thuật toán trên máy tính.
21
3.4.4. Chương trình thực hiện thuật toán cân bằng tải
3.4.4.1. Tổ chức chương trình
Chương trình đưc đặt tên là ThuatToanPhanChiaCongViec_Heuristic, xây
dng dưi dạng Windows Form, trên nền dotNET của Microsoft. Đưc tổ chức như
sau:
Trong đ, các thành phần chính:
- FrmCanBangTaiHeuristic: Cho phép ngưi dùng nhập cc thông tin đầu vào
của thuật ton.
- FrmKetQua: Hiển thị kết qu của thuật ton.
- HeuristicAlgorithm.cs: Chứa cc thủ tục x l thuật ton.
3.4.4.2. Triển khai
Đầu vào:
-
14 công việc x
1
, x
2
,…, x
14
- Cây ton t đơn điệu T, chứa cc t
1
,…, t
14
như
bng 3.6.
- S bộ x l: 4
- 4 phân hoạch F
1,
F
2
, F
3
, F
4
để phân chia công việc vào đ. Tập F ban đầu
đưc khởi tạo bằng rỗng (Ø)
Đầu ra:
22
- Tập kết qu F chứa cc F
1,
F
2
, F
3
, F
4
và cc công việc đã đưc phân
chia.
Giao diện kết quả thực hiện thuật toán:
3.5. Kết luận chương 3
Vấn đề quan trọng của chương này là da vào các nghiên cứu ở cc chương
trưc để ứng dụng lập lịch bài toán POT. Tức là chuyển POT sang bng ( 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 thc hiện trên d liệu gi định vi s toán t cho trưc. Tuy nhiên việc x
lý có thể đưc thc hiện hoàn toàn trên mng thông qua các chỉ s i và j vi s toán
t không hạn chế.Việc phân b các toán t cho các bộ x l đưc thc hiện thông qua
thuật toán phân chia công việc.
Có thể dùng một ngôn ng lập trình nào đ để thể hiện các thuật ton và thao tc đã
trình bày trong chương mà ở đây chưa đưc đề cập ti.
23
KẾT LUẬN
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.
Ngoài ra còn 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, 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 vi các toán t đại s quan hệ, chuyển sang câu vấn tin đại s, từ đ xây
dng thành IP truy vấn (không còn qua POT) và áp dụng các thuật toán trên.