Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 75 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
75
Dung lượng
4,14 MB
Nội dung
LỜI CẢM ƠN Để hoàn thành chương trình học viết đồ án tốt nghiệp này, em nhận hướng dẫn, giúp đỡ góp ý nhiệt tình thầy cô trường Đại học Công nghệ thông tin Truyền thông Trước hết, em xin gửi lời cảm ơn sâu sắc đến quý thầy giáo, cô giáo trường Đại học Công nghệ thông tin Truyền thông – Đại học Thái Nguyên, tận tình giảng dạy, trang bị cho em vốn kiến thức, kinh nghiệm quý báu để em đạt kết tốt học tập công việc sau trường Em muốn gửi lời cảm ơn tới thầy cô môn “Các hệ thống thông tin” Đặc biệt, em xin gửi lời biết ơn sâu sắc đến thầy giáo Trần Mạnh Tuấn - người trực tiếp hướng dẫn, giúp đỡ em suốt thời gian từ thực tập đến làm đồ án Trong trình hướng dẫn, thầy nhiệt tình bảo, truyền đạt cho em kinh nghiệm người thầy giáo, cô giáo trước giúp em có phương hướng xây dựng, phát triển hoàn thành đề tài thời hạn Nhân đây, em xin gửi lời cảm ơn đến Bố, Mẹ người thân gia đình, cảm ơn người bạn dành tình cảm lời động viên suốt trình hoàn thiện đồ án Mặc dù có nhiều cố gắng hoàn thiện đồ án tất nhiệt tình lực mình, nhiên tránh khỏi thiếu sót, mong nhận đóng góp quý báu quý thầy cô bạn Em xin chân thành cảm ơn! Thái Nguyên, ngày 18 tháng năm 2012 Sinh viên thực Phan Thị Cúc LỜI CAM ĐOAN Để hoàn thành đồ án tốt nghiệp thời gian quy định đáp ứng yêu cầu đề ra, em cố gắng tìm hiểu, học hỏi, tích lũy kiến thức học Em có tham khảo số tài liệu nêu phần “Tài liệu tham khảo” không chép nội dung từ đồ án khác Tôi xin cam đoan đồ án công trình nghiên cứu cá nhân nghiên cứu, xây dựng hướng dẫn thầy giáo Trần Mạnh Tuấn Nội dung lý thuyết đồ án có tham khảo sử dụng số tài liệu, thông tin đăng tải tác phẩm, tạp chí trang web theo danh mục tài liệu đồ án Các số liệu, chương trình phần mềm kết đồ án trung thực chưa công bố công trình khác Em xin cam đoan lời khai đúng, thông tin sai lệch em xin hoàn toàn chịu trách nhiệm trước Hội đồng Thái Nguyên, ngày 18 tháng năm 2012 Sinh viên thực Phan Thị Cúc NHIỆM VỤ ĐỒ ÁN Đồ án tập trung nghiên cứu Giải thuật di truyền toán tìm kiếm văn bản, từ tìm cách ứng dụng Giải thuật di truyền để giải toán Trên sở xây dựng phần mềm ứng dụng tìm kiếm văn cách hiệu thiết thực Chương trình chạy đưa kết xác mong muốn, hỗ trợ cho việc tìm kiếm cách nhanh gọn, xác DANH MỤC CÁC THUẬT NGỮ Genetic algorithm (GA) : Giải thuật di truyền Time Table problem : Bài toán thời khóa biểu Genome : Gen Derivatives : Đạo hàm Evaluation (eval ) : Hàm lượng giá Pop – size : Kích thước quần thể Crossover : Lai ghép Mutation : Đột biến Crossover probability (Pc) : Xác suất lai ghép Mutation probability (Pm) : Xác suất đột biến One-point Crossover : Lai ghép điểm Multi-point Crossover : Lai ghép đa điểm Uniform Crossover : Lai ghép Use case : Trường hợp sử dụng Knowledge-based systems : Hệ thống tri thức sở Split : Chia nhỏ DANH MỤC HÌNH VẼ Hình 1.1: Sơ đồ tổng quan giải thuật di truyền 16 Hình 1.2: Bánh xe Roulette .18 Hình 3.1 Mô hình cá thể lịch lớp 53 Hình 3.2: Minh họa cho mô hình NST sở 56 Hình 3.3: Mô hình cá thể lịch sở 56 Hình 4.1: Form main 60 Hình 4.2(a) : Các tham số giải thuật di truyền 62 Hình 4.2(b) : Các tham số xác định độ ưu tiên 62 Hình 4.3: Group kết 62 Hình 4.4(a): Văn tìm kiếm S 63 Hình 4.4(b): Văn mẫu Sm 63 Hình 4.6: Kết GA 64 Hình 4.7(a): Đời 1của trình tiến hóa 65 Hình 4.7(b): Đời 100 trình tiến hóa .66 Hình 4.8: Form sinh viên thực 67 Hình 4.10: Form thông tin chương trình .68 Hình 4.11: Form hướng dẫn cách chạy chương trình 68 Hình 4.13 : Sơ đồ liệu đầu vào .70 Hình 4.14(a) : Thời khóa biểu lớp .71 Hình 4.14(b) : Thời khóa biểu giảng viên 71 Hình 4.15 : Form tìm kiếm thời khóa biểu 72 DANH MỤC BẢNG Bảng 1.1: Kết giá trị thích nghi 29 Bảng 1.2: Bảng mô tả bánh xe Roulette 30 Bảng 1.3: Bảng mô tả chọn NST lai ghép 31 Bảng 1.4: Bảng mô tả NST đột biến 32 MỤC LỤC MỞ ĐẦU .8 CHƯƠNG 1: GIỚI THIỆU VỀ GIẢI THUẬT DI TRUYỀN 10 CHƯƠNG 2: GIỚI THIỆU VỀ BÀI TOÁN TÌM KIẾM 34 CHƯƠNG 4: XÂY DỰNG CHƯƠNG TRÌNH VÀ KẾT QUẢ THỬ NGHIỆM 60 KẾT LUẬN .73 TÀI LIỆU THAM KHẢO 74 MỞ ĐẦU Đặt vấn đề Ngày máy tính sử dụng lĩnh vực đời sống, kho thông tin máy tính tăng trưởng không ngừng thật khó khăn cho công tác tìm kiếm (nhất tìm kiếm file văn bản) Hãng Microsoft hỗ trợ tìm kiếm tự động công cụ Search tích hợp sẵn hệ điều hành Windows, cho ta hai cách thức tìm kiếm file là: tìm theo từ khoá tên file (All or part of the file name) – đưa file có tên chứa khoá tìm kiếm; tìm theo từ khoá nội dung file (A word or phrase in the file) – đưa file văn có chứa từ cụm từ giống với từ khoá Mặc dù Search Windows hỗ trợ mạnh chức tìm kiếm theo tên file, tìm theo nội dung file có hạn chế định, chẳng hạn: Search đưa file văn có chứa xác từ khoá tìm kiếm, khó khăn người dùng không nhớ xác từ khoá có nội dung văn mà nhớ gần với từ khoá, công cụ Search không cụm từ khoá tìm nằm đâu văn tần suất xuất chúng, nên cần người dùng lại lần phải dò tìm công cụ tìm kiếm khác Vì lẽ toán tìm kiếm văn toán thiết thực nhiều người quan tâm, vấn đề cấp thiết đặt giải toán tìm kiếm văn cho hiệu quả, đáp ứng nhu cầu người sử dụng Luận văn định hướng nghiên cứu sử dụng giải thuật di truyền tìm file văn đoạn văn giống gần giống với mẫu (từ khoá) cần tìm kiếm Với mục tiêu đó, lựa chọn đề tài nghiên cứu đồ án “Ứng dụng giải thuật di truyền toán tìm kiếm văn bản” Đây hướng tiếp cận toán này, hy vọng kết đạt có hiệu đáng kể so với phương pháp tìm kiếm khác Mục đích đồ án Mục đích đồ án là: nghiên cứu phương pháp tìm kiếm văn tìm cách ứng dụng giải thuật di truyền để giải toán này, sở xây dựng phần mềm ứng dụng tìm kiếm văn cách hiệu thiết thực Nội dung đồ án Đồ án tập trung vào toán tìm kiếm văn theo hướng tiếp cận sau: Tìm vị trí văn có xuất chuỗi văn giống gần giống với chuỗi văn mẫu (xuất gần giống trường hợp văn tìm kiếm không chứa chuỗi văn mẫu) Trên sở đó, nội dung đề tài gồm bốn chương: - Chương 1: Tổng quan toán tìm kiếm - Chương 2: Nghiên cứu khái quát giải thuật di truyền - Chương 3: Xây dựng phát biểu toán, đề xuất phương pháp sử dụng giải thuật di truyền tìm kiếm văn - Chương 4: Kết thử nghiệm phát triển phần mềm ứng dụng Phương pháp nghiên cứu Nghiên cứu tài liệu, đề xuất giải pháp lập trình thử nghiệm Đồ án bước đầu đề xuất phương pháp ứng dụng giải thuật di truyền vào giải toán tìm kiếm văn bản, chương trình thử nghiệm minh chứng hướng tiếp cận đắn có hiệu Đặc biệt chương trình vị trí xuất đoạn văn giống văn mẫu gần giống với văn mẫu (trong trường hợp văn không chứa văn mẫu) cần tìm thời gian cho phép CHƯƠNG 1: 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, khái niệm bản, nguyên lý hoạt động ví dụ áp dụng giải thuật di truyền 1.1 Tổng quan giải thuật di truyền 1.1.1 Giới thiệu Giải thuật di truyền lập dựa sở lý thuyết Darwin giới thiệu lần Holland (1975), sau Goldberg (1989) Sau đến năm 1992 Michalewicz phát triển hoàn thành phương pháp Từ thuật giải di truyền áp dụng lĩnh vực khác Thuật giải di truyền ứng dụng hai lĩnh vực là: tối ưu hóa học tập máy Trong lĩnh vức tối ưu hóa thuật toán di truyền phát triển nhanh chóng ứng dụng nhiều lĩnh vực khác như: tối ưu hàm, xử lý ảnh, toán hành trình người bán hàng, nhận dạng hệ thống điều khiển… Giải thuật di truyền áp dụng trình tiến hóa tự nhiên để giải toán tối ưu thực tế (từ tập lời giải ban đầu thông qua nhiều bước tiến hóa hình thành tập hợp với lời giải tốt cuối tìm lời giải gần tối ưu) Thuật giải di truyền thuật toán tiến hóa nói chung hình thành dựa quan niệm cho trình tiến hóa tự nhiên trình hoàn hảo nhất, hợp lý tự mang tính tối ưu Quan niệm coi tiên đề đúng, không chứng minh phù hợp với thực tế khách quan Quá trình tiến hóa thể tính tối ưu chỗ hệ sau tốt (phát triển hơn, hoàn thiện hơn) hệ trước tính kế thừa đấu tranh sinh tồn Tiến hóa 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 hóa tự nhiên, hệ sinh để bổ sung thay cho hệ cũ Cá thể phát triển hơn, thích ứng với môi trường tồn 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 10 Chương trình cho phép ta hiển thị kết trình tiến hóa cấu trúc GA, tính toán giá trị hàm thích nghi, xác xuất sống cá thể quần thể, vị trí xác xuất Chương trình thiết kế dựa lớp bản: class huongdan, class SVTH, class tailieuthamkhao, class GiaoDien,class CaThe, class QuanThe, ProcessString.cs, class GA, class Guide Giải thích - Form GiaoDien: hiển thị giao diện hệ thống - class sinhvien: Mở thông tin sinh viên thực - class huongdan: Lớp dùng để mở thông tin hướng dẫn người thực chương trình chạy demo - class tailieu: Thông tin tài liệu sách báo, trang web mà em tham khảo làm đề tài - class Guide: Hướng dẫn người tiếp cận chạy chương trình - ProcessString.cs: Hiển thị vị trí Sm xuất S số lần xuất lần - Class CaThe: Cho ta biết cấu trúc cá thể - Class QuanThe: Cho biết cấu trúc lời giải toán - Form GA: Hiển thị giao diện hệ thống tìm kiếm văn ứng dụng GA + Khởi tạo ngẫu nhiên cá thể chuyển đổi giá trị cá thể sang dạng thập phân + Khởi tạo quần thể ban đầu + Tính toán giá trị G(x) H(x) toán + Cho phép khởi tạo số cá thể kích thước quần thể tính toán giá trị hàm thích nghi theo hàm tìm kiếm: F(x) = a*G(x) +b*H(x) + Tiến hành phép toán lai ghép, đột biến chọn lọc giải thuật di truyền + Thực trình lặp trình tiến hóa mà điều kiện dừng ta biết trước số hệ toán 61 4.1.2 Giao diện nhập tham số cho toán Hình 4.2(a) : Các tham số giải thuật di truyền Hình 4.2(b) : Các tham số xác định độ ưu tiên • Chu kỳ quần thể : Số chu kỳ tiến hóa • a: hệ số đánh giá theo G(x) • Kích thước quần thể: số cá thể quần thể • a+ b =1 • Xác suất lai: Pc • Xác suất đột biến: Pm • Xác suất tái sinh • b: hệ số đánh giá theo H(x) 4.1.3 Giao diện hiển thị kết thực chương trình Hình 4.3: Group kết • txtChuKy: hiển thị số đời trình tiến hóa • txtSoKyTuVanBan: độ dài văn tìm kiếm • txtViTri: vị trí mà văn mẫu xuất văn tìm kiếm • txtSoLanXuathHien: tổng số lần Sm xuất S 62 4.1.4 Dữ liệu đầu vào Hình 4.4(a): Văn tìm kiếm S Hình 4.4(b): Văn mẫu Sm Trong đó: Hình 4.4 (a) hiển thị nội dung văn mà cần tìm kiếm Hình 4.4 (b) hiển thị nội dung văn mẫu để so sánh tìm kiếm S Để hiển thị nội dung hai văn ta đánh trực tiếp nội dung chiều dài văn ngắn Đối với văn có số ký tự lớn ta mở windown 4.2 Một số kết thử nghiệm chương trình 4.2.1 Kết thử nghiệm tìm kiếm giải thuật di truyền 4.2.1.1 Dữ liệu đầu vào • File văn để tìm kiếm S=”test.txt” có chiểu dài 3141 ký tự • Văn mẫu Sm =” genetic” 4.2.1.2 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 = 40 63 - Chu kỳ quần thể = 100 - Xác suất lai tạo pc = 0.8 - Xác suất đột biến pm = 0.01 (nhỏ nhiều so với xác suất lai) Xác suất lai pc = 0.8 nghĩa cá thể v quần thể có 80% hội chọn để thực phép lai; xác suất đột biến pm = 0.01 lại 1% bít cá thể quần thể bị đột biến 4.2.1.3 Kết tiến hóa Dưới kết thực nghiệm sau chạy chương trình cài đặt giải thuật di truyền với toán tìm kiếm Mỗi lần lặp ta cho tiến hoá 100 hệ Hình 4.6: Kết GA Ta thấy có vị trí Sm xuất văn S giải thuật di truyền thực 100 hệ với tham số thiết lập ban đầu 64 Kết quần thể khởi tạo quần thể cuối hệ thứ Hình 4.7(a): Đời 1của trình tiến hóa Với giải thuật di truyền sau 100 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ị trí (tìm tối đa vị trí xuất mẫu) 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) 65 Kết quần thể khởi tạo quần thể cuối (thế hệ thứ 100): Hình 4.7(b): Đời 100 trình tiến hóa 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ị ∈ [0, 1] Những vị trí có hàm mục tiêu F(x) =1, độ dài văn mẫu vị trí xác xuất mẫu Với cách tiếp cận tìm kiếm giúp tối ưu mặt thời gian nhiều Bởi vì, thuật toán tìm kiếm theo cách ngẫu nhiên vị trí, nên vị trí ngẫu nhiên mà gần với vị trí trùng khớp văn mẫu văn tìm kiếm kết tìm kiếm nhanh Tuy nhiên, có trường hợp vị trí cách xa vị trí xuất 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 66 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) 4.2.2 Một số hình ảnh chương trình Hình 4.8: Form sinh viên thực Hình 4.9: Form tài liệu tham khảo 67 Hình 4.10: Form thông tin chương trình Hình 4.11: Form hướng dẫn cách chạy chương trình 68 4.3 Ứng dụng toán xếp thời khóa biểu Lập lịch định nghĩa toán tìm kiếm chuỗi tối ưu để thực tập hoạt động chịu tác động tập ràng buộc cần phải thỏa mãn Người lập lịch thường cố gắng thử đến mức tối đa sử dụng cá thể, máy móc tối thiểu thời gian đòi hỏi để hoàn thành toàn trình nhằm xếp lịch Vì toán lập lịch vấn đề khó để giải Hiện có nhiều khả để phát triển kỹ thuật để giải toán Những kỹ thuật bao gồm: tiếp cận Trí tuệ nhân tạo hệ thống tri thức sở (knowledge-based systems), hệ chuyên gia, mạng Nơron… Một phương pháp không kể đến Giải thuật di truyền Và kết sau áp dụng giải thuật di truyền sau: Hình 4.12 : Form lập lịch Kết hiển thị Form main gồm RibbonTab : Control, Information • Các chức tab Control gồm : Create Data: Tạo liệu cho toán Open Data : Mở liệu có Edit Data : Chỉnh sửa file liệu 69 Run All : Chạy hiển thị chu kỳ tiến hóa theo số đời người dùng nhập vào Run End : Chạy hiển thị chu kỳ cuối Run Perfect : Chạy hiển thị chu kỳ tốt Show result : Hiện thị kết dạng thời khóa biểu Updata img : Cập nhật thông số sơ đồ liệu dạng ảnh Open img : Mở file ảnh Save img : Lưu sơ đồ liệu toán dạng file ảnh • Chức tab Information gồm : TKB : Giới thiệu chương trình phần mềm Guide : Hướng dẫn sử dụng 4.3.1 Giao diện mô liệu đầu vào Hình 4.13 : Sơ đồ liệu đầu vào Sơ đồ thể rang buộc toán: Cột Class thể tên lớp, cột Teachers thể tên giáo viên, cột Subjects thể tên môn học… 70 4.3.2 Ứng dụng tìm kiếm thời khóa biểu Sau có kết lập lịch thời khóa biểu lớp giảng viên Hình 4.14(a) : Thời khóa biểu lớp Hình 4.14(b) : Thời khóa biểu giảng viên Từ đó, em ứng dụng vào tìm kiếm sau: tìm kiếm theo tên giảng viên theo lớp thời khóa biểu vừa xuất ra, để đưa thời khóa biểu lớp giảng viên 71 Hình 4.15 : Form tìm kiếm thời khóa biểu Các chức tab Điều khiển gồm : Mở Excel: Mở liệu file excel cho toán Thực : Chạy hiển thị kết dạng thời khóa biểu txtTimKiem : Hiển thị tên cần tìm kiếm dgvThoiKhoaBieu: Hiển thị file execl cần tìm kiếm người dùng nhập vào dgvTimKiem: Hiển thị thời khóa biểu lớp giảng viên muốn tìm 72 KẾT LUẬN Đánh giá kết nghiên cứu Tóm lại, đề tài giải vấn đề sau đây: - Đề tài đưa tính cấp thiết tình trạng toán tìm kiếm văn - Đề tài bước đầu đề xuất số thuật toán áp dụng giải toán tìm kiếm văn bản, từ đề xuất phương pháp ứng dụng giải thuật di truyền vào giải toán - Tìm hiểu thuật toán tìm kiếm văn theo cách tuyến tính, qua làm sở để so sánh với kết nghiên cứu đề tài - Xây dựng hàm tính toán cho toán phát biểu toán tìm kiếm văn để áp dụng giải thuật di truyền - Chương trình kết thử nghiệm minh chứng hướng tiếp cận giải thuật di truyền giải toán tìm kiếm văn đắn có hiệu Đặc biệt chương trình cài đặt vị trí xuất đoạn văn giống văn mẫu gần giống với văn mẫu (trong trường hợp văn không chứa văn mẫu) thời gian cho phép Những vấn đề chưa đạt Kết thử nghiệm chương trình áp dụng tập liệu tương đối, với tập liệu lớn chương trình báo lỗi Kiến nghị hướng phát triển - Đưa phần mềm ứng dụng vào ứng dụng thử nghiệm Do thời gian hạn chế nên phần mềm chưa phát triển đáng kể - Sau phát triển thành công phần mềm ứng dụng, hướng nghiên cứu tìm hiểu ứng dụng giải thuật di truyền cho nhiều dạng toán tìm kiếm, chẳng hạn toán tìm kiếm file liệu có cấu trúc đặc biệt Đề tài tránh khỏi khiếm khuyết, mong tham gia góp ý quý thầy cô bạn Em xin chân thành cảm ơn! 73 TÀI LIỆU THAM KHẢO [1] Hoàng Kiếm, Lê Hoàng Thái, Thuật giải Di Truyền – Cách giải tự nhiên toán máy tính, Nhà xuất giáo dục, 2000 [2] Đinh Mạnh Tường Nguyễn Hoàng Cương, Giáo trình trí tuệ nhân tạo, khoa Công nghệ thông tin, đại học Quốc Gia Hà Nội (.pdf) [3] Nguyễn Văn Quyết, Bài toán tìm kiếm văn sử dụng giải thuật di truyền, Luận văn Thạc sĩ, Khoa công nghệ thông tin – Đai học Thái Nguyên, 2009 [4] Nguyễn Đình Thúc, Lập trình tiến hóa, NXB Giáo Dục, 2001 [5] Nguyễn Thanh Thủy, Công nghệ tri thức tính toán mềm: Giải thuật di truyền, ĐH Bách Khoa Hà Nội, 2003 [6] Đỗ Xuân Lôi, Cấu trúc liệu giải thuật, Nhà xuất Khoa học Kỹ thuật, 1998 [7] Bách khoa toàn thư mở, http://vi.wikipedia.org, 2006 [8] Burke E.K., Elliman D.G and Weare R.F, A Genetic Algorithm for University Timetabling, AISB Workshop on Evolutiionary Computing, Leeds, 1994 [9] Michalewicz, Z, Genetic Algorithms + Data Structures = Evolutio Program Springer Verlag, 1992 74 PHỤ LỤC Danh mục nội dung đĩa CD kèm theo: Tệp văn Đồ Án Tốt Nghiệp Chương trình nguồn 75 ... án tập trung nghiên cứu Giải thuật di truyền toán tìm kiếm văn bản, từ tìm cách ứng dụng Giải thuật di truyền để giải toán Trên sở xây dựng phần mềm ứng dụng tìm kiếm văn cách hiệu thiết thực... GIẢI THUẬT DI TRUYỀN Phần tìm hiểu giải thuật di truyền, khái niệm bản, nguyên lý hoạt động ví dụ áp dụng giải thuật di truyền 1.1 Tổng quan giải thuật di truyền 1.1.1 Giới thiệu Giải thuật di. .. pháp tìm kiếm văn tìm cách ứng dụng giải thuật di truyền để giải toán này, sở xây dựng phần mềm ứng dụng tìm kiếm văn cách hiệu thiết thực Nội dung đồ án Đồ án tập trung vào toán tìm kiếm văn