Chương 5. Đồ thị

You might also like

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

TOÁN RỜI RẠC

CHƯƠNG 5.

ĐỒ THỊ

ThS.Trần Đình Sơn – Email: tdson@vku.udn.vn– Mobile: 0903591955


CHƯƠNG 5. ĐỒ THỊ
5.1. Một số định nghĩa và khái niệm
5.1.1. Đồ thị vô hướng
5.1.2. Đồ thị có hướng
5.1.3. Đồ thị có trọng số
5.2. Bài toán tìm đường đi ngắn nhất
5.2.1. Bài toán
5.2.2. Thuật toán DIJKSTRA

ThS.Trần Đình Sơn – Email: tdson@vku.udn.vn– Mobile: 0903591955


5.1. MỘT SỐ ĐỊNH NGHĨA VÀ KHÁI NIỆM
5.1.1. Đồ thị vô hướng
5.1.2. Đồ thị có hướng
5.1.3. Đồ thị có trọng số

ThS.Trần Đình Sơn – Email: tdson@vku.udn.vn– Mobile: 0903591955


5.1. MỘT SỐ ĐỊNH NGHĨA VÀ KHÁI NIỆM
- Đồ thị là một công cụ rất hữu hiệu cho phép giải quyết các bài toán trong
nhiều lĩnh vực khác nhau. Những tư tưởng cơ bản của lý thuyết đồ thị
được đề xuất vào những năm đầu của thế kỷ 18 bởi Leonhard Euler (một
nhà toán học lỗi lạc người Thụy Sỹ).
- Đồ thị là một cấu trúc rời rạc gồm 2 thành phần chính là đỉnh và cạnh
(cung).
- Chúng ta sử dụng tập hợp để biểu diễn và xử lý đồ thị (trừu tượng).
- Tuy nhiên, để dễ hình dung đồ thị, chúng ta có thể biểu diễn đồ thị bằng
sơ đồ (trực quan).
- Ví dụ: 5 3
A D E
1
C
4 B F
2
Đơn đồ thị Đa đồ thị
- Chúng ta chỉ làm việc với đơn đồ thị.
ThS.Trần Đình Sơn – Email: tdson@vku.udn.vn– Mobile: 0903591955
5.1. MỘT SỐ ĐỊNH NGHĨA VÀ KHÁI NIỆM
5.1.1. Đồ thị vô hướng
- Định nghĩa (bằng tập hợp): Một đồ thị vô hướng 𝐺 được định nghĩa bằng
một bộ gồm 2 thành phần, ký hiệu 𝐺 = 𝑉, 𝐸 , trong đó:
• 𝑉 là tập hợp các đỉnh (mỗi phần tử của 𝑉 tương ứng là 1 đỉnh của 𝐺);
• 𝐸 là tập hợp các cạnh vô hướng (mỗi phần tử của 𝐸 tương ứng là 1 cạnh của 𝐺)
và 𝐸 = 𝑚, 𝑛 |𝑚, 𝑛 ∈ 𝑉 .
- Chúng ta sử dụng ký hiệu phần tử của 𝑉 để gán nhãn (đặt tên) cho đỉnh
tương ứng của 𝐺.
- Ví dụ: Với 𝑉 = 𝑚, 𝑛, 𝑘, … ta nói 𝐺 có các đỉnh 𝑚, 𝑛, 𝑘, …
- Mỗi cạnh vô hướng 𝑚, 𝑛 thể hiện quan hệ giữa 2 đỉnh 𝑚, 𝑛 của 𝐺 với
nhau.
*Lưu ý: 𝑚, 𝑛 là cạnh vô hướng, do đó 𝑚, 𝑛 = 𝑛, 𝑚 .
- Ví dụ: Cho đồ thị vô hướng 𝐺 = 𝑉, 𝐸 , trong đó:
• 𝑉 = 𝑎, 𝑏, 𝑓, ℎ, 𝑚, 𝑛, 𝑘
• 𝐸 = 𝑎, 𝑏 , 𝑎, 𝑓 , 𝑎, ℎ , 𝑏, 𝑓 , 𝑏, ℎ , 𝑓, 𝑚 , ℎ, 𝑚 , ℎ, 𝑘 , 𝑛, 𝑘 , 𝑘, 𝑚
ThS.Trần Đình Sơn – Email: tdson@vku.udn.vn– Mobile: 0903591955
5.1. MỘT SỐ ĐỊNH NGHĨA VÀ KHÁI NIỆM
5.1.1. Đồ thị vô hướng
- Khi biểu diễn đồ thị vô hướng bằng sơ đồ, có sự tương ứng:
• 𝑛 ∊ 𝑉 tương ứng ∙ 𝑛 ∘ 𝑛 𝑛 𝑛 𝑛
• 𝑚, 𝑛 tương ứng 𝑚 ∙ ∙𝑛
- Ví dụ: Với đồ thị vô hướng 𝐺 = 𝑉, 𝐸 đã định nghĩa ở trên, trong đó:
• 𝑉 = 𝑎, 𝑏, 𝑓, ℎ, 𝑚, 𝑛, 𝑘
• 𝐸 = 𝑎, 𝑏 , 𝑎, 𝑓 , 𝑎, ℎ , 𝑏, 𝑓 , 𝑏, ℎ , 𝑓, 𝑚 , ℎ, 𝑚 , ℎ, 𝑘 , 𝑛, 𝑘 , 𝑘, 𝑚
ta có thể biểu diễn bằng sơ đồ như sau:

𝑎 𝑓 𝑚
ℎ 𝑛
𝑏 𝑘

ThS.Trần Đình Sơn – Email: tdson@vku.udn.vn– Mobile: 0903591955


5.1. MỘT SỐ ĐỊNH NGHĨA VÀ KHÁI NIỆM
5.1.1. Đồ thị vô hướng
- Cho đồ thị vô hướng 𝐺 = 𝑉, 𝐸 .
• Tập hợp các đỉnh kề của đỉnh 𝑛 ∊ 𝑉: 𝑇(𝑛) = 𝑚 ∊ 𝑉| 𝑛, 𝑚 ∈ 𝐸 .
• Bậc của đỉnh 𝑛 ∊ 𝑉: 𝑑𝑒𝑔(𝑛) = 𝑇(𝑛) .
(đỉnh có bậc bằng 0 gọi là đỉnh cô lập, đỉnh có bậc bằng 1 gọi là đỉnh treo)
- Tính chất: Cho đồ thị vô hướng 𝐺 = 𝑉, 𝐸 . Lúc đó σ𝑛∊𝑉 𝑑𝑒𝑔(𝑛) = 2 𝐸 .
- Ví dụ: Với đồ thị vô hướng 𝐺 = 𝑉, 𝐸 đã định nghĩa ở trên, ta có:
• 𝑇(𝑎) = 𝑏, 𝑓, ℎ ; 𝑇(𝑏) = 𝑎, 𝑓, ℎ ; 𝑇(𝑓) = 𝑎, 𝑏, 𝑚 ;
𝑇(ℎ) = 𝑎, 𝑏, 𝑚, 𝑘 ; 𝑇(𝑚) = 𝑓, ℎ, 𝑘 ; 𝑇(𝑛) = 𝑘 ; 𝑇(𝑘) = ℎ, 𝑛, 𝑚 .
• 𝑑𝑒𝑔 𝑎 = 3; 𝑑𝑒𝑔 𝑏 = 3; 𝑑𝑒𝑔 𝑓 = 3; 𝑑𝑒𝑔 ℎ = 4; 𝑓 𝑚
𝑎
𝑑𝑒𝑔(𝑚) = 3; 𝑑𝑒𝑔(𝑛) = 1; 𝑑𝑒𝑔(𝑘) = 3. ℎ 𝑛
𝑏 𝑘
- Hệ quả: Trong một đồ thị vô hướng, số lượng đỉnh có bậc là số lẻ là một số
chẵn.
ThS.Trần Đình Sơn – Email: tdson@vku.udn.vn– Mobile: 0903591955
5.1. MỘT SỐ ĐỊNH NGHĨA VÀ KHÁI NIỆM
5.1.1. Đồ thị vô hướng
- Cho đồ thị vô hướng 𝐺 = 𝑉, 𝐸 .
• Đường đi 𝑝 từ đỉnh 𝑛0 ∈ 𝑉 đến đỉnh 𝑛𝑘 ∈ 𝑉 là một dãy liên tiếp các cạnh
𝑛0 , 𝑛1 , 𝑛1 , 𝑛2 , … , 𝑛𝑘−1 , 𝑛𝑘 , trong đó 𝑛0 được gọi là đỉnh đầu và 𝑛𝑘 được
gọi là đỉnh cuối của đường đi 𝑝.
Ký hiệu: 𝑝: 𝑛0 → 𝑛1 → 𝑛2 → ⋯ → 𝑛𝑘−1 → 𝑛𝑘 hay 𝑝(𝑛0 , 𝑛𝑘 ).
• Chu trình là đường đi có đỉnh đầu và đỉnh cuối trùng nhau.
- Độ dài đường đi 𝑝 có thể được tính bằng số lượng cạnh trong đường đi 𝑝.
*Lưu ý: Trong một đồ thị vô hướng
• Nếu từ đỉnh này đến đỉnh kia có đường đi thì từ đỉnh kia đến đỉnh này cũng có
đường đi (do đó ta có thể nói đường đi giữa 2 đỉnh).
• Từ đỉnh này đến đỉnh kia có thể: không có đường đi, hoặc có duy nhất một
đường đi, hoặc có nhiều đường đi.
• Trong một đường đi, mỗi cạnh có thể xuất hiện duy nhất một lần (gọi là đường
đi đơn) hoặc xuất hiện nhiều lần.
ThS.Trần Đình Sơn – Email: tdson@vku.udn.vn– Mobile: 0903591955
5.1. MỘT SỐ ĐỊNH NGHĨA VÀ KHÁI NIỆM
5.1.1. Đồ thị vô hướng
- Ví dụ: Với đồ thị vô hướng 𝐺 = 𝑉, 𝐸 đã định nghĩa ở trên, ta có:
• Đường đi 𝑝1 : 𝑛 → 𝑘 có độ dài 1
• Từ 𝑎 đến 𝑛 có đường đi và từ 𝑛 đến 𝑎 cũng có đường đi:
𝑝2 : 𝑎 → 𝑏 → 𝑓 → 𝑚 → ℎ → 𝑘 → 𝑛 có độ dài 6
𝑝3 : 𝑛 → 𝑘 → ℎ → 𝑚 → 𝑓 → 𝑏 → 𝑎 có độ dài 6
• Từ 𝑎 đến 𝑛 có nhiều đường đi:
𝑝4 : 𝑎 → 𝑓 → 𝑚 → 𝑘 → 𝑛 có độ dài 4 𝑎 𝑓 𝑚
𝑝5 : 𝑎 → 𝑏 → ℎ → 𝑘 → 𝑛 có độ dài 4 ℎ 𝑛
𝑝6 : 𝑎 → ℎ → 𝑘 → 𝑛 có độ dài 3 𝑏 𝑘
• Trong đường đi có cạnh xuất hiện nhiều lần:
𝑝7 : 𝑎 → 𝑏 → ℎ → 𝑎 → 𝑏 → 𝑓 → 𝑎 → 𝑏 → ℎ có độ dài 8
• Chu trình:
𝑝8 : 𝑏 → 𝑓 → 𝑎 → 𝑏 có độ dài 3
𝑝9 : ℎ → 𝑚 → 𝑓 → 𝑎 → ℎ có độ dài 4
𝑝10 : 𝑘 → ℎ → 𝑏 → 𝑓 → 𝑚 → 𝑘 có độ dài 5
ThS.Trần Đình Sơn – Email: tdson@vku.udn.vn– Mobile: 0903591955
5.1. MỘT SỐ ĐỊNH NGHĨA VÀ KHÁI NIỆM
5.1.1. Đồ thị vô hướng
- Cho đồ thị vô hướng 𝐺 = 𝑉, 𝐸 .
• 𝐺 là đồ thị liên thông (hay ta nói 𝐺 có tính liên thông) khi và chỉ khi giữa 2
đỉnh bất kỳ của 𝐺 đều có đường đi.
• Đồ thị vô hướng 𝐺 ′ = 𝑉 ′ , 𝐸 ′ được gọi là đồ thị con của 𝐺 = 𝑉, 𝐸 khi và chỉ
khi 𝑉 ′ ⊆ 𝑉 hoặc 𝐸 ′ ⊆ 𝐸.
- Cho 𝐺 = 𝑉, 𝐸 là đồ thị vô hướng không có tính liên thông. Lúc đó ta có
thể phân rã 𝐺 = 𝑉, 𝐸 thành các đồ thị con liên thông của 𝐺 sao cho các đồ
thị con này đôi một không có đỉnh chung. Mỗi đồ thị con liên thông của 𝐺
được gọi là thành phần liên thông của của 𝐺.
• Tức là: 𝑉 = 𝑉1 ∪ 𝑉2 ∪ ⋯ ∪ 𝑉𝑛 và 𝐸 = 𝐸1 ∪ 𝐸2 ∪ ⋯ ∪ 𝐸𝑛
với 𝐺1 = 𝑉1 , 𝐸1 , 𝐺2 = (𝑉2 , 𝐸2 ),…, 𝐺𝑛 = (𝑉𝑛 , 𝐸𝑛 ) là 𝑛 đồ thị con liên thông
của 𝐺 sao cho 𝑉𝑖 ∩ 𝑉𝑗 = ∅ với 𝑖 ≠ 𝑗 (𝑖, 𝑗 = 1, 𝑛).
• Mỗi đồ thị con 𝐺1 = 𝑉1 , 𝐸1 , 𝐺2 = (𝑉2 , 𝐸2 ),…, 𝐺𝑛 = (𝑉𝑛 , 𝐸𝑛 ) được gọi là
thành phần liên thông của 𝐺.
ThS.Trần Đình Sơn – Email: tdson@vku.udn.vn– Mobile: 0903591955
5.1. MỘT SỐ ĐỊNH NGHĨA VÀ KHÁI NIỆM
5.1.1. Đồ thị vô hướng
- Ví dụ: Với đồ thị vô hướng 𝐺 = 𝑉, 𝐸 đã định nghĩa ở trên, trong đó:
•𝑉 = 𝑎, 𝑏, 𝑓, ℎ, 𝑚, 𝑛, 𝑘
•𝐸 = 𝑎, 𝑏 , 𝑎, 𝑓 , 𝑎, ℎ , 𝑏, 𝑓 , 𝑏, ℎ , 𝑓, 𝑚 , ℎ, 𝑚 , ℎ, 𝑘 , 𝑛, 𝑘 , 𝑘, 𝑚
Ta có:
𝑓 𝑚
• 𝐺 là đồ thị liên thông. 𝐺 𝑎
𝑛

• Một số đồ thị con của 𝐺 = 𝑉, 𝐸 : 𝑏 𝑘
𝐺1 = 𝑉1 , 𝐸1 với 𝑉1 = 𝑎, 𝑏, 𝑓, ℎ, 𝑚, 𝑛, 𝑘
và 𝐸1 = 𝑎, 𝑏 , 𝑎, 𝑓 , 𝑎, ℎ , 𝑏, ℎ , 𝑘, 𝑚
𝑓 𝑚
𝑎
Rõ ràng 𝐺1 = 𝑉1 , 𝐸1 không có tính liên thông
𝑛

và 𝐺1 = 𝑉1 , 𝐸1 có 3 thành phần liên thông. 𝐺1 𝑏 𝑘
𝐺2 = 𝑉2 , 𝐸2 với 𝑉2 = 𝑏, ℎ, 𝑚, 𝑘 𝑚
và 𝐸2 = { 𝑏, ℎ , ℎ, 𝑚 , ℎ, 𝑘 , 𝑘, 𝑚 }

Rõ ràng 𝐺2 = 𝑉2 , 𝐸2 là đồ thị liên thông. 𝐺2 𝑏 𝑘

ThS.Trần Đình Sơn – Email: tdson@vku.udn.vn– Mobile: 0903591955


5.1. MỘT SỐ ĐỊNH NGHĨA VÀ KHÁI NIỆM
5.1.2. Đồ thị có hướng
- Định nghĩa (bằng tập hợp): Một đồ thị có hướng 𝐺 được định nghĩa bằng
một bộ gồm 2 thành phần, ký hiệu 𝐺 = 𝑉, 𝐸 , trong đó:
• 𝑉 là tập hợp các đỉnh (mỗi phần tử của 𝑉 tương ứng là 1 đỉnh của 𝐺);
• 𝐸 là tập hợp các cạnh có hướng (mỗi phần tử của 𝐸 tương ứng là 1 cạnh của 𝐺)
và 𝐸 = (𝑚, 𝑛)|𝑚, 𝑛 ∈ 𝑉 ((𝑚, 𝑛) là cạnh có hướng từ 𝑚 đến 𝑛).
- Chúng ta sử dụng ký hiệu phần tử của 𝑉 để gán nhãn (đặt tên) cho đỉnh
tương ứng của 𝐺.
- Ví dụ: Với 𝑉 = 𝑚, 𝑛, 𝑘, … ta nói 𝐺 có các đỉnh 𝑚, 𝑛, 𝑘, …
- Mỗi cạnh có hướng (𝑚, 𝑛) thể hiện quan hệ giữa đỉnh 𝑚 với 𝑛 của 𝐺.
*Lưu ý:(𝑚, 𝑛) là cạnh có hướng, do đó (𝑚, 𝑛) ≠ (𝑛, 𝑚).
- Ví dụ: Cho đồ thị có hướng 𝐺 = 𝑉, 𝐸 , trong đó:
• 𝑉 = 𝑎, 𝑏, 𝑓, ℎ, 𝑚, 𝑛, 𝑘
• 𝐸 = 𝑎, 𝑏 , 𝑎, 𝑓 , 𝑎, ℎ , 𝑏, 𝑓 , 𝑏, ℎ , 𝑓, 𝑚 , ℎ, 𝑚 , ℎ, 𝑘 , 𝑛, 𝑘 , 𝑘, 𝑚
ThS.Trần Đình Sơn – Email: tdson@vku.udn.vn– Mobile: 0903591955
5.1. MỘT SỐ ĐỊNH NGHĨA VÀ KHÁI NIỆM
5.1.2. Đồ thị có hướng
- Khi biểu diễn đồ thị có hướng bằng sơ đồ, có sự tương ứng:
• 𝑛 ∊ 𝑉 tương ứng ∙ 𝑛 ∘ 𝑛 𝑛 𝑛 𝑛
• 𝑚, 𝑛 tương ứng 𝑚 ∙ ∙𝑛
- Ví dụ: Với đồ thị có hướng 𝐺 = 𝑉, 𝐸 đã định nghĩa ở trên, trong đó:
• 𝑉 = 𝑎, 𝑏, 𝑓, ℎ, 𝑚, 𝑛, 𝑘
• 𝐸 = 𝑎, 𝑏 , 𝑎, 𝑓 , 𝑎, ℎ , 𝑏, 𝑓 , 𝑏, ℎ , 𝑓, 𝑚 , ℎ, 𝑚 , ℎ, 𝑘 , 𝑛, 𝑘 , 𝑘, 𝑚
ta có thể biểu diễn bằng sơ đồ như sau:

𝑎 𝑓 𝑚
ℎ 𝑛
𝑏 𝑘

ThS.Trần Đình Sơn – Email: tdson@vku.udn.vn– Mobile: 0903591955


5.1. MỘT SỐ ĐỊNH NGHĨA VÀ KHÁI NIỆM
5.1.2. Đồ thị có hướng
- Cho đồ thị có hướng 𝐺 = 𝑉, 𝐸 .
• Tập hợp các đỉnh kề của đỉnh 𝑛 ∈ 𝑉:
𝑇 + 𝑛 = 𝑚 ∊ 𝑉| 𝑛, 𝑚 ∈ 𝐸
(𝑇 + 𝑛 còn được gọi là tập hợp các đỉnh con của 𝑛)
𝑇 − (𝑛) = 𝑚 ∈ 𝑉| 𝑚, 𝑛 ∈ 𝐸
(𝑇 − 𝑛 còn được gọi là tập hợp các đỉnh cha của 𝑛)
• Bậc của đỉnh 𝑛 ∈ 𝑉:
Bán bậc ra: 𝑑𝑒𝑔+ (𝑛) = 𝑇 + 𝑛 .
Bán bậc vào: 𝑑𝑒𝑔− (𝑛) = 𝑇 − 𝑛 .
- Tính chất:
Cho đồ thị có hướng 𝐺 = 𝑉, 𝐸 .
Lúc đó σ𝑛∊𝑉 𝑑𝑒𝑔+ (𝑛) = σ𝑛∊𝑉 𝑑𝑒𝑔− (𝑛) = 𝐸 .

ThS.Trần Đình Sơn – Email: tdson@vku.udn.vn– Mobile: 0903591955


5.1. MỘT SỐ ĐỊNH NGHĨA VÀ KHÁI NIỆM
5.1.2. Đồ thị có hướng
- Ví dụ: Với đồ thị có hướng 𝐺 = 𝑉, 𝐸 đã định nghĩa ở trên, ta có:
• 𝑇+ 𝑎 = 𝑏, 𝑓, ℎ ; 𝑇 − 𝑎 = ∅; 𝑇 + 𝑏 = 𝑓, ℎ ; 𝑇 − 𝑏 = 𝑎 ;
𝑇+ 𝑓 = 𝑚 ; 𝑇 − 𝑓 = 𝑎, 𝑏 ; 𝑇 + ℎ = 𝑚, 𝑘 ; 𝑇 − ℎ = 𝑎, 𝑏 ;
𝑇 + 𝑚 = ∅; 𝑇 − 𝑚 = 𝑓, ℎ, 𝑘 ; 𝑇 + 𝑛 = 𝑘 ; 𝑇 − 𝑛 = ∅;
𝑇+ 𝑘 = 𝑚 ; 𝑇 − (𝑘) = ℎ, 𝑛 .
• 𝑑𝑒𝑔+ 𝑎 = 3; 𝑑𝑒𝑔− 𝑎 = 0; 𝑑𝑒𝑔+ 𝑏 = 2; 𝑑𝑒𝑔− 𝑏 = 1;
𝑑𝑒𝑔+ 𝑚 = 0; 𝑑𝑒𝑔− 𝑚 = 3; 𝑑𝑒𝑔+ 𝑛 = 1; 𝑑𝑒𝑔− 𝑛 = 0;
𝑑𝑒𝑔+ (𝑘) = 1; 𝑑𝑒𝑔− (𝑘) = 2.

𝑎 𝑓 𝑚
ℎ 𝑛
𝑏 𝑘

ThS.Trần Đình Sơn – Email: tdson@vku.udn.vn– Mobile: 0903591955


5.1. MỘT SỐ ĐỊNH NGHĨA VÀ KHÁI NIỆM
5.1.2. Đồ thị có hướng
- Cho đồ thị có hướng 𝐺 = 𝑉, 𝐸 .
• Đường đi 𝑝 từ đỉnh 𝑛0 ∈ 𝑉 đến đỉnh 𝑛𝑘 ∈ 𝑉 là một dãy liên tiếp các cạnh
𝑛0 , 𝑛1 , 𝑛1 , 𝑛2 , … , 𝑛𝑘−1 , 𝑛𝑘 , trong đó 𝑛0 được gọi là đỉnh đầu và 𝑛𝑘 được
gọi là đỉnh cuối của đường đi 𝑝.
Ký hiệu: 𝑝: 𝑛0 → 𝑛1 → 𝑛2 → ⋯ → 𝑛𝑘−1 → 𝑛𝑘 hay 𝑝(𝑛0 , 𝑛𝑘 ).
• Chu trình là đường đi có đỉnh đầu và đỉnh cuối trùng nhau.
- Độ dài đường đi 𝑝 có thể được tính bằng số lượng cạnh trong đường đi 𝑝.
*Lưu ý: Trong một đồ thị có hướng
• Từ đỉnh này đến đỉnh kia có đường đi, nhưng từ đỉnh kia đến đỉnh này có thể
không có đường đi (đường đi một chiều).
• Từ đỉnh này đến đỉnh kia có thể: không có đường đi, hoặc có duy nhất một
đường đi, hoặc có nhiều đường đi.
• Trong một đường đi, mỗi cạnh có thể xuất hiện duy nhất một lần (gọi là đường
đi đơn) hoặc xuất hiện nhiều lần.
ThS.Trần Đình Sơn – Email: tdson@vku.udn.vn– Mobile: 0903591955
5.1. MỘT SỐ ĐỊNH NGHĨA VÀ KHÁI NIỆM
5.1.2. Đồ thị có hướng
- Ví dụ: Với đồ thị có hướng 𝐺 = 𝑉, 𝐸 đã định nghĩa ở trên, ta có:
• Đường đi 𝑝1 : 𝑛 → 𝑘 có độ dài 1
• Từ a đến 𝑚 có đường đi 𝑝2 : 𝑎 → 𝑏 → 𝑓 → 𝑚 (𝑝2 có độ dài 3), nhưng từ 𝑚 đến
𝑎 không có đường đi (từ 𝑚 đến các đỉnh khác cũng không có đường đi)
• Từ 𝑛 đến 𝑚 có duy nhất một đường đi 𝑝3 : 𝑛 → 𝑘 →m (𝑝3 có độ dài 2),
• Từ 𝑎 đến 𝑚 có nhiều đường đi:
𝑝4 : 𝑎 → 𝑓 → 𝑚 có độ dài 2 𝑓
𝑎 𝑚
𝑝5 : 𝑎 → ℎ → 𝑚 có độ dài 2 𝑛

𝑝6 : 𝑎 → 𝑏 → ℎ → 𝑚 có độ dài 3 𝑏 𝑘
𝑝7 : 𝑎 → 𝑏 → ℎ → 𝑘 → 𝑚 có độ dài 4
- 𝐺 không có đường đi mà trong đó có cạnh xuất hiện nhiều lần.
- 𝐺 không có chu trình.
ThS.Trần Đình Sơn – Email: tdson@vku.udn.vn– Mobile: 0903591955
5.1. MỘT SỐ ĐỊNH NGHĨA VÀ KHÁI NIỆM
5.1.2. Đồ thị có hướng
- Cho đồ thị có hướng 𝐺 = 𝑉, 𝐸 .
• 𝐺 là đồ thị liên thông mạnh (hay ta nói 𝐺 có tính liên thông mạnh) khi và chỉ
khi với 2 đỉnh bất kỳ của 𝐺 đều có đường đi từ đỉnh này đến đỉnh kia, hoặc có
đường đi từ đỉnh kia đến đỉnh này.
• 𝐺 là đồ thị liên thông yếu (hay ta nói 𝐺 có tính liên thông yếu) khi và chỉ khi đồ
thị vô hướng tương ứng với 𝐺 là đồ thị liên thông.
(Đồ thị có hướng 𝐺 nhưng ta bỏ hướng của tất cả các cạnh, ta sẽ được đồ thị vô
hướng tương ứng với 𝐺)
• Đồ thị có hướng 𝐺 ′ = 𝑉 ′ , 𝐸 ′ được gọi là đồ thị con của 𝐺 = 𝑉, 𝐸 khi và chỉ
khi 𝑉 ′ ⊆ 𝑉 hoặc 𝐸 ′ ⊆ 𝐸.
*Lưu ý: Rõ ràng nếu 𝐺 là đồ thị liên thông mạnh thì 𝐺 cũng là đồ thị liên
thông yếu.

ThS.Trần Đình Sơn – Email: tdson@vku.udn.vn– Mobile: 0903591955


5.1. MỘT SỐ ĐỊNH NGHĨA VÀ KHÁI NIỆM
5.1.2. Đồ thị có hướng
- Ví dụ: Với đồ thị có hướng 𝐺 = 𝑉, 𝐸 đã định nghĩa ở trên, trong đó:
• 𝑉 = 𝑎, 𝑏, 𝑓, ℎ, 𝑚, 𝑛, 𝑘
• 𝐸 = 𝑎, 𝑏 , 𝑎, 𝑓 , 𝑎, ℎ , 𝑏, 𝑓 , 𝑏, ℎ , 𝑓, 𝑚 , ℎ, 𝑚 , ℎ, 𝑘 , 𝑛, 𝑘 , 𝑘, 𝑚
Ta có:
• 𝐺 không phải là đồ thị liên thông mạnh, nhưng là đồ thị liên thông yếu.
• Một số đồ thị con của 𝐺 = 𝑉, 𝐸 : 𝑎 𝑓 𝑚
𝐺1 = 𝑉1 , 𝐸1 với 𝑉1 = 𝑎, 𝑏, 𝑓, ℎ, 𝑚, 𝑛, 𝑘 𝐺𝑏 ℎ 𝑛
𝑘
và 𝐸1 = 𝑎, 𝑏 , 𝑎, 𝑓 , 𝑎, ℎ , 𝑏, ℎ , 𝑘, 𝑚 , 𝑛, 𝑘
Rõ ràng 𝐺1 = 𝑉1 , 𝐸1 không có tính liên thông mạnh, đồng thời không có tính
liên thông yếu. 𝐺1 𝑎 𝑓 𝑚
ℎ 𝑛
𝐺2 = 𝑉2 , 𝐸2 với 𝑉2 = 𝑎, 𝑏, ℎ, 𝑚, 𝑘 𝑏 𝑘
và 𝐸2 = 𝑎, 𝑏 , 𝑏, ℎ , ℎ, 𝑚 , ℎ, 𝑘 , 𝑘, 𝑚 𝑎 𝑚
Rõ ràng 𝐺2 = 𝑉2 , 𝐸2 là đồ thị liên thông mạnh. 𝐺2 𝑏 ℎ
𝑘
ThS.Trần Đình Sơn – Email: tdson@vku.udn.vn– Mobile: 0903591955
5.1. MỘT SỐ ĐỊNH NGHĨA VÀ KHÁI NIỆM
5.1.3. Đồ thị có trọng số
- Định nghĩa (bằng tập hợp): Một đồ thị có trọng số 𝐺 (đồ thị vô hướng hoặc
đồ thị có hướng) được định nghĩa bằng một bộ gồm 3 thành phần, ký hiệu
𝐺 = 𝑉, 𝐸, 𝑐 , trong đó:
• 𝑉 là tập hợp các đỉnh (mỗi phần tử của 𝑉 tương ứng là 1 đỉnh của 𝐺);
• 𝐸 là tập hợp các cạnh (mỗi phần tử của 𝐸 tương ứng là 1 cạnh của 𝐺)
• hàm chi phí (hàm giá) 𝑐: 𝐸 → ℝ (mỗi cạnh được gán với một giá trị số, gọi là
trọng số của cạnh).
- Với mỗi cạnh 𝑚, 𝑛 ∈ 𝐸(nếu 𝐺 là đồ thị vô hướng) hay với mỗi cạnh
𝑚, 𝑛 ∈ 𝐸(nếu 𝐺 là đồ thị có hướng), ta ký hiệu 𝑐 𝑚, 𝑛 là trọng số của cạnh
𝑚, 𝑛 hay cạnh 𝑚, 𝑛 .
*Lưu ý: Hàm chi phí (hàm giá) 𝑐: 𝐸 → ℝ được định nghĩa phụ thuộc vào từng
bài toán cụ thể mà ta dùng đồ thị để biểu diễn bài toán đó (tùy theo mục tiêu
giải quyết, đặc trưng thông tin của bài toán).

ThS.Trần Đình Sơn – Email: tdson@vku.udn.vn– Mobile: 0903591955


5.1. MỘT SỐ ĐỊNH NGHĨA VÀ KHÁI NIỆM
5.1.3. Đồ thị có trọng số
*Lưu ý: Trong sơ đồ biểu diễn đồ thị có trọng số, trọng số 𝑐 𝑚, 𝑛 được ghi
bên cạnh đường nối 2 đỉnh 𝑚, 𝑛.
- Ví dụ: Cho đồ thị vô hướng có trọng số 𝐺1 = 𝑉1 , 𝐸1 , 𝑐1 , trong đó:
• 𝑉1 = 𝑎, 𝑏, 𝑓, ℎ, 𝑚, 𝑛, 𝑘
• 𝐸1 = 𝑎, 𝑏 , 𝑎, 𝑓 , 𝑎, ℎ , 𝑏, 𝑓 , 𝑏, ℎ , 𝑓, 𝑚 , ℎ, 𝑚 , ℎ, 𝑘 , 𝑛, 𝑘 , 𝑘, 𝑚
• hàm chi phí 𝑐1 : 𝐸1 → ℝ được định nghĩa như sau:
𝑐1 𝑎, 𝑏 = 1, 𝑐1 𝑎, 𝑓 = 3, 𝑐1 𝑎, ℎ = 7, 𝑐1 𝑏, 𝑓 = 4, 𝑐1 𝑏, ℎ = 12,
𝑐1 𝑓, 𝑚 = 8, 𝑐1 ℎ, 𝑚 = 10, 𝑐1 ℎ, 𝑘 = 13, 𝑐1 𝑛, 𝑘 = 16, 𝑐1 𝑘, 𝑚 = 20.
Biểu diễn 𝐺1 = 𝑉1 , 𝐸1 , 𝑐1 bằng sơ đồ: 4

3 8
𝑎 𝑓 𝑚
7 10
1

20 𝑛
12
𝑏 13 𝑘 16

ThS.Trần Đình Sơn – Email: tdson@vku.udn.vn– Mobile: 0903591955


5.1. MỘT SỐ ĐỊNH NGHĨA VÀ KHÁI NIỆM
5.1.3. Đồ thị có trọng số
- Ví dụ: Cho đồ thị có hướng có trọng số 𝐺2 = 𝑉2 , 𝐸2 , 𝑐2 , trong đó:
• 𝑉2 = 𝑎, 𝑏, 𝑓, ℎ, 𝑚, 𝑛, 𝑘
• 𝐸2 = 𝑎, 𝑏 , 𝑎, 𝑓 , 𝑎, ℎ , 𝑏, 𝑓 , 𝑏, ℎ , 𝑓, 𝑚 , ℎ, 𝑚 , ℎ, 𝑘 , 𝑛, 𝑘 , 𝑘, 𝑚
• hàm chi phí c2 : E2 → ℝ được định nghĩa như sau:
𝑐2 𝑎, 𝑏 = 1, 𝑐2 𝑎, 𝑓 = 4, 𝑐2 𝑎, ℎ = 5, 𝑐2 𝑏, 𝑓 = 2, 𝑐2 𝑏, ℎ = 1,
𝑐2 𝑓, 𝑚 = 8, 𝑐2 ℎ, 𝑚 = 10, 𝑐2 ℎ, 𝑘 = 3, 𝑐2 𝑛, 𝑘 = 20, 𝑐2 𝑘, 𝑚 = 2.
Biểu diễn 𝐺2 = 𝑉2 , 𝐸2 , 𝑐2 , bằng sơ đồ:
2

4 8
𝑎 𝑓 𝑚
5 10
1

2 𝑛
1
𝑏 3 𝑘 20

ThS.Trần Đình Sơn – Email: tdson@vku.udn.vn– Mobile: 0903591955


5.2. BÀI TOÁN TÌM ĐƯỜNG ĐI NGẮN NHẤT
5.2.1. Bài toán
5.2.2. Thuật toán DIJKSTRA

ThS.Trần Đình Sơn – Email: tdson@vku.udn.vn– Mobile: 0903591955


5.2. BÀI TOÁN TÌM ĐƯỜNG ĐI NGẮN NHẤT
5.2.1. Bài toán
- Cho đồ thị có hướng có trọng số 𝐺 = 𝑉, 𝐸, 𝑐 . Ta định nghĩa chi phí của
đường đi 𝑝: 𝑛0 → 𝑛1 → 𝑛2 → ⋯ → 𝑛𝑘−1 → 𝑛𝑘 như sau:
𝑘−1

𝑐(𝑝) = ෍ 𝑐 𝑛𝑖 , 𝑛𝑖+1
𝑖=0
- Ví dụ: Cho đồ thị có hướng có trọng số 𝐺2 = 𝑉2 , 𝐸2 , 𝑐2 được biểu diễn
bằng sơ đồ như hình dưới.
Một số đường đi trong 𝐺2 và chi phí của đường đi:
2
𝑝1 : 𝑛 → 𝑘 → 𝑚 có 𝑐(𝑝1 ) = 22
𝑝2 : 𝑎 → 𝑓 → 𝑚 có 𝑐 𝑝2 = 12 4 𝑓 8
𝑎 𝑚
𝑝3 : 𝑎 → ℎ → 𝑚 có 𝑐 𝑝3 = 15 5 10
1

2 𝑛
𝑝4 : 𝑎 → ℎ → 𝑘 → 𝑚 có 𝑐(𝑝4 ) = 10 1
𝑏 3 𝑘 20
𝑝5 : 𝑎 → 𝑏 → ℎ → 𝑚 có 𝑐(𝑝5 ) = 12
𝑝6 : 𝑎 → 𝑏 → ℎ → 𝑘 → 𝑚 có 𝑐(𝑝6 ) = 7
ThS.Trần Đình Sơn – Email: tdson@vku.udn.vn– Mobile: 0903591955
5.2. BÀI TOÁN TÌM ĐƯỜNG ĐI NGẮN NHẤT
5.2.1. Bài toán
- Như vậy, trong một đồ thị có hướng có trọng số 𝐺 đã cho, từ đỉnh này đến
đỉnh khác có thể có nhiều đường đi và mỗi đường đi có thể có chi phí khác
nhau.
- Vấn đề đặt ra: Trong số tất cả các đường đi từ đỉnh này đến đỉnh kia trong
một đồ thị có hướng có trọng số 𝐺 đã cho, hãy tìm đường đi có chi phí cực
tiểu (đường đi ngắn nhất)?
- Bài toán tìm đường đi ngắn nhất:
Cho đồ thị có hướng có trọng số 𝐺 = 𝑉, 𝐸, 𝑐 . Hãy tìm đường đi ngắn nhất
từ đỉnh 𝑛0 ∈ 𝑉 đến mỗi đỉnh còn lại trong 𝐺.
- Có một số thuật toán cho phép giải quyết bài toán này.

ThS.Trần Đình Sơn – Email: tdson@vku.udn.vn– Mobile: 0903591955


5.2. BÀI TOÁN TÌM ĐƯỜNG ĐI NGẮN NHẤT
5.2.2. Thuật toán DIJKSTRA
- Ý tưởng:
• Sử dụng hàm 𝑑(𝑛) là chi phí cực tiểu của đường đi trong số các đường đi đã
biết từ đỉnh 𝑛0 ∈ 𝑉 đến đỉnh 𝑛 ∈ 𝑉. Hàm 𝑑(𝑛) được định nghĩa như sau:
𝑑 𝑛0 = 0

𝑑 𝑚 = 𝑑 𝑛 + 𝑐 𝑛, 𝑚 𝑣ớ𝑖 𝑚 ∈ 𝑇 + 𝑛
• Sử dụng hàm 𝑡(𝑛) là đỉnh thuộc 𝑇 − 𝑛 sẽ nằm trong đường đi từ đỉnh 𝑛0 ∈ 𝑉
đến đỉnh 𝑛 ∈ 𝑉 (𝑡(𝑛) được dùng để xây dựng đường đi kết quả).
• Chọn lần lượt các đỉnh 𝑛 ∈ 𝑉 (trong số các đỉnh chưa xét) theo thứ tự tăng dần
của 𝑑(𝑛) để xét.
• Trong quá trình tìm kiếm, tại mỗi thời điểm, với mỗi đỉnh 𝑛 ∈ 𝑉 ta ghi nhận hai
thông tin tạm thời 𝑑 𝑛 và 𝑡(𝑛). Hai thông tin này sẽ trở thành thông tin chính
thức khi kết thúc quá trình tìm kiếm. 𝑑 𝑛 và 𝑡(𝑛) được cập nhật lại sau khi có
đỉnh 𝑛 ∈ 𝑉 được xét, đồng thời phát hiện có đường đi mới “ngắn hơn” các
đường đi đã biết từ đỉnh 𝑛0 ∈ 𝑉 đến đỉnh 𝑛 ∈ 𝑉.
ThS.Trần Đình Sơn – Email: tdson@vku.udn.vn– Mobile: 0903591955
5.2. BÀI TOÁN TÌM ĐƯỜNG ĐI NGẮN NHẤT
5.2.2. Thuật toán DIJKSTRA
- Thuật toán DIJKSTRA:
• Vào: Đồ thị có hướng có trọng số 𝐺 = 𝑉, 𝐸, 𝑐 và đỉnh xuất phát 𝑛0 ∈ 𝑉 (trọng số không
âm, trong đó 𝑐 𝑚, 𝑛 = ∞ 𝑛ế𝑢 𝑚, 𝑛 ∉ 𝐸).
• Ra: Đường đi 𝑝 từ n0 đến mỗi đỉnh còn lại của 𝑉 (nếu có) sao cho 𝑐(𝑝) cực tiểu.
{1 𝑉 ∗ = 𝑉\{𝑛0 }; 𝑑 𝑛0 = 0;
𝑓𝑜𝑟 𝑒𝑎𝑐ℎ 𝑛 ∈ 𝑉 ∗ 𝑑𝑜 {2 d(n)=𝑐 𝑛0 , 𝑛 ; 𝑡 𝑛 = 𝑛0 ; 2}
𝑤ℎ𝑖𝑙𝑒 𝑉 ∗ ≠ ∅
{3 𝑐ℎọ𝑛 𝑛 ∈ 𝑉 ∗ 𝑠𝑎𝑜 𝑐ℎ𝑜 𝑑 𝑛 𝑐ự𝑐 𝑡𝑖ể𝑢;
𝑉 ∗ = 𝑉 ∗ \{𝑛};
𝑓𝑜𝑟 𝑒𝑎𝑐ℎ 𝑚 ∈ 𝑉 ∗ 𝑑𝑜
𝑖𝑓 𝑑 𝑚 > 𝑑 𝑛 + 𝑐 𝑛, 𝑚 //𝑑 𝑚 là thông tin cũ
{4 𝑑 𝑚 = 𝑑 𝑛 + 𝑐 𝑛, 𝑚 ; 𝑡 𝑚 = 𝑛; 4} //cập nhật lại 𝑑 𝑚 , 𝑡 𝑚
3}
𝑓𝑜𝑟 𝑒𝑎𝑐ℎ 𝑛 ∈ 𝑉\{𝑛0 } 𝑑𝑜
𝑖𝑓 𝑑 𝑛 = ∞ 𝑝𝑟𝑖𝑛𝑡𝑓(“Không có đường đi từ “, 𝑛0 , “đến “, 𝑛);
𝑒𝑙𝑠𝑒 𝑝𝑟𝑖𝑛𝑡𝑓 𝑝 𝑛0 , n , 𝑐(𝑝) ;
1}

ThS.Trần Đình Sơn – Email: tdson@vku.udn.vn– Mobile: 0903591955


5.2. BÀI TOÁN TÌM ĐƯỜNG ĐI NGẮN NHẤT
5.2.2. Thuật toán DIJKSTRA
- Ví dụ: Cho đồ thị có hướng có trọng số 𝐺2 = 𝑉2 , 𝐸2 , 𝑐2 , trong đó:
• 𝑉2 = 𝑎, 𝑏, 𝑓, ℎ, 𝑚, 𝑛, 𝑘
• 𝐸2 = 𝑎, 𝑏 , 𝑎, 𝑓 , 𝑎, ℎ , 𝑏, 𝑓 , 𝑏, ℎ , 𝑓, 𝑚 , ℎ, 𝑚 , ℎ, 𝑘 , 𝑛, 𝑘 , 𝑘, 𝑚
• hàm chi phí c2 : E2 → ℝ được định nghĩa như sau:
𝑐2 𝑎, 𝑏 = 1, 𝑐2 𝑎, 𝑓 = 4, 𝑐2 𝑎, ℎ = 5, 𝑐2 𝑏, 𝑓 = 2, 𝑐2 𝑏, ℎ = 1,
𝑐2 𝑓, 𝑚 = 8, 𝑐2 ℎ, 𝑚 = 10, 𝑐2 ℎ, 𝑘 = 3, 𝑐2 𝑛, 𝑘 = 20, 𝑐2 𝑘, 𝑚 = 2.
2

4 8
a f m
5 10
1
h
2 n
1
b 3 k 20

Hãy tìm đường đi ngắn nhất từ đỉnh 𝑎 ∈ 𝑉 đến mỗi đỉnh còn lại trong 𝐺.

ThS.Trần Đình Sơn – Email: tdson@vku.udn.vn– Mobile: 0903591955


5.2. BÀI TOÁN TÌM ĐƯỜNG ĐI NGẮN NHẤT
5.2.2. Thuật toán DIJKSTRA
-Mô tả quá trình tìm đường đi ngắn nhất từ đỉnh 𝑎 ∈ 𝑉 đến mỗi đỉnh còn lại
trong 𝐺: Bước Đỉnh
được
V*

chọn

1 𝑏1, 𝑎 𝑓4, 𝑎 ℎ5, 𝑎 𝑚∞, 𝑎 𝑛∞, 𝑎 𝑘∞, 𝑎


2 𝑏1, 𝑎 𝑓3, 𝑏 ℎ2, 𝑏 𝑚∞, 𝑎 𝑛∞, 𝑎 𝑘∞, 𝑎
- Kết quả: 3 ℎ2, 𝑏 𝑓3, 𝑏 𝑚12, ℎ 𝑛∞, 𝑎 𝑘5, ℎ
• 𝑝1 : 𝑎 → 𝑏 có 𝑐(𝑝1 ) = 1 4 𝑓3, 𝑏 𝑚11, 𝑓 𝑛∞, 𝑎 𝑘5, ℎ
• 𝑝2 : 𝑎 → 𝑏 → ℎ có 𝑐 𝑝2 = 2 5 𝑘5, ℎ 𝑚7, 𝑘 𝑛∞, 𝑎
• 𝑝3 : 𝑎 → 𝑏 → 𝑓 có 𝑐 𝑝3 = 3 6 𝑚7, 𝑘 𝑛∞, 𝑎
• 𝑝4 : 𝑎 → 𝑏 → ℎ → 𝑘 có 𝑐(𝑝4 ) = 5 7 𝑛∞, 𝑎
• 𝑝5 : 𝑎 → 𝑏 → ℎ → 𝑘 → 𝑚 có 𝑐 𝑝5 =7
• Không có đường đi từ 𝑎 đến 𝑛.
ThS.Trần Đình Sơn – Email: tdson@vku.udn.vn– Mobile: 0903591955
ĐỒ THỊ
Bài tập
1. Cho đồ thị vô hướng có trọng số 𝐺 = 𝑉, 𝐸, 𝑐 , trong đó:
• 𝑉 = 𝑛, ℎ, 𝑚, 𝑙, 𝑘
•𝐸= 𝑘, 𝑛 , 𝑘, 𝑚 , 𝑘, ℎ , 𝑘, 𝑙 , 𝑛, 𝑚 , 𝑙, 𝑛 , ℎ, 𝑚 , ℎ, 𝑙 , 𝑙, 𝑚 , 𝑛, ℎ
• hàm chi phí 𝑐: 𝐸 → ℝ được định nghĩa như sau:
𝑐 𝑘, 𝑛 = 1, 𝑐 𝑘, 𝑚 = 2, 𝑐 𝑘, ℎ = 5, 𝑐 𝑘, 𝑙 = 10, 𝑐 𝑛, 𝑚 = 3, 𝑐 𝑙, 𝑛 = 20,
𝑐 ℎ, 𝑚 = 6, 𝑐 ℎ, 𝑙 = 12, 𝑐 𝑙, 𝑚 = 15, 𝑐 𝑛, ℎ = 8.
a. Biểu diễn 𝐺 bằng sơ đồ.
b. Tìm tập hợp các đỉnh kề, bậc của mỗi đỉnh trong 𝐺.
c. Cho ví dụ 5 đường đi (kèm theo chi phí), 3 chu trình trong 𝐺; cho ví dụ 2 đồ
thị con của 𝐺 (biểu diễn bằng sơ đồ); cho biết tính liên thông của 𝐺.

ThS.Trần Đình Sơn – Email: tdson@vku.udn.vn– Mobile: 0903591955


ĐỒ THỊ
Bài tập
2. Cho đồ thị vô hướng có trọng số 𝐺 = 𝑉, 𝐸, 𝑐 , trong đó:
• 𝑉 = 𝑎, 𝑏, ℎ, 𝑚, 𝑙, 𝑘
• 𝐸 = { 𝑎, 𝑏 , 𝑎, 𝑚 , 𝑎, ℎ , 𝑏, 𝑚 , 𝑏, ℎ , 𝑙, 𝑚 , ℎ, 𝑚 , ℎ, 𝑘 , 𝑙, 𝑘 , 𝑘, 𝑚 }
• hàm chi phí 𝑐: 𝐸 → ℝ được định nghĩa như sau:
𝑐 𝑎, 𝑏 = 2, 𝑐 𝑎, 𝑚 = 15, 𝑐 𝑎, ℎ = 2, 𝑐 𝑏, 𝑚 = 1, 𝑐 𝑏, ℎ = 1, 𝑐 𝑙, 𝑚 = 5,
𝑐 ℎ, 𝑚 = 6, 𝑐 ℎ, 𝑘 = 10, 𝑐 𝑙, 𝑘 = 16, 𝑐 𝑘, 𝑚 = 7.
a. Biểu diễn 𝐺 bằng sơ đồ.
b. Tìm tập hợp các đỉnh kề, bậc của mỗi đỉnh trong 𝐺.
c. Cho ví dụ 4 đường đi (kèm theo chi phí), 2 chu trình trong 𝐺; cho ví dụ 2 đồ
thị con của 𝐺 (biểu diễn bằng sơ đồ); cho biết tính liên thông của 𝐺.

ThS.Trần Đình Sơn – Email: tdson@vku.udn.vn– Mobile: 0903591955


ĐỒ THỊ
Bài tập
3. Cho đồ thị có hướng có trọng số 𝐺 = 𝑉, 𝐸, 𝑐 , trong đó:
• 𝑉 = 𝑎, 𝑏, 𝑚, 𝑛, 𝑙, 𝑘
• 𝐸 = { 𝑎, 𝑏 , 𝑚, 𝑎 , 𝑚, 𝑙 , 𝑛, 𝑎 , 𝑛, 𝑏 , 𝑙, 𝑎 , 𝑙, 𝑛 , 𝑘, 𝑙 , 𝑘, 𝑛 , 𝑘, 𝑏 }
• hàm chi phí 𝑐: 𝐸 → ℝ được định nghĩa như sau:
𝑐 𝑎, 𝑏 = 2, 𝑐 𝑚, 𝑎 = 1, 𝑐 𝑚, 𝑙 = 1, 𝑐 𝑛, 𝑎 = 10, 𝑐 𝑛, 𝑏 = 2, 𝑐 𝑙, 𝑎 = 1,
𝑐 𝑙, 𝑛 = 2, 𝑐 𝑘, 𝑙 = 2, 𝑐 𝑘, 𝑛 = 5, 𝑐 𝑘, 𝑏 = 10.
a. Biểu diễn 𝐺 bằng sơ đồ.
b. Tìm tập hợp các đỉnh kề, bán bậc ra, bán bậc vào của mỗi đỉnh trong 𝐺.
c. Cho ví dụ 4 đường đi (kèm theo chi phí) trong 𝐺; cho ví dụ 2 đồ thị con của 𝐺
(biểu diễn bằng sơ đồ); cho biết tính liên thông của 𝐺.
d. Hãy mô tả quá trình tìm đường đi ngắn nhất từ đỉnh 𝑘 đến mỗi đỉnh còn lại
trong 𝐺 theo thuật toán DIJKSTRA và biểu diễn các đường đi tìm được (nếu
có) kèm theo chi phí của đường đi.
ThS.Trần Đình Sơn – Email: tdson@vku.udn.vn– Mobile: 0903591955
ĐỒ THỊ
Bài tập
4. Cho đồ thị có hướng có trọng số 𝐺 = 𝑉, 𝐸, 𝑐 , trong đó:
• V = m, n, l, h, k, b, a
• E = { m, a , m, n , m, l , m, h , m, k , h, l , h, b , k, n , k, h , k, b , b, l , b, 𝑎 }
• hàm chi phí 𝑐: 𝐸 → ℝ được định nghĩa như sau:
c m, a = 15, c m, n = 5, c m, l = 10, c m, h = 1, c m, k = 1, c h, l = 5,
c h, b = 2, c k, n = 1, c k, h = 2, c k, b = 1, c b, l = 2, c b, a = 3.
a. Biểu diễn 𝐺 bằng sơ đồ.
b. Tìm tập hợp các đỉnh kề, bán bậc ra, bán bậc vào của mỗi đỉnh trong 𝐺.
c. Cho ví dụ 3 đường đi (kèm theo chi phí) trong 𝐺; cho ví dụ 2 đồ thị con của 𝐺
(biểu diễn bằng sơ đồ); cho biết tính liên thông của 𝐺.
d. Hãy mô tả quá trình tìm đường đi ngắn nhất từ đỉnh 𝑚 đến mỗi đỉnh còn lại
trong 𝐺 theo thuật toán DIJKSTRA và biểu diễn các đường đi tìm được (nếu
có) kèm theo chi phí của đường đi.

ThS.Trần Đình Sơn – Email: tdson@vku.udn.vn– Mobile: 0903591955

You might also like