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

Báo cáo Đồ án ứng dụng thuật toán tìm Đường Đi ngắn nhất trong mô hình thực tiễn

15 0 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Báo Cáo Đồ Án Ứng Dụng Thuật Toán Tìm Đường Đi Ngắn Nhất Trong Mô Hình Thực Tiễn
Trường học Trường Đại Học Sư Phạm Thành Phố Hồ Chí Minh
Chuyên ngành Công Nghệ Thông Tin
Thể loại báo cáo
Năm xuất bản 6004
Thành phố Thành Phố Hồ Chí Minh
Định dạng
Số trang 15
Dung lượng 651,97 KB

Nội dung

Đề tài này giúp nâng cao kiến thức và kỹ năng lập trình của bản thân thông qua việc nghiên cứu và ứng dụng các thuật toán tối ưu, góp phân cải thiện hiệu quả truyền tải dữ liệu trong các

Trang 1

TRƯỜNG ĐẠI HỌC SƯ PHẠM THÀNH PHÓ HÒ CHÍ MINH

KHOA CÔNG NGHỆ THÔNG TIN MON LY THUYET DO THI VA UNG DUNG

® Ê _=&

BAO CAO DO AN UNG DUNG THUAT TOAN TIM DUONG DI NGAN NHAT TRONG MO HINH THUC TIEN

Thành phé Ho Chi Minh, thang 66 nam 6004

BO GIAO DUC VA DAO TAO TRƯỜNG ĐẠI HỌC SU PHAM TPa HO CHI MINH KHOA CONG NGHE THONG TIN

Trang 2

BAO CAO DO AN

UNG DUNG THUAT TOAN TIM DUONG DI NGAN NHAT

TRONG MO HINH THUC TIEN

Thành phé Ho Chi Minh, thang 66 nam 6004

MUC LUC

APRYAYAAAAAAXAAAAAYAA AX AAA Yar aArraArarxaArararazxarrzary:

DANH MỤC HÌNH ẢNH - ST 122121211 112222 tr He re 7

CHUONG 6: TÓNG QUAN, 2522221221122 erdeg 8

1.2 Mure tidu nghién Cun 8

1.3 Déi trong va pham vi nghién UU ccc ccceccecceseceeseseseceessesceeseeseseresseees 9

1.4 Phương pháp nghiên cứu - ccceccccneceneenscenseesseeseeeseeceseseesiseeseneeeeses 9

B`‹ 8a 9

CHUONG 6: CO SO LY THUYÊT lŨ

Trang 3

2.1 Ngôn Ngữ Lập Trình

2.2 Môi Trường Lập

tOÁN, 0225221 211221121221222 re 10

2.4 Khái quát về đồ thị .- 55 5s 2 2E212111111211211 2112221212111 rau 11

2.5 Giới thiệu thuật toán D1Jkstra - 5 2 2221122212111 121 11 1315121111228 22 12

ào cố n6 12 CHƯƠNG í: SÁN PHẨM DEMO 522 22 2212212127122 re 13

3.1 Giao Diện Chính - cccccccccccccccsccesevecessesseetteetttanttesacssecseceeseeesaneeees 14

KÝ 0.0 0n 15

CHUONG 4: CAI DAT THUẬT TOÁN 552111125111 1122212 E1 rtrtrreg 22

4.1 Cài đặt thuật toán ID1Jkstra G0 20 1022101101 11131 11311111111 1111 1111111 k2 22 4.2 Các Thuật Toán Hồ Trợ cho thuật toán DiJkstra 22-2221 c 2+2 24

CHƯƠNG 5: TÓNG KẾTT -2 2S 112211221221121112112211211212212 21212 ca 87 TÀI LIỆU THAM KHẢO - 52 2111111 221211111211111111 122tr rrreg §7

Trang 4

DANH MỤC HÌNH ẢNH

Hình 3.I Hình ảnh Giao diện CÍHHÌH cà Sen nàn se Trung 14

Hình 3.2 Hình ảnh Chọn Điểm Bắt ĐẦU -<-<<-<s-<5 Trang 15

Hình 3.3 Hình ảnh Chọn Điểm Kết Thúc - <5 cẶcsS: Trang 15

Hình 3.4 Hình ảnh Gợi Ý khi điền Điểm bắt đầu Trang 16

Hình 3.5 Hình ảnh các địa điểm được chọn được đánh dấu đó Trang 16

Hình 3.6 Hình ảnh Đôi chỗ Điểm bắt đầu và Điểm kết thúc Trang 16

Hình 3.7 Hình ảnh sau Khi nhấn Bắt Đầu «<< Trang 17

Hình 3.8 Hình Ảnh Khi nhắn Nút Làm Mới «- Trang 17

Hình 3.9 Hình Ảnh khi nhấn Nút THÊm << 555 Trang 18

Hình 3.10 Hình Anh Khi nhất nút Thêm một cạnh đã tồn tai Trang 19

Hình 3.11 Hình Ảnh khi nhấn Nút Xóa .«ce< Trang 19

Hình 3.12 Hình Ảnh trước khi nhấn Sửa .à Trang 20

Hình 3.13 Hình Ảnh Sau khi nhắn Sửa cscse< Trang 20

Trang 5

CHUONG 6: TONG QUAN

6a6 Ly do chon dé tai

Trong xã hội ngày nay, việc truyền tai dữ liệu giữa các người dùng một cách nhanh chóng và hiệu quả là vô cùng quan trọng Trong điều kiện mạnh về hạ tầng viễn thông và công nghệ thông tin như hiện nay, Việt Nam cần những giải pháp giảm độ trễ của quá trình truyền dữ liệu Độ trễ của quá trình truyền dữ liệu không chỉ ảnh hưởng đến trải nghiệm người dùng ma còn đến những lĩnh vực quan trọng khác như viễn thông, giao thông, các dịch vụ trực tuyến

Đề tài này giúp nâng cao kiến thức và kỹ năng lập trình của bản thân thông qua việc nghiên cứu và ứng dụng các thuật toán tối ưu, góp phân cải thiện hiệu quả truyền tải dữ liệu trong các hệ thông mạng tại Việt Nam, đồng thời mang lại lợi ích thiết thực cho cộng đồng và doanh nghiệp bằng cách giảm thiểu độ trễ và cải thiện chất lượng dịch vụ

Với lý do đó, chúng em đã chọn đề tài này nhằm mục đích nâng cao khả năng lập trình, ứng dụng các thuật toán đã học và mang lại lợi ích cho cộng đồng thông qua việc phát triển các ứng dụng công nghệ thông tin trong quản lý và truyền tải đữ liệu tại Việt Nam

`

ốàŠ Mục tiêu nghiên cứu

Trong thời đại công nghệ 4.0, việc truyền tải dữ liệu giữa các người dùng một cách nhanh chóng và đễ dàng trở thành một vẫn đề cấp thiết Việt Nam, với sự phát triển còn hạn chế về hạ tầng viễn thông và công nghệ thông tin, cần các giải pháp để kiểm tra độ trễ trone quá trình truyền đữ liệu Tuy nhiên, độ trễ trong việc truyền đữ liệu giữa các hệ thống chưa được hiệu quả như dự kiến, dẫn đến quá trình sử dụng các dịch vụ liên quan không hiệu quả Do đó, việc xây dựng một hệ thống truyền dữ liệu tối ưu sẽ giúp cải thiện hiệu quả vận hành, giảm thiểu chỉ phí, đồng thời tạo ra mạng lưới truyện đữ liệu đồng bộ và hiệu quả

Trang 6

Mục tiêu của nghiên cứu này là sử dụng các thuật toán tối ưu để xây dựng một

hệ thống truyền dữ liệu tối ưu, giúp xác định các tuyến truyền đữ liệu ngắn nhất giữa các người dùng Việc áp dụng các thuật toán này không chỉ giúp tìm kiếm tuyến đường truyền đữ liệu ngắn nhất mà còn hỗ trợ trong việc tối ưu hóa các yếu tổ

như chi phí vận hành, độ trễ và các yếu tố khác liên quan đến viễn thông và công nghệ thông tin

đài Đối tượng và phạm vi nghiên cứu

Nghiên cứu này tập trung vào việc áp dụng các thuật toán tìm kiếm đường đi ngắn nhất trong mạng lưới truyền tải dữ liệu, đặc biệt là các thuật toán tối ưu hóa như thuật toán Dijkstra Đối tượng nghiên cứu là các tuyến truyền dữ liệu giữa các

tỉnh thành miền Bắc Việt Nam

Nghiên cứu này không chỉ giúp xác định các tuyến truyền dữ liệu ngắn nhất oIữa các tỉnh thành mà còn hỗ trợ trong việc tối ưu hóa các yếu tố như chỉ phí vận

hành, độ trễ và các yếu tố khác liên quan đến viễn thông và công nghệ thông tin

Mục tiêu là xây dựng một hệ thống truyền dữ liệu hiệu quả, đồng bộ, giúp cải thiện

hiệu suất hệ thống và mang lại lợi ích kinh tế xã hội to lớn

ốà4 Phương pháp nghiên cứu

Mô hình hóa bài toán thực tế bằng cách sử dụng giao diện đồ họa trực quan Winform Từ đó áp dụng thuật toán Dijkstra, triển khai thuật toán và ứng dụng vào thực tế

oa5 Ket cau đề tài

Nội dung bài tiểu luận được xây dựng gồm các phần sau:

Chương 1: Tổng Quan

Chương 2: Cơ Sở Lý Thuyết Chương 3: Sản Phẩm DEMO

Trang 7

Chương 4: Các Thuật Toán Chương 5: Tổng Kết

Trang 8

CHƯƠNG 6: CO SO LY THUYET 6a60 Ngon Ngir Lap Trình C#à

C# la một ngôn ngữ lập trình hướng đối tượng đa dụng, mạnh mẽ, được Microsoft phat triển như một phần của kế hoạch NET Với cú pháp đễ học và mạnh

mẽ, C# được xem là một sự kết hop tuyét voi gitra C++ và Java Nhờ kha nang quan

lý bộ nhớ tự động và tắch hợp sâu với các công nghệ của Microsoft, C# nhanh chóng trở thành lựa chọn ưa thắch của nhiều nhà phát triển

`

6a0 Méi Trường Lập Trình

Microsoft Visual Studio là một môi trường phát triển tắch hợp (IDE) cực kỳ phổ biến và mạnh mẽ, hỗ trợ nhiều ngôn ngữ lập trình như C++ và C# Được biết đến với giao diện thân thiện và khả năng tắch hợp sâu với các công cụ phát triển của Microsoft, Visual Studio giúp lập trình viên dé dàng tạo ra các ứng dụng cho Windows, web, và các dịch vụ trực tuyến Từ Windows API đến Windows Presentation Foundation, Visual Studio mang lại một bộ công cụ phong phú đề phát

triển phần mềm chuyên nghiệp

đàắ Những kiến thức cơ sở về thuật toán

đàắàốà Khái niệm về thuật toán

Thuật toán hay còn goi la giai thuat co kha nhiéu dinh nghia khac nhau Hiéu một cách đơn giản thuật toán là một tập hợp hữu hạn bao gồm các hướng dẫn được xác định rõ ràng, bạn có thể thực hiện được bằng máy tắnh, thường được dùng để giải quyết một lớp vấn đề hoặc đề thực hiện một phép tắnh

` ` AXFX AX

ựàắàỏa Các đặc trưng của thuật toán

- Đầu vào (Input): Một thuật toán có các ụ1á trị đầu vào từ một tập đã được chỉ rõ

- Đâu ra(Output): Từ môi tập các giá trị đầu vào, thuật toán sẽ tạo ra các giá tri dau ra Cac gia tri dau ra chinh 1a nghiệm của bài toán

Trang 9

- Tắnh dừng: Sau một số hữu hạn bước thuật toán phải dừng

- Tắnh xác định: Ở mỗi bước, các bước thao tác phải hết sức rõ ràng, không gây nên sự nhập nhằng Nói rõ hơn, trong cùng một điều kiện hai bộ xử lý cùng thực hiện một bước của thuật toán phải cho những kết quả như nhau

- Tắnh đúng đắn (hiệu quả): Trước hết thuật toán cần đúng đắn, nghĩa là sau khi đưa đữ liệu vào thuật toán hoạt động và đưa ra kết quả như ý muốn

- Tắnh phô dụng: Thuật toán có thể giải bất kỳ một bài toán nảo trong lớp các

bài toán Cụ thể là thuật toán có thể có các đầu vào là các bộ đữ liệu khác nhau

trong một miền xác định

đà4 Khái quát về đồ thị

624a6a Đồ thị vô hướng

Đồ thị vô hướng hoặc đồ thị G là một cặp không có thứ tự (unordered pair) G:= (V, E), trong đó E, tập các cặp không thứ tự chứa các đỉnh phân biệt, được gọi

là cạnh Hai đỉnh thuộc một cạnh được gọi là các đỉnh đâu cuôi của cạnh đó

044a0a Cac loại đồ thị

Đồ thị có trọng số Trong một đồ thị có trọng số, mỗi cạnh được gắn với một giá trị nào đó, được gọi là trọng số, độ dài, chắ phắ, hoặc các tên khác tùy theo ứng dụng: các đỗ thị như vậy được dùng trong nhiều ngữ cảnh

Ma trận có trọng số

Ma tran trong số là một công cụ mạnh mẽ trong toán học, thường được sử dụng trong các mô hình học máy và trắ tuệ nhân tạo để biểu diễn mức độ ảnh hưởng của các phần tử trong một hệ thống Mỗi phần tử trong ma trận đại diện cho trọng

sô của môi liên kết giữa hai phân tử cụ thê trong hệ thông

Trang 10

Ma trận kề

Ma trận kề là cách biểu diễn đồ thị G = {V,E} dưới dạng ma trận các ụ1â trị boolean có kắch thước bằng với số đỉnh của đồ thị

Danh sách kề Danh sách biểu diễn tất cả các cạnh hoặc cung trong một đồ thị Nếu đồ thị vô hướng, mỗi phần tử của danh sách là một cặp hai đỉnh là hai đầu của cạnh tương ứng

đà5 Giới thiệu thuật toán Dijkstra

Thuật toán Dijkstra được phát triển bởi nhà khoa học máy tắnh người Hà Lan Edsger Dijkstra vào năm 1956 và được ấn bản lần đầu tiên vào năm 1959 Day la một thuật toán giải quyết bài toán tìm đường đi ngắn nhất từ một đỉnh tới các đỉnh còn lại của một đồ thị có hướng không có cạnh mang trọng sô âm

Vắ dụ: Thuật toán có thể sử dụng trong các giao thức định tuyến cho mạng máy tắnh và cũng được dùng trong các hệ thống bản đồ để tìm đường đi ngắn nhất giữa

hai điểm

6a6 Y tưởng thuật toán

Thuật toán Dijkstra giải quyết bài toán tìm đường đi ngắn nhất của một đồ thi

vô hướng hoặc có hướng với trọng số không âm Ý tưởng của thuật toán có thê trình bày như sau

Bước 1: 1:=0, S:=V\{u0}, L(u0)=0, L(v)= Ủ với mọi v Ạ S va

đánh đấu đỉnh v bởi (Ủ, -) Nếu n = | thì xuất đ(u0, u0) =0 = L(u0)

Bước 2: Với mọi v HS va ké voi ui (nếu đồ thị có hướng thi v là đỉnh sau của u, đặt

L(v):=min{L(v),L(ui)+w(ui,v)} Xác định k =minL(v) , v #S Néu k = L(vj) thì xuất d(u0,vj) =k va danh dau vj boi (L(vj); ui) ui+1:=vJ S:=ậ\{ui+1}

Bước3:1:=I+l

Nếu ¡ =n-Ithì kết thúc Nếu không thì quay lại Bước I

10

Trang 11

CHƯƠNG í: BÀI TOÁN THUC TE iaé Mô tả bài toán

Đề minh họa va ứng dụng thuật toán Dijkstra, bài toán được lựa chọn là mô tả

độ trễ ngắn nhất của 25 tỉnh thành miền Bắc (Hà Nội, Hà Nam, Điện Biên, Lai

Châu, ) Mỗi tỉnh sẽ được đại điện bằng một đỉnh trong đồ thị, và các độ trễ gitra chúng sẽ là các cạnh với trọng sô đại diện cho độ trê dữ liệu của các tỉnh

Dưới đây sẽ là bản đồ xây dựng đường đi các tỉnh sồm các đường truyền đữ liệu giữa hai tỉnh bắt kì Hãy xây đựng con đường mà độ trễ giữa các tỉnh thành với

nhau là nhỏ nhất:

`

FX AX

iaoa M6 hinh héa bai toán

Các đỉnh sẽ là một đỉnh trong đỗ thị, với số thứ tự các tỉnh ở trên đỉnh Giữa 2

tỉnh có thê có nhiều con đường để kết nối với nhau, nhưng ta sẽ sử đụng thuật toán Dijkstra để tìm ra đường truyền dữ liệu ngắn nhất giữa 2 tỉnh thành

11

Trang 12

CHUONG i: SAN PHAM DEMO

iao Giao Dién Chinh

Hình 3.1 Hình ảnh Giao điện Chính

Phần mềm tên là " Ứng dụng thuật toán Dijikstra để tối ưu độ trễ dữ liệu giữa các tỉnh thành Miền Bắc " Giao điện bao gồm bảng điều khiển với các tùy chọn

để sử dụng các tính năng trên Bên đưới bảng điều khiến là bản đồ với các điểm và các cạnh đại diện cho các vị trí và kết nối khác nhau, củng với thời p1an trễ tương ứng Bên phải có bảng liệt kê điểm bắt đầu, điểm kết thúc và thời gian trễ cho các lộ trình khác nhau

iad Cac Chức Năng

Hình 3.2 Hình ảnh Chọn Điểm Bắt Đầu

- _ Nơi bắt đầu chứa tất cả các điểm được đánh dấu trên Map

Hình 3.3 Hình ảnh Chọn Điểm Kết Thúc

- Noi két thúc chứa tất cả các điểm được đánh dấu trên Map

Hình 3.4 Hình ảnh Gợi Ý khi điền Điểm bắt đầu

- _ Ngoài cách chọn trên danh sách hiển thị thi còn có thé trực tiếp nhập gợi ý để

có thê tìm ra điểm cân thiệt nhanh hơn

Hình 3.5 Hình ảnh các địa điểm được chọn sẻ được đánh dấu đỏ trên bản đô

- Khi chọn hai địa điểm trong danh sách thì các điểm đó sẽ được đánh dấu đỏ

12

Trang 13

- Ngoài ra có thể đôi chiêu ngược lại băng cách nhân nút đôi ở phía dưới

Hình 3.6 Hình ảnh Đổi chỗ Điểm bắt đầu và Điểm kết thúc

Hình 3.7 Hình ảnh sau Khi nhấn Bắt Đầu

- _ Khi nhấn nút Bắt Đầu thì sẽ hiển thi đường di tr diém bat dau dén diém két thúc được làm nỗi bật bằng đường đi màu đỏ

- O độ trễ thì sẽ hiện tổng khoảng cách từ điểm bắt đầu đến điểm kết thúc

- Ô đường đi sẽ hiển thị từ điểm bắt đầu cần đi qua bao nhiêu điểm để đến được điểm kết thúc

Hình 3.8 Hình ảnh Khi nhấn Nút Làm Mới

- Nut lam moi khi duge sử dụng sẽ làm mới tat ca (cac điểm bắt đầu, điểm kết thúc, các đường nôi và khoảng cách, .)

Hình 3.9 Hình ảnh khi nhấn Nút Thêm

- Khi chúng ta đã thêm điểm bắt đầu vả điểm kết thúc với một độ trễ mới thì

đường nỗi mới sẽ được tạo Khi tạo thành công thì sẽ hiển thị lên thông báo

và đường nỗi gitra 2 dinh sé được cập nhật vào bảng độ trễ

Hình 3.10 Hình ảnh Khi nhất mút Thêm một cạnh đã tôn tại

- - Khi thêm một đường nỗi đã tồn tại thì sẽ hiển thị một thông báo “Đã tồn tại đường nổi Vụi lòng nhập lạt”

Hình 3.11 Hình ảnh khi nhấn Nút Xóa

- _ Khi nhân nút Xóa thì sẽ xóa đường nôi được chọn bởi điểm bắt đầu và điểm kêt thúc

13

Ngày đăng: 18/01/2025, 23:04

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

TÀI LIỆU LIÊN QUAN

w