Download as pdf or txt
Download as pdf or txt
You are on page 1of 87

LOGO

Chương V

om
.c
ng
TOÁN RỜI RẠC

co
an
Phạm Thế Bảo

th
email: ptbao@hcmus.edu.vn

ng
www.math.hcmus.edu.vn/~ptbao/TRR/
o
du
u
cu

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Đồ thị

om
.c
ng
co
an
b c

th
o ng e
a d
du
u
cu

k
g

CuuDuongThanCong.com https://fb.com/tailieudientucntt
1. Những khái niệm và tính chất cơ bản

om
Định nghĩa đồ thị

.c
Định nghĩa 1. Đồ thị vô hướng G = (V, E) gồm:

ng
co
i) V là tập hợp khác rỗng mà các phần tử của nó gọi

an
là đỉnh (vertex) của G.

th
ng
ii) E là đa tập hợp gồm các cặp không sắp thứ tự của
o
du

hai đỉnh. Mỗi phần tử của E được gọi là một cạnh


u

(edge) của G. Ký hiệu uv.


cu

CuuDuongThanCong.com https://fb.com/tailieudientucntt
1. Những khái niệm và tính chất cơ bản

om
b c

.c
ng
co
a d e

an
th
h

k
o ng
g
du
u
cu

CuuDuongThanCong.com https://fb.com/tailieudientucntt
1. Những khái niệm và tính chất cơ bản

Chú ý

om
.c
ng
™ Ta nói cạnh uv nối u với v, cạnh uv kề với u,v.

co
™ Nếu uv∈E thì ta nói đỉnh u kề đỉnh v.

an
th
™ Hai cạnh nối cùng một cặp đỉnh gọi là hai cạnh song
o ng
song.
du
u

™ Cạnh uu có hai đầu mút trùng nhau gọi là một khuyên.


cu

CuuDuongThanCong.com https://fb.com/tailieudientucntt
om
.c
ng
co
an
th
o ng
du
u
cu

CuuDuongThanCong.com https://fb.com/tailieudientucntt
1. Những khái niệm và tính chất cơ bản

om
™ Định nghĩa 2. Đồ thị vô hướng không có cạnh
song song và không có khuyên gọi là đơn đồ thị

.c
vô hướng.

ng
™ Định nghĩa 3. Đồ thị vô hướng cho phép có cạnh

co
song song nhưng không có khuyên gọi là đa đồ

an
thị vô hướng.

th
™ Định nghĩa 4. Đồ thị vô hướng cho phép có cạnh
ng
song song và có khuyên gọi là giả đồ thị
o
du
u
cu

CuuDuongThanCong.com https://fb.com/tailieudientucntt
b c

om
a d e

.c
h

ng
k b
a

co
g

an
th
c
b o ng d
a
du
u
cu

d c

CuuDuongThanCong.com https://fb.com/tailieudientucntt
9

1. Những khái niệm và tính chất cơ bản

om
.c
Detroit

ng
New York

co
San Francisco

an
th
Chicago
o ng
Denver Washington
du

Los Angeles
u
cu

CuuDuongThanCong.com https://fb.com/tailieudientucntt
10

1. Những khái niệm và tính chất cơ bản

om
.c
Detroit

ng
New York

co
San Francisco

an
th
Chicago
o ng
Denver Washington
du

Los Angeles
u
cu

CuuDuongThanCong.com https://fb.com/tailieudientucntt
11

1. Những khái niệm và tính chất cơ bản

om
Detroit

.c
New York

ng
San Francisco

co
an
th
Chicago
o ng
Denver
Washington
du

Los Angeles
u
cu

CuuDuongThanCong.com https://fb.com/tailieudientucntt
1. Những khái niệm và tính chất cơ bản

om
Định nghĩa 5

.c
Đa đồ thị có hướng G =(V,E) gồm:

ng
co
i) V là tập hợp khác rỗng mà các phần tử của nó gọi là

an
đỉnh của G.

th
ii) E là đa tập hợp gồm các cặp có sắp thứ tự của hai đỉnh.
ng
Mỗi phần tử của E được gọi là một cung (cạnh) của G. Ký
o
du

hiệu uv.
u

Ta nói cung uv đi từ u đến v, cung uv kề với u,v


cu

12

CuuDuongThanCong.com https://fb.com/tailieudientucntt
om
.c
b b

ng
a
a

co
an
th
d
o ng
c d c
du
u
cu

13

CuuDuongThanCong.com https://fb.com/tailieudientucntt
1. Những khái niệm và tính chất cơ bản

om
Chú ý

.c
™ Nếu uv là một cung thì ta nói:

ng
ƒ Đỉnh u và v kề nhau.

co
ƒ Đỉnh u gọi là đỉnh đầu (gốc), đỉnh v là đỉnh cuối (ngọn)

an
của cung uv. Đỉnh v là đỉnh sau của đỉnh u.

th
o ng
™ Hai cung có cùng gốc và ngọn gọi là cung song song.
du
u
cu

™ Cung có điểm gốc và ngọn trùng nhau gọi là khuyên.

14

CuuDuongThanCong.com https://fb.com/tailieudientucntt
om
.c
ng
co
an
th
o ng
du
u
cu

15

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Những khái niệm và tính chất cơ bản

om
Định nghĩa 6. Đa đồ thị có hướng không chứa các cạnh song

.c
song gọi là đồ thị có hướng

ng
co
an
th
o ng
du
u
cu

16

CuuDuongThanCong.com https://fb.com/tailieudientucntt
om
.c
ng
Detroit

co
New York
Chicago

an
San Francisco

th
o ng
Denver Washington
du
u
cu

Los Angeles

CuuDuongThanCong.com https://fb.com/tailieudientucntt
om
.c
Detroit

ng
New York

co
Chicago
San Francisco

an
th
ng
Denver
o
Washington
du
u

Los Angeles
cu

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Những khái niệm và tính chất cơ bản

om
Bậc của đỉnh

.c
ng
™ Cho đồ thị vô hướng G = (V,E). Bậc của đỉnh v, ký hiệu

co
deg(v), là số cạnh kề với v, trong đó một khuyên tại một

an
th
đỉnh được đếm hai lần cho bậc của đỉnh ấy.
o ng
du
u
cu

19

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Bậc đỉnh a: deg(a) = 2

om
a Bậc đỉnh b: deg(b) = 5

.c
b

ng
co
c

an
th
d o ng
du

Bậc đỉnh c: deg(c) = 3


u
cu

Bậc đỉnh d: deg(d) = 2

20

CuuDuongThanCong.com https://fb.com/tailieudientucntt
om
b

.c
a

ng
co
d

an
c
e

th
o ng f
du
u
cu

Bậc của các đỉnh?

21

CuuDuongThanCong.com https://fb.com/tailieudientucntt
1. Những khái niệm và tính chất cơ bản

om
Cho đồ thị có hướng G = (V, E), v∈V

.c
ng
1) deg-(v):= số cung có đỉnh cuối là v, gọi là bậc vào của v.

co
2) deg +(v):= số cung có đỉnh đầu là v,gọi là bậc ra của v

an
3) deg(v):= deg- (v) + deg+(v)

th
ng
‰ Đỉnh bậc 0 gọi là đỉnh cô lập. Đỉnh bậc 1 gọi là đỉnh treo
o
du
u
cu

22

CuuDuongThanCong.com https://fb.com/tailieudientucntt
om
.c
ng
co
an
th
o ng
du
u
cu

23

CuuDuongThanCong.com https://fb.com/tailieudientucntt
om
a b Bậc đỉnh a: deg-(a)= 1 ; deg+(a)=1

.c
Bậc đỉnh b: deg-(b)= 1 ; deg+(b)=3

ng
co
c d
e Bậc đỉnh c: deg-(c)= 1 ; deg+(c)=2

an
th
f Bậc đỉnh d: deg-(d)= 0 ; deg+(d)=0
o ng Bậc đỉnh e: deg-(e)= 1 ; deg+(e)=0
du

Bậc đỉnh f: deg-(f)= 2 ; deg+(f)=0


u
cu

24

CuuDuongThanCong.com https://fb.com/tailieudientucntt
1. Những khái niệm và tính chất cơ bản

Định lí

om
.c
Cho đồ thị G = (V,E), m là số cạnh (cung)

ng
co
1) 2m = ∑ deg(v)

an
v∈V

th
2) Nếu G có hướng thì: o ng
m = ∑ deg−(v) = ∑ deg+(v)
du

v∈V v∈V
u
cu

3) Số đỉnh bậc lẻ của đồ thị là số chẵn

25

CuuDuongThanCong.com https://fb.com/tailieudientucntt
2. Biểu diễn đồ thị bằng ma trận

om
Ta sử dụng ma trận kề.

.c
ng
Cho G = (V,E) với V={1,2,…,n}.

co
Ma trận kề của G là ma trận A = (aij)n xác định như sau:

an
th
aij = số cạnh (số cung) đi từ đỉnh i đến đỉnh j
o ng
du
u
cu

26

CuuDuongThanCong.com https://fb.com/tailieudientucntt
2. Biểu diễn đồ thị bằng ma trận

om
Tìm ma trận kề

.c
ng
co
a b c d

⎡0 1 1 0⎤

an
a a

th
b ⎢ ⎥
ng b
⎢ 1 0 1 1⎥
o
c
du

c
⎢1 1 0 1⎥
u

⎢ ⎥
cu

⎣0 1 1 0⎦
d d

27

CuuDuongThanCong.com https://fb.com/tailieudientucntt
2. Biểu diễn đồ thị bằng ma trận

Tìm ma trận kề

om
.c
a b c d e f

ng
co
a b a ⎡0 2 1 0 0 0⎤
⎢ ⎥

an
b ⎢2 0 1 0 1 1⎥

th
ng c ⎢1 1 0 0 0 1⎥
d e ⎢ ⎥
o
c
d ⎢0 0 0 0 0 0⎥
du

e ⎢0 0⎥
u

1 0 0 2
cu

f ⎢ ⎥
f ⎢⎣ 0 1 1 0 0 0 ⎥⎦

28

CuuDuongThanCong.com https://fb.com/tailieudientucntt
3. Đẳng cấu

om
Định nghĩa

.c
Cho hai đơn đồ thị G = (V,E) và G’= (V’,E’). Ta nói rằng G đẳng
cấu G’, ký hiệu G ≅ G’, nếu tồn tại song ánh f :V→ V’sao cho:

ng
co
an
uv là cạnh của G ⇔ f(u)f(v) là cạnh của G’

th
o ng
du
u
cu

29

CuuDuongThanCong.com https://fb.com/tailieudientucntt
3. Đẳng cấu

Chú ý

om
.c
‰ Nếu G và G’ là các đơn đồ thị vô hướng đẳng cấu qua

ng
ánh xạ f thì chúng có:

co
¾ Cùng số đỉnh

an
th
¾ Cùng số cạnh
ng
¾ Cùng số đỉnh với bậc cho sẵn (vd: số đỉnh bậc 2 của
o
du

G và G’ bằng nhau)
u
cu

¾ deg v = deg f(v)

30

CuuDuongThanCong.com https://fb.com/tailieudientucntt
3. Đẳng cấu

om
.c
ng
co
an
th
o ng
du
u
cu

31

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Ví dụ

om
.c
Không có đỉnh bậc 1 b deg(e) = 1
b

ng
a

co
c
a c

an
th
o ng
d
du

d e
e
u
cu

Không đẳng cấu

32

CuuDuongThanCong.com https://fb.com/tailieudientucntt
om
b 2

.c
a 1 3
d c

ng
co
6

an
e 4 5

th
f
o ng
du
u

Đẳng cấu
cu

33

CuuDuongThanCong.com https://fb.com/tailieudientucntt
2

om
a
b 1

.c
4

ng
5

co
d

an
e 3

th
c o ng
du

Không đẳng cấu


u
cu

34

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Đẳng cấu không?

om
.c
a

ng
b

co
an
th
d
o ng
e
c
du
u
cu

35

CuuDuongThanCong.com https://fb.com/tailieudientucntt
4. Đường đi, chu trình, đồ thị liên thông:

om
Định nghĩa. Cho đồ thị vô hướng G = (V,E). Trên V ta định

.c
nghĩa quan hệ tương đương như sau:

ng
u~v ⇔ u ≡ v hay có một đường đi từ u đến v

co
an
a) Nếu u~v thì ta nói hai đỉnh u và v liên thông với nhau

th
b) Mỗi lớp tương đương được gọi là một thành phần liên
ng
thông của G
o
du

c) Nếu G chỉ có một thành phần liên thông thì G gọi là liên
u
cu

thông

36

CuuDuongThanCong.com https://fb.com/tailieudientucntt
om
.c
ng
co
an
th
o ng
du
u
cu

37

CuuDuongThanCong.com https://fb.com/tailieudientucntt
4. Đường đi, chu trình, đồ thị liên thông:

om
Định nghĩa. Cho G = (V,E) là đồ thị vô hướng liên thông

.c
a) Đỉnh v được gọi là đỉnh khớp nếu G – v không liên thông

ng
(G – v là đồ thị con của G có được bằng cách xoá v và các

co
an
cạnh kề với v)

th
b) Cạnh e được gọi là cầu nếu G- e không liên thông (G-e
ng
là đồ thị con của G có được bằng cách xoá cạnh e).
o
du
u
cu

38

CuuDuongThanCong.com https://fb.com/tailieudientucntt
om
.c
ng
co
an
th
o ng
du
u
cu

39

CuuDuongThanCong.com https://fb.com/tailieudientucntt
4. Đường đi, chu trình, đồ thị liên thông:

om
Cho G = (V,E) là đồ thị vô hướng u,v∈V

.c
a) Đường đi (dây chuyền) có chiều dài k nối hai đỉnh u,v

ng
là dãy đỉnh và cạnh liên tiếp nhau

co
v0e1v1e2…vk-1ekvk sao cho:

an
th
v 0=u ,v k = v, e i=v i-1v i , i=1,2,…,k
o ng
du
u
cu

40

CuuDuongThanCong.com https://fb.com/tailieudientucntt
4. Đường đi, chu trình, đồ thị liên thông:

om
a) Đường đi không có cạnh nào xuất hiện quá một lần gọi là

.c
đường đi đơn

ng
b) Đường đi không có đỉnh nào xuất hiện quá một lần gọi là

co
đường đi sơ cấp

an
c) Đường đi được gọi là chu trình nếu nó bắt đầu và kết thúc

th
tại cùng một đỉnh
ng
d) Đường đi được gọi là chu trình sơ cấp nếu nó bắt đầu và
o
kết thúc tại cùng một đỉnh và không có đỉnh nào xuất hiện
du

quá một lần


u
cu

41

CuuDuongThanCong.com https://fb.com/tailieudientucntt
om
Chu trình sơ cấp nào

.c
không?

ng
co
(a,e1,b,e2,c,e3,d,e4,b ) là đường đi từ đỉnh a tới đỉnh b có

an
chiều dài là 4.

th
ng
Tuy nhiên, trong trường hợp này, đồ thị của chúng ta là đơn
o
đồ thị, do vậy có thể gọi đường đi này bằng 1 cách ngắn gọn
du

như sau: (a,b,c,d,b)


u
cu

Chu trình sơ cấp: (b,c,d,b) (b,f,e,b)

42

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Đường đi Euler

om
.c
ng
co
Euler
an
th
o ng
du
u
cu

43

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Đường đi Euler

Bài toán. Thị trấn Königsberg chia thành 4 phần bởi

om
các nhánh của dòng sông Pregel

.c
ng
co
an
th
o ng
du
u
cu

Bốn phần này được nối kết bởi 7 cây cầu


44

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Đường đi Euler

om
.c
ng
co
an
th
o ng
du
u
cu

45

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Đường đi Euler

om
.c
ng
co
an
th
o ng
Câu hỏi. Có thể đi qua bảy cây cầu mà không có cây cầu
du

nào đi quá 1 lần


u
cu

46

CuuDuongThanCong.com https://fb.com/tailieudientucntt
C

om
A
D

.c
ng
co
B

an
C

th
o ng
du

A D
u
cu

47

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Đường đi Euler

Đường đi Euler

om
.c
Định nghĩa.

ng
co
1. Đường đi Euler là đường đi qua tất cả các cạnh mỗi cạnh

an
(cung) đúng một lần. Chu trình Euler là chu trình đi qua tất cả

th
ng
các cạnh của đồ thị mỗi cạnh đúng một lần.
o
du

2. Đồ thị được gọi là đồ thị Euler nếu nó có chu trình Euler


u
cu

48

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Đường đi Euler

Điều kiện cần và đủ.

om
Cho G = (V,E) là đồ thị vô hướng liên thông. G là đồ thị

.c
Euler ⇔ Mọi đỉnh của G đều có bậc chẵn.

ng
co
Nếu G có hai đỉnh bậc lẻ còn mọi đỉnh khác đều có bậc

an
chẵn thì G có đường đi Euler

th
Nhận xét.
o ng
du

- Nếu đồ thị G có 2 đỉnh bậc lẻ thì G có 1 đường đi Euler


u
cu

- Nếu đồ thị G có 2k đỉnh bậc lẻ thì ta có thể vẽ đồ thị bằng


k nét

49

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Đường đi Euler

om
Thuật toán Fleury để tìm chu trình Euler.

.c
ng
Bắt đầu từ một đỉnh bất kỳ của G và tuân theo

co
qui tắc sau:

an
th
1. Mỗi khi đi qua một cạnh nào đó thì xoá nó đi, sau đó xoá
đỉnh cô lập nếu có.
o ng
du

2. Không bao giờ đi qua một cầu trừ phi không còn cách đi
u

nào khác.
cu

50

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Đường đi Euler

om
a b c d

.c
ng
co
an
th
e
h f
g
o ng
du

abcfdcefghbga
u
cu

51

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Bài toán đường đi ngắn nhất

om
Đồ thị có trọng số

.c
ng
1. Đồ thị G = (V,E) gọi là đồ thị có trọng số (hay chiều dài,

co
trọng lượng) nếu mỗi cạnh(cung) e được gán với một số

an
thực w(e).Ta gọi w(e) là trọng lượng của e.

th
2. Độ dài của đường đi từ u đến v bằng tổng độ dài các cạnh
mà đường đi qua
o ng
du

3. Khoảng cách giữa 2 đỉnh u,v là độ dài ngắn nhất của các
u

đường đi từ u đến v.
cu

52

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Bài toán đường đi ngắn nhất

om
Ma trận khoảng cách (trọng số)

.c
ng
Cho G = (V, E), V = {v1,v2,…,vn} là đơn đồ thị có trọng số. Ma

co
trận khoảng cách của G là ma trận D= (dij) xác định như sau:

an
th
⎧0
o ng
khi i = j

du

dij = ⎨ w(v i v j ) khi vi v j ∈ E


u


cu

⎩∞ khi vi v j ∉ E

53

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Bài toán đường đi ngắn nhất

om
.c
ng
⎛0 5 31 40 ∞ ∞ ∞⎞

co
⎜ ⎟
⎜∞ 0 27 ∞ 73 ∞ ∞⎟

an
⎜∞ 26 0 8 49 25 38⎟

th
ng ⎜ ⎟
D = ⎜∞ ∞ ∞ 0 ∞ 16 ∞⎟
o
⎜∞ 70 ∞ ∞ 0 ∞ 9 ⎟
du

⎜ ⎟
u

⎜∞ ∞ ∞ ∞ 23 0 12⎟
cu

⎜∞ ∞ ∞ ∞ 10 ∞ 0 ⎟⎠

54

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Company Logo

Bài toán đường đi ngắn nhất

om
Các thuật toán tìm đường đi ngắn nhất

.c
ng
- Vét cạn

co
an
- Dijkstra
th
o ng
- Ford – Bellman
du
u
cu

- Floyd

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Bài toán đường đi ngắn nhất

om
Thuật toán Dijkstra

.c
ng
Bài toán.

co
Cho G = (V, E) đơn, liên thông, có trọng số dương (w(uv) > 0

an
th
với mọi u khác v). Tìm đường đi ngắn nhất từ u0 đến v và
tính khoảng cách d(u 0,v).
o ng
du
u
cu

56

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Bài toán đường đi ngắn nhất

om
Phương pháp

.c
Xác định tuần tự các đỉnh có khoảng cách đến u0 từ nhỏ đến

ng
lớn.

co
an
1. Trước tiên đỉnh có khoảng cách nhỏ nhất đến u0 là u0.

th
ng
2. Trong V\{u0} tìm đỉnh có khoảng cách đến u0 nhỏ nhất
o
du

(đỉnh này phải là một trong các đỉnh kề với u0) giả sử đó là
u

u1
cu

57

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Bài toán đường đi ngắn nhất

om
.c
3. Trong V\{u0,u1} tìm đỉnh có khoảng cách đến u0 nhỏ

ng
nhất (đỉnh này phải là một trong các đỉnh kề với u0

co
hoặc u1 ) giả sử đó là u2

an
4. Tiếp tục như trên cho đến bao giờ tìm được khoảng

th
cách từ u0 đến mọi đỉnh .
Nếu G có n đỉnh thì:
o ng
du

0 = d(u0,u0) < d(u0,u1) ≤ d(u0,u2) ≤…≤ d(u0,un-1)


u
cu

58

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Thuật toán Dijkstra
Bước1. i:=0, S:=V\{u0}, L(u0):=0, L(v):= ∞ với mọi v ∈S và

om
đánh dấu đỉnh v bởi (∞,-). Nếu n=1 thì xuất d(u0,u0)=0=L(u0)

.c
ng
Bước 2. Với mọi v ∈S và kề với ui (nếu đồ thị có hướng thì v

co
là đỉnh sau của ui), đặt L(v):=min{L(v),L(ui)+w(ui v)}.

an
Xác định k =minL(v) ,v∈S.

th
Nếu k=L(vj) thì xuất d(u0,vj)=k và đánh dấu vj bởi (L(vj);ui). ui+1:=vj
ng
S:=S\{ui+1}
o
du

Bước3. i:=i+1
u
cu

Nếu i = n-1 thì kết thúc


Nếu không thì quay lại Bước 2

59

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Bài toán đường đi ngắn nhất

om
Bài tập 1. Tìm đường đi ngắn nhất từ u đến các

.c
đỉnh còn lại

ng
s

co
7
r
1

an
3

th
4
3 x
u ng 1
2 3
o
t
du

1 4
u

w
cu

y 3 z 5

60

CuuDuongThanCong.com https://fb.com/tailieudientucntt
7 s
r
1

om
4 3
x

.c
3
u

ng
1
2 3

co
t
1

an
4

th
w
y
o ng
3 z 5
du

u r s t x y z w
u
cu

0* (∞,-) (∞,-) (∞,-) (∞,-) (∞,-) (∞,-) (∞,-)

61

CuuDuongThanCong.com https://fb.com/tailieudientucntt
7 s
r
1

om
4 3
x

.c
3
u

ng
1
2 3

co
t
1

an
4

th
w
y
o ng
3 z 5
du

u0 r s t x y z w
u

0* (∞,-) (∞,-) (∞,-) (∞,-) (∞,-) (∞,-) (∞,-)


cu

- (4,u0) (∞,-) (∞,-) (∞,-) (1,u0)* (∞,-) (∞,-)

62

CuuDuongThanCong.com https://fb.com/tailieudientucntt
7 s
r
1

om
4 3
3 x

.c
u 1

ng
2 3
t

co
1 4

an
w

th
y 3 z 5
ng
u0 r s t x y z w
o
du

0* (∞,-) (∞,-) (∞,-) (∞,-) (∞,-) (∞,-) (∞,-)


u
cu

- (4,u0) (∞,-) (∞,-) (∞,-) (1u0)* (∞,-) (∞,-)


- (3,y)* (∞,-) (∞,-) (∞,-) - (4,y) (∞,-)
63

CuuDuongThanCong.com https://fb.com/tailieudientucntt
7
r
1
4
3
3 x
u 1
2 3
t
1 4

om
w
y 3 z
5

.c
u0 r s t x y z w

ng
0* (∞,-) (∞,-) (∞,-) (∞,-) (∞,-) (∞,-) (∞,-)

co
- (4,u0) (∞,-) (∞,-) (∞,-) (1u0)* (∞,-) (∞,-)

an
th
- (3,y)* (∞,-) (∞,-) (∞,-) - (4,y) (∞,-)
- - (10,r)
o ng
(6,r) (∞,-) - (4,y)* (∞,-)
du

- - (10,r) (6,r)* (∞,-) - - (9,z)


u
cu

- - (9,t) - (7,t)* - - (9,z)


- - (8,x)* - - - - (9,z)
- - - - - - - (9,z)*
64

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Bài toán đường đi ngắn nhất

om
Cây đường đi s

.c
r

ng
3 1
t

co
1
u x

an
th
2
o ng
1
du

3 z
u

y 5
cu

65

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Bài toán đường đi ngắn nhất

om
Cho đồ thị có trọng số G = (V, E) ,

.c
V = { v1, v2, v3, v4, v5, v6 , v7} xác định bởi ma trận trọng số D.
Dùng thuật toán Dijkstra tìm đường đi ngắn nhất từ v1 đến

ng
các đỉnh v2,v3,v 4, v5, v6,v7

co
an
th
o ng
du
u
cu

66

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Bài toán đường đi ngắn nhất

om
.c
⎛ 0 5 31 40 ∞ ∞ ∞ ⎞

ng
⎜ ⎟
∞ 0 27 ∞ 73 ∞ ∞

co
⎜ ⎟
⎜ ∞ 26 0 8 49 25 38 ⎟

an
⎜ ⎟

th
D = ⎜ ∞ ∞ ∞ 0 ∞ 16 ∞ ⎟
⎜ ∞ 70 ∞ ∞ 0 ∞ 9 ⎟
o ng
⎜ ⎟
du

⎜ ∞ ∞ ∞ ∞ 23 0 12 ⎟
u

⎜ ∞ ∞ ∞ ∞ 10 ∞ 0 ⎟
cu

⎝ ⎠

67

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Bài toán đường đi ngắn nhất

om
.c
ng
co
an
th
o ng
du
u
cu

68

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Bài toán đường đi ngắn nhất

om
v1 v2 v3 v4 v5 v6 v7

.c
0* (∞,-) (∞,-) (∞,-) (∞,-) (∞,-) (∞,-)

ng
co
- (5,v1)* (31,v1) (40,v1) (∞,-) (∞,-) (∞,-)

an
- - (31,v1)* (40,v1) (78,v2) (∞,-) (∞,-)

th
- - -
o ng (39,v3)* (78,v2) (56,v3) (69,v3)
du

- - - - (78,v2) (55,v4)* (69,v3)


u
cu

- - - - (78,v2) - (67,v6)*

- - - - (77,v7) - -

69

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Bài toán đường đi ngắn nhất

om
.c
ng
co
an
th
o ng
du
u
cu

70

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Bài toán đường đi ngắn nhất

om
Dùng thuật toán Dijsktra để tìm đường đi ngắn nhất từ đỉnh
a đến đỉnh z và chiều dài của nó trong đồ thị vô hướng

.c
có trọng lượng sau:

ng
co
an
th
o b ng
5 d 5 f
4 7
du

3
2
u

2 1 z
cu

a
3 4
c 6 e 5 g
71

CuuDuongThanCong.com https://fb.com/tailieudientucntt
a b c d e f g z
0 (∞,-) (∞,-) (∞,-) (∞,-) (∞,-) (∞,-) (∞,-)

om
0 (4.a) (3.a)* (∞,-) (∞,-) (∞,-) (∞,-) (∞,-)

.c
0 (4.a)* - (6.c) (9.c) (∞,-) (∞,-) (∞,-)

ng
co
0 - - (6.c)* (9.c) (∞,-) (∞,-) (∞,-)

an
0 - - - (7.d)* (11.d) (∞,-) (∞,-)

th
0 - -
o ng- - (11.d)* (12,e ) (∞,-)
du

0 - - - - - (12,e )* (18,f )
u
cu

0 - - - - - - (16,g )

72

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Bài toán đường đi ngắn nhất

om
Thuật toán Ford – Bellman

.c
ng
Tìm đường đi ngắn nhất từ u0 đến các đỉnh hoặc chỉ ra đồ thị

co
có mạch âm.

an
th
Bước 1. L0(u0) =0 và L0(v) = ∞ ∀v ≠u0. Đánh dấu đỉnh v
bằng (∞ ,-) ; k=1.
o ng
du
u

Bước 2. Lk(u0) = 0 và
cu

Lk(v) =min{Lk-1(u)+w(uv)/u là đỉnh trước của v}


Nếu Lk(v)=Lk-1(y)+w(yv)thì đánh dấu đỉnh v bởi (Lk(v),y)

73

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Bài toán đường đi ngắn nhất

om
.c
Bước 3. Nếu Lk(v) =Lk-1(v) với mọi v, tức Lk(v)

ng
ổn định thì dừng. Ngược lại đến bước 4.

co
an
Bước 4. Nếu k = n thì dừng. G có mạch âm. Nếu

th
k ≤ n-1 thì trở về bước 2 với k:=k+1
o ng
du
u
cu

74

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Bài toán đường đi ngắn nhất

om
™BT1.

.c
ng
4

co
2 3 2
7 1

an
6

th
1 2 2 -6
o ng
8 3
du

5
4
u

2
cu

75

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Bài toán đường đi ngắn nhất
4

om
2 3 2
7 1

.c
6
1 2

ng
2 -6

co
8 3

an
5
4

th
2
o ng
k 1 2 3 4 5 6
du
u

0 0 (∞,-) (∞,-) (∞,-) (∞,-) (∞,-)


cu

76

CuuDuongThanCong.com https://fb.com/tailieudientucntt
4
2 3 2
7 1
6

om
1 2 2 -6

.c
8 3

ng
5
4

co
2

an
th
ng
k 1 2 3 4 5 6
o
du

0 0 (∞,-) (∞,-) (∞,-) (∞,-) (∞,-)


u
cu

1 0 (7,1) (∞,-) (8,1) (∞,-) (∞,-)

77

CuuDuongThanCong.com https://fb.com/tailieudientucntt
4
2 3 2
7 1

om
6
1 2 2 -6

.c
8

ng
3
5

co
4
2

an
th
k 1 2
o ng 3 4 5 6
du

0 0 (∞,-) (∞,-) (∞,-) (∞,-) (∞,-)


u
cu

1 0 (7,1) (∞,-) (8,1) (∞,-) (∞,-)


2 0 (7,1) (11,2) (8,1) (9,2) (8,2)

78

CuuDuongThanCong.com https://fb.com/tailieudientucntt
4
2 3 2
7 1
6
1 2 2 -6

om
8 3

.c
5
4

ng
2

co
an
k 1 2 3 4 5 6

th
0 0 (∞,-)
o ng (∞,-) (∞,-) (∞,-) (∞,-)
du

1 0 (7,1) (∞,-) (8,1) (∞,-) (∞,-)


u
cu

2 0 (7,1) (11,2) (8,1) (9,2) (8,2)


3 0 (7,1) (10,6) (2,6) (9,2) (8,2)

79

CuuDuongThanCong.com https://fb.com/tailieudientucntt
4
2 3 2
7 1
6
1 2 2 -6

om
8 3
4 5

.c
2

ng
co
k 1 2 3 4 5 6

an
0 0 (∞,-) (∞,-) (∞,-) (∞,-) (∞,-)

th
1 0 (7,1)
o ng (∞,-) (8,1) (∞,-) (∞,-)
du

2 0 (7,1) (11,2) (8,1) (9,2) (8,2)


u
cu

3 0 (7,1) (10,6) (2,6) (9,2) (8,2)


4 0 (4,4) (10,6) (2,6) (4,4) (8,2)

80

CuuDuongThanCong.com https://fb.com/tailieudientucntt
4
2 3 2
7 1
6
1 2 2 -6
8 3
4 5

om
2

.c
k 1 2 3 4 5 6

ng
co
0 0 (∞,-) (∞,-) (∞,-) (∞,-) (∞,-)

an
1 0 (7,1) (∞,-) (8,1) (∞,-) (∞,-)

th
2 0 (7,1)
o ng (11,2) (8,1) (9,2) (8,2)
du

3 0 (7,1) (10,6) (2,6) (9,2) (8,2)


u
cu

4 0 (4,4) (10,6) (2,6) (4,4) (8,2)


5 0 (4,4) (8,2) (2,6) (4,4) (5,2)
81

CuuDuongThanCong.com https://fb.com/tailieudientucntt
2 4 3
7 2
1 6
1 2 2 -6
8 5 3
4
2

om
k 1 2 3 4 5 6

.c
0 0 (∞,-) (∞,-) (∞,-) (∞,-) (∞,-)

ng
co
1 0 (7,1) (∞,-) (8,1) (∞,-) (∞,-)

an
2 0 (7,1) (11,2) (8,1) (9,2) (8,2)

th
3 0 (7,1)
o ng (10,6) (2,6) (9,2) (8,2)
du

4 0 (4,4) (10,6) (2,6) (4,4) (8,2)


u
cu

5 0 (4,4) (8,2) (2,6) (4,4) (5,2)


6 0 (4,4) (7,6) (-1,6) (4,4) (5,2)
82

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Bài toán đường đi ngắn nhất

om
.c
ng
k = n = 6 . Lk(i) chưa ổn định nên đồ thị có mạch

co
âm. Chẳng hạn:

an
4→2→6→4 có độ dài -3

th
o ng
du
u
cu

83

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Bài toán đường đi ngắn nhất

om
.c
ng
k = n = 6 . Lk(i) chưa ổn định nên đồ thị có mạch

co
âm. Chẳng hạn:

an
4→2→6→4 có độ dài -3

th
o ng
du
u
cu

84

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Bài toán đường đi ngắn nhất

om
™BT2.

.c
ng
4

co
2 3 2
7 1

an
6

th
1 2 2 -2
o ng
8 3
du

5
4
u

2
cu

85

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Bài toán đường đi ngắn nhất

om
k 1 2 3 4 5 6

.c
0 0 (∞,-) (∞,-) (∞,-) (∞,-) (∞,-)

ng
co
1 0 (7,1) (∞,-) (8,1) (∞,-) (∞,-)

an
2 0 (7,1) (11,2) (8,1) (9,2) (8,2)

th
3 0 (7,1)
o ng
(10,6) (6,6) (9,2) (8,2)
du

4 0 (7,1) (10,6) (6,6) (8,4) (8,2)


u
cu

5 0 (7,1) (10,6) (6,6) (8,4) (8,2)

86

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Bài toán đường đi ngắn nhất

om
.c
ng
co
2 3 2
7 1

an
6

th
1
-2
o ng
du

5
4
u

2
cu

87

CuuDuongThanCong.com https://fb.com/tailieudientucntt

You might also like