Professional Documents
Culture Documents
TRẦN HÀ SƠN
Ví dụ
Ví dụ
Hình: Đa đồ thị
Định nghĩa
Với v ∈ V , bậc của v , kí hiệu d(v ) là số cạnh kề với đỉnh v của G . Lưu ý
rằng khuyên được tính hai lần. Đỉnh với bậc 0 được gọi là đỉnh rời của đồ
thị.
Ví dụ
Đỉnh 1, 5 có bậc 2.
Đỉnh 2, 3, 4, 6 có bậc 3.
Chứng minh.
Gọi N là số cặp (v , e) ∈ V × E sao cho đỉnh v kề với cạnh e. Khi đó nếu
đếm theo đỉnh thì mỗi đỉnh v sẽ thuộc d(v ) cặp như vậy. Do đó
n
X
N= d(v ).
i=1
Nếu đếm theo số cạnh, thì mỗi cạnh e có hai đầu mút nên sẽ thuộc đúng
hai cặp. Do đó N = 2m.
Vậy ta có điều phải chứng minh.
TRẦN HÀ SƠN (HCMUS) Graph Theory Ngày 8 tháng 5 năm 2023 7 / 20
Đồ thị có hướng
Định nghĩa
Một đồ thị có hướng G là một bộ đôi G = (V , E ), với V là tập các đỉnh
và E là tập các cạnh. Mỗi cạnh là một bộ có thứ tự (v , w ) trong đó
w , v ∈ V . Cặp (v , w ) được gọi là cạnh có hướng của G đi từ v vào w . Có
thể thêm thành phần thứ ba d vào bộ (v , w ) thành (v , w , d) biểu diễn
trọng số của cung (v , w ).
Ví dụ
Định nghĩa
Cho đồ thị có hướng G = (V , E ).
Số các cạnh đi ra từ một đỉnh v được gọi là bậc ra của đỉnh v , kí
hiệu d + (v ).
Số các cạnh đi vào một đỉnh v được gọi là bậc vào của đỉnh v , kí
hiệu d − (v ).
Định nghĩa
Cho đồ thị có hướng G = (V , E ). Ma trận kề của đồ thị G là ma trận A
có kích thước |V | × |V |, trong đó mỗi cạnh e = (u, v ) tương ứng với phần
tử khác 0 ở vị trí hàng u cột v của ma trận A. Nghĩa là:
1, (u, v ) ∈ E
A[u, v ] =
0, (u, v ) ∈
/E
Ví dụ
0 1 1 0
1 0 1 1
1 1 0 0
0 1 0 0
TRẦN HÀ SƠN (HCMUS) Graph Theory Ngày 8 tháng 5 năm 2023 10 / 20
Biểu diễn đồ thị bởi ma trận kề
Ví dụ
0 1 1 0
0 0 1 1
0 0 0 0
0 0 0 0
Ví dụ
0 4 7 0
0 0 5 3
0 0 0 0
0 0 0 0
Định nghĩa
Cho đơn đồ thị có hướng G = (V , E ) trong đó V = {1, 2, . . . , n},
E = {e1 , e2 , . . . , em }. Ma trận liên thuộc đỉnh cạnh A của đồ thị G được
1, nếu i là đỉnh đầu của cung ej
xây dựng như sau: aij −1, nếu i là đỉnh cuối của cung ej
0, nếu i là không là đầu mút của cung ej
Ví dụ
Định nghĩa
Khi cần biểu diễn đồ thị có n đỉnh, m cạnh là đồ thị thưa(m < 6n), người
ta thường sử dụng danh sách kề để biểu diễn đồ thị. Danh sách kề của
đỉnh v là tập
Adj(v ) = {u : (u, v ) ∈ E }.
Ví dụ
Đỉnh Adj(v)
1 2, 3
2 1, 3, 4
3 1, 2
4 2
BFS là thuật toán cơ bản nhất trong đồ thị, được sử dụng để tìmđường đi
từ một nút bất kỳ đến một nút khác trong đồ thị.
Ý tưởng:
Bắt đầu, đưa nút gốc vào hàng đợi.
Đánh dấu nút gốc đã thăm (visited).
Lặp cho đến khi hàng đợi rỗng.
- Lấy nút đầu hàng đợi và xét mọi nút kề với nó.
- Nếu nút kề chưa được thăm, đưa vào hàng đợi và đánh dấu đã thăm.
DFS là thuật toán để duyệt cây trên đồ thị hoặc cấu trúc dữ liệudạng cây.
Ý tưởng.
Tại nút đang xét. Nếu chưa được thăm, đánh dấu đã thăm và lặp lại trên
tất cả các nút lân cận của nó. Lặp lại cho đến khi tất cả các nút được
thăm hoặc nút tìm được nút cần thăm.
Trong quá trình thực hiện thuật toán, với mỗi đỉnh v ta sẽ lưu trữ nhãn
các đỉnh gồm các thông tin:
1 k[v ]: Biến Boolean nhận True nếu tìm được đường đi ngắn nhất từ s
đến v , ban đầu được khởi tạo là False.
2 d[v ]: Lưu khoảng cách ngắn nhật hiện biết từ s đến v . Ban đầu được
khởi tạo
+∞, v ̸= s
d[v ] =
0, v = s.
3 prev [v ]: Là đỉnh trước đỉnh v trong đường đi có độ dài d[v ], ban đầu
được khởi tạo là rỗng.