Tiểu luận trí tuệ nhân tạo nâng cao hệ thống thông tin quản lý

40 511 0
Tiểu luận trí tuệ nhân tạo nâng cao hệ thống thông tin quản lý

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Tiểu luận trí tuệ nhân tạo nâng cao hệ thống thông tin quản lý

1 TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG *** Môn học : CÁC MÔ HÌNH VÀ KIẾN TRÚC HỆ THỐNG THÔNG TIN QUẢN LÝ GVHD: PGS Huỳnh Quyết Thắng Nhóm CHƯƠNG MỘT SỐ KỸ THUẬT TÌM KIÉM VĂN BẢN Trong phần quan tâm đến toán tìm kiếm văn thông dụng thuật toán có để tìm kiếm tất vị trí xuất mẫu văn Các thuật toán chạy chương trình thử nghiệm, cài đặt dùng hàm : Output để thông báo vị trí tìm thấy mẫu 1.1 Bài toán tìm kiếm văn Dữ liệu máy tính lưu trữ nhiều dạng khác nhau, sử dụng chuỗi cách phổ biến Trên chuỗi đơn vị liệu ý nghĩa quan trọng cách xếp chúng Ta thấy dạng khác chuỗi file liệu, biểu diễn gen, hay văn đọc Một phép toán chuỗi đối sánh mẫu (pattern matching), toán yêu cầu ta tìm nhiều vị trí xuất mẫu văn Trong mẫu văn chuỗi có độ dài M N (M < N), tập ký tự dùng gọi bảng chữ £, có số lượng ỗ Việc đối sánh mẫu diễn với nhiều lần thử đoạn khác văn Trong cửa sổ chuỗi M ký tự liên tiếp văn Mỗi lần thử chương trình kiểm tra giống mẫu với cửa sổ thời Tùy theo kết kiểm tra cửa sổ dịch sang phải văn cho lần thử 1.2 Các thuật toán 1.2.1 Thuật toán Brute Force Thuật toán Brute Force thử kiểm tra tất vị trí văn từ n-m+1 Sau lần thử thuật toán Brute Force dịch mẫu sang phải ký tự kiểm tra hết văn Thuật toán Brute Force không cần công việc chuẩn bị mảng phụ cho trình tìm kiếm Độ phức tạp tính toán thuật toán O(n*m) Thủ tục cài đặt: function IsMatch(const X: string; m: integer;const Y: string; p: integer): boolean; var i: integer; begin IsMatch := false; Dec(p); for i := to m if X[i] Y[p + i] then Exit; IsMatch := true; end; procedure BF(const X: string; m: integer; const Y: string; n: integer); var i: integer; begin for i := to n - m + if IsMatch(X, m, Y, i) then Output(i); { Thông báo tìm thấy mẫu vị trí i văn } end; 1.2.2 Thuật toán Knuth-Morris-Pratt Thuật toán Knuth-Morris-Pratt thuật toán có độ phức tạp tuyến tính phát ra, dựa thuật toán brute force với ý tưởng lợi dụng lại thông tin lần thử trước cho lần sau Trong thuật toán brute force dịch cửa sổ ký tự nên có đến m-1 ký tự cửa sổ ký tự cửa sổ vừa xét Trong có nhiều ký tự so sánh giống với mẫu lại nằm cửa sổ dịch vị trí so sánh với mẫu Việc xử lý ký tự tính toán trước lưu lại kết Nhờ lần thử sau dịch nhiều ký tự, giảm số ký tự phải so sánh lại Xét lần thử vị trí j, cửa sổ xét bao gồm ký tự y[j j+m1] giả sử khác biệt xảy hai ký tự x[i] vày[j+i-1] Khi x[1 i]=y[j i+j-1]=u a=x[i]≠y[i+j]=b Với trường hợp này, dịch cửa sổ phải thỏa mãn V phần đầu xâu x khớp với phần đuôi xâu u văn Hơn ký tự c sau V mẫu phải khác với ký tự a Trong đoạn V thoả mãn tính chất ta quan tâm đến đoạn có độ dài lớn U u v b c a x Y x j i+j-1 Dịch cửa sổ cho v phải khớp với u c ≠ a Thuật toán Knuth-Morris-Pratt sử dụng mảng Next[i] để lưu trữ độ dài lớn xâu v trường hợp xâu u=x[1 i-1] Mảng tính trước với chi phí thời gian O(m) (việc tính mảng Next thực chất toán qui hoạch động chiều) Thuật toán Knuth-Morris-Pratt có chi phí thời gian O(m+n) với nhiều 2n-1 lần số lần so sánh ký tự trình tìm kiếm Thủ tục cài đặt: procedure preKMP(const X: string; m: integer; var Next: array of integer); var i, j: integer; begin i := 1; j := 0; Next[1] := 0; while (i 0)and(X[i] X[j]) j := Next[j]; Inc(i); Inc(j); if X[i] = X[j] then Next[i] := Next[j] else Next[i] := j; end; end; procedure KMP(const X: string; m: integer; const Y: string; n: integer); var i, j: integer; Next: ATIntArr; { TIntArr = array[0 maxM] of integer } begin GetMem(Next, (m + 1)*SizeOf(Integer)); preKMP(X, m, NextA); i := 1; j := ; while (j 0)and(X[i] Y[j]) i := NextA[i]; Inc(i); Inc(j); if i > m then begin Output(j - i + 1); i := NextA[i]; end; end; FreeMem(Next, (m + 1)*SizeOf(Integer)); End; 1.2.3 Thuật toán Deterministic Finite Automaton (máy automat hữu hạn) Trong thuật toán này, trình tìm kiếm đưa trình biến đổi trạng thái automat Hệ thống automat thuật toán DFA xây dựng dựa xâu mẫu Mỗi trạng thái (nút) automat lúc đại diện cho số ký tự khớp mẫu với văn Các ký tự văn làm thay đổi trạng thái Và đạt trạng cuối có nghĩa tìm vị trí xuất mẫu Thuật toán có phần giống thuật toán Knuth-Morris-Pratt việc nhảy trạng thái trước gặp ký tự không khớp, thuật toán DFA có đánh giá xác việc xác định vị trí nhảy dựa kỷ tự không khớp văn (trong thuật toán KMP lùi dựa vị trí không khớp) Với xâu mẫu GCAGAGAG ta có hệ automat sau 7 GGGGGCCCGCAGAGAG Với ví dụ hình ta có: * Nếu trạng thái gặp ký tự A văn chuyển sang trạng thái * Nếu trạng thái gặp ký tự C văn chuyển sang trạng thái * Trạng thái trạng thái cuối cùng, đạt trạng thái có nghĩa tìm thất xuất mẫu văn * Trạng thái trạng thái mặc định (các liên kết không biểu thị trạng thái này), ví dụ nút gặp ký tự khác G chuyển trạng thái Việc xây dựng hệ automat đơn giản cài đặt ma trận kề Khi thuật toán có thời gian xử lý O(n) thời gian nhớ để tạo hệ automat O(m*δ) (tùy cách cài đặt) Nhưng ta nhận thấy DFA có nhiều m cung thuận m cung nghịch, việc lưu trữ cung không cần thiết phải lưu ma trận kề mà dùng cấu trúc danh sách kề Forward Star để lưu trữ Như thời gian chuẩn bị lượng nhớ O(m) Tuy nhiên thời gian tìm kiếm tăng lên chút so với cách lưu ma trận kề Cài đặt xin dùng cách đơn giản (ma trận kề) Type TAut = array [0 maxM, maxd] of integer; procedure preAUT(const X: string; m: integer; var G: TAut); var i, j, prefix, cur, c, newState: integer; begin FillChar(G, SizeOf(G), 0); cur := 0; for i := to m begin prefix := G[cur, Ord(X[i])]; {x[1 prefix]=x[iprefix+1 i]} newState := i; G[cur, Ord(X[i])] := newState; for c := to maxd {copy prefix -> newState } G[newState, c] := G[prefix, c]; cur := newState; end; end; procedure AUT(const X: string; m: integer; const Y: string; n: integer); var G: ATAut; state, i: integer; begin New(G); preAUT(X, m, GA); state := 0; for i := to n begin state := GA[state, Ord(Y[i])]; {chuyển trạng thái} if state = m then Output(i - m + 1); end; Dispose(G); end; CHƯƠNG GIỚI THIỆU VỀ GIẢI THUẬT DI TRUYỀN Phần tìm hiểu giải thuật di truyền, trọng đến kỹ thuật có liên quan đến toán tìm kiếm 2.1 Tổng quan giải thuật di truyền 2.1.1 Giới thiệu Thuật giải di truyền, thuật toán tiến hoá nói chung, hình thành dựa quan niệm cho rằng, trình tiến hoá tự nhiên hoàn hảo nhất, hợp lý nhất, tự mang tính tối ưu Quan niệm xem tiên đề đúng, không chứng minh được, phù hợp với thực tế khách quan Quá trình tiến hoá thể tính tối ưu chỗ, hệ sau tốt hơn, phát triển hơn, hoàn thiện hệ trước Tiến hoá tự nhiên trì nhờ hai trình bản: sinh sản chọn lọc tự nhiên Xuyên suốt trình tiến hoá tự nhiên, hệ sinh để bổ xung thay thế hệ cũ Cá thể phát triển hơn, thích ứng với môi trường tồn tại, cá thể không thích ứng với môi trường bị đào thải Sự thay đổi môi trường động lực thúc đẩy trình tiến hoá Ngược lại, tiến hoá tác động trở lại góp phần làm thay đổi môi trường Mục tiêu nghiên cứu giải thuật di truyền (GA) là: - Trừu tượng hóa diễn đạt xác trình thích nghi hệ thống tự nhiên - Thiết kế phần mềm hệ thống nhân tạo nhằm trì chế quan trọng hệ thống tự nhiên Những mục tiêu dẫn đến khám phá quan trọng hệ thống 10 khoa học tự nhiên lẫn nhân tạo GA đời phát triển dựa trình tiến hóa tự nhiên ứng dụng thành công nhiều lĩnh vực tối ưu hóa máy học 2.1.2 Sư khác biệt giải thuật di truyền so với giải thuật khác GA khác với tối ưu hóa thông thường giải thuật tìm kiếm khác điểm sau: • GA làm việc với mã hóa thông số, thân thông số • GA tìm kiếm từ số điểm quần thể, từ điểm • GA sử dụng thông tin hàm mục tiêu đạo hàm (derivatives) hay tri thức phụ khác • GA sử dụng luật chuyển đổi theo xác suất, luật chuyển đổi tiền định GA đòi hỏi tập hợp thông số tự nhiên toán tối ưu để mã hóa thành chuỗi có chiều dài hữu hạn, dựa số hữu hạn ký tự 2.1.3 Tính chất quan giải thuật di truyền GA lập luận có tính chất ngẫu nhiên để tìm giải pháp tối ưu cho vấn đề phức tạp Tuy nhiên hình thức ngẫu nhiên có hướng dẫn giá trị hàm thích nghi Chính hàm thích nghi vật đường cho GA tìm lời giải tối ưu 26 3.5 Áp dụng giải thuật di truyền Với toán tìm kiếm văn phát biểu mục 3.3 là: Tìm xe [1, n] | F(x) = a*G(x) + b*H(x) > k; Có nghĩa tìm x khoảng [1, n] để hàm F(x) đạt giá trị vượt ngưỡng k cho trước, x giá trị nguyên tương ứng với vị trí văn tìm kiếm có độ dài n ký tự Hai tham số a b tham số xác định độ ưu tiên đánh giá theo G(x) H(x), giả sử ta để a + b = Hàm F đạt giá trị vượt ngưỡng k nhiều vị trí, giá trị lớn hàm F M Để thuận lợi cho việc đánh giá ta định lại giá trị F := F/M Khi hàm F đạt giá trị lớn = F có miền giá trị e [0, 1] Dùng giải thuật di truyền giải toán ta có hàm F hàm mục tiêu (hàm lượng giá), x nhiễm sắc thể; thành phần giải thuật sau: 3.5.1 Biểu diễn nhiễm sắc thể Ta sử dụng vectơ nhị phân v làm nhiễm sắc thể để biểu diễn giá trị nguyên biến x Chiều dài vectơ số bít dãy bít nhị phân biểu diễn số nguyên lớn miền giá trị x, tức chiều dài vectơ nhị phân l = log2n Như vectơ nhị phân có chiều dài l biểu diễn số nguyên 2l Ví dụ văn có chiều dài tối đa (số ký tự) n = 4000 cần có 12 bit cho véc tơ nhị phân (nhiễm sắc thể): 2048 = 211 < 4000 < 212 = 4096 27 Ánh xạ biến chuỗi nhị phân (b 12b11 b0) thành số nguyên x khoảng [1 4000] thực sau: Ví dụ, nhiễm sắc thể v1 = (110001100010) biểu diễn số 3170 vị trí ký tự thứ x = 3170 văn Nhiễm sắc thể v = (000000001100) biểu diễn x = 12 3.5.2 Khởi tạo quần thể Khởi tạo quần thể đơn giản sau: Ta tạo quần thể nhiễm sắc thể, nhiễm sắc thể vectơ nhị phân 12 bit, tất 12 bit nhiễm sắc thể khởi tạo ngẫu nhiên 3.5.3 Hàm mục tiêu Hàm mục tiêu eval vectơ nhị phân v hàm F: eval(v) = F(x) đó, nhiễm sắc thể v biểu diễn giá trị nguyên x nói trên, hàm mục tiêu đóng vai trò môi trường, đánh giá lời giải theo độ thích nghi chúng F(x) đánh giá qua hai hàm G(x) H(x) trình bày 28 mục 3.2 3.3 Ví dụ, nhiễm sắc thể: v1 = ‘110100101011’ v2 = ‘011110010011’ vs = ‘011000000011’ v4 = ‘111100101111’ v5 = ‘000000111111’ tương ứng với giá trị x1 = 3371, x2 = 1939, x3 = 1539, x4 = 3887, x5 = 3371 Và có độ thích nghi tương ứng: eval(v1) = F(x1) = 0.1364 eval(v2) = F(x2) = 0.0909 eval(v3) = F(x3) = 0.4091 eval(v4) = F(x4) = 0.1364 eval(v5) = F(x5) = 0.0909 Dễ thấy, nhiễm sắc thể v3 tốt nhiễm sắc thể này, hàm mục tiêu trả giá trị cao 3.5.4 Các toán tử di truyền Trong nghiên cứu ta sử dụng phép toán di truyền chọn lọc, đột biến lai; cụ thể: *Toán tử chọn lọc: Sử dụng toán tử chọn lọc tỷ lệ, ta thực tiến trình 29 chọn lọc cách quay bánh xe ru lét pop-size lần; lần chọn nhiễm sắc thể từ quần thể hành vào quần thể trình bày mục 2.2.2.1 *Toán tử lai ghép: Sử dụng toán tử lai ghép điểm (One-point Crossover), Với cặp cha mẹ X, Y vectơ m chiều ký hiệu trên, toán tử lai ghép điểm chọn ngẫu nhiên vị trí k (1 < k < m) sinh cá thể theo công thức X’ = (xi, , Xk, yk+ , , ym ) Y’ = (yi, , yk, Xk+ , , Xm ) Nếu cá thể X’ thích nghi tốt cá thể cha mẹ X ta thay cá thể mẹ X cá thể X’, tương tự Y’ thay Y Y’ thích nghi tốt *Toán tử đột biến: Sử dụng toán tử đột biến sau : - Chọn ngẫu nhiên NST quần thể - Tạo số ngẫu nhiên k khoảng từ tới m, < k < m Thay đổi bít thứ k Nếu nhiễm sắc thể không xấu nhiễm sắc thể ban đầu đưa nhiễm sắc thể vào quần thể để tham gia trình tiến hóa hệ 3.5.5 Các tham số Đối với toán này, ta sử dụng tham số sau đây: kích thước quần thề pop-size = 20, xác suất lai tạo pc = 0.25, xác suất đột biến pm = 0.01 (nhỏ nhiều 30 so với xác suất lai) Xác suất lai p c = 0.25 nghĩa cá thể v quần thể có 25% hội chọn để thực phép lai; xác suất đột biến p m = 0.01 lại 1% bít cá thể quần thể bị đột biến 3.5.6 Chi phí thời gian Thời gian tính toán (độ phức tạp) thuật giải di truyền tìm kiếm văn trình bày O(i*Size*Sobit*M2) Trong i số hệ tiến hoá, độ lớn i tuỳ thuộc vào toán cụ thể, thường i lớn đến hàng nghìn; Size kích thước quần thể - số cá thể quần thể (thông thường đến vài chục cá thể); M chiều dài văn mẫu, M2 thời gian thực hàm quy hoạch động; Sobit chiều dài nhiễm sắc thể (số bit véc tơ lời giải) tính log2N (N độ dài văn bản), số lên đến vài chục bit Sobit Size thường nhỏ (coi số), độ phức tạp thuật giải O(i*M2) cho lần tìm kiếm, tương đương nhỏ độ phức tạp O(N*M) thuật toán tìm kiếm tuyến tính văn dài - số N lớn Trong nghiên cứu ta dùng giải thuật di truyền để giải toán tìm kiếm văn đáp ứng tốt yêu cầu thời gian 31 CHƯƠNG KẾT QUẢ THỬ NGHIỆM VÀ PHÁT TRIỂN PHẦN MỀM ỨNG DỤNG 4.1 Các kết thử nghiệm Các kết thử nghiệm thu từ lập trình cài đặt pascal với file văn để tìm kiếm „Readme.txt’ có chiểu dài 4000 ký tự (khoảng 212), văn mẫu “text search” Kết thu nội dung nghiên cứu sau: 4.1.1 Kết thử nghiệm tìm kiếm tuyến tính Dưới kết thử nghiệm phương pháp tìm kiếm tuyến tính: phương pháp so khớp chuỗi (theo thuật toán Brute Force) phương pháp dùng hàm quy hoạch động (thử nghiệm hàm ta nghiên cứu sử dụng cho giải thuật di truyền) Cài đặt thử nghiệm cho hai phương pháp tìm kiếm tuyến tính tìm kiếm xác (ngưỡng = 1), kết quả: 4.1.1.1 Tìm kiếm tuyến tính so khớp chuỗi KET QUA TKTT SO KHOP: FILE TIM KIEM: c:\tp7\bin\caidat\readme.txt CHUOI VAN BAN TIM KIEM: Bảng 4.1: Kết thử nghiệm tìm kiếm tuyến tính so khớp chuỗi Kết kiểm nghiệm lại file văn tìm kiếm, vị trí 32 xuất bảng 4.1 tất vị trí xuất mẫu „text search’ file „Readme.txt’ 4.1.1.2 Tìm kiếm tuyến tính sử hàm dụng quy hoạch động KET QUA TKTT SD QUY HOACH DONG: FILE TIM KIEM: c:\tp7\bin\caidat\readme.txt CHUOI VAN BAN TIM KIEM: $text search$ SO KY TU CUA FILE TIM KIEM: 4259 CAC VI TRI XUAT HIEN: 76 1117 1537 2734 3062 SO LAN XUAT HIEN: THOI GIAN THUC HIEN (%second): 208 lần lặp: Lân Test Thế hệ - Khởi tạo - Cuối - Khởi tạo - Cuối - Khởi tạo - Cuối - Khởi tạo - Cuối - Khởi tạo - Cuối - Khởi tạo - Cuối - Khởi tạo Cá thê tôt nhâl Thứ tự cá Giá trị hàm Vị trí trongThời gian thê mục tiêu văn thực Quân thê 16 0.409 2731 3 1 2734 0.273 2230 0.682 707 76 1 76 0.409 1320 3 0.409 1320 10 0.273 2202 0.381 784 15 0.409 1539 1 1537 0.273 1653 Nhận xét kết Đạt cực đại Tốt Đạt cực đại Không đổi Bình thường Đạt cực đại Bình 33 - Cuối - Khởi tạo - Cuối - Khởi tạo - Cuối - Khởi tạo - Cuối - Khởi tạo 16 12 Cuối Khởi tạo - Cuối 13 - Khởi tạo - Cuối 14 - Khởi tạo 28 - Cuối 15 - Khởi tạo - Cuối 16 - Khởi tạo 17 Cuối Khởi tạo - Cuối 18 - Khởi tạo - Cuối 19 - Khởi tạo - Cuối 20 - Khởi tạo - Cuối 17 1 14 10 11 0.364 0.409 0.318 0.318 0.500 0.409 0.500 0.138 0.364 0.636 0.227 0.500 359 3064 76 80 834 1096 1535 259 666 953 905 1881 838 3 3 33 0.455 0.364 0.455 0.318 0.363 0.455 0.273 0.227 0.364 1114 1117 770 1505 1329 905 3063 3062 288 218 2681 43 32 38 33 39 38 32 thường Đạt cực đại Đạt cực đại Tương đối Tương đối Đạt cực đại Tốt Tương đối Đạt cực đại Tương đối Bình thường Đạt cực đại Đạt cực đại Bình thường Bảng 4.3: Tóm tắt kết sau 20 lần lặp Nhận xét: Trong kết thực nghiệm tìm kiếm xác theo phương pháp tuyến tính dùng hàm quy hoạch động tìm vị trí 6, 76, 1117, 1537, 2734 3062 với tổng thời gian thực 208 (% giây) Với giải thuật di truyền sau 20 lần lặp cho ta kết tất vị trí xuất mẫu văn với thời gian lần thực nhỏ (khoảng 30 - 40 % giây) Quan sát bảng ta thấy có lần đạt cực đại với xuất vị 34 trí (tìm tối đa vị trí xuất mẫu), vị trí thứ xuất lần, vị trí thứ 76 xuất lần, bốn vị trí khác vị trí xuất lần Như ta hoàn toàn dùng thuật giải di truyền để tìm kiếm xác tất vị trí mẫu văn Trong trường hợp đoạn văn trùng với mẫu thuật toán phát huy hiệu đưa vị trí tốt (các đoạn văn gần giống với văn mẫu) thời gian cho phép Ta quan sát kết đạt ta giảm dần ngưỡng tìm kiếm từ 0.9 -> 0.8 qua lần thử nghiệm: * Kết 10 lần xuất vượt ngưỡng (với ngưỡng = 1): vượt Số thê hệ Lần Lần lặp ngưỡng thứ vượt ngưỡng thứ 98 92 89 71 100 10 93 14 88 15 80 18 10 85 Giá trịVị trí xuất hiệnThời gian thực hàm F văn (% giây) 1 1 1 1 1 1117 76 76 1537 76 3026 76 1117 1117 1117 97 27 38 22 22 28 77 22 71 44 Bảng 4.4: Kết 10 lần xuất vượt giá trị ngưỡng = Khi lấy ngưỡng cực đại kết cho vị trí xác xuất 35 mẫu Chương trình 18 lần lặp để đưa 10 lần vượt ngưỡng * Kết 10 lần xuất vượt ngưỡng (với ngưỡng = 0.9): vượt Số thê hệ Lần Lần lặp ngưỡng thứ vượt ngưỡng thứ Giá trị Vị trí xuất Thời gian thực hàm F văn (% giây) 1 85 0.909 5, 116 2 54 0.909 1536 1537 99 13 0.909 3061, 77 76 93 100 6, 76, 1117 82 30 0.909 75, 77 76, 1117 98 65 0.909 1116,1118 1117 72 99 0.909 77 76 77 10 87 77 11 93 0.909 75 76 88 12 10 91 99 Bảng 4.5: Kết 10 lần xuất vượt giá trị ngưỡng = 0.9 Với ngưỡng = 0.9 số lần lặp 12 giảm đáng kể so với ngưỡng = (số lần chạy 18) Các vị trí đưa giá trị hàm F 0.909 Với giá trị 0.909 vị trí đưa lệch ký tự so với vị chí xuất mục tiêu đưa vị 36 trí gần mẫu có hiệu * Kết 10 lần xuất vượt ngưỡng (với ngưỡng = 0.8): vượt Số thê hệ Lần Lần lặp ngưỡng thứ vượt 1 100 ngưỡng 2 88 3 95 4 89 5 78 6 100 7 95 100 10 81 Giá trị Vị trí xuất Thời gian thực hàm F văn (% giây) 132 0.181 7, 0.909 0.909 2733, 2735 83 2734 0.909 3061, 3063 71 3062 77 0.181 0.909 0.181 0.909 0.181 0.909 0.909 0.181 0.909 8, 78 77, 75 76 1539 1537 1118 2735 2734 1539 1537 1536 1537 88 83 85 88 77 87 Bảng 4.6: Kết 10 lần xuất vượt giá trị ngưỡng = 0.8 Dễ thấy ngưỡng giảm xuất gần tăng lên, với ngưỡng = 0.8 ta 10 lần lặp cho 10 lần xuất vượt ngưỡng (lần lặp tìm vị trí gần giống với mẫu) tìm tất vị trí gần với mẫu 10 lần lặp Với khả phát tất vị trí gần với mẫu cách dễ dàng thời gian ngắn, nghiên cứu thành công với mục tiêu đặt ban đầu, 37 phát triển ứng dụng tìm kiếm đạt hiệu cao 4.2 Phát triển phần mềm ứng dụng Phần mềm ứng dụng xây dựng môi trường Windows giai đoạn phát triển Phần mềm phát triển thành công sử dụng tốt với khả năng: Cho phép tìm kiếm tất file văn máy tính có chứa từ, cụm từ hay đoạn văn bản; chứa nội dung gần giống với nội dung văn cần tìm Các kiểu file văn tìm kiếm tệp tin định dạng txt, doc, xls, ppt số tệp tin văn khác môi trường Windows Ngoài chương trình có tham số lựa chọn khác thuận tiện theo mục đích người sử dụng, chẳng hạn như: tham số kích thước quần thể, số hệ tiến hoá, lựa chọn độ xác (ngưỡng) với từ khoá tìm kiếm, số vị trí xuất đáp ứng phần lớn nhu cầu sử dụng cách thiết thực hiệu Tiểu luận môn trí tuệ nhân tạo nâng cao Đề tài tránh khỏi khiếm khuyết, mong tham gia góp ý quý thầy cô bạn Tôi xin chân thành cảm ơn! TÀI LIỆU THAM KHẢO Để hoàn thành đề tài tham khảo tài liệu sau: [1] Hoàng Kiếm, Lê Hoàng Thái, Giải thuật di truyền, cách giải tự nhiên toán máy tính, NXB GD, 2000 [2] Nguyễn Hoàng Phương, Nadipuram R.Prasad, Lê Linh Phong, Nhập môn trí tuệ tính toán, NXB KH&KT, 2002 [3] Nguyễn Đình Thúc, Lập trình tiến hoá, NXB GD, 2001 [4] Đỗ Xuân Lôi, Cấu trúc liệu giải thuật, Nhà xuất Khoa học Kỹ thuật, 1998 [5] Goldberg, D.E , Genetic algorithms in search, optimization and machine learning, Addison-Wesley, Reading, MA 1989 [6] Michalewicz, Z., Genetic Algorithms + Data Structures = Evolution Program Springer Verlag, 1992 [7] Unirich Bodenhofer, Genetic Algorithms : Theory and Applications, Lecture Notes, 2003/2004 [8] Zbigniew Michalewichz and Marc Choenauer, Evolutionary Algorithms for Nhóm thực hiện: 38 GVHD: Tiểu luận môn trí tuệ nhân tạo nâng cao Constrained Parameter Optimization Problems, Evolutionary Computation Vol 4, No 1, 1996 [9] (15) Holland, J.H 1992 Adaptation In Natural And Artificial Systems First Massachusetts Institute of Technology Press [10] (30) Shaffer, 1999 [11] (14) Goldberg, D E 1989 Genetic Algorithms in Search, Optimization and Machine Learning Addison-Wesley Press [12] (35) Zbigniew Michalewicz 1999 Genetic Algorithms + Data Structures = Evolution Program Springer-Verlag Berlin Press [13] Davis, L 1991 Handbook of Genetic Algorithms, Van Nostrand Reinhold Press [14] Syswerda G., 1989 Uniform crossover in genetic algorithms Proceedings of the international conference, 2-9, Philips Laboratories Editor [15] Scott Robert Ladd 1996 Genetic Algorithms in C++ M & T Book Press [16] Matthew Wall 1996 GAlib: A C++ Library of Genetic Algorithm Com ponents MIT Press [17] Matthew Wall Ph D Dissertation, Ann Arbor Massachusetts Institute of Technology Press Davis, L 1991 Handbook of Genetic Algorithms Van Nostrand Reinhold Press Nhóm thực hiện: 39 GVHD: Tiểu luận môn trí tuệ nhân tạo nâng cao MỤC LỤC TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI .1 MỘT SỐ KỸ THUẬT TÌM KIÉM VĂN BẢN GIỚI THIỆU VỀ GIẢI THUẬT DI TRUYỀN .9 CHƯƠNG 19 SỬ DỤNG GIẢI THUẬT DI TRUYỀN ĐỂ TÌM KIÉM VĂN BẢN 19 CHƯƠNG .31 KẾT QUẢ THỬ NGHIỆM VÀ PHÁT TRIỂN PHẦN MỀM ỨNG DỤNG 31 Nhóm thực hiện: 40 GVHD: [...]... cực đại Bình 33 - Cuối cùng - Khởi tạo - Cuối cùng - Khởi tạo - Cuối cùng - Khởi tạo - Cuối cùng - Khởi tạo 1 6 1 7 1 3 2 16 12 Cuối Khởi cùng tạo - Cuối cùng 13 - Khởi tạo - Cuối cùng 14 - Khởi tạo 28 1 8 1 7 - Cuối cùng 15 - Khởi tạo - Cuối cùng 16 - Khởi tạo 1 8 2 1 17 Cuối Khởi cùng tạo - Cuối cùng 18 - Khởi tạo - Cuối cùng 19 - Khởi tạo - Cuối cùng 20 - Khởi tạo - Cuối cùng 17 1 1 1 14 1 5 2... khó khăn nhất là tìm hàm số thích nghi Hàm số thích nghi phải có liên hệ trực tiếp đến vấn đề cần giải GA và mạng nơron nhân tạo đều thuộc vào nhóm khoa học trí tuệ nhân 4 tạo, tuy nhiên GA lập luận dựa theo sự tiến hóa và xét vấn đề ở tầm mức của gen và NST, khác với mạng nơron nhân tạo dựa trên kinh nghiệm và cách giải quyết vấn đề mà bộ óc con người thường dùng 2.2 Giải thuật di truyền cổ điển 2.2.1... 2734 3062 SO LAN XUAT HIEN: 6 1 THOI GIAN THUC HIEN (%second): 208 lần lặp: Lân Test Thế hệ 1 - Khởi tạo - Cuối cùng 2 - Khởi tạo - Cuối cùng 3 - Khởi tạo - Cuối cùng 4 - Khởi tạo - Cuối cùng 5 - Khởi tạo - Cuối cùng 6 - Khởi tạo - Cuối cùng 7 - Khởi tạo Cá thê tôt nhâl Thứ tự cá Giá trị hàm Vị trí trongThời gian thê trong mục tiêu văn bản thực hiện Quân thê 16 0.409 2731 3 3 1 1 2734 9 0.273 2230... kiếm ở đây không đòi hỏi vị trí xuất hiện chính xác của xâu mẫu mà là tìm vị trí xuất hiện gần đúng của xâu mẫu, tìm kiếm có thể đạt kết quả tốt nhất khi vị trí xuất hiện đó chính là mẫu cần tìm Với mục tiêu này, các thuật toán giới thiệu ở trên đều có thể giải quyết được bằng cách: tại một vị trí i trong văn bản, thay vì việc đi so sánh đoạn văn bản M ký tự (từ vị trí i đến vị trí i+M) đang xét với mẫu... vị trí xuất hiện mẫu), trong đó vị trí thứ 6 xuất hiện 3 lần, vị trí thứ 76 xuất hiện 2 lần, bốn vị trí khác mỗi vị trí xuất hiện một lần Như vậy ta hoàn toàn có thể dùng thuật giải di truyền để tìm kiếm chính xác tất cả các vị trí của mẫu trong văn bản Trong trường hợp không có đoạn văn bản nào trùng với mẫu thì thuật toán sẽ phát huy được hiệu quả là đưa ra các vị trí tốt nhất (các đoạn văn bản gần... v1 = (110001100010) biểu diễn số 3170 và cũng là vị trí ký tự thứ x = 3170 trong văn bản Nhiễm sắc thể v 2 = (000000001100) biểu diễn tại x = 12 3.5.2 Khởi tạo quần thể Khởi tạo quần thể đơn giản như sau: Ta 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 vectơ nhị phân 12 bit, tất cả 12 bit của mỗi nhiễm sắc thể đều được khởi tạo ngẫu nhiên 3.5.3 Hàm mục tiêu Hàm mục tiêu eval... tìm được 6 vị trí là 6, 76, 1117, 1537, 2734 và 3062 với tổng thời gian thực hiện là 208 (% giây) Với giải thuật di truyền thì sau 20 lần lặp cũng cho ta kết quả là tất cả các vị trí xuất hiện mẫu trong văn bản với thời gian của mỗi lần thực hiện là rất nhỏ (khoảng 30 - 40 % giây) Quan sát bảng trên ta thấy có 9 lần đạt cực đại với sự xuất hiện cả 6 vị 34 trí (tìm được tối đa các vị trí xuất hiện mẫu),... thì sự giống nhau là không đáng kể so với tại vị trí mà hai nửa đầu của đoạn văn bản trong S và đoạn văn bản mẫu trùng khớp với nhau Ví dụ: Cho xâu mẫu Sm = enables you to quickly search files for text (44 ký tự) 23 Giả sử tại vị trí x trong văn bản S có đoạn văn bản 44 ký tự tính từ vị trí x là Sx = „search anything from a single file to an ent (vị trí x là ký tự s đầu tiên trong chuỗi) Khi đó giá... là 18) Các vị trí đưa ra tại giá trị hàm F là 0.909 và 1 Với giá trị 0.909 thì vị trí đưa ra chỉ lệch 1 ký tự so với vị chí xuất hiện và mục tiêu đưa ra vị 36 trí gần đúng mẫu đã có hiệu quả * Kết quả của 10 lần xuất hiện vượt ngưỡng (với ngưỡng = 0.8): vượt Số thê hệ Lần Lần lặp ngưỡng thứ vượt 1 1 100 ngưỡng 2 2 88 3 3 95 4 4 89 5 5 78 6 6 100 7 8 7 7 4 95 9 8 100 10 9 81 Giá trị Vị trí xuất hiện... khi tìm kiếm số M thường không lớn nên hoàn toàn chấp nhận được Hàm tìm kiếm được xây dựng là: F(x) = a*G(x) + b*H(x) (3.1.1) Trong đó: x là vị trí trong văn bản (x e [1 N]) G(x) là tần suất xuất hiện Sm trong đoạn S[x x+M] của S (kể từ vị trí x cho đến vị trí x+M trong văn bản S) G(x) được tính bằng hàm Quy hoạch động tìm độ dài xâu con chung lớn nhất H(x) là độ đo thứ tự, phản ánh thứ tự xuất hiện ... Khởi tạo - Cuối - Khởi tạo - Cuối - Khởi tạo - Cuối - Khởi tạo 16 12 Cuối Khởi tạo - Cuối 13 - Khởi tạo - Cuối 14 - Khởi tạo 28 - Cuối 15 - Khởi tạo - Cuối 16 - Khởi tạo 17 Cuối Khởi tạo -... đề cần giải GA mạng nơron nhân tạo thuộc vào nhóm khoa học trí tuệ nhân tạo, nhiên GA lập luận dựa theo tiến hóa xét vấn đề tầm mức gen NST, khác với mạng nơron nhân tạo dựa kinh nghiệm cách giải... chọn độ xác (ngưỡng) với từ khoá tìm kiếm, số vị trí xuất đáp ứng phần lớn nhu cầu sử dụng cách thiết thực hiệu Tiểu luận môn trí tuệ nhân tạo nâng cao Đề tài tránh khỏi khiếm khuyết, mong tham

Ngày đăng: 02/12/2015, 15:50

Từ khóa liên quan

Mục lục

  • TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

Tài liệu cùng người dùng

Tài liệu liên quan