MỌI THÔNG TIN CHI TIẾT XIN LIÊN HỆ MAIL ooothinhooo154gmail com XEM DEMO BÁO CÁO CODE TRƯỜNG ĐẠI HỌC CẦN THƠ KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG NIÊN LUẬN CƠ SỞ NGHÀNH KỸ THUẬT PHẦN MÊM TÌM ĐƯỜNG ĐI NGẮN NHẤT GIỮA CÁC NHÀ HỌC SỬ DỤNG THUẬT TOÁN DIJKSTRA VÀ THƯ VIỆN LEAFLET Cán bộ hướng dẫn Sinh viên thực hiện Tiến sĩ Nguyễn Công Danh XXXXXXXNguyễn Hồ Ngọc TrungXXXXXXX B1704864XXXXXXX CẦN THƠ 25112020 Mục Lục ĐÁNH GIÁ KẾT QUẢ THỰC HIỆN NIÊN LUẬN 1 3 TÓM TẮT 5 CHƯƠNG 1 TỔNG QUAN 6 I MÔ TẢ.
MỌI THÔNG TIN CHI TIẾT XIN LIÊN HỆ MAIL: ooothinhooo154@gmail.com XEM DEMO BÁO CÁO CODE TRƯỜNG ĐẠI HỌC CẦN THƠ KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG - - NIÊN LUẬN CƠ SỞ NGHÀNH KỸ THUẬT PHẦN MÊM TÌM ĐƯỜNG ĐI NGẮN NHẤT GIỮA CÁC NHÀ HỌC SỬ DỤNG THUẬT TOÁN DIJKSTRA VÀ THƯ VIỆN LEAFLET Cán hướng dẫn: Tiến sĩ: Nguyễn Công Danh Ngọc TrungXXXXXXX Sinh viên thực hiện: XXXXXXXNguyễn Hồ B1704864XXXXXXX CẦN THƠ 25/11/2020 Mục Lục ĐÁNH GIÁ KẾT QUẢ THỰC HIỆN NIÊN LUẬN (Học kỳ I, Niên khóa 2020-2021) GIÁO VIÊN HƯỚNG DẪN: STT HỌ VÀ TÊN Nguyễn Công Danh SINH VIÊN THỰC HIỆN: STT HỌ VÀ TÊN MSSV Nguyễn Hồ Ngọc TrungXXXXXXX MSCB THƯỞNG (Tối đa 1,0 điểm) ĐIỂM B1704864XXX XXXX I HÌNH THỨC (Tối đa 0,5 điểm) Bìa (tối đa 0,25 điểm) Các tiêu đề: Trường ĐHCT, Khoa CNTT Loại niên luận: 1, Tên đề tài Giáo viên hướng dẫn: chức danh, họ tên Thông tin sinh viên thực hiện: họ tên, mã số, lớp Năm thực Bố cục (tối đa 0.25 điểm) Nhận xét giáo viên hướng dẫn giáo viên chấm Mục lục: cấu trúc chương, mục tiểu mục Phụ lục (nếu có) Tài liệu tham khảo II NỘI DUNG (Tối đa 3,5 điểm) Tổng quan (tối đa 0,5 điểm) Mơ tả tốn, mục tiêu cần đạt (0,25 điểm) Hướng giải kế hoạch thực (0,25 điểm) Lý thuyết (tối đa 0,5 điểm) Các khái niệm sử dụng đề tài Kết vận dụng lý thuyết vào đề tài Ứng dụng (tối đa 2,0 điểm) Phân tích yêu cầu toán, xây dựng cấu trúc liệu cần thiết (tối đa 0,5 điểm) Giải thuật (Lưu đồ-Ngơn ngữ giả) (1,0 điểm) Giới thiệu chương trình (0,5 điểm) Kết luận (tối đa 0,5 điểm) Nhận xét kết đạt Hạn chế Hướng phát triển III CHƯƠNG TRÌNH DEMO (Tối đa 5,0 điểm) Giao diện thân thiện với người dùng (1.0 điểm) Hướng dẫn sử dụng (0,5 điểm) Kết thực với kết phần ứng dụng (3,5 điểm) Ghi chú: Điểm khung “các sinh viên thực hiện” điểm kết cuối sinh viên trình thực niên luận Nếu sinh viên demo chương trình trả lời vấn đáp khơng đạt yêu cầu giáo viên hướng dẫn sinh viên nhận điểm F cho học phần Cần Thơ, ngày tháng 12 năm 2020 GIÁO VIÊN CHẤM NHẬN XÉT CỦA GIÁO VIÊN …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… TÓM TẮT Là sinh viên năm trường Đại Học Cần Thơ, nhiều lần bạn tân sinh viên đặt câu hỏi tìm nhà học khuôn viên trường năm dịp trường tiếp nhận bạn tân sinh viên khóa Hầu hết bạn khóa điều chưa quen thuộc với vị trí nhà học lúng túng chạy khấp nơi hỏi tìm học Vì nhằm giúp bạn tìm đường cách dễ dàng nhanh chống nên tơi cho đời Hệ Thống Tìm Đường Giữa Các Nhà Học khuôn viên trường Đại Học Cần Thơ Hệ Thống Tìm Đường Giữa Các Nhà Học sử dụng thuật toán Dijkstra Leaflet(thư viện JavaScript mã nguồn mở) phương pháp mơ hình hóa đồ đường trở thành đồ thị, nhà học đỉnh đường cung đồ thị trực quan với việc cài đặt hệ thống môi trường web sử dụng html, css, javascipt,… Làm cho hệ thống dễ sử dụng thân thiện với người dung Kết cho thấy Hệ thống vượt trội app tìm đường desktop khía cạnh dễ sử dụng hơn, thân thiện hơn, bạn khơng cần phải cài đặt app vào máy tính mà cần truy cập trực tiếp vào website hệ thống sau tìm nhà học mà bạn cần tìm Hệ thống đường cho bạn với thích đầy đủ chức tính quảng đường, thời gian CHƯƠNG 1: TỔNG QUAN I MÔ TẢ BÀI TOÁN Mỗi năm, trường Đại Học Cần Thơ lại chào đoán số lượng lớn bạn tân sinh viên từ nhiều nơi đến Hầu hết bạn sinh viên cho biết trải nghiệm khuôn viên nhà trường rộng lớn nhiều khoa, nhiều nhà học Điều làm cho bạn mơ hồ đường đi, khoa, nhà học… Bên cạnh đó, trường Đại Học Cần Thơ thường xuyên đoán tiếp bạn sinh viên quốc tế, việc khác biệt ngôn ngữ sinh hoạt môi trường làm cho bạn khó khan, kể việc tham quan hết khuôn viên nhà trường, địa điểm,… Những ngày đầu học, bạn thường khơng biết vị trí nhà học hay khoa mà học nên phải chạy khấp nơi hỏi anh chị khóa trên, số bạn cịn ngại ngùng khơng giám hỏi tự tìm, điều mà bạn thường đến lớp muộn Các bạn sinh viên quốc tế khó khăn việc tham quan trường Do đó, việc xây dựng Hệ thống tìm đường nhà học cần thiết, Hệ thống giúp cho bạn tìm đường ngắn ngất nhà học cách nhanh chống dễ dàng II MỤC TIÊU CẦN ĐẠT ĐƯỢC Nắm bắt vấn đề cần thiết với mong muốn ứng dụng kiến thức học vào thực tế để giúp ích Vì vậy, mục tiêu đề tài xây dựng Hệ thống tìm đường ngắn nhà học có giao diện thân thiện với người dùng, hướng dẫn người dung tìm đường dến nhà học mà mong muốn cách nhanh Hệ thống có sử dụng giải thuật Dijkstra(tìm đường ngắn nhất) để giải toán Bên cạnh chức tìm đường ngắn hệ thống cịn số chức khác tính quảng đường thời gian di chuyển, xem trước hình ảnh điểm đến để dễ dàng nhận đặc biệt có hỗ trợ ngôn ngữ tiếng Việt Tiếng Anh III PHƯƠNG HƯỚNG GIẢI QUYẾT Thu thập dự liệu đường đị, nhà học, hình ảnh… thực tế xác Mơ hình hóa đồ thực tế thành cấu trúc liệu kiểu đồ thị với đường cung nhà học đỉnh đồ thị Cài đặt chương trình mơi trường web, sử dụng html,css,Javascript, Tạo giao diện thân thiện dễ sử dụng Ứng dụng giải thuật Dijkstra để tìm đường ngắn Sử dụng Leaflet, thư viện mã nguồn mở để nhúng đồ vào web thao tác nó, Leaflet phát triển ngôn ngữ Javascript Xây dựng web đa ngôn ngữ CHƯƠNG 2: LÝ THUYẾT I CÁC KHÁI NIỆM Các khái niệm lý thuyết đồ thị Định nghĩa đồ thị: Đồ thị G đơi , đó: • V tập đỉnh • E tập cung, cung nối đỉnh V Cho cung e nối đỉnh x y: • Ký hiệu e = (x,y) • x, y gọi đầu mút e • x y gọi kề lân cận • e gọi liên thuộc với x y Định nghĩa Khuyên Đa cung • Khuyên: cung có hai đầu mút trùng • Đa cung: cung có chung đầu mút Các loại đồ thị: • Đơn đồ thị vơ hướng: đồ thị chứa cung khơng có hướng (x,y) ≡ (y,x), khơng chứa khun khơng chứa đa cung • Đa đồ thị vơ hướng: đồ thị cung khơng có hướng, khơng chứa khun chứa đa cung • Giả đồ thị: đồ thị chứa cung khơng có hướng chứa đa cung nhiều khun • Đơn đồ thị có hướng: đồ thị chứa cung có hướng (x,y) ≠ (y,x), khơng chứa đa cung khun • Đa đồ thị có hướng ( không chứa khuyên): đồ thị chứa cung có hướng (x,y) ≠ (y,x) có nhiều cung (x,y) khơng chứa khun • Đa đồ thị có hướng ( có chứa khuyên): đồ thị chứa cung có hướng (x,y) ≠ (y,x), có nhiều cung (x, y) chứa khuyên Các khái niệm sử dụng chương trình Thuật tốn Dijkstra, mang tên nhà khoa học máy tính người Hà Lan Edsger Dijkstra vào năm 1956 ấn năm 1959, thuật toán giải toán đường ngắn nguồn đơn đồ thị có hướng khơng có cạnh mang trọng số khơng âm HTML(viết tắt từ Hypertext Markup Language, "Ngôn ngữ Đánh dấu Siêu văn bản") ngôn ngữ đánh dấu thiết kế để tạo nên trang web World Wide Web Trong tin học, tập tin định kiểu theo tầng – dịch từ tiếng Anh Cascading Style Sheets (CSS) – dùng để miêu tả cách trình bày tài liệu viết ngôn ngữ HTML XHTML JavaScript, theo phiên hành, ngơn ngữ lập trình thơng dịch phát triển từ ý niệm nguyên mẫu Ngôn ngữ dùng rộng rãi cho trang web (phía người dùng) phía máy chủ (với Nodejs) Nó vốn phát triển Brendan Eich Hãng truyền thông Netscape với tên Mocha, sau đổi tên thành LiveScript, cuối thành JavaScript Giống Java, JavaScript có cú pháp tương tự C, gần với Self Java .js phần mở rộng thường dùng cho tập tin mã nguồn JavaScript Chú thích từ ngữ ký hiệu sử dụng tài liệu Từ ngữ ký hiệu s x ĐHCT min_pi pi[i] p[i] L[i][j] mark[i] Chú thích Điểm bất đầu Điểm kết thúc Đại Học Cần Thơ Giá trị nhỏ tạm thời chiều dài đường ngắn từ s đến i(tính thời điểm xét) đỉnh liền trước đỉnh i đường ngắn từ s đến i(tính đến thời điểm xét) chiều dài trọng số cung (i, j) cho biết đỉnh i đánh dấu hay chưa Bảng 1: Các từ ngữ ký hiệu sử dụng tài liệu II KẾT QUẢ VẬN DỤNG LÝ THUYẾT VÀO ĐỀ TÀI Nắm vững khái niệm html, css, javascript, lý thuyết đồ thị quy trình giải thuật Dijkstra Từ cài đặt giải thuật vào chường trình cụ thể có giao diện đồ họa đáp ứng mục tiêu đề 10 Hình 4: Mơ hình Client Server Phía Client: Màn hình chia hành phần: -Phần cho người dùng thao tác gồm combobox, khung hình ảnh…, sử dụng html css để tạo phần tử -Phần lại giao diện đồ: Sử dụng thư viện Leaflet để tạo bảng đồ Cách nhúng: nhúng link thư viện vào thẻ head trang Tạo thẻ div, nơi để hiển thị đồ, thẻ div có id map Khởi tạo đồ: tạo biến map sau gán cho hàm L.map truyền tham số id thẻ div mà ta muốn hiển thị, sau setView cho tọa độ mong muốn L.titleLayer() hàm nhận vào tham số kiểu bạn đồ bạn hiển thị, có loại đồ sau: đường đi, mặc định, đường thủy,vật thể… Các marker vị trí: Tạo biến marker_X sau gán vị trí nơi bạn muốn hiển thị Vd: macrker Cách vẽ đường đồ: đồ có kiểu liệu geojson, lần ta sét có đường nhà học ta cho đường nhà học hiển thị 15 Client nhận giá trị người dùng nhập(các nhà học, biến ngôn ngữ ) gửi server để sử lý, sau hiển thị lại cho người dùng Phía Server: Sử dụng hàm đổi ngôn ngữ để chuyễn đổi qua lại ngôn ngữ: hàm cài đặt ngôn ngữ php, sử dụng file ngôn ngữ lang_en(English) and lang_vi(Việt Nam) để lưu từ ngữ ngôn ngữ Khi người dùng chọn ngôn ngữ tạo biến lang, biến lang import file ngôn ngữ để đổi ngôn ngữ, biến ngôn ngữ mặc định lang_en(English) Sử dụng mảng chiều lưu đỉnh trọng số Server nhận biến gồm biến s(đỉnh bất đầu) x(đỉnh đến) từ phía client Sau gọi hàm Dijkstra để tìm đường Thuật tốn Dijkstra trả mảng pi[] p[] Mảng pi[] tập hợp trọng số đường ngắn p[] tập hợp đỉnh đường ngắn Sau qua hàm sử lý trả client Client in màng hình đường ngắn với độ dài quảng đường thời gian di chuyển 16 Chức Giao diện hệ thống • Giao diện Hình 5: Giao diện hệ thống • Chức giao diện chức thay đổi ngôn ngữ Khi người dùng chọn ngơn ngữ biến lang nhận giá trị lang_en lang_vi, Nếu lang_en server hay đổi ngôn ngữ cách reload lại trang include file lang_en vào website rander lại ngôn ngữ theo từ ngữ file lang_en Ngược laị rander từ ngữ file lang_vi Biến lang mặc định lang_en 17 Hình 6: Giao diện chức thay đổi ngơn ngữ • Chức giao diện chức tìm đường Mỗi người dùng chọn địa điểm gọi hàm displayimg1, displayimg2 hàm vận hành theo cách thức AJAX(thay đổi thành phần trang web mà khơng reload lại trang) thay đổi hình ảnh xem trước theo biến nhận từ thẻ select Sau chọn xong địa điểm, người dùng click button tìm đường client gửi biến x(đỉnh đến) s(đỉnh bất đầu) server, cụ thể hàm Dijkstra Cùng lúc client in marker theo biến s x Hình 7: Giao diện chức tìm đường • Chức giao diện hiển thị đường đồ Sau nhận biến từ client qua hàm xử lý Server gửi Client thơng tin xử lý(pi[] p[]) Client hiển thị đường theo thơng tin mà phía Server gửi về(in đường có kiểu liệu geojson) 18 Hình 8: Giao diện hiển thị đường đồ • Chức giao diện chức xem quảng đường thời gian Khi Server trả liệu Client, bên cạch việc in đường Client in độ dài đoạn đường thời gian di chuyển Hình 9: Giao diện chức xem quảng đường bà thời gian • Chức giao diện chức xem trước hình ảnh địa điểm Khi người dùng thay đổi lựa chọn thẻ select hình ảnh thay đổi theo biến định sẵn 19 Hình 10: Giao diện chức xem trước hình ảnh địa điểm 20 Hướng dẫn sử dụng Chức quan trọng chường trình ngơn ngữ Chường trình hỗ trợ nhiều ngơn ngữ số lượng người dùng nhiều Chức thay đổi ngơn ngữ cài đặt phía bên góc trái màng hình Hình 11: Giao diện chức chọn ngôn ngữ Hệ thống hỗ trợ ngôn ngữ tiếng Việt tiếng Anh Chọn combobox English giao diện thay đổi thành tiếng anh ngược lại chọn Vietnamese giao diện thay đổi thành tiếng Việt, ngơn ngữ mặc định hệ thống tiếng Anh Hình 12: Giao diện chức chọn điểm bất đầu tiếng Anh 21 Hình 13: Giao diện chức chọn điểm bất đầu tiếng Việt Sau chọn ngôn ngữ phù hợp, ta đến chức hệ thống tìm đường nhà học Đầu tiên bạn cần chọn vị trí mình: Chọn vị trí bạn combobox phía tiêu đề Chọn địa điểm bạn(Choose your location) Hình 14: Giao diện chức tìm đường Sau chọn địa điểm mà bạn cần đến: Chọn địa điểm cần đến combobox thứ phía tiêu đề Chọn điểm đến bạn(Choose your destination) 22 Hình 15: Giao diện chức tìm đường Bạn xem trước hình ảnh địa điểm mà bạn chọn gốc trái: Hình 16: Giao diện chức xem trước ảnh địa điểm Để tìm đường bạn cần nhấn vào nút Tìm đường (Find The Way) 23 Hình 17: Button tìm đường Hệ thống hiển thị đường lên đồ kèm theo thích địa điểm hiển thị Hình 18: Giao diện hiển thị đường đồ 24 Ngoài bạn xem độ dài quảng đường thời gian di chuyển nút tìm đương Hình 19: Giao diện chức xem độ dài quảng đường thời gian di chuyển 25 CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN I KẾT LUẬN Độ phức tạp thuật tốn: Thuật tốn Dijkstra bình thường có độ phức tạp O(n + m) Tuy nhiên ta sử dụng kết hợp với cấu trúc heap, độ phức tạp O((m+n)log(n)), dùng Fibonacci Heap độ phức tạp giảm xuống O(m+nlogn) với m số cung n số đỉnh Kiểm tra độ xác Hình 20: Bản đồ khn viên trường ĐHCT mơ hình hóa theo kiểu đồ thị Khi ta chọn nhà học gồm: Khoa mơi trường khoa sư phạm kết mong muốn qua đỉnh sau: 1-2-12-11-13-13 tổng đường là:700 Kết hệ thống xác kết mong muốn 26 Hình 21: Kết so sánh thứ Hay từ Khoa công nghệ đến nhà học A3 Kết mong muốn sau:7-8-9-10-17-18-19-24-22 tổng đường 830 Kết thực tế xác với kết mong muốn Hình 22: Kết so sánh thứ hai 27 Điểm vượt trội hệ thống Hệ thống cài đặt môi trường web với giao diện thân thiện dễ sử dụng cho thấy vượt trội so với trường trình chạy desktop, bên cạnh hệ thống web đa ngôn ngự hỗ trợ nhiều nhóm người dùng Bên cạnh hệ thống cịn có số chức kèm phù hợp với tiêu chí đường xem hình ảnh, tính độ dài quảng đường thời gian di chuyển Hạn chế Chưa có nhiều điểm để tăng độ chích xác Chưa thể tự định vị Kết luận Hệ thống đáp ứng tiêu chí đặt tồn tìm đường phần GIỚI THIỆU bên cạch thực đầy đủ theo thiết kế lập trước II HƯỚNG PHÁT TRIỂN Tuy đáp ứng yêu cầu toán đặt phiên hệ thống phát triển theo hướng sau: - Tăng thêm số đỉnh cung đồ thị để hệ thống chi tiết Sử dụng hệ thống định vị trí ban đầu thay chọn từ combobox Chỉ đường cách sử dụng hình ảnh 3D Phát triển hệ thống tảng Androi IOS 28 Tài Liệu Tham Khảo [1] Phạm Nguyên Khang, Lý Thuyết Đồ Thị, trường Đại Học Cần Thơ, 87, 2017 [2] Lê Hùng Tâm, BÀI TOÁN TÌM ĐƯỜNG ĐI NGẮN NHẤT TRÊN ĐỒ THỊ, Đại Học Cần Thơ, 22 ,2018-2019 [3] https://vi.wikipedia.org/wiki/Thu%E1%BA%ADt_to%C3%A1n_Dijkstra [4] https://leafletjs.com/ [5] https://www.w3schools.com/ 29 ... KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG - - NIÊN LUẬN CƠ SỞ NGHÀNH KỸ THUẬT PHẦN MÊM TÌM ĐƯỜNG ĐI NGẮN NHẤT GIỮA CÁC NHÀ HỌC SỬ DỤNG THUẬT TOÁN DIJKSTRA VÀ THƯ VIỆN LEAFLET Cán hướng dẫn:... Dựa vào mục TỔNG QUAN phía ta xác định tốn thuộc dạng đồ thị có áp dụng giải thuật thuật tốn tìm đường ngắn Có nhiều giải thuật, thuật tốn tìm đường ngắn cụ thể như: Thuật tốn Dijkstra, Thuật. .. Dijkstra, Thuật tốn Bellman-Ford, Giải thuật tìm kiếm A*, Thuật toán Floyd-Warshall, Thuật toán Johnson, Lý thuyết nhiểu Ở ta chọn thuật tốn Dijkstra lý sau: • Thuật tốn tính tốn tất đường ngắn từ