1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng về thuật toánFloyd warshall

21 55 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

Thông tin cơ bản

Định dạng
Số trang 21
Dung lượng 730,28 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Môn : Phân tích thiết kế giải thuật-GVHD: Trần Tuấn Anh Trường ĐẠI HỌC GIAO THÔNG VẬN TẢI THÀNH PHỐ HỒ CHÍ MINH Chủ đề: Phân tích độ phức tạp thuật toán Floyd-Warshall... Phân tích độ

Trang 1

Môn : Phân tích thiết kế giải thuật-GVHD:

Trần Tuấn Anh

Trường ĐẠI HỌC GIAO

THÔNG VẬN TẢI THÀNH PHỐ HỒ CHÍ MINH

Chủ đề: Phân tích độ phức tạp thuật toán

Floyd-Warshall

Trang 2

Nguyễn Việt Long

Trần Đông Dung

Nguyễn Trọng Nhân

Thành Viên nhóm 9:

Trang 3

THUẬT TOÁN FLOYD-WARSHALL

Trang 4

1 Tìm hiểu về Floyd-Warshall

2 Code mẫu- phân tích cách hoạt động

3 Phân tích độ phức tạp giải thuật

FLOYD-WARSHALL

Trang 5

Trong những bài toán đường đi ngắn nhất mà chúng ta cần thông tin về đường đi giữa nhiều cặp đỉnh, ta có xu hướng là sẽ tính toán đường

đi ngắn nhất giữa mọi cặp đỉnh

Thuật toán Floyd-Warshall là một thuật toán phù hợp để thực hiện tác vụ này

Ý TƯỞNG

Trang 6

 Thuật toán Floyd-Warshall còn được gọi là thuật toán Floyd được Robert Floyd tìm ra năm 1962 Thuật toán Floyd là một thuật toán giải quyết bài toán đường đi

ngắn nhất trong một đồ thị có hướng có cạnh mang

trọng số dương dựa trên khái niệm các Đỉnh Trung Gian.

 Thuật toán Floyd-Warshall giúp xác định tất cả các

Đường đi ngắn nhất giữa tất cả các cặp đỉnh.

Định lý: Thuật toán Floyd-Warshall cho ta Ma trận W* =

Wn là ma trận Khoảng cách nhỏ nhất của đồ thị G.

KHÁI NIỆM

Trang 7

Ma trận trọng điểm của đồ thị

Trang 8

Cho đồ thị:

Trang 9

Từ đồ thị ta chuyển thành ma trận A

Tạo một ma trận có chiều trong đó n là số đỉnh. i và j là các đỉnh của đồ thị

Mỗi ô A [i] [j] được lấp đầy bởi khoảng cách từ đỉnh

đến đỉnh. Nếu không có đường đi từ đỉnh đến đỉnh, ô được để

là vô cùng.

Trang 10

Với k = 1

Các phần tử trong cột đầu tiên và hàng đầu tiên được giữ nguyên.

k la đỉnh trung gian trong đường đi ngắn nhất từ nguồn đến đích

Với k =1 là đỉnh đầu tiên, ta tính đỉnh nguồn đến đích thông qua đỉnh k này, A[i][j] được lấp đầy bởi:

(A[i][k] + A[k][j]) if (A[i][j] > A[i][k] + A[k][j])

Ta có A0 ở bước trước

Trang 11

Tương tự, A2 được tạo bằng A1 Các phần tử trong cột thứ hai và hàng thứ hai được giữ nguyên.

Với k = 2

Trang 12

K =3

K =4

Trang 13

ĐỘ PHỨC TẠP CỦA FLOYD-WARSHALL

Trang 14

void PrintMatran(void){

 cout << "Ma tran: \n";

 for (int i = 0; i < n; i++){

N*N N*N N*N    

N

 

= 1 + (N+1) + N*(N+1) + 4*N*N + N

= 5*N 2 + 3*N + 2

Trang 15

 if (A[i][k] + A[k][j] < A[i][j])

 A[i][j] = A[i][k] + A[k][j];

N*N*N

5*N 2 + 3*N + 2

Gọi T(n) là thời gian thực hiện chương trình T(n)= 1 + (N+1)

+ N*(N+1) + N*N*(N+1) +2* N*N*N + 5*N 2 + 3*N + 2

= 3*N 3 + 7*N 2 + 5*N + 4

 Độ phức tạp của

 thuật toán :

 O(n 3 ) (Độ phức tạp không Gian: 0(n^2) )

Trang 16

Ưu điểm:

 Không cần chạy lại  Thuật toán  (có nghĩa là có tính kế thừa từ đường đi lẫn nhau)

 Có thể chạy được với trọng số âm.

Nhược điểm: Chi phí cao O(n^3) cho mỗi cặp đỉnh

Ưu và Nhược điểm

Floyd-Warshall

Trang 17

Để tìm đường đi ngắn nhất là đồ thị có hướng

Để tìm cách đóng theo hướng bắc cầu của đồ thị có hướng

Để tìm Nghịch đảo của ma trận thực

Để kiểm tra xem một biểu đồ vô hướng có

phải là lưỡng phân hay không

Ứng dụng

Trang 18

So sánh giữa 2 thuật toán dijkstra và Warshall

Floyd-Dijsktra

Floyd-Warshall

Ưu điểm Chi phí thấp hơn

Thuật toán Warshall

Floyd-Không cần chạy lại 

Thuật toán  (có nghĩa

là có tính kế thừa từ đường đi lẫn nhau)Có thể chạy được với trọng số âm

Nhược điểm Không chạy được với 

trọng số  âm. Chi phí cao {\displaystyle

O(n^{3})} cho mỗi cặp đỉnh

Trang 19

CODE:

Trang 20

1 Thuật toán Floyd-Warshall có độ phức tạp là bao nhiêu?

2 Ứng dụng của thuật toán Floyd-Warshall

3 Ưu và nhược điểm của thuật toán

Floy-Warshall

Câu hỏi:

Trang 21

THANKS

Ngày đăng: 29/03/2021, 18:11

TỪ KHÓA LIÊN QUAN

w