Tài liệu Tiểu luận " Lý thuyết đồ thị - Tìm đường đi ngắn nhất và ứng dụng" ppt

28 1.9K 11
Tài liệu Tiểu luận " Lý thuyết đồ thị - Tìm đường đi ngắn nhất và ứng dụng" ppt

Đ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

1 BỘ GIÁO DỤC ĐÀO TẠO ĐẠI HỌC ĐÀ NẴNG  TIỂU LUẬN TÌM ĐƯỜNG ĐI NGẮN NHẤT ỨNG DỤNG Giáo viên hướng dẫn: PGS.TSKH.Trần Quốc Chiến Học viên thực hiện: 1.Vũ Văn Khiên ( nhóm 2) 2.Mai Quốc Toản 3.Nguyễn Hoàng Vi 4.Phan Thành Nhất 5.Lưu Thế Vinh Lớp: Phương pháp Toán Sơ Cấp Khoá: 2009 – 2011 Kon Tum, tháng 3 năm 2010. 2 MỤC LỤC Lời nói đầu……………………………………………………………… Trang 01 Phần nội dung Trang 02 I. Cơ sở thuyết…………………………………………….………………Trang 02 II. Bài toán đường đi ngắn nhất ứng dụng… …………………………….Trang 05 Kết luận………………………………………………………………… Trang 25 Tài liệu tham khảo…………………………………………………… Trang 26 3 LỜI NÓI ĐẦU Lý thuyết đồ thị là ngành học được phát triển từ lâu nhưng lại có nhiều ứng dụng hiện đại. Những ý tưởng cơ bản của nó đã được nhà toán học Thụy sĩ vĩ đại Leonhard Euler đưa ra từ thế kỷ 18. Đồ thị là một cấu trúc rời rạc gồm các đỉnh các cạnh nối các đỉnh đó. Đây là công cụ hữu hiệu để mô hình hóa giải quyết các bài toán trong nhiều lĩnh vực khoa học, kỹ thuật, kinh tế, xã hội, Môn thuyết đồ thị là môn học hấp dẫn, mang tính thực tế cao. Những vấn đề trong môn học như: các bài toán về đường đi, cây, mạng các bài toán tô màu đã đang được nhiều người quan tâm, nghiên cứu. Bài toán tìm đường đi ngắn nhất là bài toán quan trọng trong thuyết đồ thị, nó được áp dụng để giải quyết rất nhiều bài toán trong thực tế như điều khiển tối ưu, giao thông vận tải, mạng viễn thông . Vì vậy, việc nghiên cứu nó là hết sức cần thiết vì nó có thể giải quyết được nhiều vấn đề khó khăn, phức tạp nảy sinh từ thực tế cuộc sống. Vì lí do đó, nhóm chúng em (nhóm 2) chọn đề tài: ''Đường đi ngắn nhất ứng dụng'' để viết bài tiểu luận này. 4 PHẦN NỘI DUNG I. CƠ SỞ THUYẾT 1. Đồ thị vô hướng - Định nghĩa: Đồ thị vô hướng G = (V, E) gồm một tập V các đỉnh tập E các cạnh. Mỗi cạnh e E được liên kết với một cặp đỉnh v, w (không kể thứ tự). - Ví dụ: 2. Đồ thị có hướng. - Định nghĩa: Đồ thị có hướng G = (V , E) gồm một tập V các đỉnh tập E các cạnh có hướng gọi là cung . Mỗi cung được liên kết với một cặp đỉnh (v, w) có thứ tự. - Ví dụ: - Đường đi, chu trình , tính liên thông • Cho đồ thị G=(V,E). Dãy µ từ đỉnh v đến w là dãy các đỉnh cạnh nối tiếp nhau bắt đầu từ đỉnh v kết thúc tại đỉnh w. Số cạnh trên dãy µ gọi là độ dài của dãy µ . Dãy µ từ đỉnh v đến đỉnh w độ dài n được biểu diễn như sau 1 1 2 2 1 ( , , , , , , , ,w) n n v e v e v v e µ − = v w e v w e 5 trong đó v i (i=1,2…,n-1) là các đỉnh trên dãy e i (i=1,2…,n) là các cạnh trên dãy liên thông thuộc đỉnh kề trước sau nó. Các đỉnh cạnh trên có thể lặp lại. Đường đi từ đỉnh v đến w là dãy từ đỉnh v đến w, trong đó các cạnh không lặp lại. Đường đi sơ cấp : là đường đi không đi qua một đỉnh quá một lần Vòng là dãy có đỉnh đầu đỉnh cuối trùng nhau. Chu trình là đường đi có đỉnh đầu đỉnh cuối trùng nhau Chu trình sơ cấp : là chu trình không đi qua một đỉnh quá một lần. Dãy có hướng : trong đồ thị có hướng là dãy các đỉnh cung nối tiếp nhau (e 1 ,e 2 , …,e n ) thỏa mãn đỉnh cuối của cung e i là đỉnh đầu của cung e i+1 , i=1, n-1. Đường đi có hướng trong đồ thị có hướng là dãy có hướng, trong đó các cung không lặp lại. Đường đi có hướng sơ cấp là đường đi có hướng không đi qua một đỉnh quá một lần. Vòng có hướng là dãy có hướng có đỉnh đầu đỉnh cuối trùng nhau. Chu trình có hướng là đường đi có hướng có đỉnh đầu đỉnh cuối trùng nhau. Chu trình có hướng sơ cấp là chu trình có hướng không đi qua một đỉnh quá một lần . Đồ thị có hướng gọi là liên thông, nếu mọi cặp đỉnh của nó đều có đường đi nối chúng với nhau. Đồ thị có hướng gọi là liên thông mạnh, nếu mọi cặp đỉnh của nó đều có đường đi có hướng nối chúng với nhau. Đồ thị có hướng gọi là liên thông yếu, nếu đồ thị lót (vô hướng) của nó liên thông. Đồ thị có hướng gọi là bán liên thông, nếu với mọi cặp đỉnh (u,v) bao giờ cũng tồn tại đường đi có hướng từ u đến v hoặc từ v đến u. 6 • Định lí 1: (i) Trong đồ thị vô hướng mỗi dãy từ đỉnh v đến w chứa đường đi sơ cấp từ v đến w (ii) Trong đồ thị có hướng mỗi dãy có hướng từ đỉnh v đến w chứa đường đi có hướng sơ cấp từ v đến w. • Định lí 2: Đồ thị G lưỡng phân khi chỉ khi G không chứa chu trình độ dài lẻ. • Trọng đồ (có hướng) là đồ thị (có hướng) mà mỗi cạnh (cung) của nó được gán một số. Trọng đồ được biểu diễn bởi G=(V,E,w), trong đó V là các đỉnh ,E là tập các cạnh(cung), w : E R→ là hàm số trên E, w(e) là trọng số của cạnh(cung) e với mọi e ∈ E. Trong trọng đồ độ dài trọng số của đường đi µ là tổng các trọng số trên đường đi đó. 7 II . BÀI TOÁN ĐƯỜNG ĐI NGẮN NHẤT ỨNG DỤNG 1. Phát biểu bài toán Cho đồ thị có trọng số G=(V,E). Kí hiệu w(i,j) là trọng số của các cạnh (i,j). Độ dài đường đi 0 1 2 1 n n v v v v v µ − = → → → → → là tổng các trọng số 1 1 ( ) w( , ) n i i i L v v µ − = = ∑ Cho hai đỉnh a,z của đồ thị. Bài toán đặt ra là tìm đường đi ngắn nhất từ a đến z. 2. Thuật toán Dijkstra Thật toán tìm đường đi ngắn nhất từ đỉnh a đến đỉnh z trong đó đồ thị liên thông có trọng số. trọng số cạnh (i,j) là w(i,j)>0 đỉnh x sẽ mang nhãn L(x). Khi kết thúc thuật giải L(z) chính là chiều dài ngắn nhất từ a đến z.  Đầu vào: đồ thị liên thông G=(V,E) có trọng số w(i,j)>0 với mọi cạnh (i,j), đỉnh a z  Đầu ra :L(z) chiều dài đường đi ngắn nhất từ a đến z đường đi ngắn nhất.  Phương pháp: (1) Gán L(a):=0, với mọi x khác a gán L(a)= ∞ . Kí hiệu T:=V (2) Chọn v T∈ sao cho L(v) có giá trị nhỏ nhất. Đặt T:=T-{v} (3) Nếu z T∉ , kết thúc, L(z) là chiều dài đường đi ngắn nhất từ a đến z. Từ z lần ngược theo đỉnh được ghi nhớ ta có đường đi ngắn nhất. Ngược lại sang bước (4) (4) Với mỗi x T∈ kề v gán L(x):=min{L(x),L(v)+w(v,x)} Nếu L(x) thay đổi thi ghi nhớ đỉnh v cạnh x để sau này xây dựng đường đi ngắn nhất. Quay về bước (2) b c a f g z e d 2 1 6 5 4 4 3 2 2 1 7 3 8 -Định lí : Thuật toán Dijkstra là đúng. Chứng minh: xem [1] Ví dụ1: Cho các tỉnh a,b,c,d,e,f,g,z có vị trí như sơ đồ sau. Biết rằng giữa các tỉnh có đoạn đường nối với nhau có độ dài như hình vẽ. Tìm đường đi ngắn nhất từ tỉnh a đến tỉnh z Giải: - Ta thực hiện bước 1: Đặt T:={a,b,c,d,e,f,g,z} Và L(a):=0, L(b)=L(c)=L(d)=L(e)=L(f)=L(g)=L(z):=∞ Các tham số trên được biểu diễn trên đồ thị như sau Các số trong ngoặc là L(x), x ∈ T. -Thực hiện bước 2: L(a)=min{L(x)| x ∈ T}=0 Suy ra T:=T-{a}={a,b,c,d,e,f,g,z} - Thực hiện bước 3: vì z ∈ T, chuyển sang bước 4: - Thực hiện bước 4: Đỉnh b f kề đỉnh a. Ta có L(b)=min{L(b),L(a)+2}=2 L(f)= min{L(f),L(a)+1}=1 b(∞ ) c(∞ ) a(0) f(∞ ) g(∞) ) z(∞ ) e(∞) d (∞ ) 2 1 6 5 4 4 3 2 2 1 7 3 9 Các đỉnh không thay đổi. Đồ thị có các nhãn như sau Chú ý: Các chữ cái bên phải ở mỗi đỉnh là nhãn đỉnh đạt giá trị nhỏ nhất ở các biểu thức tính min. - Ta thực hiện bước 2: L(f)=min{L(x)| x ∈ T}=1 Suy ra T=T-{f}={b,c,d,e,g,z} - Ta thực hiện bước 3: z ∈ T, chuyển sang bước 4 - Ta thực hiện bước 4: Đỉnh d g kề đỉnh f. Ta có L(d)=min{L(d), L(f)+2}=min{ ∞ , 1+3}=4 L(g)=min{L(g), L(f)+5}=min{ ∞ , 1+5}=6 Các đỉnh không thay đổi. Đồ thị có nhãn như sau - Ta thực hiện bước 2: L(b)=min{L(x)| x ∈ T}=2 Suy ra T=T-{b}={c,d,e,g,z} - Ta thực hiện bước 3: z ∈ T, chuyển sang bước 4 b(2 )a c(∞ ) a(0) f(1 )a g(∞) ) z(∞ ) e(∞) d (∞ ) 2 1 6 5 4 4 3 2 2 1 7 3 b(2 )a c(∞ ) a(0) f(1 )a g(6)f ) z(∞ ) e(∞) d (4 )f 2 1 6 5 4 4 3 2 2 1 7 3 10 - Ta thực hiện bước 4: Đỉnh c,d e kề đỉnh b. Ta có L(c)=min{L(c), L(b)+2}=min{ ∞ , 2+2}=4 L(d)=min{L(d), L(b)+2}=min{ 4 , 2+2}=4 L(e)=min{L(e), L(b)+4}=min{ ∞ , 2+4}=6 Các đỉnh không thay đổi. Đồ thị có nhãn như sau - Ta thực hiện bước 2: L(c)=min{L(x)| x ∈ T}=4 Suy ra T=T-{c}={d,e,g,z} - Ta thực hiện bước 3: z ∈ T, chuyển sang bước 4 - Ta thực hiện bước 4: Đỉnh e z kề đỉnh c. Ta có L(e)=min{L(e), L(c)+3}=min{ 6 , 4+3}=6 L(z)=min{L(z), L(c)+1}=min{ ∞ , 4+1}=5 Các đỉnh không thay đổi. Đồ thị có nhãn như sau b(2 )a c(4 )b a(0) f(1 )a g(6)f ) z(∞ ) e(6)b d (4 )f 2 1 6 5 4 4 3 2 2 1 7 3 b(2 )a c(4 )b a(0) f(1 )a g(6)f ) z(5 )c e(6)b d (4 )f 2 1 6 5 4 4 3 2 2 1 7 3 [...]... trận độ dài đường đi ngắn nhất, P = Pn Ngược lại tăng k lên 1 đơn vị (k:=k+1) sang (3) (3) Tính ma trận Dk Pk theo Dk-1 Pk-1: Với mọi cặp (i,j), i= 1 n, j=1 n thực hiện: Nếu dk-1(i,j) > dk-1(i,k) + dk-1(k,j) thì đặt Dk(i,j):= dk-1(i,k) + dk-1(k,j) 21 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 bước (2) • Phương pháp xác định đường đi ngắn nhất từ đỉnh... cách ngắn nhất giữa các đỉnh D=D4 Ta thấy đồ thị liên thông chứa chu trình 23 Sử dụng ma trận P=P4, ta có thể tìm đườn đi ngắn nhất giữa các đỉnh Chẳng hạn, để tìm đường đi từ đỉnh a đến đỉnh d ta làm như sau: Đặt i1 := P(a,d) = b; i2 : = P(b,d) = d Từ đó ta nhận được đường đi ngắn nhất từ d đến c: a → b → d với độ dài là 8 Ví dụ 2: Dùng giải thuật Floyd tìm đường đi ngắn nhất giữa các đỉnh trong đồ. .. cách ngắn nhất giữa các đỉnh D=D 7 Ta thấy đồ thị liên thông chứa chu trình 27 Sử dụng ma trận P=P7, ta có thể tìm đườn đi ngắn nhất giữa các đỉnh Chẳng hạn, để tìm đường đi từ đỉnh C đến đỉnh B ta làm như sau: Đặt i1 := P(C,B) = F; i2 : = P(F,B) = D,i3=p(D,B)=A,i4=P(A,B)=B Từ đó ta nhận được đường đi ngắn nhất từ C đến B: C → F → D → A → B với độ dài là 8 KẾT LUẬN Bài toán tìm đường đi ngắn nhất. .. dài đường đi ngắn nhất từ a đến z Từ z ta đi ngược lại các đỉnh đã được ghi nhớ z → c → b → a Ta suy ra đường đi ngắn nhất là a → b → c → z Ví dụ2: Tìm đường đi ngắn nhất từ tỉnh a đến tỉnh z trong đồ thị sau: a b 5 c 2 4 3 1 e 6 3 Giải: - Ta thực hiện bước 1: Đặt T:={a,b,c,d,e,f,g,z} f 5 d 7 z 2 5 g 4 12 L(a):=0, L(b)=L(c)=L(d)=L(e)=L(f)=L(g)=L(z):=∞ Các tham số trên được biểu diễn trên đồ thị. .. trận khoảng cách ngắn nhất giữa các đỉnh Theo hệ quả ta thấy đồ thị liên thông chứa chu trình 5 Thuật toán Floyd –Warshall Thuật giải tìm đường đi ngắn nhất giữa mọi cặp đỉnh trong đồ thị có hướng liên thông có trọng số +Đầu vào Đồ thị liên thông G=(V,E), V= { 1,2, ,n} , có trọng số với mọi cung (i,j) +Đầu ra Ma trận D = [ d (i, j ) ] , trong đó d(i,j) là chiều dài đường đi ngắn nhất từ i đến j với... đường đi ngắn nhất là z → g → f →c→e→a • Định lí : Giả sử G là đồ thị liên thông có trọng số có n đỉnh Gọi f(n) là số lần thuật toán Dijkstra khảo sát một cạnh của G trong trường hợp xấu nhất Khi đó ta có f(n) = O(n2) Chứng minh : xem [1] 4 Thuật toán Floyd 17 Thuật giải tìm độ dài đường đi ngắn nhất giữa mọi cặp đỉnh trong đồ thị có hướng liên thông có trọng số (không bắt buộc ≥ 0 ) + Đầu vào Đồ. .. g(12) - Ta thực hiện bước 3: z ∉ T, kết thúc L(z)=16 là độ dài đường đi ngắn nhất từ a đến z Từ z ta đi ngược lại các đỉnh đã được ghi nhớ z → g → f → c → e → a Ta suy ra đường đi ngắn nhất là a → e → c → f → g → z 16 3 Phương pháp lập bảng ghi nhãn Ta lập bảng tính toán các nhãn gồm các cột ứng với các đỉnh, các hàng ứng với các lần tính nhãn ở bước (4) Các nhãn gạch dưới ứng với nhãn nhỏ nhất. .. thúc: Nếu k=n , kết thúc D=Dn là ma trận độ dài đường đi ngắn nhất Ngược lại tăng k lên 1 đơn vị (k:=k+1) sang (3) (3) Tính ma trận Dk theo Dk-1: Với mọi cặp (i,j), i=1 n, j=1 n thực hiện: Nếu dk-1(i,j) > dk-1(i,k) + dk-1(k,j) thì đặt dk(i,j) := dk-1(i,k) + dk-1(k,j) Ngược lại đặt dk(i,j):=dk-1(i,j) Quay lại bước (2) * Định lí: Thuật toán Floyd là đúng Chứng minh: xem [1] *Hệ quả (i) Nếu ma trận kết... ứng với nhãn nhỏ nhất ở bước (2), đỉnh bị loại ghi bên phải Sau khi đỉnh z bị loại, từ z lần nguợc về đỉnh a theo nhãn ghi trên bảng Các đỉnh trên đường đi được gạch dưới ( trên cột các đỉnh loại) Cuối cùng theo thứ tự ngược lại ta nhận được đường đi ngắn nhất Sau đây là bảng tính toán nhãn của ví dụ1 trên a 0 b c 1 2 2(a) 3 2 4 4(b) 5 6 Ta suy ra đường đi ngắn nhất là d e f g z 1(a) 4(f) 4 4 6(f)...11 - Ta thực hiện bước 2: L(d)=min{L(x)| x ∈ T}=4 Suy ra T=T-{d}={e,g,z} - Ta thực hiện bước 3: z ∈ T, chuyển sang bước 4 - Ta thực hiện bước 4: Đỉnh e kề đỉnh d Ta có L(e)=min{L(e), L(d)+4}=min{ 6 , 4+4}=6 Các đỉnh không thay đổi Đồ thị có nhãn như sau b(2 )a 2 c(4 )b 2 4 3 1 2 e(6)b d (4 )f 4 7 3 1 6 f(1 )a 5 g(6)f ) a(0) z(5 )c - Ta thực hiện bước 2: L(z)=min{L(x)| x ∈ T}=5 Suy ra T=T-{z}={e,g} - . đề tài: '&apos ;Đường đi ngắn nhất và ứng dụng'' để viết bài tiểu luận này. 4 PHẦN NỘI DUNG I. CƠ SỞ LÝ THUYẾT 1. Đồ thị vô hướng - Định. toán đặt ra là tìm đường đi ngắn nhất từ a đến z. 2. Thuật toán Dijkstra Thật toán tìm đường đi ngắn nhất từ đỉnh a đến đỉnh z trong đó đồ thị liên thông

Ngày đăng: 19/01/2014, 08:20

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan