Giao diện mới của VnDoc Pro: Dễ sử dụng hơn - chỉ tập trung vào lớp bạn quan tâm. Vui lòng chọn lớp mà bạn quan tâm: Lưu và trải nghiệm
Đóng
Điểm danh hàng ngày
  • Hôm nay +3
  • Ngày 2 +3
  • Ngày 3 +3
  • Ngày 4 +3
  • Ngày 5 +3
  • Ngày 6 +3
  • Ngày 7 +5
Bạn đã điểm danh Hôm nay và nhận 3 điểm!
Nhắn tin Zalo VNDOC để nhận tư vấn mua gói Thành viên hoặc tải tài liệu Hotline hỗ trợ: 0936 120 169

Giải Chuyên đề Tin học 12 Cánh diều bài 4: Duyệt đồ thị

Lớp: Lớp 12
Môn: Tin Học
Dạng tài liệu: Chuyên đề
Bộ sách: Cánh diều
Loại File: Word + PDF
Phân loại: Tài liệu Tính phí

VnDoc.com xin gửi tới bạn đọc bài viết Giải Chuyên đề Tin học 12 bài 4: Duyệt đồ thị để bạn đọc cùng tham khảo và có thêm tài liệu học tập môn Tin học 12 Cánh diều nhé.

Khởi động trang 62 Chuyên đề Tin 12 Cánh diều

Có 5 bạn A, B, C, D và E, biết rằng A có số điện thoại của C và D, do đó A có thể liên lạc với C, D; tương tự B có số điện thoại của A; C có số điện thoại của B; D có số điện thoại của C; E có số điện thoại của D. Nếu biểu diễn A, B, C, D, E là các đỉnh của đồ thị và xét mối quan hệ có số điện thoại (có thể liên lạc), ta có đồ thị như Hình 1. Em hãy cho biết nếu A cần thông báo một thông tin thì những ai có thể nhận được thông tin đó. Câu hỏi tương tự nếu người cần thông báo thông tin là E.

Giải Chuyên đề Tin học 12 Cánh diều bài 4: Duyệt đồ thị

Lời giải:

Có 5 bạn A, B, C, D và E, biết rằng A có số điện thoại của C và D, do đó A có thể liên lạc với C, D; tương tự B có số điện thoại của A; C có số điện thoại của B; D có số điện thoại của C; E có số điện thoại của D. Nếu biểu diễn A, B, C, D, E là các đỉnh của đồ thị và xét mối quan hệ có số điện thoại (có thể liên lạc), ta có đồ thị như Hình 1.

- Nếu A cần thông báo một thông tin thì C, D và B có thể nhận được thông tin đó.

- Nếu người cần thông báo thông tin là E thì người có thể nhận được thông tin đó là D,C,B,A.

Vận dụng trang 68 Chuyên đề Tin 12 Cánh diều

Với các thông tin về tuyến xe buýt giữa các địa điểm được biểu diễn bằng ma trận kể như Hình 13. Em áp dụng thuật toán duyệt theo chiều rộng hoặc theo chiều sâu để chỉ ra các địa điểm có thế đến được nếu xuất phát địa điểm 0 và chỉ sử dụng các tuyến xe buýt này

Giải Chuyên đề Tin học 12 Cánh diều bài 4: Duyệt đồ thị

Lời giải:

Với các thông tin về tuyến xe buýt giữa các địa điểm được biểu diễn bằng ma trận kể như Hình 13. Em áp dụng thuật toán duyệt theo chiều rộng hoặc theo chiều sâu để chỉ ra các địa điểm có thế đến được nếu xuất phát địa điểm 0 và chỉ sử dụng các tuyến xe buýt này như sau:

* Duyệt theo chiều rộng (BFS) như sau:

Chúng ta sẽ sử dụng BFS để tìm các địa điểm có thể đến được từ địa điểm 0.

- Khởi tạo: Đặt một hàng đợi để lưu trữ các địa điểm cần khám phá. Bắt đầu với địa điểm 0. Đánh dấu địa điểm 0 là đã được thăm. Tạo một danh sách để lưu trữ các địa điểm đã đến được.

- Thuật toán: Lặp lại cho đến khi hàng đợi rỗng:

+ Lấy địa điểm đầu tiên ra khỏi hàng đợi.

+ Khám phá tất cả các địa điểm kết nối trực tiếp với địa điểm hiện tại (theo ma trận kề).

+ Nếu địa điểm chưa được thăm, thêm nó vào hàng đợi và đánh dấu là đã thăm.

* Mã giả cho BFS

def bfs(graph, start):

visited = [False] * len(graph)

queue = []

reachable = []

queue.append(start)

visited[start] = True

while queue:

node = queue.pop(0)

reachable.append(node)

for i in range(len(graph[node])):

if graph[node][i] == 1 and not visited[i]:

queue.append(i)

visited[i] = True

return reachable

# Ma trận kề

graph = [

[0, 1, 0, 1],

[1, 0, 1, 0],

[0, 1, 0, 1],

[1, 1, 1, 0]

]

# Xuất phát từ địa điểm 0

start = 0

reachable_locations = bfs(graph, start)

print("Các địa điểm có thể đến được từ địa điểm 0:", reachable_locations)

Kết quả như sau: Các địa điểm có thể đến được từ địa điểm 0 là: [0, 1, 3, 2]

Câu hỏi tự kiểm tra trang 68 Chuyên đề Tin 12 Cánh diều

Trong các câu sau đây, những câu nào đúng khi nói về duyệt đồ thị?

a) Duyệt đồ thị theo chiều sâu giúp ta xác định các đỉnh có thể tới được từ một đinh bất kì.

b) Duyệt đồ thị theo chiều rộng không thể giúp ta xác định các đỉnh có thể tới được từ một đỉnh bất kì.

c) Thứ tự thăm các đỉnh khi thực hiện cách duyệt đồ thị theo chiều rộng và theo chiều sâu sẽ giống hệt nhau.

d) Để duyệt đồ thị theo chiều rộng chúng ta sử dụng hàng đợi, thăm các đỉnh theo nguyên tắc vào trước ra trước.

c) Để duyệt đồ thị theo chiều sâu chúng ta sử dụng ngăn xếp, thăm các đinh theo nguyên tắc vào sau ra trước

Lời giải:

a) Đúng. Vì DFS khởi đầu từ một đỉnh nguồn và thăm tất cả các đỉnh có thể đạt tới từ đỉnh đó bằng cách đi sâu vào các nhánh của đồ thị trước khi quay lại.

b) Sai. Vì BFS khởi đầu từ một đỉnh nguồn và thăm tất cả các đỉnh kề với nó trước khi di chuyển đến các đỉnh kề của các đỉnh đã thăm. Do đó, BFS cũng giúp xác định các đỉnh có thể tới được từ một đỉnh bất kì.

c) Sai. Vì thứ tự thăm các đỉnh của BFS và DFS khác nhau do cách thức duyệt của chúng khác nhau. BFS duyệt theo cấp độ (tầng), trong khi DFS duyệt theo nhánh.

d) Đúng. Vì BFS sử dụng hàng đợi (queue) để quản lý các đỉnh chờ thăm, và nó thực hiện theo nguyên tắc vào trước ra trước (FIFO).

e) Đúng. Vì DFS sử dụng ngăn xếp (stack) để quản lý các đỉnh chờ thăm, và nó thực hiện theo nguyên tắc vào sau ra trước (LIFO).

Vậy các câu đúng là a, d, e.

Chọn file muốn tải về:
Đóng Chỉ thành viên VnDoc PRO/PROPLUS tải được nội dung này!
Đóng
79.000 / tháng
Đặc quyền các gói Thành viên
PRO
Phổ biến nhất
PRO+
Tải tài liệu Cao cấp 1 Lớp
30 lượt tải tài liệu
Xem nội dung bài viết
Trải nghiệm Không quảng cáo
Làm bài trắc nghiệm không giới hạn
Mua cả năm Tiết kiệm tới 48%

Có thể bạn quan tâm

Xác thực tài khoản!

Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây:

Số điện thoại chưa đúng định dạng!
Số điện thoại này đã được xác thực!
Bạn có thể dùng Sđt này đăng nhập tại đây!
Lỗi gửi SMS, liên hệ Admin
Sắp xếp theo
🖼️

Tin học 12 Cánh diều

Xem thêm
🖼️

Gợi ý cho bạn

Xem thêm