Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 17 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
17
Dung lượng
304,17 KB
Nội dung
TRƯỜNG ĐẠI HỌC GIAO THƠNG VẬN TẢI TP HỒ CHÍ MINH VIỆN ĐÀO TẠO CHẤT LƯỢNG CAO KHOA CÔNG NGHỆ THƠNG TIN BÁO CÁO BÀI TẬP LỚN PHÂN TÍCH THIẾT KẾ GIẢI THUẬT Nhóm Giáo viên hướng dẫn: Trần Anh Tuấn Sinh viên MSSV Nguyễn Việt Long 19H1120052 Trần Đông Dun 19H1120045 Nguyễn Trọng Nhân 19H1120019 Thành phố Hồ Chí Minh NỘI DUNG I TỔNG QUÁT Nếu Dijkstra giải tốn tìm đường ngắn từ đỉnh cho trước đến đỉnh khác đồ thị, Floyd-Warshall tìm đường ngắn đỉnh sau lần chạy thuật toán Một tính chất Floyd-Warshall chạy đồ thị có cạnh có trọng số âm, tức không bị giới hạn Dijkstra Tuy nhiên, lưu ý đồ thị khơng có vịng (cycle) có tổng cạnh âm, có vịng ta khơng thể tìm đường ngắn (mỗi lần qua vòng độ dài qng đường lại giảm, nên ta vơ hạn lần) Thuật toán Floyd-Warshall so sánh tất đường cặp đỉnh Nó dạng quy hoạch động (Dynamic Programming) II CƠ SỞ LÝ THUYẾT Lý thuyết đồ thị ngành khoa học phát triển từ lâu lại có nhiều ứng dụng đại Những ý tưởng đưa từ kỷ 18 nhà toán học Thụy Sĩ tên Leonhard Euler Ông dùng đồ thị để giải toán cầu Konigsberg tiếng Đồ thị dùng để giải toán nhiều lĩnh vực khác Thí dụ, dùng đồ thị để xác định xem có thực mạch điện bảng điện phẳng khơng Chúng ta phân biệt hai hợp chất hóa học có cơng thức phân tử có cấu trúc khác nhờ đồ thị Chúng ta xác định xem hai máy tính có nối với đường truyền thơng hay khơng dùng mơ hình đồ thị mạng máy tính Đồ thị với trọng số gán cho cạnh dùng để giải tốn tốn tìm đường ngắn hai thành phố mạng giao thơng Chúng ta dùng đồ thị để lập lịch thi phân chia kênh cho đài truyền hình Bài tốn tìm đường ngắn vấn đề quan trọng lý thuyết đồ thị, nghiên cứu từ lâu có nhiều ứng dụng nhiều ngành khoa học nói chung khoa học máy tính nói riêng Trong thực tế, toán ứng dụng để giải nhiều toán điều khiển tối ưu, giao thông vận tải, mạng viễn thông Nghiên cứu cách tổng qt, tốn chia làm loại: + Tìm đường ngắn cặp đỉnh: Cho đồ thị G(V,E,w) có trọng số cạnh hai đỉnh u, v thuộc V tìm đường ngắn từ đỉnh u đến đỉnh v đồ thị G Các giải thuật phát triển để giải toán dạng tiêu biểu giải thuật: Dijkstra, Bellman-Ford, - Tìm đường ngắn tất cặp đỉnh: Cho đồ thị G(V,E,w) có trọng số cạnh, tìm đường từ đỉnh u đến đỉnh v, với cặp đỉnh u, v thuộc V Các giải thuật phát triển để giải toán là: Floyd-Warshall, Johnson, III NỘI DUNG NGHIÊN CỨU Khi nghiên cứu giải toán tìm đường ngắn cặp đỉnh đồ thị, vấn đề đặt là: Với đồ thị có trọng số G(V,E,w) trên, tìm đường ngắn tất cặp đỉnh đồ thị Rõ ràng ta áp dụng thuật tốn tìm đường ngắn xuất phát từ đỉnh với n khả chọn đỉnh xuất phát Tuy nhiên, với tốn này, ta có cách giải gọn nhiều, sử dụng thuật tốn FloydWarshall Sau tìm hiểu thuật tốn Floyd-Warshall Mơ tả thuật tốn: Đầu vào: Đồ thị có hướng liên thơng G = (V, E), V = {1, 2, , n}, có trọng số với cung (i, j) Đầu ra: Ma trận D = [d(i, j)], d(i, j) chiều dài đường ngắn từ i đến j với cặp (i, j) Ma trận P = [p(i,j)] xác định đường ngắn cặp đỉnh Phương pháp: + B1 Bước khởi tạo: Ký hiệu Do ma trận xuất phát Do = [do (i, j)] Trong đó: do(i, j) = w(i, j) tồn cung (i, j) do(i, j) = + không tồn cung (i, j) (đặc biệt khơng có khun i do(i,i)=+) Ký hiệu Po ma trận xuất phát Po = [po (i, j)] Trong đó: po(i, j) = j có cung từ i đến j po(i, j) không xác định khơng có cung từ i đến j Gán k:= + B2 Kiểm tra kết thúc: Nếu k = n, kết thúc D = Dn ma trận độ dài đường ngắn nhất, P=Pn ma trận xác định đường ngắn Ngược lại tăng k lên đơn vị (k: = k + 1) sang B3 + B3 Tính ma trận Dk theo Dk-1 Pk theo Pk-1: Với cặp (i, j), i = n, j = n thực hiện: Nếu dk-1(i, j) > dk-1(i,k) + dk-1(k,j) đặt dk(i, j) = dk-1(i, k) + dk-1(k, j) pk(i,j) = pk-1(i,k) ngược lại đặt dk(i, j) = dk-1(i, j) pk(i,j) = pk-1(i,j) Quay lại B2 Phương pháp xác định đường ngắn từ đỉnh i đến đỉnh j: Đường ngắn từ i đến j gồm dãy đỉnh i, i1, i2, i3, , ik, ik+1, , im, j thỏa mãn i1 = p(i,j), i2 = p(i1,j), , ik+1 = p(ik,j), , p(im,j) = j Thiết kế cấu trúc liệu giải thuật Floy-Washall: 2.1 Thiết kế cấu trúc: File liệu đầu vào: FLOYDWAR.INP có cấu trúc File kết quả: FLOYDWAR.INP D (Ma trận độ dài đường ngắn cặp đỉnh) P (Ma trận xác định đường ngắn cặp đỉnh) *Ví dụ: 2.2 Giải thuật Floy-Washall: Giải thuật Floy-Washall xây dựng dãy ma trận vuông cấp n Dk (0