đồ án công nghệ thông tin XÂY DỰNG CÔNG CỤ EDITOR WORKFLOW CHO ỨNG DỤNG TÌM KIẾM DẠNG META-HEURISTIC

98 790 0
đồ án công nghệ thông tin XÂY DỰNG CÔNG CỤ EDITOR WORKFLOW CHO ỨNG DỤNG TÌM KIẾM DẠNG META-HEURISTIC

Đ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

ĐẠI HỌC QUỐC GIA TP.HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC XÂY DỰNG CÔNG CỤ EDITOR WORKFLOW CHO ỨNG DỤNG TÌM KIẾM DẠNG META-HEURISTIC HỘI ĐỒNG: ………………………………… GVHD: TRẦN VĂN HOÀI GVPB: LÊ NGỌC MINH o0o SVTH 1: DƯƠNG HỮU LỘC (50601371) SVTH 2: NGUYỄN VĂN HIỆU (50600745) TP. HỒ CHÍ MINH, THÁNG 1 NĂM 2011 1 2 LỜI CÁM ƠN Để hoàn thành đề tài tốt nghiệp này, chúng em đã nhận được sự giúp đỡ tận tình về chuyên môn cũng như sự hỗ trợ về mọi mặt của nhiều thầy, cô trường đại học Bách Khoa thành phố Hồ Chí Minh, Khoa Khoa Học và Kỹ Thuật Máy Tính, gia đình và đặc biệt là thầy Trần Văn Hoài. Chúng em xin chân thành cảm ơn: Thầy Trần Văn Hoài, người đã tận tình giúp đỡ chúng em trong quá trình làm luận văn. Tập thể cán bộ Khoa Khoa Học và Kỹ Thuật Máy Tính đã tạo điều kiện thuận lợi và giúp đỡ chúng em trong suốt thời gian làm luận văn. Và cuối cùng, xin cảm ơn gia đình đã hỗ trợ, động viên về mọi mặt trong suốt thời gian học tập và hoàn thành luận văn này. Tp HCM, tháng 1 năm 2011 Dương Hữu Lộc Nguyễn Văn Hiệu 3 TÓM TẮT LUẬN VĂN Thư viện parallel meta-heuristics dùng để giải bài toán dạng meta-heuristics dựa vào mô hình workflow. Để cải thiện lời giải tìm được tốt hơn, mô hình workflow sẽ được cải tiến với mô hình workflow Petri-net có khả năng chọn lời giải ở từng bước tính toán, mô hình workflow có lặp vòng và nhánh song song. Để người dùng dễ dàng sử dụng mô hình workflow của thư viện, ta cần xây dựng công cụ trực quan giúp người dùng vẽ mô hình Petri-net (Workflow) đồng thời tự động sinh mã cho workflow từ ngôn ngữ mô tả workflow. Ngôn ngữ mô tả workflow cho thư viện được xây dựng bằng ngôn ngữ XML. Nó được xây dựng đơn giản, linh động, người dùng có thể tùy biến thiết kế lại tên các tham số mô tả cho các giải thuật tìm kiếm mà không cần thay đổi bộ phân tích cú pháp. Công cụ editor sẽ xây dựng ra ngôn ngữ mô tả workflow. Bộ phân tích cú pháp của thư viện meta-heuristics sẽ phân tích và thi hành workflow đó đồng thời sẽ trả kết quả để hiển thị trên công cụ editor. Người dùng có thể dùng công cụ trực quan với những loại bài toán tìm kiếm và chiến thuật tìm kiếm khác nhau. 4 MỤC LỤC Đề mục……………………………………………………………………………………Trang Trang bìa……………………………………………………………………………………… 1 Lời cảm ơn…………………………………………………………………………………… 3 Tóm tắt………………………………………………………………………………………….4 Mục lục…………………………………………………………………………………………5 Danh sách hình vẽ………………………………………………………………………………9 CHƯƠNG 1. GIỚI THIỆU 10 1.1. Sơ lược về bài toán Travelling Salesman Problem 10 1.2. Giải quyết bài toán TSP 11 1.3. Tính chất song song của thư viện parallel meta-heuristic 12 1.4. Vấn đề đặt ra cho Workflow 13 1.5. Sơ lược về các công cụ editor workflow và nhận xét 14 1.5.1. Java WorkflowTooling (JWT) 14 1.5.2. JGraph 17 1.5.3. Nhận xét các công cụ editor workflow và hướng phát triển của luận văn 19 1.6. Cấu trúc của luận văn 20 CHƯƠNG 2. META-HEURISTIC 21 2.1. Khái niệm Heuristic 21 2.2. Khái niệm Meta-Heuristic 22 2.3. Một số giải thuật Heuristic tiêu biểu 23 2.3.1. Hill Climbing (HC) 23 2.3.2. Simulate Annealing (SA) 24 2.3.3. Tabu Search (TS) 24 2.4. Sự song song hóa các Meta-heuristics 25 2.5. Kiến trúc và tính năng của Framework Meta-heuristics 26 2.5.1. Kiến trúc của Framework 26 2.5.2. Các tính năng của Framework 27 CHƯƠNG 3. THƯ VIỆN META-HEURISTIC 28 3.1. Giới thiệu về thư viện Meta-heuristic 28 3.2. Thiết kế của thư viện 29 3.2.1. Cách sử dụng thư viện 29 3.2.2. Quá trình thực thi tìm kiếm 29 3.2.3. Vấn đề đóng gói dữ liệu 30 CHƯƠNG 4. BÀI TOÁN TSP VÀ KHÔNG GIAN NGHIỆM 32 4.1. Giới thiệu bài toán TSP 32 5 4.2. Không gian nghiệm tìm kiếm 33 4.3. Các giải thuật heuristic hỗ trợ giải bài toán TSP 34 4.3.1. Nearest Neighbor 34 4.3.2. 2-opt 35 4.3.3. 3-opt 36 4.3.4. Lin-Kernighan 37 CHƯƠNG 5. WORKFLOW VÀ NGÔN NGỮ MÔ TẢ WORKFLOW 38 5.1. Workflow 38 5.1.1. Khái niệm workflow 38 5.1.2. Hệ thống quản lý workflow 38 5.2. Directed Acyclic Graph (DAG) 39 5.3. Một số mô hình workflow 40 5.3.1. Business Process Execution Language (BPEL) 40 5.3.2. Grid Workflow Description Language (GWorkflowDL) 41 5.4. Mô hình Petri-net 41 5.4.1. Tổng quan về Petri-net 41 5.4.2. Đặc tả Petri-net 42 5.4.3. Một số mô hình Petri-net 42 5.4.4. Một số mô hình workflow 43 5.4.4.1. Các mô hình điều khiển dòng cơ bản 44 5.4.4.2. Mô hình rẽ nhánh và đồng bộ cấp cao 45 5.5. Ngôn ngữ mô tả workflow 46 5.5.1. Lý do dùng XML làm ngôn ngữ mô tả workflow 46 5.5.2. Cú pháp của ngôn ngữ mô tả workflow tìm kiếm 46 5.5.2.1. Element Workflow 47 5.5.2.2. Element Place 48 5.5.2.3. Element Argument 48 5.5.2.4. Element Transition 50 5.5.2.5. Element Edge 52 CHƯƠNG 6. THIẾT KẾ CÔNG CỤ EDITOR 53 6.1. Tổng quan về thư viện Swing 53 6.1.1. Giới thiệu 53 6.1.2. Các thành phần của thư viện Swing 54 6.2. Sơ lược về giao diện và sơ đồ hoạt động của Workflow Editor 55 6.2.1. Giao diện của Workflow Editor 55 6.2.2. Sơ đồ hoạt động của Workflow Editor 56 6.3. Giới thiệu các chức năng của Workflow Editor 58 6.3.1. Các chức năng cơ bản 58 6.3.1.1. Tạo workflow mới 58 6.3.1.2. Lưu workflow 58 6.3.1.3. Mở workflow 60 6.3.1.4. Edit một workflow 61 6 6.3.1.5. Các tác vụ liên quan tới node 62 6.3.2. Các chức năng nâng cao 65 6.3.2.1. Export 65 6.3.2.2. Giám sát và điều khiển quá trình thực thi của workflow 66 6.4. Hướng thiết kế, các sơ đồ mô tả cấu trúc và hoạt động của Workflow Editor 66 6.4.1. Hướng thiết kế của chương trình 66 6.4.2. Mô hình cơ bản của Workflow Editor 67 6.4.3. Mô hình các tác vụ quản lý workflow 68 6.4.4. Mô hình các tác vụ liên quan đến node 70 6.5. Sơ đồ một số chức năng cơ bản của Workflow Editor 71 6.5.1. Tạo một workflow mới 71 6.5.2. Xóa một workflow 72 6.5.3. Tạo một node mới 73 6.5.4. Tạo Edge giữa các node 74 6.5.5. Di chuyển một node 75 6.5.6. Xóa một node 76 6.5.7. Chỉnh sửa thông tin của node 77 CHƯƠNG 7. CHỨC NĂNG NÂNG CAO CỦA WORKFLOW EDITOR 79 7.1. Mô hình chính của Workflow Editor kèm theo thư viện parallel meta-heuristic 79 7.2. Kiểm tra tính liên thông của đồ thị workflow 80 7.2.1. Sơ lược về đồ thị liên thông 80 7.2.2. Kiểm tra tính liên thông của đồ thị workflow 81 7.3. Vấn đề về generate và parse file XML 82 7.3.1. Các tính năng của thư viện parallel meta-heuristic 82 7.3.1.1. Kiến trúc của hệ thống sinh mã 82 7.3.1.2. Bộ phân tích cú pháp XML 82 7.3.2. Bổ sung tính năng generate và parse file XML dựa vào ngôn ngữ Java 84 7.3.2.1. Lý do cho việc generate và parse file XML dùng Java 84 7.3.2.2. Các lớp dùng cho việc generate XML 84 7.3.2.3. Các lớp dùng cho việc parse file XML trên ngôn ngữ Java 87 7.4. Vấn đề kết nối giữa Workflow Editor và thư viện parallel meta-heuristic 90 CHƯƠNG 8. THỬ NGHIỆM CHƯƠNG TRÌNH 92 8.1. Các bước chạy chương trình 92 8.2. Kết quả quá trình thực thi 92 CHƯƠNG 9. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 96 9.1. Kết luận 96 9.2. Hướng phát triển 96 TÀI LIỆU THAM KHẢO 98 7 DANH SÁCH HÌNH VẼ Hình 1.1: Bài toán TSP thực tế 10 Hình 1.2: Quá trình song song hóa 12 Hình 1.3: Giao diện của JWT 15 Hình 1.4: Mô hình BPMN 16 Hình 1.5: JGraph MVC 17 Hình 1.6: Giao diện Jgraph 18 Hình 2.1: Kiến trúc Framework 26 Hình 4.1. Ví dụ bài toán TSP 32 Hình 4.2: Không gian nghiệm tổng quát 33 Hình 4.3: Minh họa Nearest Neighbor Algorithm 34 Hình 4.4: Minh họa 2-opt 35 Hình 4.5: Minh họa 3-opt 36 Hình 5.1: Directed Acyclic Graph 40 Hình 5.2: Mô hình workflow được mô tả bằng BPEL 40 Hình 5.3: Mô hình workflow được mô tả bằng GworkflowDL 41 Hình 5.4: Mô hình workflow được mô tả bằng Petri-net 42 Hình 5.5: Các thành phần của mô hình Petri-net 42 Hình 5.6: Các mô hình workflow được thể hiện bằng Petri-net 43 Hình 6.1: Năm thành phần của thư viện JFC 53 Hình 6.2: Mối liên hệ giữa Swing, AWT, JDK 1.1 và JDK 1.2 trở về sau 54 Hình 6.3: Mô hình phân cấp của thư viện Swing và một vài component của nó 55 Hình 6.4: Giao diện của Workflow Editor trên Linux 56 Hình 6.5: Use Case các tác vụ của Workflow Editor 56 Bảng 6.1: Danh sách các tác vụ của Workflow Editor 57 Hình 6.6: Tạo mới workflow bằng cách click vào nút New 58 Hình 6.7: Tạo mới workflow bằng cách chọn menu File -> New Workflow 58 Hình 6.8: Save workflow bằng cách click vào nút Save 59 Hình 6.9: Save workflow bằng cách chọn menu File -> Save hoặc Save As 59 Hình 6.10: Khung Save As cho phép người dùng chọn vị trí để lưu file XML 60 Hình 6.11: Mở workflow bằng cách click vào nút Open 60 Hình 6.12: Mở workflow bằng cách chọn menu File -> Open 61 Hình 6.13: Khung Open cho phép người dùng chọn file XML cần mở 61 Hình 6.14: Xóa một workflow bằng cách chọn Delete 62 Hình 6.15: Cửa sổ cho phép nhập các thuộc tính của workflow 62 Hình 6.16: Chọn loại node để vẽ 63 Hình 6.17: Right Click lên node sẽ hiện lên các tác vụ thực hiện trên node đó 63 Hình 6.18: Hai mũi tên trên ToolBar dùng cho việc vẽ Edge 64 Hình 6.19: Ví dụ về các thông số của node SA 65 Hình 6.20: Chỉ cần đưa con trỏ vào node thì information popup sẽ tự động hiện ra 65 Hình 6.21: Các button dùng điều khiển quá trình thực thi của workflow 66 Hình 6.22: Mô hình top-down của Workflow Editor 67 8 Hình 6.23: Mô hình UML tổng quát của Workflow Editor 68 Hình 6.24: Mô hình UML các tác vụ quản lý workflow 69 Hình 6.25: Mô hình UML các tác vụ liên quan đến node 70 Hình 6.26: Sơ đồ tuần tự các hoạt động khi tạo một workflow 72 Hình 6.27: Sơ đồ tuần tự các hoạt động khi xóa một workflow 73 Hình 6.28: Sơ đồ tuần tự các hoạt động khi tạo một node 74 Hình 6.29: Sơ đồ tuần tự các hoạt động khi tạo một Edge 75 Hình 6.30: Sơ đồ tuần tự các hoạt động khi di chuyển một node 76 Hình 6.31: Sơ đồ tuần tự các hoạt động khi xóa một node 77 Hình 6.32: Sơ đồ tuần tự các hoạt động khi chỉnh sửa thông tin của node 78 Hình 7.1. Mô hình chính của Worklfow Editor và thư viện parallel meta-heuristic 79 Hình 7.2: Hai đồ thị liên thông 81 Hình 7.3: Đồ thị liên thông mạnh (trái) và đồ thị liên thông yếu (phải) 81 Hình 7.4: Mô tả kiến trúc của hệ thống sinh mã 82 Hình 7.5: Dạng element phân cấp trong ngôn ngữ mô tả workflow 83 Hình 7.6: Cấu trúc chi tiết bên trong bộ phân tích cú pháp 83 Hình 7.7: Sơ đồ tuần tự các hoạt động khi tạo file XML 86 Hình 7.8: Sơ đồ quá trình parse một tài liệu XML sang cấu trúc DOM 88 Hình 7.9: Giao thức TCP giữa Workflow Editor và thư viện 90 Hình 8.1: Hộp thoại yêu cầu nhập vào đường dẫn đến thư viện 92 Hình 8.2: Chạy workflow không có transition 93 Hình 8.3: Kết quả của hình 8.2 93 Hình 8.4: Chạy workflow có transition 94 Hình 8.5: Kết quả của hình 8.4 94 Hình 8.6: Stop một workflow 95 Hình 8.7: Kết quả của hình 8.6 95 Hình 9.1. Cải tiến Workflow Editor 97 9 Chương 1. Giới thiệu CHƯƠNG 1. GIỚI THIỆU 1.1. Sơ lược về bài toán Travelling Salesman Problem Ngày nay trong cuộc sống, có những công việc đòi hỏi con người phải thực hiện sao cho đạt được lợi ích càng nhiều càng tốt với một chi phí nhỏ có thể chấp nhận được. Ví dụ như công việc chở hàng giữa các thành phố đã biết trước. Người chở hàng phải tính toán sao cho phải đi qua các thành phố đúng một lần và phải quay về thành phố đầu tiên (nơi khởi hành). Việc quyết định sẽ đi qua thành phố nào trước sẽ ước tính được chi phí nguyên liệu cần thiết trong cuộc hành trình. Mỗi cách lựa chọn sẽ tính được các chi phí nguyên liệu khác nhau. Chi phí nguyên liệu nào là nhỏ nhất trong các cách lựa chọn mà người này biết được sẽ được chọn để thực hiện cuộc hành trình. Hình 1.1: Bài toán TSP thực tế 10 [...]... tạo ra một công cụ editor cho phép người dùng chỉnh sửa và giám sát quá trình thực thi của workflow dựa trên thư viện parallel meta-heuristices có sẵn 1.5 Sơ lược về các công cụ editor workflow và nhận xét Hiện nay có khá nhiều công cụ editor là open source hoặc payed source Chúng ta sẽ xem qua một số loại tiêu biểu 1.5.1 Java WorkflowTooling (JWT) Workflow Editor (WE) là một bộ công cụ cho phép tạo,... văn, các mô hình đồ thị workflow phải giải quyết bài toán TSP dùng thư viện paralell meta-heuristics Ngoài ra, công cụ editor phải được phát triển sao cho có thể chạy được nhiều thư việc khác cũng như chạy được nhiều bài toán khác nhau Chúng ta liệt kê những thách thức trong việc phát triển công cụ editor workflow như sau: • Thiết kế phải đơn giản nhưng hiệu quả Thiết kế sao cho công cụ editor phải dùng... vào không gian và chiến lược tìm kiếm bằng cách mở rộng không gian tìm kiếm và chạy trên nhiều chiến lược tìm kiếm khác nhau Tuy nhiên, điều đó có thể dẫn tới việc tăng thời gian tìm kiếm Để giải quyết vấn đề này ta sử dụng mô hình tính toán song song Mục tiêu chính là tăng khả năng tính toán bằng cách chia nhỏ công việc ra cho nhiều process thực hiện Chiến lược tìm kiếm cho meta-heuristics có 3 loại:... thuật tìm kiếm do thư viện cung cấp sẵn, hoặc nếu cần thiết, người dùng có thể tạo ra các giải thuật tìm kiếm mới bằng cách sử dụng các interface đã cung cấp cho thư viện • Đặc tả workflow: Sau khi đã có các giải thuật tìm kiếm cần thiết, người dùng sẽ tạo workflow cho chương trình Workflow được định nghĩa dưới dạng đồ thị có hướng không lặp vòng (DAG) Các giải thuật tìm kiếm sẽ là các đỉnh trong đồ thị,... kiếm Quá trình thực thi tìm kiếm sẽ phụ thuộc vào từng dạng lớp điều khiển workflow Đối với workflow tuần tự, các tác vụ tìm kiếm sẽ thực thi tuần tự trên máy tính cục bộ như một ứng dụng đơn bình thường Các đối tượng được tạo ra chỉ là các đối tượng C++ 29 Chương 3 Thư viện Meta-heuristic Khi sử dụng workflow song song, các tác vụ tìm kiếm có thể thực thi đồng thời với nhau nếu có đồng thời nhiều tác... của đồ thị mô tả sự phụ thuộc dữ liệu giữa các giải thuật tìm kiếm Người dùng có thể lựa chọn một trong hai dạng workflow mô tả bởi thư viện: dạng song song hoặc tuần tự • Thực thi tìm kiếm: Cuối cùng, người dùng sẽ gọi lệnh thực thi tìm kiếm Thư viện sẽ dựa vào workflow do người dùng mô tả để điều khiển thứ tự thực thi Nghiệm sẽ được trả về khi kết thúc việc tìm kiếm 3.2.2 Quá trình thực thi tìm kiếm. .. phổ biến như: giải thuật leo đồi, giải thuật luyện kim, giải thuật Tabu search và cơ chế giúp cho việc triển khai ứng dụng trên grid dễ dàng Ngoài ra, framework của thư viện cũng cung cấp mô hình workflow cho người dùng để viết những ứng dụng riêng Framework của thư viện hỗ trợ hai mô hình workflow tuần tự và song song cho người sử dụng dễ dàng phát triển ứng dụng của mình Workflow tuần tự dùng để thử... framework của thư viện parallel meta-heuristics Giới thiệu về bài toán TSP và không gian nghiệm Khái niệm về workflow Khái niệm về mô hình Petri-net cho workflow Sơ đồ của hệ thống, sơ đồ thiết kế của chương trình editor Giới thiệu công cụ Xerces2 Java dùng để sinh mã cho workflow Giới thiệu về cơ chế Socket Thử nghiệm chương trình Kết luận 20 Chương 2 Meta-Heuristic CHƯƠNG 2 META-HEURISTIC 2.1 Khái niệm... 1.5.3 Nhận xét các công cụ editor workflow và hướng phát triển của luận văn Ngoài hai công cụ ở trên còn nhiều công cụ khác Chúng ta nhận thấy chúng có chung các đặc điểm như: tương tác trực quan với người dùng bằng cách cho phép người dùng chỉnh sửa đồ thị workflow, cho phép xuất ra file XML theo chuẩn mà nhà phát triển quy định Chúng cũng thích hợp để giải quyết nhiều loại bài toán khác nhau cũng... tính toán • Loại 2: tiếp cận mục tiêu song song bằng cách phân chia ra tập biến xác định Việc phân chia này làm giảm không gian tìm kiếm nhưng cần nhiều bước lặp để tìm hết tất cả các tập không gian 25 Chương 2 Meta-Heuristic • Loại 3: phương pháp song song sử dụng việc chạy các không gian tìm kiếm, mỗi tìm kiếm sẽ có các giá trị khởi tạo, thông số khác nhau Loại 3 được xem như là phương pháp tìm kiếm . HỌC & KỸ THUẬT MÁY TÍNH LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC XÂY DỰNG CÔNG CỤ EDITOR WORKFLOW CHO ỨNG DỤNG TÌM KIẾM DẠNG META-HEURISTIC HỘI ĐỒNG: ………………………………… GVHD: TRẦN VĂN HOÀI GVPB: LÊ NGỌC MINH . hình workflow của thư viện, ta cần xây dựng công cụ trực quan giúp người dùng vẽ mô hình Petri-net (Workflow) đồng thời tự động sinh mã cho workflow từ ngôn ngữ mô tả workflow. Ngôn ngữ mô tả workflow. pháp. Công cụ editor sẽ xây dựng ra ngôn ngữ mô tả workflow. Bộ phân tích cú pháp của thư viện meta-heuristics sẽ phân tích và thi hành workflow đó đồng thời sẽ trả kết quả để hiển thị trên công

Ngày đăng: 30/04/2015, 09:52

Từ khóa liên quan

Mục lục

  • CHƯƠNG 1. GIỚI THIỆU

    • 1.1. Sơ lược về bài toán Travelling Salesman Problem

    • 1.2. Giải quyết bài toán TSP

    • 1.3. Tính chất song song của thư viện parallel meta-heuristic

    • 1.4. Vấn đề đặt ra cho Workflow

    • 1.5. Sơ lược về các công cụ editor workflow và nhận xét

      • 1.5.1. Java WorkflowTooling (JWT)

      • 1.5.2. JGraph

      • 1.5.3. Nhận xét các công cụ editor workflow và hướng phát triển của luận văn

      • 1.6. Cấu trúc của luận văn

      • CHƯƠNG 2. META-HEURISTIC

        • 2.1. Khái niệm Heuristic

        • 2.2. Khái niệm Meta-Heuristic

        • 2.3. Một số giải thuật Heuristic tiêu biểu

          • 2.3.1. Hill Climbing (HC)

          • 2.3.2. Simulate Annealing (SA)

          • 2.3.3. Tabu Search (TS)

          • 2.4. Sự song song hóa các Meta-heuristics

          • 2.5. Kiến trúc và tính năng của Framework Meta-heuristics

            • 2.5.1. Kiến trúc của Framework

            • 2.5.2. Các tính năng của Framework

            • CHƯƠNG 3. THƯ VIỆN META-HEURISTIC

              • 3.1. Giới thiệu về thư viện Meta-heuristic

              • 3.2. Thiết kế của thư viện

                • 3.2.1. Cách sử dụng thư viện

                • 3.2.2. Quá trình thực thi tìm kiếm

                • 3.2.3. Vấn đề đóng gói dữ liệu

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

Tài liệu liên quan