Bài tập chương Đồ thị - Cấu trúc dữ liệu và giải thuật | Trường Đại học Bách khoa Hà Nội

Đơn đồ thị có hướng G(V,E) được lưu trữ bằng ma trận kề. Hãy viết chương trình kiểm tra xem trên đồ thị này có tồn tại chu trình hay không, nếu có thì in ra các chu trình đó. duyệt theo thứ tự giữa ta được biểu thức tiền tố. Tài liệu được sưu tầm, giúp bạn ôn tập và đạt kết quả cao. Mời bạn đọc đón xem!

Thông tin:
7 trang 4 tháng trước

Bình luận

Vui lòng đăng nhập hoặc đăng ký để gửi bình luận.

Bài tập chương Đồ thị - Cấu trúc dữ liệu và giải thuật | Trường Đại học Bách khoa Hà Nội

Đơn đồ thị có hướng G(V,E) được lưu trữ bằng ma trận kề. Hãy viết chương trình kiểm tra xem trên đồ thị này có tồn tại chu trình hay không, nếu có thì in ra các chu trình đó. duyệt theo thứ tự giữa ta được biểu thức tiền tố. Tài liệu được sưu tầm, giúp bạn ôn tập và đạt kết quả cao. Mời bạn đọc đón xem!

25 13 lượt tải Tải xuống
BÀI TP CHƯƠNG ĐỒ TH
Phần đồ th
Bài 1. Thc hin tìm kiếm BFS, DFS trên các đ th sau và đưa ra th t các đnh, v cây tìm kiếm thu đưc
nh bt đu là A)
nh bt đu là m)
Th t duyt là theo th t ABC
Bài 2. Đưa ra mt th t topological ca đ th th 3 trong bài 1 theo 2 cách :
Dùng DFS
Dùng BFS
Bài 3. Minh ha cách lưu tr các đ th sau s dng ma trn k và danh sách k
Bài 4. Thc hin tìm kiếm theo chiu sâu (DFS) và tìm kiếm theo chiu rng (BFS) trên các đ th trong Bài 3
xut phát t các đnh sau (Đưa ra tt c các loi cnh trên cây khung thu đưc)
Đồ th 1: A, B, H
Đồ th 2: I, B, H
Bài 5. Cho đ th có hưng sau, hãy đưa ra mt th t topo trên đ th đó
Đồ th 1
Đồ th 2
Bài 6. Cho đ th sau, áp dng thut toán PRIM và KRUSKAL để đưa ra cây khung có trng s nh nht trên
đồ th (nêu rõ các bưc thc hin)
Bài 7. Đưa ra cây khung có trong s nh nht trên đ th 1, 2 trong bài 1.
Bài 8. Tìm và đưa ra đưng đi ngn nht gia 2 cp đnh (A,K) và (A,G) trên đ th trong bài 6
Bài 9. Chng minh rng khi duyt theo chiu sâu (DFS) trên mt đ th vô hưng thì ch có 2 loi cnh trên
cây là Tree edge và Back Edge
Bài 10. Chng minh bng quy np rng ch có mt đưng đi duy nht gia hai đnh bt k trên cây
Bài 11. Chng minh rng khi thc hin BFS trên đ th vô hưng G(V,E) thì ta ch thu đưc các cnh cây (tree
edge) và cnh chéo (cross edge)
cnh (u,v) là cross edge nếu u không phi là t tiên cũng chng phi là con cháu ca v
Bài 12. Đơn đ th có hưng G(V,E) đưc lưu tr bng ma trn k. Hãy viết chương trình kim tra xem trên
đồ th này có tn ti chu trình hay không, nếu có thì in ra các chu trình đó.
Bài 13. Cho đơn đ th vô hưng G(V,E) đưc lưu tr bng ma trn k. Hãy viết chương trình kim tra xem
đồ th có liên thông hay không. Nếu không liên thông thì hãy ch ra đ th con liên thông ln nht trên G.
Bài 14. Đơn đ th G(V,E) đưc lưu tr bng ma trn k. Viết chương trình tính và in ra bc ca các đnh trên
đồ th.
Bài 15. Mô t thut toán tìm đưng đi trong mê cung
Bài 16. Viết chương trình chuyn đi các lưu tr đồ th t ma trn k thành danh sách k và ngưc li.
Bài 17. Viết chương trình kim tra mt danh sách các đnh trên đ th có phi là mt Topological ca đ th
đã cho hay không.
Bài 18. Viết chương trình lit kê các cây khung nh nht ca đ th G(V,E)
Bài 19. Tp ph đỉnh (Vertex cover) ca mt đ th G(V,E) là mt tp con các đnh
󰆒
sao cho mi cnh
trên đ th đều có ít nht 1 đnh thuc
󰆒
. Hãy viết chương trình tìm tp ph đỉnh ca đ th có kích
thưc nh nht trong trưng hp G(V,E) là cây.
Bài 20. Tp ph đỉnh (Vertex cover) ca mt đ th G(V,E) là mt tp con các đnh
󰆒
sao cho mi cnh
trên đ th đều có ít nht 1 đnh thuc
󰆒
. Nếu ta loi b các nút lá trên cây tìm kiếm thu đưc khi thc
hin DFS thì các nút còn li có to thành mt tp ph đỉnh ca G(V,E)? Hãy chng minh đúng hoc đưa
ra phn ví d.
Bài 21. Tp đc lp (independent set) ca đ th vô hưng G(V,E) là tp các đnh U và không cnh nào trên E
có hai đnh thuc U (tc là không có 2 đnh nào trong U là k nhau).
Các đnh màu xanh thuc tp đc lp trên đ th
Viết chương trình tìm tp đc lp ln nht (có nhiu đnh nht) trên đ th G(V,E) trong
trưng hp G là mt cây.
Bài 22. Cho đ th vô hưng G(V,E), hãy viết chương trình kim tra xem trên đ th này có tn ti chu trình
kích thưc 3 không (chu trình tam giác - triangle).
Bài 23. Cho hai dãy là kết qu ca duyt cây nh phân theo th t gia và th t trưc, liu ta có th xây
dng li cây ban đu t hai dãy này không? Nếu có hãy mô t thut toán đ xây dng, ngưc li hãy đưa
ra phn ví d.
Trong trưng hp chúng ta có th t duyt trưc và duyt sau thì ta có th xây dng li đưc cây hay
không?
Bài 24. Đưa ra mt thut toán hiu qu để thc hin chuyn đi gia các mô hình biu din đ th sau:
a. Chuyn t ma trn k sang danh sách k
b. Chuyn t danh sách k sang ma trn liên thuc đnh cnh (incidence matrix). Ma trn liên thuc đnh
cnh là ma trn ca các đnh và các cnh, trong đó [, ] = 1 nếu đnh là mt phn ca cnh (là
mút đu hoc mút cui), và bng 0 nếu ngưc li.
c. Chuyn t incidence matrix sang danh sách k.
Đánh giá hiu qu ca thut toán mà bn đ xut.
Bài 25. Xây dng đ th t các đa đim chính trong thành ph Hà Ni. Nhp vào hai đa đim bt k, hãy đưa
ra đưng đi ngn nht gia hai đim đó.
Bài 26. Viết hàm duyt cây nh phân tìm kiếm và tra v phn t th theo th t sp xếp trên cây.
Bài 27. Mt đnh trên đ th có hưng (, ) đưc gi là đnh m - mother vertex nếu tt c các đnh
khác đu có th ti đưc t (tn ti đưng đi có hưng t ti mi đnh trên G)
a. Hãy đưa ra mt thut toán đ kim tra xem có phi là đnh m trên đ th có hưng (, ). Thi
gian thc hin ca thut toán ca bn c (
|
|
+ ||)
b. Hãy đưa ra mt thut toán đ kim tra xem trên đ th có tn ti đnh m hay không. Thut toán ca
bn cn có thi gian c (
|
|
+ ||).
Bài 28. Vic thêm mt cnh có hưng vào đ th có hưng (, ) th làm gim s ng thành phn liên
thông yếu trên đ th. S ng thành phn liên thông yếu nào có th gim ti đa là bao nhiêu? S ng
thành phn liên thông mnh là bao nhiêu?
Bài 29. Gi s bn cn sp xếp cho bnh nhân trong mt hàng dc, mt hưng v đằng trưc. Bn mt
danh sách các mi quan h ca 2 cp bnh nhân bt k (, ) dng “ ghét . Nếu ghét thì bn s
không th xếp đng sau đưc, bi vì kh năng s làm gì đó vi t đằng sau.
a. Đưa ra mt thut toán đ xếp hàng (hoc kết lun là không th xếp hàng đưc) vi thi gian c
(
|
|
+ ||)
b. Gi s thay vì xếp các bnh nhân trong mt hàng, bn mun xếp các bnh nhân theo nhiu hàng sao
cho nếu ghét t phi hàng sau . Đưa ra mt thut toán hiu qu để đưa ra s ng hàng nh
nht này.
Bài 30. Trưng hp bài toán tìm đưng đi có trng s nh nht gia hai đnh trên đ th G(V, E), mà trên đ
th tn ti cnh có trng s âm.
Nếu ta vn áp dng thut toán Dijkstra thì có tìm đưc đưng đi có trng s nh nht không? Hãy đưa
ra mt phn ví d nếu câu tr li là không.
Nếu ta ci tiến đ th bng cách chuyn hết trng s âm v trng s dương (Ví d nếu trên đ th các
cnh có trng s là 2, 3, -2 thì ta s chuyn v b trng s tương ng là 5, 6, 1), và áp dng Dijkstra đ
tìm thì có đưc không? Gii thích ti sao?
Bài 31. Hãy đưa ra thut toán đ tìm đnh bt đu thc hin DFS sao cho cây khung thu đưc có chiu cao
nh nht.
Bài 32. Hãy đưa ra ý tưng đ thc hin DFS sao cho cây khung thu đưc có chiu sâu ln nht có th.
Bài 33. So sánh hiu qu ca PRIM và KRUSKAL khi thc hin tìm cây khung có trng s nh nht? Trong
trưng hp đ th tng quát thì nên s dng thut toán nào?
Bài 34. Cài đt thut toán tìm cây khung có trng s ln nht
Bài 35. Có khi nào thut toán PRIM và Kurskal li cho ta hai cây khung khác nhau hay không? Cho d?
Bài 36. Đưng đi gia hai đỉnh trên cây khung có trng s nh nht MST tìm đưc trên đ th đầy đ
phi là đưng đi ngn nht gia hai đnh đó trên đ th? Chng minh đúng hoc đưa ra phn ví d.
Bài 37. Gi s rng tt c các cnh trên đ th có trng s khác nhau. Đưng đi gia hai đnh bt k trên MST
có phi là đưng đi ngn nht gia hai đnh đó trên đ th hay không? Chng minh đúng hoc đưa ra
phn ví d.
Bài 38. PRIM và Kurskal có làm vic đưc vi đ th có trng s âm kng? Gii thích?
Bài 39. Gi MST trên đ th (, ), ta to ra đ th  t bng cách cng các trng s ca các cnh
trên vi mt giá tr . Hi còn là MST trên đ th mi  không? Chng minh hoc đưa ra phn ví
d?
Bài 40. Gi = {, . . , } là đưng đi có trng s nh nht t đến trên đ th (, ). Xây dng đ th 
t bng cách cng thêm trng s c cnh trên mt giá tr . Hi P còn là đưng đi ngn nht gia
, trên đ th  không? Chng minh đúng hoc đưa ra phn ví d.
Bài 41. Xem xét bài toán tìm tp cnh có trng s nh nht ni các đnh trong tp trên đ th (, )
( ).
a. Bài toán này có th chuyn v bài toán MST đưc không?
b. Hãy đưa ra mt thut toán hiu qu để tìm tp cnh có tng trng s nh nht mà kết ni tt c các
đỉnh thuc
Bài 42. Hãy sa đi li thut toán PRIM đ nó thc hin vi thi gian ( log ) trên mt đồ th loi
trng s khác nhau
Bài 43. Bài toán single-destination shortest path trên đ th có hưng tìm kiếm tt c đưng đi ngn nht t
tt c các đnh ti mt đnh đặc bit. Hãy đưa ra mt thut toán hiu qu để gii bài toán này.
Bài 44. Cho đ th vô hưng có trng s (, ), và là cây khung đưng đi ngn nht có gc là đnh
a. Hãy đưa ra mt đ th MST trên đ th trùng vi cây khung đưng đi ngn nht có gc
b. Hãy đưa ra mt đ th MST trên đ th khác vi cây khung đưng đi ngn nht có gc
| 1/7

Preview text:

BÀI TẬP CHƯƠNG ĐỒ THỊ Phần đồ thị
Bài 1. Thực hiện tìm kiếm BFS, DFS trên các đồ thị sau và đưa ra thứ tự các đỉnh, vẽ cây tìm kiếm thu được (đỉnh bắt đầu là A)
(đỉnh bắt đầu là m)
Thứ tự duyệt là theo thứ tự ABC
Bài 2. Đưa ra một thứ tự topological của đồ thị thứ 3 trong bài 1 theo 2 cách : • Dùng DFS • Dùng BFS
Bài 3. Minh họa cách lưu trữ các đồ thị sau sử dụng ma trận kề và danh sách kề Đồ thị 1 Đồ thị 2
Bài 4. Thực hiện tìm kiếm theo chiều sâu (DFS) và tìm kiếm theo chiều rộng (BFS) trên các đồ thị trong Bài 3
xuất phát từ các đỉnh sau (Đưa ra tất cả các loại cạnh trên cây khung thu được) Đồ thị 1: A, B, H Đồ thị 2: I, B, H
Bài 5. Cho đồ thị có hướng sau, hãy đưa ra một thứ tự topo trên đồ thị đó
Bài 6. Cho đồ thị sau, áp dụng thuật toán PRIM và KRUSKAL để đưa ra cây khung có trọng số nhỏ nhất trên
đồ thị (nêu rõ các bước thực hiện)
Bài 7. Đưa ra cây khung có trong số nhỏ nhất trên đồ thị 1, 2 trong bài 1.
Bài 8. Tìm và đưa ra đường đi ngắn nhất giữa 2 cặp đỉnh (A,K) và (A,G) trên đồ thị trong bài 6
Bài 9. Chứng minh rằng khi duyệt theo chiều sâu (DFS) trên một đồ thị vô hướng thì chỉ có 2 loại cạnh trên
cây là Tree edge và Back Edge
Bài 10. Chứng minh bằng quy nạp rằng chỉ có một đường đi duy nhất giữa hai đỉnh bất kỳ trên cây
Bài 11. Chứng minh rằng khi thực hiện BFS trên đồ thị vô hướng G(V,E) thì ta chỉ thu được các cạnh cây (tree
edge) và cạnh chéo (cross edge)
cạnh (u,v) là cross edge nếu u không phải là tổ tiên cũng chẳng phải là con cháu của v
Bài 12. Đơn đồ thị có hướng G(V,E) được lưu trữ bằng ma trận kề. Hãy viết chương trình kiểm tra xem trên
đồ thị này có tồn tại chu trình hay không, nếu có thì in ra các chu trình đó.
Bài 13. Cho đơn đồ thị vô hướng G(V,E) được lưu trữ bằng ma trận kề. Hãy viết chương trình kiểm tra xem
đồ thị có liên thông hay không. Nếu không liên thông thì hãy chỉ ra đồ thị con liên thông lớn nhất trên G.
Bài 14. Đơn đồ thị G(V,E) được lưu trữ bằng ma trận kề. Viết chương trình tính và in ra bậc của các đỉnh trên đồ thị.
Bài 15. Mô tả thuật toán tìm đường đi trong mê cung
Bài 16. Viết chương trình chuyển đổi các lưu trữ đồ thị từ ma trận kề thành danh sách kề và ngược lại.
Bài 17. Viết chương trình kiểm tra một danh sách các đỉnh trên đồ thị có phải là một Topological của đồ thị đã cho hay không.
Bài 18. Viết chương trình liệt kê các cây khung nhỏ nhất của đồ thị G(V,E)
Bài 19. Tập phủ đỉnh (Vertex cover) của một đồ thị G(V,E) là một tập con các đỉnh 𝑉′ ⊆ 𝑉 sao cho mỗi cạnh
trên đồ thị đều có ít nhất 1 đỉnh thuộc 𝑉′. Hãy viết chương trình tìm tập phủ đỉnh của đồ thị có kích
thước nhỏ nhất trong trường hợp G(V,E) là cây.
Bài 20. Tập phủ đỉnh (Vertex cover) của một đồ thị G(V,E) là một tập con các đỉnh 𝑉′ ⊆ 𝑉 sao cho mỗi cạnh
trên đồ thị đều có ít nhất 1 đỉnh thuộc 𝑉′. Nếu ta loại bỏ các nút lá trên cây tìm kiếm thu được khi thực
hiện DFS thì các nút còn lại có tạo thành một tập phủ đỉnh của G(V,E)? Hãy chứng minh đúng hoặc đưa ra phản ví dụ.
Bài 21. Tập độc lập (independent set) của đồ thị vô hướng G(V,E) là tập các đỉnh U và không cạnh nào trên E
có hai đỉnh thuộc U (tức là không có 2 đỉnh nào trong U là kề nhau).
Các đỉnh màu xanh thuộc tập độc lập trên đồ thị
• Viết chương trình tìm tập độc lập lớn nhất (có nhiều đỉnh nhất) trên đồ thị G(V,E) trong
trường hợp G là một cây.
Bài 22. Cho đồ thị vô hướng G(V,E), hãy viết chương trình kiểm tra xem trên đồ thị này có tồn tại chu trình
kích thước 3 không (chu trình tam giác - triangle).
Bài 23. Cho hai dãy là kết quả của duyệt cây nhị phân theo thứ tự giữa và thứ tự trước, liệu ta có thể xây
dựng lại cây ban đầu từ hai dãy này không? Nếu có hãy mô tả thuật toán để xây dựng, ngược lại hãy đưa ra phản ví dụ.
Trong trường hợp chúng ta có thứ tự duyệt trước và duyệt sau thì ta có thể xây dựng lại được cây hay không?
Bài 24. Đưa ra một thuật toán hiệu quả để thực hiện chuyển đổi giữa các mô hình biểu diễn đồ thị sau:
a. Chuyển từ ma trận kề sang danh sách kề
b. Chuyển từ danh sách kề sang ma trận liên thuộc đỉnh cạnh (incidence matrix). Ma trận liên thuộc đỉnh
cạnh là ma trận 𝑀 của các đỉnh và các cạnh, trong đó 𝑀[𝑖, 𝑗] = 1 nếu đỉnh 𝑖 là một phần của cạnh 𝑗 (là
mút đầu hoặc mút cuối), và bằng 0 nếu ngược lại.
c. Chuyển từ incidence matrix sang danh sách kề.
Đánh giá hiệu quả của thuật toán mà bạn đề xuất.
Bài 25. Xây dựng đồ thị từ các địa điểm chính trong thành phố Hà Nội. Nhập vào hai địa điểm bất kỳ, hãy đưa
ra đường đi ngắn nhất giữa hai điểm đó.
Bài 26. Viết hàm duyệt cây nhị phân tìm kiếm và tra về phần tử thứ 𝑖 theo thứ tự sắp xếp trên cây.
Bài 27. Một đỉnh 𝑣 trên đồ thị có hướng 𝐺(𝑉, 𝐸) được gọi là đỉnh mẹ - mother vertex nếu tất cả các đỉnh
khác đều có thể tới được từ 𝑣 (tồn tại đường đi có hướng từ 𝑣 tới mọi đỉnh trên G)
a. Hãy đưa ra một thuật toán để kiểm tra xem 𝑣 có phải là đỉnh mẹ trên đồ thị có hướng 𝐺(𝑉, 𝐸). Thời
gian thực hiện của thuật toán của bạn cỡ 𝑂(|𝑉| + |𝐸|)
b. Hãy đưa ra một thuật toán để kiểm tra xem trên đồ thị có tồn tại đỉnh mẹ hay không. Thuật toán của
bạn cần có thời gian cỡ 𝑂(|𝑉| + |𝐸|).
Bài 28. Việc thêm một cạnh có hướng vào đồ thị có hướng 𝐺(𝑉, 𝐸) có thể làm giảm số lượng thành phần liên
thông yếu trên đồ thị. Số lượng thành phần liên thông yếu nào có thể giảm tối đa là bao nhiêu? Số lượng
thành phần liên thông mạnh là bao nhiêu?
Bài 29. Giả sử bạn cần sắp xếp cho 𝑛 bệnh nhân trong một hàng dọc, mặt hướng về đằng trước. Bạn có một
danh sách các mối quan hệ của 2 cặp bệnh nhân bất kỳ (𝑖, 𝑗) dạng “𝑖 ghét 𝑗”. Nếu 𝑖 ghét 𝑗 thì bạn sẽ
không thể xếp 𝑖 đứng sau 𝑗 được, bởi vì 𝑖 có khả năng sẽ làm gì đó với 𝑗 từ đằng sau.
a. Đưa ra một thuật toán để xếp hàng (hoặc kết luận là không thể xếp hàng được) với thời gian cỡ 𝑂(|𝑉| + |𝐸|)
b. Giả sử thay vì xếp các bệnh nhân trong một hàng, bạn muốn xếp các bệnh nhân theo nhiều hàng sao
cho nếu 𝑖 ghét 𝑗 thì 𝑖 phải ở hàng sau 𝑗. Đưa ra một thuật toán hiệu quả để đưa ra số lượng hàng nhỏ nhất này.
Bài 30. Trường hợp bài toán tìm đường đi có trọng số nhỏ nhất giữa hai đỉnh trên đồ thị G(V, E), mà trên đồ
thị tồn tại cạnh có trọng số âm.
• Nếu ta vẫn áp dụng thuật toán Dijkstra thì có tìm được đường đi có trọng số nhỏ nhất không? Hãy đưa
ra một phản ví dụ nếu câu trả lời là không.
• Nếu ta cải tiến đồ thị bằng cách chuyển hết trọng số âm về trọng số dương (Ví dụ nếu trên đồ thị các
cạnh có trọng số là 2, 3, -2 thì ta sẽ chuyển về bộ trọng số tương ứng là 5, 6, 1), và áp dụng Dijkstra để
tìm thì có được không? Giải thích tại sao?
Bài 31. Hãy đưa ra thuật toán để tìm đỉnh bắt đầu thực hiện DFS sao cho cây khung thu được có chiều cao là nhỏ nhất.
Bài 32. Hãy đưa ra ý tưởng để thực hiện DFS sao cho cây khung thu được có chiều sâu lớn nhất có thể.
Bài 33. So sánh hiệu quả của PRIM và KRUSKAL khi thực hiện tìm cây khung có trọng số nhỏ nhất? Trong
trường hợp đồ thị tổng quát thì nên sử dụng thuật toán nào?
Bài 34. Cài đặt thuật toán tìm cây khung có trọng số lớn nhất
Bài 35. Có khi nào thuật toán PRIM và Kurskal lại cho ta hai cây khung khác nhau hay không? Cho ví dụ?
Bài 36. Đường đi giữa hai đỉnh trên cây khung có trọng số nhỏ nhất – MST tìm được trên đồ thị đầy đủ có
phải là đường đi ngắn nhất giữa hai đỉnh đó trên đồ thị? Chứng minh đúng hoặc đưa ra phản ví dụ.
Bài 37. Giả sử rằng tất cả các cạnh trên đồ thị có trọng số khác nhau. Đường đi giữa hai đỉnh bất kỳ trên MST
có phải là đường đi ngắn nhất giữa hai đỉnh đó trên đồ thị hay không? Chứng minh đúng hoặc đưa ra phản ví dụ.
Bài 38. PRIM và Kurskal có làm việc được với đồ thị có trọng số âm không? Giải thích?
Bài 39. Gọi 𝑇 là MST trên đồ thị 𝐺(𝑉, 𝐸), ta tạo ra đồ thị 𝐺′ từ 𝐺 bằng cách cộng các trọng số của các cạnh
trên 𝐺 với một giá trị 𝑘. Hỏi 𝑇 còn là MST trên đồ thị mới 𝐺′ không? Chứng minh hoặc đưa ra phản ví dụ?
Bài 40. Gọi 𝑃 = {𝑢, . . , 𝑣} là đường đi có trọng số nhỏ nhất từ 𝑢 đến 𝑣 trên đồ thị 𝐺(𝑉, 𝐸). Xây dựng đồ thị 𝐺′
từ 𝐺 bằng cách cộng thêm trọng số các cạnh trên 𝐺 một giá trị 𝑘. Hỏi P còn là đường đi ngắn nhất giữa
𝑢, 𝑣 trên đồ thị 𝐺′ không? Chứng minh đúng hoặc đưa ra phản ví dụ.
Bài 41. Xem xét bài toán tìm tập cạnh có trọng số nhỏ nhất nối các đỉnh trong tập 𝑇 trên đồ thị 𝐺(𝑉, 𝐸) (𝑇 ⊆ 𝑉).
a. Bài toán này có thể chuyển về bài toán MST được không?
b. Hãy đưa ra một thuật toán hiệu quả để tìm tập cạnh có tổng trọng số nhỏ nhất mà kết nối tất cả các đỉnh thuộc 𝑇
Bài 42. Hãy sửa đổi lại thuật toán PRIM để nó thực hiện với thời gian 𝑂(𝑛 log 𝑘) trên một đồ thị có 𝑘 loại trọng số khác nhau
Bài 43. Bài toán single-destination shortest path trên đồ thị có hướng tìm kiếm tất cả đường đi ngắn nhất từ
tất cả các đỉnh tới một đỉnh 𝑣 đặc biệt. Hãy đưa ra một thuật toán hiệu quả để giải bài toán này.
Bài 44. Cho đồ thị vô hướng có trọng số 𝐺(𝑉, 𝐸), và 𝑇 là cây khung đường đi ngắn nhất có gốc là đỉnh 𝑣
a. Hãy đưa ra một đồ thị mà MST trên đồ thị trùng với cây khung đường đi ngắn nhất có gốc là 𝑣
b. Hãy đưa ra một đồ thị mà MST trên đồ thị khác với cây khung đường đi ngắn nhất có gốc là 𝑣