Tải bản đầy đủ (.docx) (24 trang)

Tiểu luận môn cơ sở dữ liệu nâng cao SỰ PHÂN BỐ CÁC PHÂN MẢNH TRONG CƠ SỞ DỮ LIỆU PHÂN TÁN

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (441.3 KB, 24 trang )

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
LỚP CAO HỌC QUA MẠNG – KHÓA 6
TIỂU LUẬN
MÔN HỌC: CƠ SỞ DỮ LIỆU NÂNG CAO
SỰ PHÂN BỐ CÁC PHÂN MẢNH TRONG
CƠ SỞ DỮ LIỆU PHÂN TÁN
Giảng viên: PGS.TS Đỗ Phúc
Sinh viên thực hiện: Nguyễn Hoàng Hạc
MSHV: CH1101081
TP. HCM, NĂM 2012
MỤC LỤC
2
Chương 1 GIỚI THIỆU
Trong một thiết kế cơ sở dữ liệu phân tán liên quan đến việc giải quyết các vấn
đề sau đây:
- Như thế nào thì một quan hệ trong hệ thống thông tin phải được phân mảnh?
- Có bao nhiêu bản sao của một mảnh cần được sao chép.
- Làm thế nào phân bố các phân mảnh đến từng vị trí trong hệ thống mạng.
- Những thông tin cần thiết cho sự phân mảnh và phân bố là gì?
Những vấn đề này rất phức tạp trong thiết kế cơ sở dữ liệu phân tán. Thậm chí,
khi xem xét từng vấn đề riêng lẻ, nó vẫn là một vấn đề nan giải. Để đơn giản hóa vấn
đề, chúng ta chỉ giải quyết vấn đề phân mảnh, giả định rằng tất cả các mối quan hệ
trong hệ thống thông tin đã được phân mảnh. Như vậy, vấn đề nghiên cứu ở đây là xác
định số lượng sao chép của mỗi mảnh và sau đó tìm kiếm một giải pháp phân mảnh tối
ưu, bao gồm cả những phân mảnh đã sao chép trong mạng diện rộng (WAN) sao cho
tổng chi phí truyền dữ liệu trong toàn hệ thống là nhỏ nhất.
Đối với yêu cầu đọc thông tin cho một giao dịch có thể chỉ đơn giản là lấy dữ
liệu từ các phân mảnh tại vị trí gốc hoặc có thể có một chút phức tạp để lấy các phân
mảnh từ một vị trí ở xa. Một yêu cầu ghi dữ liệu thì phức tạp hơn, với nhiều bản sao
của một phân mảnh được phân bố trong hệ thống mạng, để đảm bảo việc ghi dữ liệu


này phải duy trì được tính thống nhất cho tất cả các bản sao. Tần số của yêu cầu đưa ra
ở các vị trị cũng phải được xem xét trong mô hình phân bố. Với mỗi yêu cầu giao dịch
khác nhau có thể có giải pháp phân bố tối ưu các phân mảnh khác nhau, chi phí giao
dịch được tính dựa trên cơ sở nhằm giảm thiểu chi phí giao dịch theo thông tin giao
dịch.
Nhiều báo cáo về phân bố cơ sở dữ liệu đã được công bố. Năm 1982, Chang đã
phát triển một lý thuyết về sự phân bố các phân mảnh và thiết kế thuật toán Network
3
Flow để giải quyết vấn đề này cho cơ sở dữ liệu. Độ phức tạp cho việc giải quyết sự
phân bố các phân mảnh của cơ sở dữ liệu có độ phức tạp là NP – Complete, một vài
thuật giải Hueristis đã được đưa ra để giải quyết vấn đề. Để giảm sự phức tạp của vấn
đề, Ceri đề xuất một phương pháp đơn giản hơn đó bỏ qua việc phân bố cơ sở dữ liệu
ngay từ đầu và tìm một giải pháp tối ưu cho vấn đề không phân bố. Sau đó việc phân
bố được xử lý bằng cách áp dụng một thuật toán tham lam để cải thiện các giải pháp
khả thi ban đầu. Gần đây, vấn đề phân bố phân mãnh của cơ sở dữ liệu được trình bày
rõ ràng, có hệ thống hơn và thậm chí được kết hợp với một cơ chế kiểm soát đồng thời.
Đối với một mạng Ethernet, một số phương pháp tiếp cận phân tích đã được sử dụng
để tìm ra thời gian đáp ứng của giao dịch để giải quyết vấn đề phân bố cơ sở dữ liệu.
Mặc dù mô hình đề xuất bởi Raghuram và những người khác là khá toàn diện, nhưng
nó cũng có một vài hạn chế chẳng hạn như yêu cầu sức mạnh tính toán của mỗi vị trí,
thời gian ra lệnh tối đa để đáp ứng với một yêu cầu và vấn đề phân mảnh không được
xét đến. Lin và một số người khác đưa ra những thuật toán phân bố phân mãnh dữ liệu
với tổng chi phí truyền tin tối thiểu. Bên cạnh việc phân bố dữ liệu, một phương pháp
tiếp cận dưới mô hình toán học và thuật toán di truyền phát triển bởi March và Rho
nhằm tính toán phân mảnh tại các nút. Đối với một hệ thống đòi hỏi phải sẵn sàng cao,
Park và Baik đề xuất một mô hình với xác suất giao dịch được thực hiện và thuật toán
di truyền để giảm thiểu chi phí xử lý.
Mặc dù một số các nhà nghiên cứu đã đưa ra mô hình và các thuật toán để thiết
kế phân bố các mảnh trong cơ sở dữ liệu phân tán nhưng hầu hết các mô hình này rất
phức tạp và khó hiểu. Vì vậy, để sử dụng các mô hình và thuật toán này gặp nhiều khó

khăn trong thực tế. Ở đây, chúng tôi đề xuất một mô hình đơn giản và toàn diện, phản
ánh hành vi giao dịch trong cơ sở dữ liệu phân tán. Trong mô hình này, một thuật toán
xấp xỉ - SIMPLE – được đề nghị để giải quyết việc phân bố dữ liệu đơn giản. Đối với
mỗi mảnh f
i
, thuật toán SIMPLE bắt đầu phân bố các bản sao của phân mảnh f
i
đến các
nút (vị trí) j với B
ij
≥ 0. B
ij
là tổng khối lượng dữ liệu của phân mảnh f
i
gửi đến nút j
4
để xử lý các giao dịch được yêu cầu tại nút j trừ đi tổng khối lượng dữ liệu của tất cả
các nút cập nhật cho mảnh f
i
. Thuật toán SIMPLE tiếp tục tìm các nút khác để phân bố
bản sao của phân mảnh f
i
nhằm giảm tổng chi phí truyền tin. Kết quả, việc phân mảnh
bằng thuật toán của này là tối ưu hơn và tốt hơn so với phương pháp của Lin và những
người khác. Một số thí nghiệm đã được tiến hành để xác minh rằng công thức tính chi
phí thực sự có thể phản ánh chi phí truyền dữ liệu trong thực tế.
5
Chương 2 MÔ HÌNH PHÂN BỐ DỮ LIỆU
2.1 Vấn đề phân mảnh dữ liệu
Trước khi nghiên cứu về sự phân bố các phân mảnh, chúng ta phải xác định rõ

vấn đề phân bố dữ liệu. Ở đây, chúng ta chỉ xem xét trong môi trường mạng WAN, chi
phí truyền dữ liệu và lưu trữ bản sao của một phân mảnh tại các vị trí (sites) của mạng
LAN là không đáng kể. Giả sử, chúng ta có một mạng WAN gồm các vị trí S = {S
1
, S
2
,
, S
m
}, tập hợp các giao dịch (transactions) đang thực hiện T = {T
1
, T
2
, , T
q
} và tập
hợp các phân mảnh (fragments) F = {F
1
, F
2
, , F
n
}. Trong đó, tất cả các mối quan hệ
trên toàn hệ thống đã được thiết kế nằm trong các phân mảnh của cơ sở dữ liệu phân
tán. Tổng quát hơn, chúng ta không chỉ xác định số lượng bản sao của từng phân mảnh
mà còn tìm cách tối ưu để phân bố mỗi bản sao các phân mảnh trong F đến vị trí S. Để
xác định sự tối ưu, chúng ta có hai cách xác định phổ biến sau:
 Chi phí tối thiểu: chi phí bao gồm chi phí lưu trữ mỗi phân mảnh F
j
tại

vị trí S
k
, chi phí truy vấn F
j
tại vị trí S
k
, chi phí cập nhật F
j
ở tất cả các vị
trí mà F
j
được lưu trữ và chi phí truyền dữ liệu
 Hiệu suất: hai chiến lược phổ biến là giảm thiểu thời gian đáp ứng và tối
đa hóa hoạt động của hệ thống tại mỗi vị trí.
Biện pháp tối ưu được đề nghị trong mô hình phân bố này là chi phí tối thiểu.
Đối với một mạng WAN với giới hạn băng thông 50 Kbps, thời gian truy cập thiết bị
ngoại vi và thời gian xử lý CPU không phải là yếu tố chính để xem xét trong việc giảm
tổng chi phí. Như vậy, vấn đề phân bố được đơn giản hóa để phân bố các bản sao của
một phân mảnh đến các vị trí sao cho có tổng chi phí truyền dữ liệu là tối thiểu.
6
2.2 Thông tin yêu cầu
Trước khi xác định công thức chi phí, một số thông tin phải được phân tích
trước, đó là số lượng dữ liệu của một cơ sở dữ liệu, hành vi giao dịch, thông tin các vị
trí và thông tin của mạng.
2.2.1 Thông tin cơ sở dữ liệu (Database Information)
Kích thước của mỗi phân mảnh – size(F
j
) cần được xác định rõ bởi vì nó đóng
vai trò quan trọng trong tính toán chi phí truyền dữ liệu
2.2.2 Thông tin giao dịch (Transaction Information)

Trong mô hình này, chúng ta có hai ma trận: RM và UM mô tả các thao tác truy
cập và cập nhật của tất cả các giao dịch với các bộ r
ij
(hoặc u
ij
) trong ma trận RM (hoặc
UM) xác định tần số truy cập của mảnh F
j
trong giao dịch T
i
. Vì không phải tất cả các
mảnh đều được truy cập do đó các bộ trong ma trận có thể là 0. Ví dụ:
RM
F
1
F
2
F
3
F
4
F
5
T
1
2 3 0 0 0
T
2
2 0 0 1 0
T

3
0 0 3 0 0
T
4
3 0 2 0 0
UM
F
1
F
2
F
3
F
4
F
5
7
T
1
0 0 0 1 2
T
2
0 3 0 0 0
T
3
2 1 0 1 0
T
4
0 0 0 0 3
Trong ma trận truy cập và cập nhật RM và UM, giao dịch T

3
truy xuất mảnh F
3
ba lần, cập nhật mảnh F
1
hai lần, F
2
một lần và F
4
một lần cho mỗi lần chạy.
Khi một giao dịch truy cập đến một phân mảnh, không phải tất cả các bộ dữ liệu
của phân mảnh được truy xuất hoặc cập nhật. Số lượng các bộ dữ liệu được truy xuất
hoặc cập nhật không phải là giống nhau cho tất cả các giao dịch. Vì vậy, chúng ta xác
định một ma trận chọn lọc - SEL cho biết tỷ lệ phần trăm của một mảnh F
j
được truy
cập trong giao dịch T
i
:
SEL (%)
F
1
F
2
F
3
F
4
F
5

T
1
0.1 0.1 0 0.3 0.2
T
2
0.1 0.3 0 1 0
T
3
2 5 0.1 0.5 0
T
4
0.5 0 10 0 4
Trong ma trận SEL, giao dịch T
3
truy xuất chỉ có 0,1% của mảnh F
3
. Cập nhật
mảnh F
1
là 2%, F
2
là 5% và F
4
là 0,5%.
Hơn nữa, chúng ta cũng cần phải xác định ma trận tần số FREQ cho biết tần số
thực hiện của tất cả các giao dịch thực hiện tại mỗi vị trí:
FREQ
S
1
S

2
S
3
S
4
T
1
0 2 3 1
T
2
0 3 0 0
T
3
2 0 1 0
T
4
0 0 4 0
8
Giao dịch T
3
thể hiện trong ma trận FREQ ở trên được thực hiện hai lần tại vị trí
S
1
và một lần tại vị trí S
3
.
2.2.3 Thông tin vị trí (Site Information)
Thông tin vị trí trong một hệ thống mạng đó là thông tin về khả năng lưu trữ và
xử lý tại vị trí đó; nói chung, những thông tin được xem xét hạn chế trong một mô hình
phân bố. Để đơn giản hóa mô hình, chúng ta không xem xét ở đây.

2.2.4 Thông tin của mạng (Network Information)
Trong môi trường WAN, chi phí truyền dữ liệu được tính bởi hai thành phần
chính đó là những thành phần ảnh hưởng trực tiếp đến tổng chi phí. C
ini
là chi phí cố
định để khởi tạo một gói dữ liệu với kích thước p_size. Trong khi CTR
i, j
là chi phí
truyền một đơn vị dữ liệu từ vị trí S
i
đến vị trí S
j
. Như vậy, chi phí truyền dữ liệu với
kích thước là m_size có thể được tính dưới một hàm tuyến tính như sau:
Chúng ta giả định rằng mỗi vị trí trong mạng được kết nối đến một vị trí khác
bằng một kết nối truyền thông hợp lý. Vì vậy, chi phí CTR
i, j
có thể được tính thông qua
một ma trận chi phí truyền dữ liệu CTR. Để đơn giản hóa vấn đề, chúng ta giả định
rằng CTR là một ma trận đối xứng:
CTR
S
1
S
2
S
3
S
4
S

1
0 0.32 0.48 0.16
S
2
0.32 0 0.64 0.32
S
3
0.48 0.64 0 0.64
S
4
0.16 0.32 0.64 0
Ví dụ ở trên là ma trận chi phí thông tin liên lạc dựa trên mạng WAN với giới
hạn băng thông là 50 Kbps (tức là 0,16 ms/byte) mỗi phần tử trong ma trận là một bội
số của 0,16.
9
Trong mạng WAN, trước khi giao dịch truy cập một phân mảnh ở xa, nó phải
tạo ra kết nối đến phân mảnh này. Trong suốt thời gian giao dịch, nó sử dụng kết nối
này để gửi yêu cầu và nhận dữ liệu. Khi kết thúc giao dịch, kết nối được đóng lại. Để
phản ánh các thông tin liên lạc thực sự của một mạng WAN, chi phí xây dựng các kết
nối, ký hiệu là VC
ini
cũng được xem xét đến.
2.3 Các công thức tính chi phí
Chúng ta có công thức tính chi phí truyền thông (Cost Communication) phản
ánh hành vi của một giao dịch trên cơ sở dữ liệu phân tán trong một môi trường WAN.
Với những thông số được nêu tại phần 2.2, chúng ta thử tìm một cách phân bố các
phân mảnh tối ưu sao cho có tổng chi phí truyền dữ liệu là nhỏ nhất. Công thức nhằm
giảm thiểu chi phí thông tin liên lạc được thể hiện như sau:
Công thức tính chi phí truyền dữ liệu bao gồm hai thành phần: chi phí tải dữ liệu
CC

load
và chi phí truyền tin cho xử lý giao dịch CC
proc
.
CC
load
là chi phí tải tất cả bản sao các phân mảnh đến các vị trí trong mạng trước
khi giao dịch được xử lý được tính như sau:
Với FAT (Fragment Allocation Table) là ma trận được biểu diễn như sau:
SI là vị trí chính (site master) chịu trách nhiệm cho việc tải tất cả các bản sao
của phân mảnh đến các vị trí khác trong hệ thống.
CC
proc
là chi phí bao gồm ba thành phần: giao dịch truy xuất TR
i
, giao dịch cập
nhật TU
i
, và xây dựng kết nối VC
ini
. Được tính bằng công thức sau:
10
Với FREQ
i, k
là tần số thực hiện giao dịch T
i
tại vị trí S
k
. Ngoài ra, chi phí giao
dịch truy xuất TR

i
và giao dịch cập nhật TU
i
được tính như sau:
Chi phí truy xuất TR
i
cho biết số lượng tất cả các vị trí mà phân mảnh dữ liệu F
j
được sao chép, chỉ những vị trí có chi phí truyền dẫn tối thiểu mới được chọn cho xử lý
giao dịch. Chi phí cập nhật TU
i
cho biết tất cả các chi phí truyền dữ liệu đến các vị trí ở
xa với các phân mảnh Fj được lưu trữ cần được thống kê. Việc cập nhật dữ liệu là cần
thiết để duy trì tính thống nhất giữa tất cả các phân mảnh F
j
.
11
Chương 3 THUẬT GIẢI DI TRUYỀN
3.1 Các khái niệm cơ bản
Thuật giải di truyền (GA - Genetic Algorithm) hình thành dựa trên quan niệm
cho rằng quá trình tiến hoá tự nhiên là quá trình hoàn hảo nhất, hợp lý nhất và tự nó đã
mang tính tối ưu. Quan niệm này có thể xem như một tiền đề đúng, không chứng minh
được, nhưng phù hợp với thực tế khách quan. Quá trình tiến hoá thể hiện tính tối ưu ở
chổ, thế hệ sau bao giờ cũng tốt hơn (phát triển hơn, hoàn thiện hơn) thế hệ trước. Tiến
hoá tự nhiên được duy trì nhờ hai quá trình cơ bản: sinh sản và chọn lọc tự nhiên.
Xuyên suốt quá trình tiến hoá tự nhiên, các cá thể mới luôn được sinh ra để bổ sung
thay thế thế hệ cũ. Cá thể nào phát triển hơn, thích ứng hơn với môi trường sẽ tồn tại.
Cá thể nào không thích ứng được với môi trường sẽ bị đào thải. Sự thay đổi môi trường
là động lực thúc đẩy quá trình tiến hoá. Ngược lại, tiến hoá cũng tác động trở lại góp
phần làm thay đổi môi trường.

Các cá thể mới sinh ra trong quá trình tiến hoá nhờ sự lai ghép ở thế hệ cha-mẹ.
Một cá thể mới có thể mang những tính trạng của cha-mẹ (di truyền), cũng có thể mang
những tính trạng hoàn toàn mới (đột biến). Di truyền và đột biến là hai cơ chế có vai
trò quan trọng như nhau trong tiến trình tiến hoá, dù rằng đột biến với xác suất nhỏ hơn
nhiều so với hiện tượng di truyền. Thuật giải di truyền là thuật toán lặp đi lặp lại khả
năng thích ứng của quần thể cơ sở, sử dụng các phép toán di truyền (chọn lựa tái sinh,
phép lai ghép và phép đột biến) dựa trên sự lựa chọn tự nhiên. Thuật giải di truyền đã
được chứng minh là một phương pháp hữu dụng trong việc tối ưu hóa, quan sát và máy
học,…. Nó mã hoá một giải pháp tiềm tàng đến một vấn đề chi tiết trên một cấu trúc dữ
liệu đơn giản giống nhiễm sắc thể và các phép toán liên kết.
12
3.2 Các thành phần chính của thuật giải di truyền
3.2.1 Nhiễm sắc thể (Chromosomes)
Trong quá trình phân chia của các tế bào của con người, nhiễm sắc thể (chứa
trong nhân bao gồm DNA (deoxyribonucleic acid), protein và RNA (ribonucleic acid)).
Trong nhiễm sắc thể là những gen, mang thông tin di truyền. Mỗi gen đặc biệt là
protein và là yếu tố độc lập của thông tin di truyền, quyết định đặc thù cho từng cá thể.
Trong thuật giải di truyền, nhiễm sắc thể là tập hợp các gen (các giá trị độc lập).
Mỗi nhiễm sắc thể thể hiện cho một giải pháp của vấn đề nhất định. Các gen có thể là
các biến boolean, số nguyên, dấu chấm động hoặc chuỗi Tập hợp các nhiễm sắc thể
khác nhau (cá thể) tạo thành một quần thể. Bằng phương pháp tiến hóa như: lai ghép,
lựa chọn và đột biến. Một quần thể mới được tạo ra.
3.2.2 Chọn lọc (Selection)
Trong tự nhiên, những cá thể có tính thích nghi cao nhất sẽ tồn tại đó là sự chọn
lọc. Các cá thể thích nghi với môi trường tốt hơn sẽ có cơ hội để tồn tại và tạo ra một
quần thể mới mang những gien tốt của quần thể cũ. Trong thuật giải di truyền, sự chọn
lọc các cá thể dựa trên một hàm thích nghi (fitness function). Các cá thể có hàm thích
nghi tốt sẽ được lai ghép để tạo thành một quần thể mới.
Chúng ta sử dụng một sự pha trộn của các phương pháp chọn lọc cho việc tái
sinh các nhiễm sắc thể.

Phương pháp chọn lọc đầu tiên là một nhiễm sắc thể tốt nhất (elitism) có hàm
thích nghi cao nhất sẽ được đưa vào quần thể mới.
Phương pháp chọn lọc thứ hai là phương pháp chọn lọc đấu loại k phần tử (k-
tournament). Trong phương pháp này, một nhiễm sắc thể có hàm thích nghi tốt nhất
trong số k nhiễm sắc thể được chọn ngẫu nhiên từ quần thể. Hai nhiễm sắc thể C
1
và C
2
có được từ việc lập lại thủ tục ở trên liên tiếp tạo ra một nhiễm sắc thể mới C
c+m
bằng
13
cách sử dụng các phép toán lai ghép và đột biến sẽ được giải thích sau. Thủ tục tái sinh
ở trên được lập lại nhiều lần bằng pSelect

|P|, với |P| là kích thước quần thể.
Cuối cùng, phần còn lại của tập quần thể mới được làm đầy bằng cách phát
sinh ngẫu nhiên các nhiễm sắc thể. Hình dưới đây cho thấy một phương pháp lai ghép
tái sinh dựa trên một hổn hợp của ba phương pháp tái sinh khác nhau.
Hình: Lược đồ phương pháp chọn lọc tái sinh.
3.2.3 Tái sinh (Recombination)
3.2.3.1 Lai ghép (Crossover)
Lai ghép là quá trình tạo quần thể mới trong đó, các gen của cha mẹ sẽ được sử
dụng để tạo một nhiễm sắc thể hoàn toàn mới.
14
3.2.3.2 Đột biến (Mutation)
Quần thể mới được tạo ra bằng chọn lọc và lai ghép có thể được tiếp tục áp
dụng để đột biến. Đột biến có nghĩa là, một số yếu tố của DNA được thay đổi. Những
thay đổi này chủ yếu được gây ra bởi những sai lầm trong quá trình sao chép gen của
cha mẹ. Trong thuật giải di truyền, đột biến có nghĩa là sự thay đổi ngẫu nhiên giá trị

của một gen trong nhiễm sắc thể. Nhiễm sắc thể có gen thay đổi hoặc nhiễm sắc thể
được phát sinh ngẫu nhiên cũng là một cách đột biến.
3.3 Giải thuật chung cho thuật giải di truyền
Thuật giải di truyền làm việc như sau:
- Cho P là một quần thể của các nhiễm sắc thể |P|.
- P(0) là quần thể khởi tạo được phát sinh ngẫu nhiên.
- P(t) là quần thể tại thời điểm t.
- Quần thể mới P(t+1) được tạo ra bằng cách sử dụng một tập các toán tử phát
sinh (tái sinh, lai ghép, đột biến) trên P(t).
- Mỗi nhiễm sắc thể trong P(t+1) được tái sinh theo tỷ lệ giá trị thích nghi của
nó tại thời điểm t.
- Lai ghép là tổ hợp lại 2 nhiễm sắc thể từ việc cắt chúng ở những vị trí ngẫu
nhiên và sự thay đổi những thông tin di truyền bằng cách ghép một hay nhiều đoạn
gien của hai (hay nhiều) nhiễm sắc thể cha-mẹ với nhau.
- Đột biến là hiện tượng cá thể con mang một (số) tính trạng không có trong mã
di truyền của cha-mẹ.
Nói chung, hiệu quả của thuật giải di truyền là một quần thể mới được tạo và
cho ra các giải pháp tốt hơn với các giá trị cao hơn của hàm thích nghi.
15
Khi chúng ta sử dụng thuật giải di truyền để giải quyết một vấn đề. Chúng ta
cần phải xem xét 5 yếu tố chính sau:
1. Lược đồ trình bày mối kết hợp của các nhiễm sắc.
2. Phương pháp tạo ra quần thể khởi tạo.
3. Hàm thích nghi cho các cá thể (nhiễm sắc thể).
4. Các toán tử phát sinh quần thể mới.
5. Tham số khởi tạo được cung cấp cho thuật giải di truyền.
16
Chương 4 TỐI ƯU SỰ PHÂN MẢNH BẰNG THUẬT GIẢI DI TRUYỀN
Phân tán tài nguyên không phải là một bài toán chỉ của hệ cơ sở dữ liệu phân
tán, mặc dù đối với cơ sở dữ liệu phân tán nó có những đặc trưng riêng, bài toán này đã

được biết đến trong các lý thuyết mạng với cách đặt vấn đề về cấp phát các tập tin.
Chúng ta có một mạng gồm các vị trí (nút) S = {S
1
, S
2
, , S
m
}, tập hợp các giao
dịch (transactions) đang thực hiện T = {T
1
, T
2
, , T
q
} và tập hợp các phân mảnh
(fragments) F = {F
1
, F
2
, , F
n
}. Bài toán cấp phát yêu cầu tìm một cách phân phối tối
ưu các mảnh F
i
cho các vị trí S
j
. Tính tối ưu được hiểu là cấp phát với chi phí nhỏ nhất
và với hiệu năng cao nhất.
Đây là một bài toán hết sức phức tạp, người ta phải giải quyết bài toán này bằng
các phương pháp heuristic và cũng chưa có một phương pháp nào thật sự hữu hiệu để

giải bài toán tối ưu tổng quát. Trong phạm vi của đề tài môn học này, tôi đề xuất một
phương pháp đó là sử dụng thuật giải di truyền để tìm cách phân bố các phân mảnh là
tối ưu nhất có thể.
4.1 Biễu diễn nhiễm sắc thể cho thuật giải di truyền
Chúng ta sử dụng thuật giải di truyền để xác định sự phân bố các phân mảnh ở
các vị trí sao cho là tối ưu nhất. Nhiễm sắc thể ở đây được biểu diễn là các FAT
(Fragment Allocation Table), mỗi FAT là một ma trận được biểu diễn như sau:
FAT
S
1
S
2
S
3
S
4
F
1
0 1 0 0
F
2
0 0 1 0
F
3
0 0 0 1
F
4
0 0 1 0
17
Như vậy, từ ma trận FAT trên cho chúng ta biết sự phân bố của các mảnh như

sau: mảnh thứ nhất được phân bố ở vị trí 2, mảnh 3 và 4 được phân bố ở vị trí 3, mảnh
3 được phân bố ở vị trí 4 và tại vị trí 1 không có phân bố phân mảnh nào.
4.2 Khởi tạo quần thể
Quần thể ban đầu được khởi tạo gồm pop_size nhiễm sắc thể được phát sinh
ngẫu nhiên và phải đảm bảo theo điều kiện có ít nhất một phần tử trong một dòng của
ma trận FAT có giá trị là 1, được minh họa như sau:
FAT
S
1
S
2
S
3
S
4
F
1
0 1 0 0
F
2
0 0 1 0
F
3
0 0 0 1
F
4
0 0 0 0
Hình: nhiễm sắc thể (FAT) không phù hợp
4.3 Hàm thích nghi của nhiễm sắc thể
Hàm thích nghi của một nhiễm sắc thể được tính toán dựa trên chi phí theo công

thức đã được trình bày ở trên:
4.4 Chọn lọc
Các nhiễm sắc thể được chọn lọc dựa trên hàm thích nghi của nhiễm sắc thể.
Chỉ những nhiễm sắc thể có hàm thích nghi tốt nhất mới được chọn lựa trong quá trình
tiến hóa
4.5 Tái sinh
4.5.1 Lai ghép
Lai ghép giữa hai nhiễm sắc thể được thực hiện bằng phương pháp sau:
18
 Chọn 2 nhiễm sắc thể trong quần thể mới vừa được chọn lọc để tiến hành
lai ghép
 Lai ghép giữa hai nhiễm sắc thể được thực hiện bằng cách hoán chuyển
hai dòng bất kỳ của 2 nhiễm sắc thể. Chúng ta có được 2 nhiễm sắc thể
mới bổ sung vào quần thể mới
FAT1 FAT2
S
1
S
2
S
3
S
4
S
1
S
2
S
3
S

4
F
1
1 0 0 1 F
1
0 1 0 0
F
2
0 0 1 0 F
2
0 0 1 0
F
3
0 0 0 1 F
3
1 0 0 0
F
4
0 1 0 0 F
4
0 0 1 0
FAT3 FAT4
S
1
S
2
S
3
S
4

S
1
S
2
S
3
S
4
F
1
0 1 0 0 F
1
1 0 0 1
F
2
0 0 1 0 F
2
0 0 1 0
F
3
0 0 0 1 F
3
1 0 0 0
F
4
0 1 0 0 F
4
0 0 1 0
4.5.2 Đột biến
Quá trình đột biến được thực hiện bằng cách chọn ngẫu nhiên một nhiễm sắc thể

trong quần thể mới. Sự đột biến được thực hiện bằng cách thay đổi chỉ số tại một vị trí
trong ma trân FAT như sau:
 Nếu FAT
i, j
= 1 thì gán FAT
i, j
= 0
19
 Nếu FAT
i, j
= 0 thì gán FAT
i, j
= 1
FAT
S
1
S
2
S
3
S
4
F
1
0 1 0 0
F
2
0 0 1 0
F
3

0 0 0 1
F
4
0 1 0 0
FAT’
S
1
S
2
S
3
S
4
F
1
0 1 1 0
F
2
0 0 1 0
F
3
0 0 0 1
F
4
0 1 0 0
4.6 Thuật giải
Đầu vào:
 Ma trận truy xuất (RM)
 Ma trận cập nhật (UM)
 Ma trận chọn lọc (SEL)

 Ma trận tần số (FREQ)
 Ma trận chi phí truyền thông (CTR)
Đầu ra:
 Ma trận FAT
Thuật giải:
20
Begin
t=0;
Initialize P(t);
Evaluate fitness functions in P(t);
while ~(stop_condition) do
Begin
t=t+1;
Select P(t) from P(t-1)
Recombine chromosomes in P(t)
Evaluate fitness functions in P(t)
End
End
4.7 Chương trình minh họa
Chương trình được cài đặt bằng ngôn ngữ lập trình C#, DotNetFramework 3.5.
Bộ cài đặt và source code được gửi kèm file của báo cáo đề tài này. Dưới đây là các
thông số cho việc thực hiện thuật giải di truyền:
Tham số thực hiện Giá trị
Kích thước quần thể (
|P|
) 100
Hệ số chọn lọc (
P
Select
) 30%

Xác suất lai ghép (
P
c
) 30%
Xác suất đột biến (
P
m
) 10%
Số lần tiến hoá 50
Tham số cho cơ sở dữ liệu:
Tham số thực hiện Giá trị
21
Kích thước gói dữ liệu (p_size) 1.024 byte
Chi phí khởi tạo gói dữ liệu (Cini) 0,032 ms / byte
Chi phí tạo kết nối (VCini) 6.576 ms
4.7.1 Màn hình nhập liệu
 Nhập các thông tin về cơ sở dữ liệu
 Nhập thông tin cho thuật giải di truyền
 Thực hiện: tìm ma trận FAT bằng thuật giải di truyền
4.7.2 Kết quả chương trình
 Ma trận FAT có chi phí truyền thông là nhỏ nhất
22
4.8 Kết luận
Với dữ liệu như trên, chúng ta nhận thấy rằng phân mảnh thứ 5 (F4) không
được truy xuất bởi bất kỳ giao dịch nào trong ma trận RM. Tuy nhiên, giao dịch thứ 1
(T0) và thứ 4 (T3) thực hiện cập nhật trong ma trận UM. Giao dịch giao dịch thứ 1 (T0)
và thứ 4 (T3) dựa vào ma trận tần số truy cập (FREQ) chỉ được phân bố tại các vị trí
thứ 3 (S1), thứ 3 (S2) và thứ 4 (S3). Như vậy, theo mô hình phân mảnh này, mảnh thứ
5 (F4) sẽ được phân bố một trong các vị trí trên theo chi phí truyền thông.
Chương trình thực hiện khá hiệu quả đối với dữ liệu mẫu của bài báo đưa ra. Vì

thời gian có hạn, và trong phạm vi đề tài này, tôi chưa đánh giá đầy đủ độ phức tạp và
hiệu quả của phương pháp này so với những phương pháp khác.
23
Tài liệu tham khảo:
[1] Nguyên lý các hệ cơ sở dữ liệu phân tán (Tập 1), M. Tamer Ozsu, Patrick
Valduriez, Biên dịch: Trần Đức Quang, Nhà xuất bản thống kê 1999.
[2] Fragment Allocation in Distributed Database Design, YIN-FU HUANG
AND JYH-HER CHEN
[3] Lập trình tiến hóa, TS Nguyễn Đình Thúc, NXB Giáo Dục
[4] Giáo trình Cơ sở dữ liệu nâng cao, PGT. TS Đỗ Phúc, Đại học Công nghệ
thông tin, Đại học Quốc gia TpHCM.
[5] Genetic Algorithms for optimization, Andrey Popov, Hamburg 2005
24

×