nếu xóa đi k đỉnh này cùng với các cạnh liên kết với chúng khỏi G thì đồ thị nhận được có hơn k thành phần.. Đường đi và chu trình Hamilton[r]
(1)LÝ THUYẾT ĐỒ THỊ
(2)Nội dung
Chương Các khái niệm bản
– Đồ thị vơ hướng có hướng – Các thuật ngữ bản
– Một số dạng đồ thị vô hướng đặc biệt
Chương Biểu diễn đồ thị
– Ma trận kề, ma trận trọng số, Ma trận liên thuộc đỉnh
cạnh
– Danh sách cạnh, Danh sách kề
Chương Duyệt đồ thị
(3)Nội dung
Chương Cây khung đồ thị
– Cây tính chất cây – Cây khung đồ thị
– Bài toán khung nhỏ nhất
Chương Bài toán đường ngắn nhất
– Phát biểu toán
– Đường ngắn xuất phát từ đỉnh (Thuật toán Dijkstra,
Ford-Bellman)
– Đường ngắn đồ thị khơng có chu trình
– Đường ngắn cặp đỉnh (Thuật toán Floyd)
Chương Bài toán luồng cực đại mạng
(4)Chương
(5)Chương
CÁC KHÁI NIỆM CƠ BẢN
1.1 Đồ thị thực tế
1.2 Các loại đồ thị 1.3 Bậc đỉnh 1.4 Đồ thị
1.5 Đồ thị đẳng cấu
1.6 Đường chu trình 1.7 Tính liên thơng
(6)• Trong tốn học đời thường hiểu là:
Bản vẽ hay Sơ đồ biểu diễn liệu nhờ sử dụng hệ thống toạ độ.
• Trong tốn rời rạc:
Đây cấu trúc rời rạc có tính trực quan cao, rất tiện ích để biểu diễn quan hệ.
Đồ thị gì?
Khơng phải
cái ta muốn đề cập
(7)Các ứng dụng thực tế đồ thị
• Có tiềm ứng dụng nhiều lĩnh vực (Đồ
thị dùng để biểu diễn quan hệ Nghiên cứu quan hệ đối tượng mục tiêu nhiều lĩnh vực khác nhau)
• Ứng dụng mạng máy tính, mạng giao thơng,
mạng cung cấp nước, mạng điện,…) lập lịch, tối ưu hoá luồng, thiết kế mạch, quy hoạch phát triển
• Các ứng dụng khác: Phân tích gen, trò chơi máy
(8)Mối liên hệ môn học 321 143 142 322 326 341 370 378 401 421
Đỉnh = môn học
Cạnh có hướng = đk tiên
(9)Biểu diễn mê cung
S
Đỉnh = phòng
S
E
B
(10)Biểu diễn mạch điện
(Electrical Circuits)
Đỉnh = nguồn, công tắc, điện trở, … Cạnh = đoạn dây nối
Nguồn Công tắc
(11)Các câu lệnh chương trình Program statements
x1=q+y*z
x2=y*z-q Thoạt nghĩ:
Loại Biểu thức
chung: y z * -q + q * x1 x2 -q + q * x1 x2
(12)Yêu cầu trình tự (Precedence)
S1 a=0; S2 b=1; S3 c=a+1 S4 d=b+a; S5 e=d+1; S6 e=c+d;
3 6
5
4
Các câu lệnh phải thực trước S6? S1, S2, S3, S4
Đỉnh = câu lệnh
(13)Truyền thơng mạng máy tính
(Information Transmission in a Computer Network)
Hà nội New York Bắc kinh Tokyo Sydney Seoul
Đỉnh = máy tính
(14)Luồng giao thông xa lộ (Traffic Flow on Highways)
Đỉnh = thành phố
Cạnh = lượng xe cộ tuyến đường cao tốc kết nối thành phố
(15)(16)(17)(18)(19)(20)(21)Chương
CÁC KHÁI NIỆM CƠ BẢN
1.1 Đồ thị thực tế
1.2 Các loại đồ thị
1.3 Bậc đỉnh 1.4 Đồ thị
1.5 Đồ thị đẳng cấu
1.6 Đường chu trình 1.7 Tính liên thơng
(22)Đồ thị vơ hướng (Undirected Graphs)
Định nghĩa. Đơn (đa) đồ thị vô hướng G = (V,E) cặp gồm:
• Tập đỉnh V là tập hữu hạn phần tử, các phần tử
gọi đỉnh
• Tập cạnh E là tập (họ) khơng có thứ tự
dạng
(23)Đơn đồ thị vô hướng (Simple Graph)
• Ví dụ: Đơn đồ thị G1 = (V1, E1),
V1={a, b, c, d, e, f, g, h},
E1={(a,b), (b,c), (c,d), (a,d), (d,e), (a,e), (d,b), (f,g)}
a
b e
d
c g
f
(24)Đa đồ thị vơ hướng (Multi Graphs)
• Ví dụ: Đa đồ thị G2 = (V2, E2),
V2={a, b, c, d, e, f, g, h},
E2={(a,b), (b,c), (b,c), (c,d), (a,d), (d,e), (a,e), (a,e), (a, e), (d,b), (f,g)}
Đồ thị G d
Cạnh lặp e
(25)Đồ thị có hướng (Directed Graph)
Định nghĩa. Đơn (đa) đồ thị có hướng G = (V,E)
cặp gồm:
• Tập đỉnh V là tập hữu hạn phần tử, các phần tử
gọi đỉnh
• Tập cung E là tập (họ) có thứ tự dạng
(26)• Ví dụ: Đơn đồ thị có hướng G3= (V3, E3),
V3={a, b, c, d, e, f, g, h},
E3={(a,b), (b,c), (c,b), (d,c), (a,d), (b, d), (a,e), (d,e), (e,a), (f,g), (g,f)}
Đơn đồ thị có hướng (Simple digraph)
a
b e
d
c g
f
(27)Đa đồ thị có hướng (Multi Graphs)
• Ví dụ: Đa đồ thị có hướng G4= (V4, E4),
V4={a, b, c, d, e, f, g, h},
E4={(a,b), (b,c), (c,b), (d,c), (a,d), (b, d), (a,e), (a,e), (d,e), (e,a), (f,g), (g,f)}
e
a
b
c
f
g
(28)Các loại đồ thị: Tóm tắt
• Chú ý:
– Một dạng đồ thị sử dụng hơn, giả đồ thị Giả
đồ thị là đa đồ thị mà có khuyên (cạnh nối đỉnh với nó)
– Cách phân loại đồ thị dùng chưa
Loại Kiểu cạnh Có cạnh lặp? Đơn đồ thị vô hướng Vô hướng Không
Đa đồ thị vơ hướng Vơ hướng Có
Đơn đồ thị có hướng Có hướng Khơng Đa đồ thị có hướng Có hướng Có
(29)Các thuật ngữ
Graph Terminology
Chúng ta cần thuật ngữ liên quan đến mối quan hệ đỉnh cạnh đồ thị sau:
• Kề nhau, nối, đầu mút, bậc, bắt đầu, kết thúc, bán bậc
vào, bán bậc ra,…
u
v v
u
(30)Kề (Adjacency)
Cho G đồ thị vô hướng với tập cạnh E Giả sử eE
cặp (u,v) Khi ta nói:
• u, v kề nhau/lân cận/nối với nhau (adjacent /
neighbors / connected)
• Cạnh e liên thuộc với hai đỉnh u v. • Cạnh e nối (connect) u v.
• Các đỉnh u v đầu mút (endpoints) cạnh e.
v u
(31)Tính kề đồ thị có hướng
• Cho G đồ thị có hướng (có thể đơn đa) giả
sử e = (u,v) cạnh G Ta nói:
– u và v là kề nhau, u kề tới v, v kề từ u – e khỏi u, e vào v.
– e nối u với v, e từ u tới v
– Đỉnh đầu (initial vertex) e u
u
v
(32)Chương
CÁC KHÁI NIỆM CƠ BẢN
1.1 Đồ thị thực tế 1.2 Các loại đồ thị
1.3 Bậc đỉnh
1.4 Đồ thị
1.5 Đồ thị đẳng cấu
1.6 Đường chu trình 1.7 Tính liên thơng
(33)Bậc đỉnh (Degree of a Vertex)
• Giả sử G đồ thị vơ hướng, vV đỉnh đó. • Bậc đỉnh v, deg(v), số cạnh kề với
• Đỉnh bậc gọi đỉnh cô lập (isolated). • Đỉnh bậc gọi đỉnh treo (pendant). • Các ký hiệu thường dùng:
(G) = {deg(v): v V},
(34)Ví dụ a b c e d f
deg(d) =
deg(f) =
f đỉnh cô lập b kề với c c kề với b Cạnh (a,b) liên thuộc
với hai đỉnh a b
g deg(g) = g đỉnh treo
(35)Định lý bắt tay
(Handshaking Theorem)
• Định lý Giả sử G đồ thị vô hướng (đơn đa) với
tập đỉnh V tập cạnh E Khi
CM: Trong tổng vế trái cạnh e=(u,v)E tính
hai lần: deg(u) deg(v)
(36)Ví dụ
Biết đỉnh đồ thị vô hướng G=(V,E) với 14 đỉnh 25 cạnh có bậc Hỏi G có đỉnh bậc 3?
Giải Giả sử G có x đỉnh bậc Khi có 14-x đỉnh bậc
Do | E | = 25, nên tổng tất bậc 50 Từ đó, 3x + 5(14-x) = 50
(37)Bậc đỉnh đồ thị có hướng
• Cho G đồ thị có hướng, v đỉnh G.
– Bán bậc vào (in-degree) v, deg-(v), số
cạnh vào v.
– Bán bậc (out-degree) v, deg(v), số
cạnh khỏi v.
– Bậc v, deg(v):deg-(v)+deg(v), tổng
(38)Ví dụ f a b c e d
deg-(d) = 2
deg+(d)=
deg-(f) = deg+(f)= b kề tới c c kề từ b
deg-(a) = deg+(a)= a- đỉnh nguồn
deg-(e) = deg+(e)=
(39)Định lý bắt tay có hướng Directed Handshaking Theorem
• Định lý Giả sử G đồ thị có hướng (có thể đơn
đa) với tập đỉnh V tập cạnh E Khi đó:
• Chú ý khái niệm bậc đỉnh không thay đổi cho dù
ta xét đồ thị vô hướng hay có hướng
E v v v V v V v V v
- deg( )
(40)Chương
CÁC KHÁI NIỆM CƠ BẢN
1.1 Đồ thị thực tế 1.2 Các loại đồ thị
1.3 Bậc đỉnh
1.4 Đồ thị con
1.5 Đồ thị đẳng cấu
1.6 Đường chu trình 1.7 Tính liên thơng
(41)Đồ thị (Subgraphs)
• Định nghĩa Đồ thị H=(W,F) gọi đồ thị
đồ thị G=(V,E) WV FE
• Ký hiệu: HG.
(42)Ví dụ
Định nghĩa Đồ thị H đồ thị G nếu
V(H) V(G) E(H) E(G) (viết tắt H G)
u
v w
x y
v w
x y
v w
x y
(43)Định nghĩa Cho G = (V, E) đồ thị vô hướng
Giả sử S V, S Đồ thị cảm sinh S đồ thị
con cực đại G với tập đỉnh S (thường ký hiệu <S>)
Đồ thị H đồ thị G gọi đồ thị cảm sinh đỉnh (vertex-induced subgraph) G tìm S V
sao cho H=<S>
Ví dụ:
Đồ thị cảm sinh
Induced Subgraph
G v w H không đồ thị
cảm sinh G.
v w
(44)Loại bỏ đỉnh
The deletion of vertices
Định nghĩa Cho G = (V, E) đồ thị vô hướng Giả sử S V Ta
gọi việc loại bỏ tập đỉnh S khỏi đồ thị việc loại bỏ tất đỉnh S cạnh kề với chúng
• Như ký hiệu đồ thị thu G-S, ta có G-S = <V-S>
Nếu S={v}, để đơn giản ta viết G-v
G
u
v w
Giả sử S={x,u}
G-S
u
(45)Định nghĩa. Cho G = (V, E) đồ thị vô hướng
Giả sử X E, X Đồ thị cảm sinh X đồ thị
nhỏ G với tập cạnh X (ký hiệu <X>)
Đồ thị H G gọi đồ thị cảm sinh cạnh (edge-induced subgraph) H=<X> tập X
E
Ví dụ:
Đồ thị cảm sinh cạnh Edge Induced Subgraph
G
u
v w
Cho X={(u,v),(v,w)}
<X>
u
(46)Ví dụ Cho G=(V,E) đồ thị vơ hướng
Nếu H=<E(G)>, suy H=<V(G)> không?
No
G u
v w
H
v w
Đồ thị cảm sinh cạnh cảm sinh đỉnh
Dễ thấy, G = <V(G)>
(47)Định nghĩa.
Đồ thị H G gọi đồ thị bao trùm G
nếu tập đỉnh H tập đỉnh G: V(H) = V(G)
Định nghĩa.
Ta viết H = G + {(u,v), (u,w)} hiểu
E(H) = E(G) ∪ {(u,v), (u,w)}, (u,v), (u,w)E(G) Đồ thị bao trùm
(48)Hợp hai đồ thị
• Hợp G1G2 hai đơn đồ thị G1=(V1, E1) G2=(V2,E2)
là đơn đồ thị (V1V2, E1E2)
a b c
d e
a b c
d f
(49)Hợp đồ thị
(50)Chương
CÁC KHÁI NIỆM CƠ BẢN
1.1 Đồ thị thực tế 1.2 Các loại đồ thị
1.3 Bậc đỉnh 1.4 Đồ thị
1.5 Đồ thị đẳng cấu
1.6 Đường chu trình 1.7 Tính liên thơng
(51)Đồ thị đẳng cấu Graph Isomorphism
• Định nghĩa:
Hai đơn đồ thị vô hướng G1=(V1, E1) G2=(V2, E2)
đẳng cấu (isomorphic) iff song ánh f : V1V2 cho a, b V1, a b kề G1 iff f(a) f(b) kề
nhau G2
• f hàm đặt tên lại đỉnh hai đồ thị
đồng
• Có thể tổng qt định nghĩa cho loại đồ thị
(52)Bất biến đẳng cấu
Điều kiện cần nhưng đủ để
G1=(V1, E1) đẳng cấu với G2=(V2, E2):
– Ta phải có |V1|=|V2|, |E1|=|E2|.
(53)Ví dụ đẳng cấu
• Nếu đẳng cấu gán tên cho đồ thị thứ hai
(54)Có đẳng cấu khơng?
• Nếu đẳng cấu gán tên cho đồ thị thứ hai để thấy
rõ đẳng cấu, trái lại nêu rõ khác biệt
a
b
c
d
e
• Cùng số lượng đỉnh
• Cùng số
lượng cạnh
• Khác số lượng
(55)Hai đồ thị sau đẳng cấu với nhau A
B
C D
E
A’
B’
(56)Ví dụ:
Hai đơn đồ thị G1 G2 sau đẳng
cấu qua phép đẳng cấu f: a x,
(57)Ví dụ:
• Hai đồ thị G1 G2 sau có đỉnh cạnh
(58)Ví dụ:
• Hai đồ thị G1 G2 có đỉnh, 10 cạnh, có
(59)Ví dụ:
(60)(61)Chương
CÁC KHÁI NIỆM CƠ BẢN
1.1 Đồ thị thực tế 1.2 Các loại đồ thị
1.3 Bậc đỉnh 1.4 Đồ thị
1.5 Đồ thị đẳng cấu
1.6 Đường chu trình
1.7 Tính liên thơng
(62)Đường đi, Chu trình
• Định nghĩa Đường P độ dài n từ đỉnh u đến đỉnh v,
trong n số nguyên dương, đồ thị G=(V,E) dãy
• P: x0, x1, , xn-1, xn
• u = x0, v = xn, (xi, xi+1) E, i = 0, 1, 2, ,
n-1.
• Đường nói cịn biểu diễn dạng dãy
các cạnh:
• (x0, x1), (x1, x2), , (xn-1, xn).
(63)Đường đi, Chu trình
• Đường gọi đường sơ cấp khơng
có đỉnh bị lặp lại nó.
• Đường gọi đường đơn giản
khơng có cạnh bị lặp lại nó.
• Nếu có đường từ u đến v ta nói đỉnh v
(64)Ví dụ: 1, 2, 5, 3, 1, a, 2, c, 5, d, 3, e,
Ví dụ: 5, 2, 3, 5, c, 2, b, 3, e,
Không có đỉnh lặp nên đường đơn giản
2 3 4
a b
c 1
5 d
e
2 3 4
a b
c 1
5 d
e
(65)P1
Ví dụ (cont.)
• P1=(1,b,2,h,3) đường
đi đơn
• P2=(4,c,5,e,2,g,6,f,5,d,1)
là đường không đường đơn
(66)P1 Ví dụ (cont.)
• P1=(1, b, 2, h, 3)
đường đơn
• P2=(4,c,5,e,2,g,6,f,5,d,1)
(67)Chu trình
• Đường có đỉnh đầu trùng với đỉnh cuối (tức là
u = v) gọi chu trình
• Chu trình gọi sơ cấp nếu ngoại trừ
(68)Chu trình
1, 2, 3, (hay 1, a, 2, b, 3, e)
• Chu trình đơn
Chu trình: (1, 2, 3, 4, 1) hay
1, a, 2, b, 3, c, 4, d, 1
• Chu trình đơn
2
3 4
a b
c d 1 e 2 3 4
a b
c d
1 e
(69)Ví dụ: Chu trình đồ thị vơ hướng
• C1=(V,b,X,g,Y,f,W,c,U,a,V) chu trình đơn
• C2=(U,c,W,e,X,g,Y,f,W,d,V,a,U) chu trình khơng
là chu trình đơn
(70)Ví dụ: Chu trình đồ thị có hướng
• C1=(V,b,X,g,Y,f,W,c,U,a,V) chu trình đơn
• C2=(U,c,W,e,X,g,Y,f,W,d,V,a,U) chu trình khơng
là chu trình đơn
(71)Chương
CÁC KHÁI NIỆM CƠ BẢN
1.1 Đồ thị thực tế 1.2 Các loại đồ thị
1.3 Bậc đỉnh 1.4 Đồ thị
1.5 Đồ thị đẳng cấu
1.6 Đường chu trình
1.7 Tính liên thơng
(72)Tính liên thơng (Connectedness)
• Đồ thị vơ hướng gọi liên thơng ln tìm
được đường nối hai đỉnh
• Ví dụ
• G1 G2 đồ thị liên thơng
• Đồ thị G bao gồm G G không đồ thị liên thông
f i
j k
G1
(73)Tính liên thơng (Connectedness)
• Mệnh đề: Ln tìm đường đơn nối hai đỉnh
bất kỳ đồ thị vô hướng liên thơng
• Chứng minh.
(74)Tính liên thơng (Connectedness)
• Thành phần liên thơng (Connected component): Đồ thị
con liên thông cực đại đồ thị vô hướng G gọi thành phần liên thơng
• Ví dụ: Đồ thị G có thành phần liên thơng G1, G2, G3
(75)Thành phần liên thông
Gỉa sử vV Gọi
• V(v) – tập đỉnh đồ thị đạt đến từ v,
• E(v) – tập cạnh có đầu mút V(v).
V(a)={a,b,c,d,e,g};
G1≡G(a)
a b c e d g f i j k
G3 ≡G(i)
(76)Ví dụ: Cho G đồ thị vô hướng n đỉnh Biết (G) = min{deg(v): v V} (n-1)/2
Chứng minh G liên thông
Chứng minh.
Phản chứng Giả sử G không liên thơng, (G) (n-1)/2,
nên thành phần liên thơng phải chứa (n-1)/2+1 = (n+1)/2 đỉnh
(77)Đỉnh rẽ nhánh cầu (Connectedness)
• Đỉnh rẽ nhánh (cut vertex): đỉnh mà việc loại bỏ làm tăng
số thành phần liên thơng đồ thị
• Cầu (bridge): Cạnh mà việc loại bỏ làm tăng số thành phần
liên thơng đồ thị
• Ví dụ:
Cạnh (e,g) cầu
a
b c
e d
(78)Mệnh đề Cạnh e đồ thị liên thông G cầu e khơng thuộc chu trình G
Chứng minh
() Cho e cầu G
Giả sử e = (u,v), giả sử ngược lại e nằm chu trình C : u, v, w, …, x, u.
Khi
C - e : v, w, …, x, u
đường từ u đến v đồ thị G - e.
Ta chứng minh: G - e liên thơng.
(Điều mâu thuẫn với giả thiết e cầu)
(79)Thực vậy, giả sử u1, v1 V(G-e)=V(G)
Do G liên thông, nên đường P: u1v1 G
Nếu e P, P đường G-e
đường u1v1 G-e
Nếu e P,
(P C)-e đường u1v1 G-e (xem hình)
Vậy ln tìm đường u1v1 G-e
C
(80)() Giả sử e=(u,v) cạnh khơng nằm chu trình
nào G Khi G-e khơng chứa đường uv
Trái lại, P đường uv trên G-e, P{(u,v)}
là chu trình G chứa e ?!
(81)Không phải tất đồ thị liên thông đồng giá trị! Q: Hãy đánh giá xem đồ thị sơ đồ nối
mạng máy tính có giá trị hơn: 1) G1
2) G2 3) G3
(82)k-Connectivity
A: Ta muốn mạng máy tính thơng suốt có máy bị hỏng:
1) 2nd best Vẫn có điểm
yếu— “cut vertex” 2) 3rd best Thông suốt
nhưng máy điểm “yếu” 3) Tồi nhất!
Không thông suốt
(83)k-Connectivity
Mạng
tốt tính liên thơng có đỉnh bị loại bỏ Nói cách khác mạng 2-liên thơng (song liên thông)
Định nghĩa. Đơn đồ thị vô hướng liên thông với n3
(84)k-liên thông
Tổng quát:
Định nghĩa Đơn đồ thị vô hướng gọi k-liên thông muốn phá vỡ tính liên thơng ta phải loại bỏ k đỉnh
Ví dụ:
• Q3 3-liên thơng • Q4 ?-liên thơng
Q3
(85)Tính liên thơng Đồ thị có hướng
• Đồ thị có hướng gọi liên thông mạnh
(strongly connected) ln tìm đường nối hai đỉnh
• Đồ thị có hướng gọi liên thông yếu
(weakly connected ) đồ thị vơ hướng thu từ việc bỏ qua hướng tất cạnh đồ thị vơ hướng liên thơng
• Dễ thấy G liên thơng mạnh
(86)Ví dụ
• Đồ thị liên thơng mạnh Đồ thị liên thông yếu
(87)Chương
CÁC KHÁI NIỆM CƠ BẢN
1.1 Đồ thị thực tế 1.2 Các loại đồ thị
1.3 Bậc đỉnh 1.4 Đồ thị
1.5 Đồ thị đẳng cấu
1.6 Đường chu trình 1.7 Tính liên thơng
(88)Một số dạng đơn đồ thị vô hướng đặc biệt
• Đồ thị đầy đủ (Complete graphs) Kn • Chu trình (Cycles) Cn
• Bánh xe (Wheels) Wn • n-Cubes Qn
• Đồ thị hai phía (Bipartite graphs)
• Đồ thị hai phía đầy đủ (Complete bipartite graphs) Km,n • Đồ thị qui
(89)Đồ thị đầy đủ Complete Graphs
• Với nN, đồ thị đầy đủ n đỉnh, Kn, đơn đồ thị vô
hướng với n đỉnh hai đỉnh ln có cạnh nối: u,vV: uv (u,v)E
K5 K6
K1 K
(90)Đồ thị đầy đủ Complete Graphs
(91)(92)Chu trình (Cycles)
• Giả sử n3 Chu trình n đỉnh, Cn, đơn đồ thị vô hướng
với V={v1,v2,… ,vn} E={(v1,v2),(v2,v3),…,(vn-1,vn), (vn,v1)}
C3 C
4 C
5 C6 C
7 C8
(93)Bánh xe (Wheels)
• Với n3, bánh xe Wn, đơn đồ thị vô hướng thu
được cách bổ sung vào chu trình Cn đỉnh vhub n cạnh nối
{(vhub,v1), (vhub,v2),…,(vhub,vn)}
W3 W
4 W
(94)Siêu cúp
(n-cubes /hypercubes)
• Với nN, siêu cúp Qn đơn đồ thị vô hướng gồm hai
bản Qn-1 đỉnh tương ứng nối với Q0 gồm đỉnh
Q0
Q1 Q2
Q3 Q4
(95)Siêu cúp
(n-cubes /hypercubes)
• Với nN, siêu cúp Qn đơn đồ thị vô hướng gồm hai
bản Qn-1 đỉnh tương ứng nối với Q0 gồm đỉnh
Q0 Q1
Q2 Q
(96)(97)Siêu cúp
(n-cubes /hypercubes)
• Với nN, siêu cúp Qn định nghĩa đệ qui sau:
– Q0={{v0},} (một đỉnh khơng có cạnh)
– Với nN, Qn=(V,E), V={v1,…,va}
E={e1,…,eb}, Qn+1=(V{v1´,…,va´}, E{e1´,…,eb
´}{(v1,v1´),(v2,v2´),…,(va,va´)})
• Nghĩa siêu cúp Qn+1 thu từ hai siêu cúp Qn
và Q’
(98)• Định nghĩa. Đồ thị G=(V,E) hai phía
V = V1 V2 với V1∩V2= eE: v1V1, v2V2: e=(v1,v2)
• Bằng lời: Có thể phân hoạch
tập đỉnh thành hai tập cho cạnh nối hai đỉnh thuộc hai tập khác
Đồ thị hai phía (Bipartite Graphs)
V1 V2
(99)Đồ thị hai phía đầy đủ
(Complete Bipartite Graphs)
• Với m, nN, đồ thị hai phía đầy đủ Km,n đồ thị hai phía
trong |V1| = m, |V2| = n, E = {(v1,v2)|v1V1 v2V2}
• Km,n có m đỉnh tập bên trái, n đỉnh tập bên phải,
mỗi đỉnh phần bên trái nối với đỉnh phần bên phải
(100)• Định nghĩa Đồ thị G gọi đồ thị qui bậc r
nếu tất đỉnh có bậc r
• Ví dụ:
Đồ thị qui
r-regular graph
Đồ thị qui bậc
Đồ thị qui
(101)Đồ thị Platonic
• Xét khối đa diện Platonic không gian 3-chiều
Tetrahedron
(102)Đồ thị Platonic
• Đồ thị platonic thu việc chiếu khối đa diện tương
ứng xuống mặt phẳng
(103)Bài tập
• Một đồ thị bánh xe Wn có 36 cạnh Tìm số đỉnh đồ
thị?
• Cho đồ thị G= (V,E) có 10 đỉnh, đỉnh có bậc
Tìm số cạnh đồ thị?
• Đồ thị có kích thước ma trận liên kề ma trận
(104)Bài tập
• Đồ thị vịng có phải đồ thị phân đơi khơng? Giải thích,
(105)(106)Cây rừng (Tree and Forest)
• Định nghĩa. Ta gọi đồ thị vô hướng liên thơng khơng có
chu trình Đồ thị khơng có chu trình gọi rừng.
• Như vậy, rừng đồ thị mà thành phần liên thơng
một
T1
(107)VÍ DỤ
(108)Các tính chất cây
• Định lý Giả sử T=(V,E) đồ thị vô hướng n đỉnh Khi
đó mệnh đề sau tương đương:
(1) T cây;
(2) T khơng chứa chu trình có n-1 cạnh;
(3) T liên thơng có n-1 cạnh;
(4) T liên thơng cạnh cầu;
(5) Hai đỉnh T nối với đường đơn;
(109)Đồ thị phẳng
(Planar Graphs)
• Định nghĩa Đồ thị vơ hướng G gọi đồ thị phẳng
nếu vẽ mặt phẳng cho khơng có hai cạnh cắt ngồi đỉnh
(110)Các đồ thị Platonic phẳng
(111)(112)4-Cube có đồ thị phẳng không?
(113)K3,3 K5 khơng đồ thị phẳng
• Đồ thị K3,3 K5 không đồ thị phẳng
(114)Khảo sát đồ thị phẳng
• Để khảo sát đồ thị phẳng ta hạn chế đơn đồ
thị Bởi vì:
• Nếu đồ thị phẳng có cạnh lặp khuyên (loop)
– Chập cạnh lặp lại thành cạnh đơn – Loại bỏ tất khuyên
(115)Khảo sát đồ thị phẳng
• Ví dụ: Xét đồ thị phẳng • Loại bỏ khuyên cạnh lặp:
(116)Cơng thức Euler Euler's Formula
• Nếu G đồ thị phẳng, cách vẽ phẳng G chia
mặt phẳng thành vùng mà ta gọi diện
(faces)
• Một diện khơng bị chặn gọi
là diện vơ hạn
• Giả sử f diện đó, ta gọi bậc của f , ký hiệu
deg(f ), số cạnh đường vịng quanh biên diện f
• Nếu tất diện có bậc (chẳng hạn, g), G
(117)Cơng thức Euler Euler's Formula
• Ví dụ: Đồ thị G sau có diện, f4 diện vơ hạn
• Dễ thấy đồ thị trên:
deg(f1)=3, deg(f2)=4, deg(f3)=9, deg(f4)=8
• Nhận thấy tổng bậc diện lần số cạnh của đồ
(118)Cơng thức Euler
• Cơng thức Euler cho biết mối liên hệ số đỉnh, số cạnh số diện
của đồ thị phẳng Nếu n, m, và f theo thứ tự số đỉnh, cạnh diện đồ thị phẳng liên thơng ta có n – m+f =
• Cơng thức Euler khẳng định cách vẽ phẳng đồ thị
phẳng liên thông cho số diện là:f= – n + m.
• Định lý (Euler's Formula) Cho G đồ thị liên thông phẳng, n, m và f số đỉnh, số cạnh diện đồ thị phẳng Khi n –
(119)Chứng minh cơng thức Euler
• Chứng minh. Qui nạp theo số cạnh m
• Cơ sở qui nạp: Khi m=0, ta có n=1 f=1 Do n–m+f = 2.
• Bước qui nạp: Giả sử khẳng định cho đồ thị phẳng liên
thơng có m cạnh, m 1, giả sử G có m
cạnh Nếu G cây, n=m+1 f=1 cơng thức Mặt khác, G khơng gọi e cạnh chu trình
của G xét G\e Đồ thị phẳng liên thơng G\e có n đỉnh, m-1 cạnh, f – diện, theo giả thiết qui nạp
n – (m – 1) + (f – 1) = 2
(120)Hệ quả
• Hệ 1. Giả sử G đơn đồ thị phẳng liên thông với n đỉnh,
trong n ≥ 3 m cạnh Khi m ≤ 3n –
• Chứng minh. Đối với đồ thị G có f diện, từ bổ đề bắt
tay, suy 2m = (tổng bậc diện) ≥ 3f (bởi bậc diện đơn đồ thị 3), f ≤ 2/3 m
• Kết hợp với cơng thức Euler
n – m + f = ta thu
m – n + ≤ 2/3 m.
Từ suy
(121)K5 khơng đồ thị phẳng
• Hệ K5 không đồ thị phẳng.
• Chứng minh Giả sử K5 là đồ thị phẳng Do K5 có đỉnh
và 10 cạnh, nên từ bổ đề suy
10<= (3 × 5) – =
Điều phi lý chứng minh K5 không đồ thị phẳng
• Chú ý: K3,3 có đỉnh cạnh, bất đẳng thức ≤ (3
(122)Hệ 3
• Hệ Giả sử G đơn đồ thị phẳng liên thông với n đỉnh m
cạnh khơng chứa tam giác Khi m ≤ 2n –
• Chứng minh. Giả sử G có f diện, từ bổ đề bắt
tay đồ thị phẳng ta có 2m ≥ 4 f (bởi bậc diện đơn đồ thị không chứa tam giác 4), f ≤ 1/2 m
• Theo cơng thức Euler ta có
n – m + f = hay m – n + = f.
Từ ta thu
(123)K3,3 khơng đồ thị phẳng
• Hệ 4. K3,3 khơng đồ thị phẳng
• Chứng minh Giả sử K3,3 phẳng Do K3,3 có đỉnh,
cạnh không chứa tam giác, nên từ hệ suy ≤ (2×6) – =
Điều phi lý chứng tỏ K3,3 không đồ thị phẳng
(124)Bài toán xây dựng hệ thống cung cấp lượng
• Tìm cách xây dựng hệ thống đường ống nối nguồn cung cấp khí
(125)Chứng minh Q4 không phẳng
Ta chứng minh Q4 không đồ thị phẳng
• Trước hết ta tính số đỉnh cạnh:
|V | = 16 (gấp đôi số đỉnh 3-cube)
|E | = 32 (hai lần số cạnh 3-cube cộng với số đỉnh 3-cube)
• Bây giờ, giả sử 4-cube đồ thị phẳng, theo hệ
quả ta phải có:
(126)Nhận biết đồ thị phẳng
• Các hệ điều kiện cần để đồ thị phẳng
chỉ sử dụng để đồ thị khơng phải phẳng Có nhiều đồ thị thoả mãn hệ phẳng Vì ta cần đưa tiêu chuẩn nhận biết đồ thị phẳng Ta bắt đầu số nhận xét
• Nhận xét 1
– Khơng phải đồ thị phẳng
– Ví dụ, ta chứng minh K5 K3,3 không phẳng
• Nhận xét 2
– Nếu G đồ thị phẳng đồ thị phẳng; – Ta thường sử dụng dạng phủ định
(127)• Ví dụ: Đồ thị G1 chứa K5 đồ thị con, đồ thị
G2 chứa K3,3 đồ thị con, nên G1 G2 không đồ thị phẳng:
(128)Nhận xét
• Nhận xét 3.
– Nếu G phẳng cách chia cạnh G đồ thị phẳng
– Nhận xét 3a: Nếu G thu cách chia cạnh đồ thị không
phẳng khơng đồ thị phẳng
• Ví dụ: Đồ thị G3 thu từ K5 cịn G4 thu từ K3,3
G3 : G4:
• Từ nhận xét (2a) (3a) ta suy đồ thị G chứa đồ thị thu
(129)Nhận biết đồ thị phẳng
• Định nghĩa Ta gọi phép chia cạnh (u,v) đồ thị G việc
thêm vào G đỉnh w, loại bỏ cạnh (u,v) thêm vào hai cạnh (u,w) (w,v)
• Định nghĩa. Hai đồ thị G H gọi đồng phơi
(homeomorphic) ta thu chúng từ đồ thị phép chia cạnh
• Ví dụ:
(130)Định lý Kuratowski
• Định lý Kuratowski (1930) Đồ thị G đồ thị phẳng
khi khơng chứa đồ thị đồng phơi với K5 K3, 3
• Ví dụ: Đồ thị Petersen khơng đồ thị phẳng đồng
phôi với đồ thị K5
Đồ thị Petersen K
(131)Đồ thị Euler
• Định nghĩa
(132)Bài tốn cầu Kưnigsberg
• Hiện Kaliningrad (thuộc Nga) • Sơng Pregel
A B
C
D
(133)Bài toán cầu Kưnigsberg
• Tồn hay cách qua tất cầu
đúng lần lại quay vị trí xuất phát?
A
B
C
D
A
B
D
(134)Đường chu trình Euler
• Định nghĩa: Xét đồ thị liên thơng G
Một đường Euler G đường đơn giản có
đỉnh bắt đầu khác đỉnh kết thúc qua tất cạnh G Lúc G gọi đường Euler
Một chu trình Euler G chu trình đơn giản
qua tất cạnh G Lúc G cịn gọi chu trình Euler
(135)Đường chu trình Euler
• Định lý 2.1: (Định lý Euler 1)
• Cho đồ thị vơ hướng G liên thơng có đỉnh
Khi đó, G có chu trình Euler đỉnh G có bậc chẵn
A
B E
(136)Đường chu trình Euler
• Thuật tốn tìm chu trình Euler đồ thị G(V, E)
(137)(138)Đường chu trình Euler
0 1 1 0
1 1 1
1 1 1 1
0 1 1 0
0 1 0 1
0 1 1
1
1 6
(139)Đường chu trình Euler
0 1 0
0 1 1
1 1 1 1
0 1 1 0
0 1 0 1
0 1 1
1 6
(140)Đường chu trình Euler
0 1 0
0 0 1 1
1 0 1 1
0 1 1 0
0 1 0 1
0 1 1
1 6
(141)Đường chu trình Euler
0 0 0
0 0 1 1
0 0 1 1
0 1 1 0
0 1 0 1
0 1 1
1 6
(142)Đường chu trình Euler
0 0 0
0 0 1
0 0 1 1
0 1 0
0 1 0 1
0 1 1
1 6
(143)Đường chu trình Euler
0 0 0
0 0 1
0 0 0 1
0 0 0
0 1 0 1
0 1 1
1 6
(144)Đường chu trình Euler
0 0 0
0 0 1
0 0 0 0 0 0
0 1 0 1
0 0 1
1 6
(145)Đường chu trình Euler
0 0 0
0 0 1
0 0 0 0 0 0
0 1 0 0
0 0 0 6
(146)Đường chu trình Euler
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6
(147)Ví dụ: Tìm đường chu trình Euler
(148)Ví dụ: Tìm đường chu trình Euler
• H2: Đồ thị Euler
(149)Đường chu trình Euler
• Định lý 2.2 (Định lý Euler 2):
Cho đồ thi vô hướng G liên thơng có đỉnh Khi đó, G có đường Euler G có đỉnh bậc lẻ
A
B
E Đường Euler:
(150)(151)Đường chu trình Euler
• Định lý 2.3 (Định lý Euler 3):
Cho đồ thị có hướng G liên thơng có đỉnh Khi đó, G có chu trình Euler G cân
A
B E
(152)Đường chu trình Euler
• Định lý 2.4 (Định lý Euler 4):
Cho đồ thị có hướng G liên thơng có đỉnh Khi đó, G có đường Euler G có đỉnh a, b thỏa:
dout(a) = din(a) + din(b) = dout(b) +
(153)Đường chu trình Euler
A
B
C D
E Đường Euler:
(154)Định nghĩa:
Một đồ thị liên thông (liên thông yếu đồ thị có
hướng) có chứa đường Euler gọi đồ thị nửa Euler
• Hệ quả: Đồ thị liên thơng G nửa Euler
(155)Bài tập:
• Với giá trị n đồ thị sau có chu trình Euler
?
• Với giá trị m n đồ thị phân đôi đầy đủ
Km,n có:
(156)Đồ thị Hamilton
• Định nghĩa
(157)Đường chu trình Hamilton (1805-1865)
• Định nghĩa:
Xét đồ thị liên thơng G có đỉnh
Một đường Hamilton G đường sơ cấp
qua tất đỉnh G
Một chu trình Hamilton G chu trình sơ cấp
(158)Đồ thị Hamilton
• Đồ thị có hai đỉnh bậc 1 khơng đồ thị Hamilton
(159)Trò chơi vòng quanh giới
(Round-the-World Puzzle)
• Bạn cách qua tất đỉnh
của dodecahedron (thập nhị diện) đỉnh lần?`
Sir William Rowan Hamilton
(160)Ví dụ
(161)Ví dụ: CM Qn (n 3) đồ thị Hamilton
Chứng minh. Qui nạp theo n.
Cơ sở: n=3 đúng
Chuyển qui nạp: Giả sử Qn-1 hamilton Xét Qn:
x
y y’
x’ Ví dụ
x x
(162)Đường chu trình Hamilton
A
B
C D
E
A
B E
Đường Hamilton: ABECD
(163)Đường chu trình Hamilton
A B
C D
A B
Chu trình Hamilton: ABCDA
(164)Đường chu trình Hamilton
• Qui tắc tìm chu trình Hamilton
1 Nếu tồn đỉnh G có bậc G khơng có
chu trình Hamilton
2 Nếu đỉnh x có bậc cạnh tới x phải thuộc chu trình Hamilton
3 Chu trình Hamilton khơng chứa chu trình thực
4 Trong trình xây dựng chu trình Hamilton, sau lấy cạnh tới đỉnh x đặt vào chu trình
(165)Đường chu trình Hamilton
1
2
5
6
7
(166)Đường chu trình Hamilton
7
Xóa cạnh (1,5), (1,4),
(1,3), (1,7), (1,8), (1,9) (theo quy tắc 4)
Các đỉnh 3, 4, bậc 2,
đó cạnh (2,3), (3,4), (4,5), (5,6) phải thuộc chu trình Hamilton (quy tắc 2)
Chu trình con:
(167)Đường chu trình Hamilton
7
Chọn cạnh (1,2), (1,3) Xóa
các cạnh (1,4), (1,5), (1,6), (1,7), (1,8), (1,9) (quy tắc 4)
Xóa cạnh (2,3) để khơng tạo
chu trình (quy tắc 3)
Các đỉnh 4, 5, 6, 7, 8, có bậc
2 nên thuộc chu trình Hamilton (quy tắc 2)
(168)Ví dụ: Tìm chu trình đường Hamilton
• G3: Đồ thị Hamiton
(169)Thuật toán liệt kê tấc chu trình Hamilton
• Thuật tốn dựa sở thuật toán quay lui cho phép
(170)(171)(172)(173)(174)Đường chu trình Hamilton
• Định lý 2.5: Mọi đồ thị đầy đủ có chu trình
(175)Đường chu trình Hamilton
• Định lý 2.6: Cho đồ thị G Giả sử có k đỉnh G cho
nếu xóa k đỉnh với cạnh liên kết với chúng khỏi G đồ thị nhận có k thành phần Khi đó, G khơng có chu trình Hamilton
(176)Đường chu trình Hamilton
• Định lý 2.7 (Định lý Dirac):
Coi đồ thị G liên thơng có n đỉnh (n 3) Nếu
(177)Đường chu trình Hamilton
• Định lý 2.8 (tổng quát định lý 2.7):
(178)Đường chu trình Hamilton
• Định lý 2.9:
Mọi đồ thị có hướng đầy đủ có đường Hamilton
A B
C D
(179)Định nghĩa:
• Một đồ thị có chứa đường Hamilton gọi
đồ thị nửa Hamilton
• Định lý (Rédei): Nếu G đồ thị có hướng đầy đủ
thì G đồ thị nửa Hamilton
• Hệ quả: Nếu G đơn đồ thị có n đỉnh đỉnh
(180)• Định lý: Nếu G đồ thị phân đôi với hai tập đỉnh V1,
(181)Tóm tắt
Một đường Euler G đường đơn giản
có đỉnh bắt đầu khác đỉnh kết thúc qua tất cạnh G Khi G gọi đường Euler
Một chu trình Euler G chu trình đơn giản
(182)Tóm tắt
• Cho đồ thị vơ hướng G liên thơng có đỉnh
Khi đó, G có chu trình Euler đỉnh G có bậc chẵn
• Cho đồ thi vô hướng G liên thông có đỉnh
(183)Tóm tắt
• Cho đồ thị có hướng G liên thơng có đỉnh Khi đó,
G có chu trình Euler G cân
• Cho đồ thị có hướng G liên thơng có đỉnh Khi đó,
G có đường Euler G có đỉnh a, b thỏa:
dout(a) = din(a) + din(b) = dout(b) +
(184)Tóm tắt
• Một đường Hamilton G đường sơ cấp
qua tất đỉnh G
• Một chu trình Hamilton G chu trình sơ cấp
qua tất đỉnh G
• Chưa có điều kiện cần đủ để xác định chu trình
(185)Tutte Graph
(186)Đồ thị không nửa Hamilton
• Các đỉnh bậc phải đỉnh bắt đầu kết thúc
đường Hamilton
Đồ thị có ba đỉnh bậc
(187)Đồ thị không nửa Hamilton
• Đồ thị sau khơng nửa Hamilton.
• Chú ý: Phần khó chứng minh đồ thị Tutte
(188)Định lý tồn đường Hamilton
• Định lý Dirac: Nếu G đơn đồ thị vô hướng liên thông
với n3 đỉnh, v deg(v) n/2, G có chu trình
Hamilton
• Định lý Ore: Nếu G đơn đồ thị vô hướng liên thông với
(189)Paul Adrien Maurice Dirac 1902 - 1984
(USA)
Oystein Ore 1899 - 1968
(190)HAM-CIRCUIT NP-đầy đủ
• Gọi HAM-CIRCUIT toán:
– Cho đơn đồ thị vơ hướng G, hỏi G có chứa chu trình Hamilton
hay khơng?
• Bài tốn chứng minh thuộc lớp toán
NP-đầy đủ!
– Có nghĩa là, tìm thuật tốn để giải thời
(191)Chương
CÁC KHÁI NIỆM CƠ BẢN
1.1 Đồ thị thực tế 1.2 Các loại đồ thị
1.3 Bậc đỉnh 1.4 Đồ thị
1.5 Đồ thị đẳng cấu
1.6 Đường chu trình 1.7 Tính liên thông
(192)Tô màu đồ thị
Graph Coloring
(193)Tô màu đồ thị - Graph Coloring
(194)Tô màu đồ - Map Coloring
Ta muốn nhận biết nước cách tô màu
(195)Map Coloring
(196)Map Coloring
(197)Map Coloring
(198)Map Coloring
(199)Map Coloring
(200)Map Coloring