Đề tài Nghiên cứu ứng dụng thuật giải di truyền để tìm kiếm thông tin trên văn bản
a) Nguyên tắc Vượt nhanh:
- Vượt qua những giai đoạn có hại hoặc nguy hiểm với vận tốc lớn.
- Vượt nhanh để có được hiệu ứng cần thiết.
b) b. Nguyên tắc giải thừa hoặc thiếu:
Nếu như khó nhận 100% hiệu quả cần thiết, nên nhận ít hơn hay nhiều hơn “một chút”. Lúc
đó bài toán có thể trở nên đơn giản hơn. Thuật toán Di truyền xét một nhiểm sắc thể có phù
hợp hay không dựa vào kết quả của hàm thích nghi. Hàm thích nghi có thể cao hơn hay thấp
hơn một chút so với ngưỡng do người dùng thiết lập. Đây là sự áp dụng Nguyên tắc giải
thiếu hoặc thừa.
c) Nguyên tắc Sao chép:
Trong thuật toán di truyền, các nhiểm sắc thể con được hình thành từ việc sao chép một phần
của nhiểm sắc thể cha và một phần của nhiểm sắc thể mẹ. Sự sao chép này theo tỷ lệ thế nào
là phụ thuộc vào sự tính toán của người dùng sao cho tối ưu nhất.
9 trang |
Chia sẻ: lylyngoc | Lượt xem: 2506 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Đề tài Nghiên cứu ứng dụng thuật giải di truyền để tìm kiếm thông tin trên văn bản, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
CHƯƠNG TRÌNH ĐẠO TẠO THẠC SĨ CNTT QUA MẠNG
________________
BÀI THU HOẠCH MÔN HỌC PHƯƠNG PHÁP NGHIÊN CỨU KHOA
HỌC TRONG TIN HỌC
Đề tài: Nghiên cứu ứng dụng thuật giải di truyền để tìm kiếm
thông tin trên văn bản.
Giảng viên hướng dẫn:GS. TSKH HOÀNG KIẾM
Học viên thực hiện: Mai Ngọc Tùng
MSSV: CH1101055
TP. HCM, năm 2012
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
CHƯƠNG TRÌNH ĐẠO TẠO THẠC SĨ CNTT QUA MẠNG
Mai Ngọc Tùng – CH1101055 - 1 -
Mở đầu
Thuật giải di truyền, cũng như các thuật toán tiến hoa nói chung, hình thành dựa trên
quan niệm cho rằng, quá trình tiến hóa tự nhiên là 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ể được xem là 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 hóa 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 và hoàn thiện hơn thế hệ trước.
Hiện nay, thuật toán di truyền cùng với logic mờ được ứng dụng rất rộng rãi trong các
lĩnh vực tương đối phức tạp. Thuật toán di truyền kết hợp logic mờ đã chứng tỏ được hiệu
quả của nó trong các vấn đề khó giải quyết bằng các phương pháp thông thường hay các
phương pháp cố điển, nhất là trong các bài toán cần có sự lượng giá, đánh giá sự tối ưu của
kết quả thu được. Chính vì vậy, thuật giải di truyền (Genetic Algorithm) đã trở thành đề tài
nghiên cứu thú vị và mang đến nhiều ứng dụng thực tiễn ngày nay.
Trong phạm vi của bài thu hoạch nhỏ này, em sẽ trình bày một số vấn đề thuật toán di
truyền và ứng dụng của nó trong việc tìm kiếm trên văn bản. Qua đây, em cũng xin được gửi
lời cảm ơn đến Giáo sư - Tiến sỹ Khoa Học Hoàng Văn Kiếm, người đã tận tâm truyền đạt
những kiến thức nền tảng cơ bản cho chúng em về môn học “Phương pháp nhiên cứu khoa
học trong tin học” và em xin gửi lời cảm ơn đến toàn thể các bạn bè học viên trong lớp.
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
CHƯƠNG TRÌNH ĐẠO TẠO THẠC SĨ CNTT QUA MẠNG
Mai Ngọc Tùng – CH1101055 - 2 -
MỤC LỤC
CHƯƠNG TRÌNH ĐẠO TẠO THẠC SĨ CNTT QUA MẠNG............................................. 1
Mở đầu ................................................................................................................................ 1
PHẦN I : ỨNG DỤNG THUẬT GIẢI DI TRUYỀN ĐỂ TÌM KIẾM THÔNG TIN TRONG
VĂN BẢN ............................................................................................................................ 3
I. Thuật giải di truyền: ................................................................................................. 3
I.1. Khái niệm........................................................................................................................................ 3
I.2. Động lực ......................................................................................................................................... 3
I.3. Tính chất quan trọng của Giải thuật di truyền (GA): ......................................................................... 4
II. Sử dụng thuật giải di truyền để tìm kiếm mẫu trong Văn bản .......................................... 4
II.1. Xây dựng hàm tìm kiếm ................................................................................................................. 4
II.2. Xác định mức độ trùng khớp theo thứ tự của các ký tự trong mẫu tìm kiếm và văn bản .................... 5
II.3. Đặt vấn đề áp dụng giải thuật di truyền cho bài toán tìm kiếm trên................................................... 5
II.4. Cách biểu diễn di truyền cho lời giải của bài toán ............................................................................ 6
II.5. Cách khởi tạo quần thể lời giải ban đầu ........................................................................................... 6
II.6. Xây dựng hàm thích nghi đóng vai trò môi trường và đánh giá lời giải ............................................ 6
II.7. Sử dụng các toán tử lai ghép ........................................................................................................... 6
II.7.1. Toán tử chọn lọc ..................................................................................................................... 6
II.7.2. Toán tử lại ghép ...................................................................................................................... 6
II.7.3. Toán tử đột biến ...................................................................................................................... 6
PHẦN II : Các nguyên tắc sáng tạo sử dụng trong Thuật toán di truyền ............................ 7
PHẦN IV : Demo ................................................................................................................. 8
PHẦN V : Nguồn tham khảo ............................................................................................... 8
I. 8
II. vi.wikipedia.org/wiki/Giải_thuật_di_truyền ................................................................ 8
III. portal.uct.edu.vn ................................................................................................... 8
IV. .......................................................................................... 8
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
CHƯƠNG TRÌNH ĐẠO TẠO THẠC SĨ CNTT QUA MẠNG
Mai Ngọc Tùng – CH1101055 - 3 -
PHẦN I :
ỨNG DỤNG THUẬT GIẢI DI TRUYỀN ĐỂ TÌM KIẾM
THÔNG TIN TRONG VĂN BẢN
I. Thuật giải di truyền:
1) Khái niệm
Thuật giải di truyền cung cấp một cách tiếp cận cho việc học dựa vào mô
phỏng sự tiến hóa. Các giả thuyết thường được mô tả bằng các chuỗi bit, việc hiểu các
chuỗi bit này tùy thuộc vào ứng dụng, ý tưởng các giả thuyết cũng có thể được mô tả
bằng các biểu thức kí hiệu hoặc ngay cả các chương trình máy tính. Tìm kiếm giả
thuyết thích hợp bắt đầu với một quần thể, hay một tập hợp có chọn lọc ban đầu của
các giả thuyết. Các cá thể của quần thể hiện tại khởi nguồn cho quần thể thế hệ kế tiếp
bằng các hoạt động lai ghép và đột biến ngẫu nhiên – được lấy mẫu sau các quá trình
tiến hóa sinh học. Ở mỗi bước, các giả thuyết trong quần thể hiện tại được ước lượng
liên hệ với đại lượng thích nghi được cho, với các giả thuyết phù hợp nhất được chọn
theo xác suất là các hạt giống cho việc sản sinh thế hệ kế tiếp. Thuật giải di truyền đã
được ứng dụng một cách thành công cho những tác vụ học khác nhau và cho các vấn
đề tối ưu hóa khác. Ví dụ, chúng đã được dùng để học tập luật điều khiển robot và để
tối ưu hóa các thông số học và tôpô cho mạng nơron nhân tạo
2) Động lực
Thuật giải di truyền cung cấp một phương pháp học được thúc đẩy bởi sự tương
tự với sự tiến hóa sinh học. Thay vì tìm kiếm các giả thuyết từ tổng quát đến cụ thể
hoặc từ đơn giản đến phức tạp, GAs tạo ra các giả thuyết kế tiếp bằng cách lặp việc
đột biến và việc tái hợp các phần của giả thuyết được biết hiện tại là tốt nhất Ở mỗi
bước, một tập các giả thuyết được gọi là quần thể hiện tại được cập nhật bằng cách
thay thế vài phần nhỏ quần thể bởi cá thể con của các giả thuyết tốt nhất ở thời điểm
hiện tại. Sự phổ biến của GAs được thúc đẩy bởi các yếu tố sau:
Tiến hóa là một phương pháp mạnh, thành công cho sự thích nghi bên trong
các hệ thống sinh học.
GA có thể tìm kiếm trên các không gian giả thuyết có các phần tương tác phức
tạp, ở đó ảnh hưởng của mỗi phần lên toàn thể độ thích nghi giả thuyết khó có
thể mô hình.
Thuật giải GA có thể được thực hiện song song và có thể tận dụng thành tựu
của phần cứng máy tính mạnh.
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
CHƯƠNG TRÌNH ĐẠO TẠO THẠC SĨ CNTT QUA MẠNG
Mai Ngọc Tùng – CH1101055 - 4 -
3) Tính chất quan trọng của Giải thuật di truyền (GA):
GA lập luận có tính chất ngẫu nhiên để tìm giải pháp tối ưu cho những vấn đề phức
tạp. Tuy nhiên, đây là hình thức ngẫu nhiên có hướng dẫn bởi giá trị hàm thích nghi.
- Vấn đề thích hợp nhất cho GA là tìm điều kiện tối ưu. Tối ưu không nhất
thiết là tuyệt đối, mà có thể chỉ là tương đối trong hoàn cảnh và thời gian cho phép
- Một trong những bước quan trọng và khó khăn nhất là tìm hàm thích nghi.
Hàm thích nghi cần phải có liên hệ trực tiếp đến vấn đề cần giái quyết.
- GA và Mạng Nơron nhân tạo đề thuộc vào nhóm khoa học trí tuệ nhân tạo,
tuy nhiên GA lập luận dựa vào sự tiến hóa và xét vấn đề ở mức độ của gen và nhiễm
sắc thể, khác với mạng Nơron nhân tạo dựa vào kinh nghiệm và cách giải quyết vấn
đề mà bộ óc con người thường dùng.
Sự khác biệt giữa giải thuật di truyền so với các giải thuật khác bởi 4 đặc điểm sau:
- GA làm việc với sự mã hóa một bộ các thông số chứ không phải bản thân
các thông số.
- GA tìm kiếm từ một số điểm quần thể chứ không phải bắt đầu từ 1 điểm.
- GA sử dụng các thông tin về hàm mục tiêu chứ không phải đạo hàm hay
những tri thức phụ khác.
- GA sử dụng các luật chuyển đổi theo xác suất chứ không phải các luật
chuyển đổi tiền định.
II. Sử dụng thuật giải di truyền để tìm kiếm mẫu trong Văn bản
Hiện nay, trong bài toán tìm kiếm con người quan tâm đến những nội dung có liên
quan đến mẫu tìm kiếm hoặc có chứa một phần trong mẫu tìm kiếm. Theo dó, vấn đề đặt ra
là tìm trong toàn bộ văn bản V (độ dài N) vị trí xuất hiện của (các) đoạn văn bản gần
giống với văn bản mẫu Vm (độ dài M) nhất.
1) Xây dựng hàm tìm kiếm
Hàm tìm kiếm được xây dựng bởi sự liên kết giữa hai đại lượng:
+ Độ dài xâu con chung dài nhất giữa văn bản (độ dài N) và mẫu tìm kiếm (độ dài M) (G(x))
+ Độ dài trùng khớp về giá trị và vị trí của đoạn văn bản và mẫu (H(x))
Xâu con chung dài nhất ở đây là dãy ký tự dài nhất theo thứ tự giống nhau giữa hai xâu
(không yêu cầu tính liền mạch). Để tìm xâu con chung dài nhất, thuật toán hiệu quả nhất là
dung quy hoạch động có độ phức tạp O(M2). Thực tế, độ dài M cùa mẫu tìm kiếm thường
không lớn nền hoàn toàn có thể chấp nhận độ phức tạp này.
Hàm tìm kiếm có dạng sau: F(x) = a*G(x) + b*H(x) , 1 <= x <= N
* G(x) là tần suất xuất hiện Vm trong đoạn V[x..x+M] của V (tính từ vị trí x đến vị trí x+M
trong văn bản V).
* H(x) là độ đo thứ tự, thể hiện thứ tự xuất hiện các ký tự trong V[x..x+M] trùng với Vm.
H(x) được tính bằng cách so khớp lần lượt các ký tự, giá trị trả về chính là số lượng ký tự
trùng khớp (chữ cái và vị trí chữ cái đó) của Vm và V[x..x+M].
* a và b là tham số đóng vai trò điều tiết mức độ đóng góp của hàm G(x) và H(x) vào kết quả
cuối cùng của hàm F(x).
Xâu con chung dài nhất bằng quy hoạch động
a) Công thức quy hoạch động:
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
CHƯƠNG TRÌNH ĐẠO TẠO THẠC SĨ CNTT QUA MẠNG
Mai Ngọc Tùng – CH1101055 - 5 -
Gọi L(i,j) là độ dài xâu con chung dài nhất của xâu X(i) gồm i ký tự của X (X(i) =
X[1..i]) và xâu Y(j) gồm j ký tự của Y (Y(j) = Y[1..j])
Công thức quy hoạch động như sau:
L(0,j) = L(i,0) = 0.
L(i,j) = L(i-1, j-1) + 1 nếu X[i] = Y[j].
L(i,j) = MAX (L(i-1, j), L(i, j -1)) nếu X[i] Y[j].
b) Cài đặt:
Bảng phương án là một mảng 2 chiều L[0.m, 0..n] để lưu các giá trị của hàm Quy
hoạch động L(i, j). Đoạn chương trình cài đặt công thức Quy hoạch động trên như sau:
for i = 0 to m do L[i, 0] = 0
for j - 0 to n do L[0, j ] = 0
for i = 1 to m do
for j = 1 to n do
if X[i] = Y[j]
L[i,j] = L[i-1, j-1] + 1
Else
L(i,j) = MAX (L(i-1, j), L(i, j -1))
Như vậy chi phí không gian của bài toán là O(n2) , chi phí thời gian là O(n2). Có
phương pháp cài đặt tốt hơn, chỉ với chi phí không gian O(n) dựa trên điểm sau: để tính ô
L[i,j], ta chỉ cần 3 ô L[i-1, j-1], L[i-1, j] và L[i, j-1]. Tức là để tính dòng L[i] chỉ cần dòng
L[i-1]. Do đó, ta chỉ cần 2 mảng 1 chiều để lưu dòng vừa tính (P) và dòng đang tính (L) mà
thôi. Cách cài đặt mới như sau:
for j = 0 to n do P[j] = 0
for i = 1 to m do
begin
L[0] = 0;
For j =1 to n do
If X[i] = Y[j] then L[i,j] = P[j-1] + 1
Else L[i,j] = MAX(P[j], L[j-1])
P = L;
End
2) Xác định mức độ trùng khớp theo thứ tự của các ký tự trong
mẫu tìm kiếm và văn bản
3) Đặt vấn đề áp dụng giải thuật di truyền cho bài toán tìm
kiếm trên
Bài toán tìm kiếm được xây dựng lại như sau: “cho văn bản V có độ dài N và mẫu
tìm kiếm Vm có độ dài M (M=
k”.
Với cách phát biểu như trên, ta xác định k là giá trị ngưỡng cho trước (0<= k<=
Fmax(x), k đóng vai trò là tham số xác định độ chính xác của hàm tìm kiếm.
Bài toán đặt ra là tìm các giá trị x sao cho F(x) đạt giá trị lớn hơn hoặc bằng ngưỡng k
cho trước. Nếu tìm được các giá trị xmax để cho F(xmax) = M thì xmax chính là vị trí xuất hiện
mẫu Vm cần tìm trong văn bản V. Trường hợp bài toán chỉ cho kết quả tương đối tốt thì x là
các vị trí mà trong đoạn [x, x+M] có xuất hiện một phần trong mẫu tìm kiếm Vm (gần giống
nhất với mẫu tìm kiếm Vm). Trong trường hợp này, có giữ kết quả này hay không phụ thuộc
vào ngưỡng k.
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
CHƯƠNG TRÌNH ĐẠO TẠO THẠC SĨ CNTT QUA MẠNG
Mai Ngọc Tùng – CH1101055 - 6 -
Với H(x) khống chế sự trùng khớp về vị trí và giá trị giữa hai chuỗi, sự kết hợp của
H(x) và G(x) sẽ cho hàm F(x) đạt kết quả gần hơn, sát hơn so với mục tiêu tìm kiếm.
Tùy thuộc vào độ dài mẫu tìm kiếm, ta có thể điều chỉnh tham số a và b sao cho kết
quả tìm kiếm là tốt nhất. Nếu a lớn hơn b, có nghĩa là ưu tiên dùng hàm quy hoạch động,
ngược lại là ưu tiên dùng hàm so khớp vị trí để đánh giá hàm F(x).
4) Cách biểu diễn di truyền cho lời giải của bài toán
Ta sử dụng một vecto nhị phân V làm nhiễm sắc thể để biểu diễn các giá trị nguyên
của biến X. Chiều dài của vecto chính là số bit trong dãy bit nhị phân biểu được số nguyên
lớn nhất trong miền giá trị của X, tức là chiều dài vecto nhị phân length = log2n. Như vậy,
vecto nhị phân sẽ có chiều dài length sẽ biễu diển số nguyên là 2length.
Ví dụ văn bản có chiều dài tối đa (số ký tự) là n = 4000 thì cần có 12 bit cho vecto
nhị phân V: 2048 = 211 < 4000 < 212 = 4096. Nhiễm sắc thể v1 = (110001100010) thể hiện số
3170 và cũng là vị trí thứ x = 3170 trong văn bản. Nhiễm sắc thể v2 = (000000001100) thể
hiện x = 12.
5) Cách khởi tạo quần thể lời giải ban đầu
Tạo một quần thể các nhiễm sắc thể, trong đó mỗi nhiễm sắc thể là một vecto nhị
phân 12 bit, tất cả 12 bit cảu mỗi nhiễm sắc thể được khởi tạo ngẫu nhiên.
6) Xây dựng hàm thích nghi đóng vai trò môi trường và đánh giá lời
giải
Hàm thích nghi chính là hàm tím kiếm đã trình bày trong mục 3.0.
7) Sử dụng các toán tử lai ghép
II.7.1. Toán tử chọn lọc
Sử dụng toán tự chọn lọc tỷ lệ, ta thực hiện tiến trình chọn lọc bằng cách quay bánh
xe rulet pop-size lần; mỗi lần ta chọn một nhiễm sắc thể từ quần thể hiện hành vào quần thể
mới. Xác suất lựa chọn của mỗi cá thể tỷ lệ thuận với giá trị độ thích hợp của nó.
II.7.2. Toán tử lại ghép
Sự dụng toán tử lai ghép một điểm (One - point Crossover). Với cặp cha mẹ X, Y là
các vecto m chiều như ký hiệu trên, toán tử lai ghép 1 điểm chọn ngẫu nhiên một vị trí k (1
<= k <= m) rồi sinh ra 2 cá thể con theo công thức:
X ' = (x1,..., xk, yk+1,..., ym)
Y ' = (y1,..., yk, xk+1,..., xm)
Nếu cá thể con X' thích nghi tốt hơn cá thể cha mẹ X thì ta thay thể cá thể mẹ X bởi
cá thể con X', tương tự Y' cũng được thay thế Y nếu Y' có thích nghi tốt hơn.
II.7.3. Toán tử đột biến
- Chọn ngẫu nhiên 01 nhiễm sắc thể trong quần thể.
- Tạo một số ngẫu nhiên k trong khoảng 1 tới m (1 <= k <= m)
- Thay đổi bit thứ k trong nhiễm sắc thể vừa chọn, nếu nhiễm sắc thể này không xấu
hơn nhiễm sắc thể ban đầu thì đưa nhiễm sắc thể vào quần thể để tham gia quá trình tiến hóa
ở thế hệ kế tiếp.
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
CHƯƠNG TRÌNH ĐẠO TẠO THẠC SĨ CNTT QUA MẠNG
Mai Ngọc Tùng – CH1101055 - 7 -
PHẦN II : Các nguyên tắc sáng tạo sử dụng trong Thuật
toán di truyền
a) Nguyên tắc Vượt nhanh:
- Vượt qua những giai đoạn có hại hoặc nguy hiểm với vận tốc lớn.
- Vượt nhanh để có được hiệu ứng cần thiết.
b) b. Nguyên tắc giải thừa hoặc thiếu:
Nếu như khó nhận 100% hiệu quả cần thiết, nên nhận ít hơn hay nhiều hơn “một chút”. Lúc
đó bài toán có thể trở nên đơn giản hơn. Thuật toán Di truyền xét một nhiểm sắc thể có phù
hợp hay không dựa vào kết quả của hàm thích nghi. Hàm thích nghi có thể cao hơn hay thấp
hơn một chút so với ngưỡng do người dùng thiết lập. Đây là sự áp dụng Nguyên tắc giải
thiếu hoặc thừa.
c) Nguyên tắc Sao chép:
Trong thuật toán di truyền, các nhiểm sắc thể con được hình thành từ việc sao chép một phần
của nhiểm sắc thể cha và một phần của nhiểm sắc thể mẹ. Sự sao chép này theo tỷ lệ thế nào
là phụ thuộc vào sự tính toán của người dùng sao cho tối ưu nhất.
d) Nguyên tắc Tự phục vụ:
- Đối tượng phải tự phục vụ bằng cách thực hiện các thao tác phụ trợ, sửa chữa.
- Sử dụng phế liệu, chất thải, năng lượng dư.
Trong thuật toán di truyền, các nhiễm sắc thể phải liên tục thực hiện việc lai ghép và đột biến
gen để có thể dần tiến đến việc tạo lập những thế hệ tốt và tối ưu hơn thế hệ trước.
e) Nguyên tắc phân hủy hoặc tái sinh các phần:
Nhiễm sắc thể cha và mẹ sau khi thực hiện lai ghép hay đột biến để tạo thành nhiễm sắc thể
con. Nếu như nhiểm sắc thể con đạt được kết quả hàm thích nghi cao hơn hay tối ưu hơn so
với thế hệ cha mẹ, thì nhiễm sắc thể cha mẹ sẻ được loại bỏ đi. Để kết quả của thuật toán di
truyền sẽ đạt được tối ưu nhất, hoàn thiện nhất.
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
CHƯƠNG TRÌNH ĐẠO TẠO THẠC SĨ CNTT QUA MẠNG
Mai Ngọc Tùng – CH1101055 - 8 -
PHẦN IV : Demo
Do ước tính khoản tháng 5 nộp bài, nên chưa kịp viết demo cho GA.
PHẦN V : Nguồn tham khảo
1)
2) vi.wikipedia.org/wiki/Giải_thuật_di_truyền
3) portal.uct.edu.vn
4)
Các file đính kèm theo tài liệu này:
- ppnckh_k6_ch1101055_3341.pdf