1. Trang chủ
  2. » Luận Văn - Báo Cáo

XÂY DỰNG CHƯƠNG TRÌNH HỖ TRỢ HỌC LÝ THUYẾT ĐỒ THỊ

86 3 0

Đ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

TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM TRƢỜNG ĐẠI HỌC TƠN ĐỨC THẮNG KHOA CƠNG NGHỆ THƠNG TIN & TỐN ỨNG DỤNG LUẬN VĂN TỐT NGHIỆP XÂY DỰNG CHƢƠNG TRÌNH HỖ TRỢ HỌC LÝ THUYẾT ĐỒ THỊ Giảng viên hướng dẫn : THS PHẠM THI VƢƠNG Sinh viên thực hiện: VŨ THỊ THẢO TẠ HỮU VINH Lớp : 07TH3D Khoá : 11 TP Hồ Chí Minh, tháng năm 2011 LỜI CÁM ƠN  Trong trình thực đồ án này, Nhóm em nhận giúp đỡ thầy Phạm Thi Vương, thầy giáo trực tiếp hướng dẫn đồ án Nhóm em xin chân thành cảm ơn Thầy Nhóm em xin chân thành cảm ơn khoa Công Nghệ Thông Tin, Trường Đại Học Tôn Đức Thắng tạo điều kiện thuận lợi cho chúng em học tập Nhóm em xin chân thành cảm ơn Thầy, Cơ khoa tận tình giảng dạy, trang bị cho chúng em kiến thức quý báu năm học vừa qua Cảm ơn gia đình anh chị bạn bè góp ý xây dựng đồ án Vì điều kiện thời gian khơng nhiều, kinh nghiệm cịn hạn chế, khơng tránh khỏi thiếu sót Nhóm em mong nhận ý kiến đóng góp thầy giáo bạn để báo cáo sau tốt NHẬN XÉT CỦA GIẢNG VIÊN HƢỚNG DẪN NHẬN XÉT CỦA GIẢNG VIÊN PHẢN BIỆN MỤC LỤC CHƢƠNG GIỚI THIỆU ĐỀ TÀI - 1.1 Đối tượng nghiên cứu - 1.2 Mục đích chức phần mềm - 1.3 Lĩnh vực mà đề tài nghiên cứu - 1.4 Công cụ - kỹ thuật sử dụng - 1.5 Các phần mềm liên quan đến đề tài - CHƢƠNG CHI TIẾT VỀ CÁC GIẢI THUẬT PHỔ BIẾN TRÊN ĐỒ THỊ - 2.1 Các thuật toán duyệt đồ thị - 2.1.1 Duyệt theo chiều sâu (Depth-First Search) - 2.1.2 Duyệt theo chiều rộng (Breadth-First Search) - 10 2.2 Chu trình Euler chu trình Hamilton - 12 2.2.1 Chu trình euler - 13 2.2.2 Chu trình Hamilton - 17 2.3 Thuật tốn Kruskal Prim tìm bao trùm nhỏ - 20 2.3.1 Thuật toán Kruskal - 21 2.3.2 Thuật toán Prim - 24 2.4 Giải thuật Dijkstra - 27 2.4.1 Bài toán đường ngắn - 27 2.4.2 Bài tốn đường có trọng số bé - 28 CHƢƠNG PHÂN TÍCH HỆ THỐNG - 34 3.1 Phân tích yêu cầu hệ thống - 34 - 3.1.1 Yêu cầu chức hệ thống: - 34 3.1.2 Yêu cầu phi chức hệ thống: - 34 3.2 Danh sách Use case actor - 34 3.3 Các mô hình Use case: - 38 3.4 Mô tả Use case: - 42 CHƢƠNG THIẾT KẾ CẤU TRÚC CHƢƠNG TRÌNH - 47 4.1 Thiết kế sơ - 47 4.2 Phân chia công việc - 49 4.3 Tiến hành - 49 4.3.1 Bước - 49 4.3.2 Bước - 55 4.3.3 Bước - 58 4.3.4 Bước - 64 CHƢƠNG TỔNG KẾT - 67 5.1 Những khó khăn thuận lợi thực chương trình: - 67 5.1.1 Thuận lợi: - 67 5.1.2 Khó khăn: - 67 5.2 Những kết đạt hạn chế: - 67 5.2.1 Kết đạt được: - 67 5.2.2 Hạn chế: - 67 5.3 Hướng phát triển - 67 TÀI LIỆU THAM KHẢO - 69 PHỤ LỤC TỔNG QUAN VỀ CHƢƠNG TRÌNH - 70 - DANH MỤC CÁC HÌNH SỬ DỤNG Hình 1.1 GraphPerformance - Hình 1.2 yEd Graph Editor - Hình1.3 Jgraph - Hình 1.4 Graph Math - Hình 2.1 Đồ thị vơ hướng, liên thơng, khơng có trọng số - 10 Hình 2.2 Đồ thị vơ hướng, liên thơng, khơng có trọng số - 12 Hình 2.3 Đồ thị vơ hướng, liên thơng, khơng có trọng số - 14 Hình 2.4 Đồ thị vơ hướng, liên thơng, khơng có trọng số - 19 Hình 2.5 Đồ thị vơ hướng, liên thơng, có trọng số - 22 Hình 2.6 Cây bao trùm nhỏ - Kruskal - 24 Hình 2.7 Đồ thị vơ hướng, liên thơng, có trọng số - 25 Hình 2.8 Cây bao trùm nhỏ - Prim - 27 Hình 2.9 Đồ thị có hướng, liên thơng, có trọng số - 30 Hình 3.1 Use case tổng quan chương trình - 38 Hình 3.2 Use case xử lý menu File - 39 Hình 3.3 Use case xử lý menu Edit - 39 Hình 3.4 Use case xử lý menu Option - 40 Hình 3.5 Use case giúp đỡ - 40 Hình 3.6 Use case tương tác với vùng vẽ - 41 Hình 3.7 Tinh chế Use case duyệt đồ thị - 42 - Hình 4.1 Node - 47 Hình 4.2 Arc - 47 Hình 4.3 DoThi - 47 Hình 4.4 Arc_Collection - 47 Hình 4.5 DrawObject - 48 Hình 4.6 GraphSimulator - 48 Hình 4.7 Cấu trúc sơ chương trình - 48 Hình 4.8 Class Node - 50 Hình 4.9 Class Arc - 50 Hình 4.10 Class DoThi - 51 Hình 4.11 Class Arc_Collection - 53 Hình 4.12 Class Graph_Stack - 54 Hình 4.13 UserControl DrawObect - 55 Hình 4.14 Right click DrawObject - 56 Hình 4.15 Trang Vẽ - 59 Hình 4.16 Graph_Stack - 62 Hình 6.1 Giao diện chương trình - 70 Hình 6.2 Menu File - 71 Hình 6.3 Menu Edit - 72 Hình 6.4 Menu View - 72 Hình 6.5 Menu Insert - 72 Hình 6.6 Menu Test - 73 - Hình 6.7 Menu Help - 73 Hình 6.8 ToolBox - 73 Hình 6.9 Hiển thị giá trị đỉnh - 74 Hình 6.10 Kiểm tra tính liên thơng đồ thị - 74 Hình 6.11 Tìm đường đỉnh - 74 Hình 6.12 Hiển thị khung đồ thị - 75 Hình 6.13 Tơ màu đồ thị - 75 Hình 6.14 Sửa giá trị đỉnh - 75 Hình 6.15 Sửa trọng số cạnh - 76 Hình 6.16 Sao chép giá trị đỉnh - 76 Hình 6.17 Xóa đỉnh - 76 - LỜI NÓI ĐẦU Lý thuyết đồ thị lĩnh vực nghiên cứu có từ lâu đời có nhiều ứng dụng đại Những tư tưởng lý thuyết đồ thị đề xuất từ năm đầu kỷ 18 nhà toán học lỗi lạc người Thụy Sĩ Leonhard Euler Chính ơng người sử dụng đồ thị để giải toán tiếng cầu thành phố Konigsberg Đồ thị sử dụng để giải toán nhiều lĩnh vực khác Chẳng hạn, đồ thị sử dụng để xác định mạch vòng vấn đề giải tích mạch điện Chúng ta xác định xem hai máy tính mạng trao đổi thơng tin với hay khơng nhờ mơ hình đồ thị mạng máy tính Đồ thị có trọng số cạnh sử dụng để giải tốn như: Tìm đường ngắn hai thành phố mạng giao thông Chúng ta sử dụng đồ thị để giải toán lập lịch, thời khoá biểu, phân bố tần số cho trạm phát truyền hình Mục đích ta tìm hiểu nhằm giới thiệu khái niệm số thuật toán đồ thị để giải số toán khung nhỏ nhất, tốn tìm đường ngắn Những thuật tốn trình bày chi tiết với việc phân tích hướng dẫn cài đặt chương trình máy tính với mục đích củng cố rèn luyện kỹ lập trình Bố cục báo cáo gồm: Chương 1: Giới thiệu đề tài Chương 2: Chi tiết giải thuật phổ biến đồ thị Chương 3: Phân tích hệ thống Chương 4: Thiết kế cấu trúc chương trình Chương 5: Tổng kết Tài liệu tham khảo Phụ lục: Tổng quan chương trình Xây dựng chương trình hỗ trợ học lý thuyết đồ thị Thao tác undo, redo chƣơng trình: Hình 4.16 Graph_Stack Graph_Stack lớp đại diện cho stack chứa đồ thị, stack bình thường dùng mảng tĩnh để giới hạn số lượng undo, redo tối đa Tạo Graph_Stack undo redo Khi tạo trang vẽ trang vẽ chứa đồ thị, lúc ta đưa đồ thị vào undo, số đồ thị undo >, Sau điền thơng tin vào bảng Hình 6.11 Tìm đường đỉnh - 74 - Xây dựng chương trình hỗ trợ học lý thuyết đồ thị Hiển thị khung đồ thị: Nhấp chuột phải chọn Skeleton Tree Hình 6.12 Hiển thị khung đồ thị Tơ màu đồ thị theo sắc số ( cho đỉnh kề màu khác ): Nhấp chuột phải, chọn Graph Coloring, chọn OK Hình 6.13 Tơ màu đồ thị Sửa giá trị đỉnh: Nhấp chuột phải vào đỉnh chọn Change Value, sau nhập giá trị đỉnh vào Hình 6.14 Sửa giá trị đỉnh - 75 - Xây dựng chương trình hỗ trợ học lý thuyết đồ thị Sửa trọng số cạnh: Nhấp chuột phải vào cạnh, chọn Change Value, sau nhập trọng số Hình 6.15 Sửa trọng số cạnh Sao chép giá trị đỉnh mối quan hệ Nhấp chuột phải vào đỉnh chọn Copy, sau để tạo đỉnh giống đỉnh ta vừa chép (các mối quan hệ với đỉnh khác) ta nhấp phải nơi cần dán, chọn Paste Hình 6.16 Sao chép giá trị đỉnh Xóa đỉnh Nhấp phải vào đỉnh cần xóa chọn Delete Hình 6.17 Xóa đỉnh - 76 - ... 1.2 yEd Graph Editor Hình 1.3 Jgraph -6- Xây dựng chương trình hỗ trợ học lý thuyết đồ thị Hình 1.4 Graph Math -7- Xây dựng chương trình hỗ trợ học lý thuyết đồ thị CHƢƠNG CHI TIẾT VỀ CÁC GIẢI... khoa học máy tính mơn học lý thuyết đồ thị xem kiến thức sở khoa học máy tính đề tài xây dựng chƣơng trình hỗ trợ học lý thuyết đồ thị chọn 1.2 Mục đích chức phần mềm Mục đích phần mềm hỗ trợ học. .. đồ thị Chương 3: Phân tích hệ thống Chương 4: Thiết kế cấu trúc chương trình Chương 5: Tổng kết Tài liệu tham khảo Phụ lục: Tổng quan chương trình Xây dựng chương trình hỗ trợ học lý thuyết

Ngày đăng: 30/10/2022, 21:26

Xem thêm:

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w