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

Thuật toán Floyd và minh họa bằng ngôn ngữ Python

30 9 3
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 đề Thuật toán Floyd
Tác giả Lê Đắc Ước
Người hướng dẫn ThS. Trần Hoàng Nam
Chuyên ngành Lập Trình
Thể loại Chuyên đề
Thành phố Trà Vinh
Định dạng
Số trang 30
Dung lượng 1 MB

Nội dung

Thuật toán Floyd và minh họa bằng ngôn ngữ Python Thuật toán Floyd và minh họa bằng ngôn ngữ Python Thuật toán Floyd và minh họa bằng ngôn ngữ Python Thuật toán Floyd và minh họa bằng ngôn ngữ Python Thuật toán Floyd và minh họa bằng ngôn ngữ Python Thuật toán Floyd và minh họa bằng ngôn ngữ Python Thuật toán Floyd và minh họa bằng ngôn ngữ Python Thuật toán Floyd và minh họa bằng ngôn ngữ Python Thuật toán Floyd và minh họa bằng ngôn ngữ Python Thuật toán Floyd và minh họa bằng ngôn ngữ Python Thuật toán Floyd và minh họa bằng ngôn ngữ Python Thuật toán Floyd và minh họa bằng ngôn ngữ Python Thuật toán Floyd và minh họa bằng ngôn ngữ Python Thuật toán Floyd và minh họa bằng ngôn ngữ Python Thuật toán Floyd và minh họa bằng ngôn ngữ Python Thuật toán Floyd và minh họa bằng ngôn ngữ Python

Trang 1

Trà Vinh, ngày … tháng …… năm ……

Giáo viên hướng dẫn(Ký tên và ghi rõ họ tên)NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

Trà Vinh, ngày … tháng …… năm ……

Giáo viên hướng dẫn

(Ký tên và ghi rõ họ tên)

Trang 3

NHẬN XÉT CỦA THÀNH VIÊN HỘI ĐỒNG

Trang 4

LỜI CẢM ƠN

Tôi muốn dành những lời cảm ơn chân thành nhất đến thầy Thạc sĩTrầm Hoàng Nam, người đã không ngừng hướng dẫn và hỗ trợ tôi trong suốtquá trình thực hiện chuyên đề Cuộc trò chuyện và hướng dẫn tại các buổi livehọc trực tuyến không chỉ mang lại sự hiểu biết và kiến thức cho tôi, mà còn lànguồn động viên lớn lao để tôi vượt qua những thách thức trong dự án này.Sự tận tâm và kiến thức sâu rộng của thầy đã là nguồn động lực lớn giúp tôihoàn thành chuyên đề một cách xuất sắc hơn.

Tôi không thể không nhắc đến cô quản lý học tập, người đã luôn hỗ trợvà nhắc nhở chúng em trong suốt quá trình học tập Sự quan tâm và tận tâmcủa cô đã giúp chúng em duy trì tinh thần học tập và hoàn thành tốt chươngtrình học.

Cuối cùng, tôi muốn gửi lời cảm ơn đến các bạn lớp VX23TTK9 đã luôn hỗ trợ và đồng hành cùng tôi trong quá trình thực hiện báo cáo này Sự hỗ trợ và đồng lòng của các bạn đã giúp tôi vượt qua những khó khăn và hoàn thành báo cáo.

Một lần nữa, xin chân thành cảm ơn thầy và các bạn đã luôn bên cạnhvà hỗ trợ tôi trong quá trình học tập.

Trân trọng !

Sinh viên thực hiện

Lê Đắc Ước

Trang 5

1.3 Tính năng của Python 7

1.4 Cài đặt ngôn ngữ lập trình Python và môi trường làm việc Visual Studio Code 7

1.5 Hướng dẫn và các khái niệm cơ bản trong Python: 14

1.6 Cấu trúc dữ liệu và kiểu cấu trúc Python: 17

1.7 Cấu trúc điều khiển 19

1.8 Cài đặt gói thư viện cơ bản 20

1.9 Giới thiệu các thuật toán liên quan đến Sinh hoán vị 21

CHƯƠNG 2 : TÌM HIỂU THUẬT TOÁN SINH HOÁN VỊ VÀ CÀI ĐẶT/MINH HỌA PYTHON 22

2.1 Giới thiệu 22

2.2 Cách hoạt động của thuật toán Floyd 22

2.3 Viết chương trình minh họa thuật toán Floyd bằng python 23

2.4 Giải thích từng thành phần của chương trình 24

2.5 Kết luận 26

CHƯƠNG 3: HƯỚNG PHÁT TRIỂN 27

DANH MỤC TÀI LIỆU THAM KHẢO 28

Trang 6

Hình 1: Trang web chính thức của Python 8

Hình 2: Cài đặt Python 8

Hình 3: Cài đặt Python 9

Hình 4: Dowload Visual Studio Code cho Windows 10

Hình 5: Cài đặt Visual Studio Code cho Windows 10

Hình 6: Cài đặt Visual Studio Code cho Windows 11

Hình 7: Cài đặt Visual Studio Code cho Windows 11

Hình 8: Cài đặt Visual Studio Code cho Windows 12

Hình 9: Cài đặt Visual Studio Code cho Windows 12

Hình 10: Cài đặt Visual Studio Code cho Windows 13

Hình 11: Cài đặt Visual Studio Code cho Windows 13

Hình 12: Cài đặt Python trong môi trường Visual Studio Code 14

Hình 13: Cài đặt Python trong môi trường Visual Studio Code 14

Hình 14: Cài đặt code runner trong môi trường Visual Studio Code 14

Hình 15: Hướng dẫn, các khác niệm cơ bản trong Python 15

Hình 16: Thực hiện chạy chương trình 25

Hình 17: Giao diện chương trình 25

Hình 18: Kết quả chương trình 25

Trang 7

M Đ UỞ ĐẦU ẦU

Trong lĩnh vực khoa học máy tính và lý thuyết đồ thị, việc tìm đường đi ngắn nhất giữa cáccặp đỉnh trong một đồ thị là một bài toán cơ bản nhưng quan trọng Nó có nhiều ứng dụng thực tế trong nhiều lĩnh vực như lập lịch trình, điều phối giao thông, mạng máy tính, và nhiều ứng dụng khác Một trong những thuật toán hiệu quả nhất để giải quyết bài toán này là thuật toán Floyd-Warshall

Lý do ch n đ tàiọn đề tàiề tài

1 Tính ứng dụng cao: Thuật toán Floyd-Warshall không chỉ có giá trị trong lý thuyết

mà còn có nhiều ứng dụng thực tế Nó được sử dụng rộng rãi trong các hệ thống định tuyến, lập lịch trình, và tối ưu hóa mạng lưới

2 Tính chất giáo dục: Thuật toán này là một ví dụ tuyệt vời để hiểu về các thuật toán

đồ thị và các kỹ thuật tối ưu hóa Việc nghiên cứu và triển khai thuật toán này giúp nâng cao kiến thức về lý thuyết đồ thị, lập trình và các phương pháp tối ưu hóa

3 Độ phức tạp rõ ràng: Thuật toán Floyd-Warshall có độ phức tạp thời gian và

không gian cụ thể, giúp sinh viên hiểu rõ hơn về đánh giá hiệu năng của các thuật toán

4 Nền tảng cho các nghiên cứu nâng cao: Hiểu rõ và triển khai thuật toán

Floyd-Warshall là bước nền tảng để tiếp cận các thuật toán và kỹ thuật tối ưu hóa phức tạphơn Điều này giúp sinh viên và nhà nghiên cứu có thể phát triển các giải pháp mới cho các bài toán tối ưu hóa trong các hệ thống phức tạp

5 Phát triển kỹ năng lập trình: Việc triển khai thuật toán này bằng Python không

chỉ giúp nâng cao kỹ năng lập trình mà còn cung cấp một cái nhìn sâu sắc về cách các thuật toán hoạt động và cách chúng được tối ưu hóa trong thực tế

6 Nhu cầu từ thực tế: Trong nhiều lĩnh vực như logistics, viễn thông, và công nghệ

thông tin, việc tìm đường đi ngắn nhất là một vấn đề thường xuyên cần được giải quyết Nghiên cứu và triển khai thuật toán này giúp giải quyết các vấn đề thực tế một cách hiệu quả

Với những lý do trên, việc chọn đề tài "Mô tả và triển khai thuật toán Floyd-Warshall" không chỉ mang lại lợi ích về mặt học thuật mà còn có giá trị thực tiễn cao, đóng góp vào việc giải quyết các vấn đề tối ưu hóa trong nhiều lĩnh vực khác nhau

Trang 8

CHƯƠNG 1: TỔNG QUAN PYTHON1.1.Giới thiệu

Python, được tạo ra bởi Guido van Rossum vào những năm 1990, làmột ngôn ngữ lập trình mạnh mẽ và đa năng Nó nhanh chóng trở thành mộttrong những ngôn ngữ phổ biến nhất trong ngành công nghệ thông tin và khoahọc máy tính Python nổi bật với cú pháp đơn giản, dễ đọc, và dễ học, làmcho nó phù hợp cho người mới học lập trình cũng như các nhà phát triển kỳcựu.

1.2.Lý do chọn chuyên đề

Python không chỉ là một ngôn ngữ dễ học mà còn cung cấp nhiều ưuđiểm quan trọng Khả năng tương tác nhanh, hỗ trợ nhiều thư viện mạnh mẽvà sự phổ biến trong lĩnh vực khoa học máy tính làm cho Python trở thànhcông cụ lý tưởng cho việc nghiên cứu về thuật toán sinh hoán vị và càiđặt/minh họa bằng ngôn ngữ python trong lĩnh vực toán học.

1.3.Tính năng của Python

Python có nhiều tính năng độc đáo, Cú pháp dễ đọc và dễ hiểu, giúpgiảm thiểu lỗi cú pháp và tăng hiệu suất viết mã.

Kiểu dữ liệu đa dạng, Python hỗ trợ nhiều kiểu dữ liệu như số nguyên,số thực, chuỗi, danh sách, tuple, từ điển, và nhiều kiểu dữ liệu đặc biệtkhác.Thư viện phong phú, Python có một cộng đồng lớn và nhiều thư việnmạnh mẽ cho nhiều mục đích khác nhau, từ tính toán khoa học đến phát triểnweb.

Tương tác nhanh, Python thích hợp cho việc làm việc tương tác, chophép bạn thử nghiệm code và khám phá kết quả một cách nhanh chóng.

1.4.Cài đặt ngôn ngữ lập trình Python và môi trường làm việc Visual Studio Code.

Python có nhiều phiên bản, nhưng thường được cài đặt thông qua phiênbản chính thức từ trang web chính thức của Python Cài đặt Python trên máytính của bạn giúp bạn truy cập môi trường lập trình Python một cách dễ dàng.

Các bước cài đặt như sau:

Trang 9

Bước 1: Truy cập trang web chính thức của Python tại địa chỉ

https://www.python.org/downloads/ để tải file cài đặt Python

Hình 1: Trang web chính thức của Python

Trang web sẽ tự động nhận diện phiên bản hệ điều hành của bạn(Windows) và hiển thị phiên bản Python mới nhất Nhấn vào phiên bản đó đểtiến hành tải về

Bước 2: Khởi chạy trình cài đặt Python: Sau khi tải xong, bạn mở tệp

tải về (có định dạng exe), sau đó nhấn đúp vào tệp đó.

Trong cửa sổ trình cài đặt Python, bạn chắc chắn chọn tùy chọn "AddPython x.x to PATH" (x.x là phiên bản Python) ở phía dưới cùng của cửa sổ.Điều này sẽ thêm Python vào biến môi trường PATH của hệ thống, cho phépbạn truy cập Python dễ dàng từ bất kỳ thư mục nào giống như hình bên dưới.

Hình 2:Cài đặt Python

Nhấn vào nút "Install Now" để bắt đầu quá trình cài đặt.

Trang 10

Bước 3: Cài đặt Python

Trình cài đặt Python sẽ bắt đầu quá trình cài đặt Chờ đợi quá trình hoàn tất.

Sau khi cài đặt thành công, bạn sẽ thấy thông báo "Setup was successful" ở cuối cửa sổ như hình bên dưới:

Hình 3: Cài đặt Python

Nhấn vào nút "Close" để hoàn tất quá trình cài đặt.

Bước 4: Kiểm tra cài đặt Mở Command Prompt hoặc PowerShell (gõ

"cmd" hoặc "powershell" trong hộp tìm kiếm của Windows) và nhập lệnh sau:python –version Điều này sẽ hiển thị phiên bản Python mà bạn đã cài đặt.Nếu bạn thấy phiên bản Python xuất hiện, điều đó có nghĩa cài đặt đã thànhcông.

Bước 5: Cài đặt môi trường làm việc Visual Studio Code, truy cập vào

đường dẫn

Trang 11

https://code.visualstudio.com/download và tải về Nếu máy của bạn là windows thì chọn phiên bản Visual Studio Code cho Windows.

Hình 4: Dowload Visual Studio Code cho Windows

Sau khi tải xong, mở tệp cài đặt (có định dạng exe) và làm theo hướngdẫn để cài đặt VS Code và cài theo hướng dẫn các hình bên dưới

Hình 5: Cài đặt Visual Studio Code cho Windows

Trang 12

Hình 6: Cài đặt Visual Studio Code cho Windows

Hình 7: Cài đặt Visual Studio Code cho Windows

Trang 13

Hình 8: Cài đặt Visual Studio Code cho Windows

Hình 9: Cài đặt Visual Studio Code cho Windows

Trang 14

Hình 10: Cài đặt Visual Studio Code cho Windows

Hình 11: Cài đặt Visual Studio Code cho Windows

Sau khi quá trình cài đặt được hoàn tất, khi chạy chương trình giao diệncủa Visual Studio Code sẽ như hình để cài đặt thêm Extensions: Python vàcode runner.

Trang 15

Hình 12: Cài đặt Python trong môi trường Visual Studio Code

Hình 13: Cài đặt Python trong môi trường Visual Studio Code

Hình 14: Cài đặt code runner trong môi trường Visual Studio Code

1.5.Hướng dẫn và các khái niệm cơ bản trong Python:

a Hướng dẫn cơ bản:

Trang 16

bản trong Python, từ biến và kiểu dữ liệu đến cách thực hiện phép toán và gángiá trị.

Sau khi khởi động Visual Studio Code, ta bấm vào File > Open Folderđể chọn đường dẫn chứa file code, rồi tạo mới một Python File (File > Newfile), để tạo một file mã nguồn Python Và đặt tên cho file đó, file được viếtbằng ngôn ngữ lập trình Python có đuôi “.py”, Thử viết một ví dụ in ra “Helloworld” trên Visual Studio Code bằng ngôn ngữ lập trình Python và để chạymột chương trình trên Visual Studio Code ta bấm tổ hợp phím Ctrl + Atl + N.

Hình 15: Hướng dẫn, các khác niệm cơ bản trong Python

b Khái niệm cơ bản trong python:

- Biến (Variable): Biến là một tên được sử dụng để lưu trữ dữ liệu.

Biến có thể lưu trữ các giá trị khác nhau, chẳng hạn như số nguyên,số thập phân, chuỗi văn bản, và nhiều loại dữ liệu khác Để đặt giátrị cho biến, bạn sử dụng toán tử gán (=).

- Chuỗi (String): Chuỗi là một chuỗi ký tự Chuỗi được bao quanh bởi

dấu ngoặc kép hoặc dấu nháy đơn.

Trang 17

- Số nguyên (Integer): Số nguyên là một loại dữ liệu lưu trữ các số

nguyên không có phần thập phân.

- Số thập phân (Float): Số thập phân là một loại dữ liệu lưu trữ các số

có phần thập phân.

- Danh sách (List): Danh sách là một cấu trúc dữ liệu cho phép bạn

lưu trữ nhiều giá trị trong một biến.

- Tuple: Tuple cũng là một cấu trúc dữ liệu cho phép bạn lưu trữ

nhiều giá trị, nhưng khác biệt với danh sách bởi tính bất biến, tức làbạn không thể thay đổi giá trị của một tuple sau khi nó được tạo.

- Điều kiện (Conditions): Điều kiện là một phần quan trọng của lập

trình Điều kiện kiểm tra một biểu thức và chạy mã nguồn khác dựatrên kết quả của biểu thức Bạn sử dụng các câu lệnh if, else và elifđể kiểm tra điều kiện.

- Vòng lặp (Loops): Vòng lặp cho phép bạn lặp lại một tập hợp các

câu lệnh nhiều lần Python có hai loại vòng lặp chính: vòng lặp forvà vòng lặp while.

Trang 18

tái sử dụng Hàm nhận các đối số (tham số) và thực hiện các thao táccụ thể.

- Lập trình hướng đối tượng (Object-Oriented Programming - OOP):

Python hỗ trợ lập trình hướng đối tượng, cho phép bạn định nghĩacác lớp và đối tượng để sắp xếp mã nguồn và tái sử dụng mã.

1.6.Cấu trúc dữ liệu và kiểu cấu trúc Python: hỗ trợ nhiều kiểu cấu trúc

dữ liệu, bao gồm danh sách, tuple, từ điển, và nhiều kiểu cấu trúc đặcbiệt khác Chương này sẽ giới thiệu cách sử dụng và quản lý kiểu cấutrúc này Để dễ hình dung hơn mình sẽ liệt kê chi tiết các dữ liệu vàkiểu cấu trúc sau:

- Kiểu dữ liệu Number:

o int (số nguyên): Được sử dụng để lưu trữ các số nguyên Ví

dụ: 5, 100, -3.

o float (số thập phân): Được sử dụng để lưu trữ các số thực (có

phần thập phân) Ví dụ: 3.14, 0.5, -2.0.

- Kiểu dữ liệu String (Chuỗi): Kiểu dữ liệu string được sử dụng để

lưu trữ dãy ký tự, chẳng hạn như văn bản Ví dụ: "Hello, World!","Python is awesome".

- Kiểu dữ liệu List (Danh sách): List là một kiểu dữ liệu có thể chứa

nhiều phần tử, có thể là các kiểu dữ liệu khác nhau Để tạo một danhsách, bạn sử dụng dấu ngoặc vuông [].

o Ví dụ: my_list = [1, 2, 3, "apple", "banana"]- Kiểu dữ liệu Tuple: Tương tự như danh sách, tuple cũng là một kiểu

dữ liệu có thể chứa nhiều phần tử Tuy nhiên, tuple là bất biến, có

Trang 19

nghĩa bạn không thể thay đổi nó sau khi tạo Để tạo một tuple, bạnsử dụng dấu ngoặc đơn ().

o Ví dụ: my_tuple = (1, 2, 3, "apple", "banana")- Kiểu dữ liệu Dictionary: Dictionary là một kiểu dữ liệu cho phép

bạn lưu trữ dữ liệu theo dạng cặp key-value (khóa-giá trị) Để tạomột từ điển, bạn sử dụng dấu ngoặc nhọn {} và liệt kê các cặp key-value

o Ví dụ: my_dict = {"name": "John", "age": 30, "city": "New

York"}

- Kiểu dữ liệu Set (Tập hợp): Set là một kiểu dữ liệu không có thứ tự

và không chứa các phần tử trùng lặp Để tạo một tập hợp, bạn sửdụng dấu ngoặc nhọn {} hoặc hàm set()

o Ví dụ: my_set = {1, 2, 3, 4, 5}- Kiểu dữ liệu Boolean: Kiểu dữ liệu boolean chỉ có hai giá trị: True

(đúng) hoặc False (sai) Được sử dụng cho các biểu thức điều kiện

o Ví dụ:

is_valid = Trueis_error = False

- Kiểu dữ liệu None: Kiểu dữ liệu này chỉ có một giá trị là None,

thường được sử dụng để biểu thị sự vắng mặt hoặc không có giá trị.Ví dụ: x = None.

- Kiểu dữ liệu Range: Range là một kiểu dữ liệu cho phép bạn tạo

một dãy số nguyên liên tiếp Ví dụ: my_range = range(1, 10).

- Kiểu dữ liệu Complex: Complex là một kiểu dữ liệu cho phép bạn

lưu trữ số phức, có phần thực và phần ảo Ví dụ: z = 2 + 3j.

- Kiểu dữ liệu Bytes: Bytes là một kiểu dữ liệu lưu trữ dãy byte Ví

dụ: data = b'Hello'.

- Kiểu dữ liệu Bytearray: Bytearray tương tự như bytes nhưng là một

kiểu dữ liệu có thể thay đổi (mutable) Ví dụ: data =bytearray(b'Hello').

- Kiểu dữ liệu Enum: Enum cho phép bạn định nghĩa các giá trị liệt

kê (enumerated values) để biểu thị các trạng thái hoặc loại khácnhau trong ứng dụng.

- Ngoài ra, bạn cũng có thể định nghĩa kiểu dữ liệu tùy chỉnh (custom

data types) bằng cách sử dụng lập trình hướng đối tượng (OOP) đểtạo các lớp và đối tượng riêng của mình.

Trang 20

khảo thêm trên các trang web và các diễn đàn.

1.7.Cấu trúc điều khiển

Cấu trúc điều khiển trong Python bao gồm lệnh if, lệnh for, và lệnhwhile Chương này sẽ hướng dẫn cách sử dụng chúng để kiểm soát luồng củachương trình Sau đây là một số cấu trúc điều khiển liên quan đến chuyên đề:

- Cấu trúc điều khiển if: Cấu trúc điều khiển if cho phép bạn kiểm tra

điều kiện và thực hiện các hành động dựa trên kết quả kiểm tra

o Ví dụ:

- Cấu trúc điều khiển for: Cấu trúc điều khiển for cho phép bạn lặp qua

các phần tử trong một tập hợp hoặc danh sách

- Cấu trúc điều khiển while: Cấu trúc điều khiển while cho phép bạn lặp

lại một tập hợp các hành động trong khi một điều kiện cụ thể là đúng

- Các hàm và phương pháp tùy chỉnh: Trong chuyên đề của bạn, việc

định nghĩa các hàm và phương pháp tùy chỉnh là quan trọng

Cấu trúc điều khiển trong Python cung cấp khả năng kiểm soát luồng củachương trình, điều này rất hữu ích trong việc thực hiện các thuật toán và tínhtoán Bằng cách kết hợp cấu trúc điều khiển với cấu trúc dữ liệu.

Ngày đăng: 24/09/2024, 22:16

w