Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 28 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
28
Dung lượng
624 KB
Nội dung
1
BỘ GIÁO DỤC VÀ ĐÀO TẠO
ĐẠI HỌC ĐÀ NẴNG
TIỂU LUẬN
TÌM ĐƯỜNGĐINGẮN
NHẤT VÀỨ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ở lý thuyết…………………………………………….………………Trang 02
II. Bài toán đườngđingắnnhấtvàứ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 và các cạnh nối các đỉnh đó. Đây là
công cụ hữu hiệu để mô hình hóa và 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 lý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 và các bài toán tô màu đã và đang
được nhiều người quan tâm, nghiên cứu. Bài toán tìmđườngđingắnnhất là bài toán quan
trọng trong Lý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 đingắnnhấtvàứng
dụng'' để viết bài tiểuluận này.
4
PHẦN NỘI DUNG
I. CƠ SỞ LÝ 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 và 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 và 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 và cạnh nối tiếp nhau bắt đầu từ đỉnh v 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 và 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 và sau nó. Các đỉnh và 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 và đỉnh cuối trùng nhau.
Chu trình là đườngđi có đỉnh đầu và đỉ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 và 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 và đỉnh cuối trùng nhau.
Chu trình có hướng là đườngđi có hướng có đỉnh đầu và đỉ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 và 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), và
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ĐINGẮNNHẤTVÀỨ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đingắnnhất từ a đến z.
2. Thuật toán Dijkstra
Thật toán tìmđườngđingắnnhấ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 và đỉ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ắnnhấ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 và z
Đầu ra :L(z) chiều dài đườngđingắnnhất từ a đến z vàđườngđingắ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đingắnnhất từ a đến z.
Từ z lần ngược theo đỉnh được ghi nhớ ta có đườngđingắ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đingắnnhấ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 và 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 và 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 và 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 và 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đingắn nhất, P = Pn Ngược lại tăng k lên 1 đơn vị (k:=k+1) và sang (3) (3) Tính ma trận Dk và Pk theo Dk-1 và 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) và 21 pk(i,j):=pk-1(i,k) ngược lại đặt dk(i,j):= dk-1(i,j) và pk(i,j):= pk-1(i,j) Quay lại bước (2) • Phương pháp xác định đường đingắnnhất từ đỉnh... cách ngắnnhất giữa các đỉnh D=D4 Ta thấy đồthị liên thông và chứa chu trình 23 Sử dụng ma trận P=P4, ta có thể tìm đườn đingắnnhấ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đingắnnhấ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đingắnnhất giữa các đỉnh trong đồ. .. cách ngắnnhất giữa các đỉnh D=D 7 Ta thấy đồthị liên thông và chứa chu trình 27 Sử dụng ma trận P=P7, ta có thể tìm đườn đingắnnhấ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đingắnnhấ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đingắn nhất. .. dài đườngđingắnnhấ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đingắnnhất là a → b → c → z Ví dụ2: Tìm đườngđingắnnhấ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 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ị. .. trận khoảng cách ngắnnhất giữa các đỉnh Theo hệ quả ta thấy đồthị liên thông và chứa chu trình 5 Thuật toán Floyd –Warshall Thuật giải tìm đườngđingắnnhấ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đingắnnhất từ i đến j với... đườngđingắnnhất là z → g → f →c→e→a • Định lí : Giả sử G là đồthị liên thông có trọng số và 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đingắnnhấ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đingắnnhấ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đingắnnhấ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, và 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đingắnnhất Ngược lại tăng k lên 1 đơn vị (k:=k+1) và 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), và đỉ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đingắnnhấ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đingắnnhấ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