Giải pháp cũ thường làm: Khi giảng dạy phần "BFS và các ứng dụng" cho học sinh THPT thường gặp phải hai vấn đề chính đó là chưa có hệ thống bài tập rõ ràng và chuyên đề về đồ thị tương
Trang 1SỞ GIÁO DỤC VÀ ĐÀO TẠO NINH BÌNH
TRƯỜNG THPT CHUYÊN LƯƠNG VĂN TỤY
-& -
SÁNG KIẾN KINH NGHIỆM
ĐỀ TÀI: “BFS VÀ CÁC ỨNG DỤNG”
Tác giả sáng kiến: Bùi Văn Hậu
Nguyễn Thị Thu Hà Phạm Thị Thu Thủy
Đơn vị công tác: Tổ Toán-Tin Trường THPT chuyên Lương Văn Tụy
NĂM HỌC : 2022-2023
Trang 2CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc
-o0o -
ĐƠN YÊU CẦU CÔNG NHẬN SÁNG KIẾN
Kính gửi: Trường THPT chuyên Lương Văn Tụy
Chúng tôi gồm các thành viên:
Trình
độ chuyên môn
Tỷ lệ (%) đóng góp vào việc tạo ra sáng kiến
1 Tên sáng kiến, lĩnh vực áp dụng
Tên sáng kiến: “BFS VÀ CÁC ỨNG DỤNG”
Lĩnh vực áp dụng: giảng dạy môn chuyên lớp 10
2 Nội dung
a Giải pháp cũ thường làm:
Khi giảng dạy phần "BFS và các ứng dụng" cho học sinh THPT thường gặp phải hai vấn
đề chính đó là chưa có hệ thống bài tập rõ ràng và chuyên đề về đồ thị tương đối mới đối với đại bộ phận giáo viên dạy Tin học trong tỉnh
* Về vấn đề thiếu hệ thống bài tập rõ ràng, thông thường các giáo viên chỉ giải thích lý
thuyết và cung cấp một số ví dụ để học sinh có thể hiểu và áp dụng vào thực tế Tuy nhiên, điều này khiến cho học sinh gặp khó khăn trong việc nắm vững kiến thức và áp dụng vào các bài tập thực tế
Bài tập Tin học liên quan tới BFS trong các đề thi học sinh giỏi cấp tỉnh thường đa dạng
Để có tài liệu dạy đội tuyển, giáo viên thường phải dày công tìm tòi từ nhiều nguồn tư liệu Khi soạn giảng, giáo viên bắt buộc phải tham khảo rất nhiều tài liệu từ nhiều phương tiện, do đó mất rất nhiều thời gian và công sức, tốn kém nhiều tiền bạc
* Về vấn đề chuyên đề về đồ thị tương đối mới và khó đối với đại bộ phận giáo viên dạy
Tin học trong tỉnh Do đó nhiều giáo viên cảm thấy khó khăn trong việc giảng dạy vì không có
đủ kiến thức về đồ thị để giải thích và hướng dẫn cho học sinh Giáo viên cũng phải đối mặt với nhiều thách thức trong việc giảng dạy phần "BFS và các ứng dụng" Một số khó khăn thường gặp là:
Thiếu tài liệu và sách báo chuyên ngành: Việc tiếp cận các tài liệu và sách báo chuyên ngành về đồ thị và thuật toán BFS không phải là dễ dàng Vì tài liệu trên nguồn internet là rời rạc Điều này khiến cho các giáo viên khó có thể nắm bắt và cập nhật kiến thức mới nhất trong lĩnh vực này
Trang 3Thiếu kinh nghiệm giảng dạy: Nhiều giáo viên chưa có đủ kinh nghiệm và kỹ năng trong việc giảng dạy phần "BFS và các ứng dụng" Điều này khiến cho việc truyền đạt kiến thức và hướng dẫn cho học sinh gặp nhiều khó khăn
b Giải pháp mới cải tiến:
Nhóm tác giả sử dụng hệ thống kiến thức thông qua việc phân loại các dạng BFS bằng thuật toán và các bài tập ứng dụng Do đó BFS và các ứng dụng được xây dựng là rất logic, đa dạng, phong phú, thể hiện kiến thức bao chùm từ cơ bản đến phức tạp, từ dễ đến khó, phù hợp với trình độ nhận thức của học sinh, có thể dành cho nhiều đối tượng học sinh dự thi học sinh giỏi THPT
Đối với học sinh lần đầu tiên tiếp cận với lý thuyết đồ thị sẽ không tránh khỏi những ngỡ ngàng, lạ lẫm, có phần trừu tượng khó hiểu Để giúp đỡ giải quyết vấn đề đó, trong chuyên đề này nhóm tác giả trình bày về phương pháp duyệt theo chiều rộng (BFS) trên đồ thị và các ứng dụng Phần lý thuyết về cơ bản đã rất rõ ràng trong cuốn Tài liệu giáo khoa chuyên Tin, nhóm tác giả trình bày lại theo hướng tiếp cận khác nhằm mục đính giúp cho giáo viên và học sinh có thể dễ dàng nghiên cứu hơn Trong nội dung nghiên cứu, nhóm tác giả trình bày về những ứng dụng cơ bản của BFS và các bài tập cho học sinh luyện tập, các bài tập được sắp xếp theo mức
độ từ dễ tới khó, mỗi bài có hướng dẫn sơ lược, có link test, một số bài chỉ để link để giáo viên
và học sinh tham khảo thêm Nội dung nghiên cứu này được dùng để dạy các em học sinh lớp
10 chuyên Tin, mới học đến phần lý thuyết cơ bản về đồ thị và các đối tượng học sinh ở các trường phổ thông trong tỉnh ôn thi HSG tiếp cận
Hệ thống bài tập lựa chọn đưa vào trong nội dung nghiên cứu này được sưu tầm chủ yếu nguồn trên SPOJ và VNOI để thuận tiện cho bạn đọc luyện tập Code mẫu một phần là của chính tác giả, một phần được tham khảo trên Internet
Trong mỗi dạng bài theo mức độ nhận thức, bài tập được sắp xếp theo từng chủ đề với
cùng mức độ kiến thức
3 Hiệu quả kinh tế, xã hội dự kiến đạt được
a Hiệu quả kinh tế
“BFS và các ứng dụng” không gây tốn kém về kinh tế của phụ huynh học sinh và nhà trường, vì vậy nó có thể áp dụng thường xuyên, liên tục ở các tiết học trên lớp; góp phần tích cực chuyển biến cách dạy, học của giáo viên và học sinh chuyên tin cũng như các đối tượng học sinh khá giỏi không thuộc lớp chuyên, trường chuyên
b Hiệu quả xã hội
- Nhiều học sinh đã tự giải được các bài tập trong cuốn Tài liệu giáo khoa chuyên tin và một số bài tập trên các trang nguồn SPOJ, VNOI
- Nhiều học sinh đã thực sự yêu thích, đam mê môn Tin học Qua đó các em có định hướng nghề nghiệp sau này
- Kết quả thu được thể hiện qua các bài kiểm tra qua hai năm học rất khả quan Cụ thể:
Trang 4Kết quả kiểm tra giữa học kì II năm học 2021 – 2022 của lớp thực nghiệm 10 chuyên tin K63
Lớp Sĩ số
Số lượng % Số lượng % Số lượng % Số lượng %
- Kết quả kiểm tra học kì II năm học 2022 – 2023 của lớp thực nghiệm 10 chuyên tin K64
Lớp Sĩ số
Số lượng % Số lượng % Số lượng % Số lượng %
4 Điều kiện và khả năng áp dụng
Chúng tôi xin cam đoan mọi thông tin nêu trong đơn là trung thực, đúng sự thật, nếu sai chúng tôi xin hoàn toàn chịu trách nhiệm
XÁC NHẬN CỦA LÃNH ĐẠO
ĐƠN VỊ CƠ SỞ
Ninh Bình, ngày 09 tháng 04 năm 2023
Người nộp đơn
Bùi Văn Hậu
Nguyễn Thị Thu Hà
Phạm Thị Thu Thủy
Trang 5Phần A: BẢN TÓM TẮT SÁNG KIẾN KINH NGHIỆM
1 Tên sáng kiến, lĩnh vực áp dụng
Tên sáng kiến: “BFS VÀ CÁC ỨNG DỤNG”
Lĩnh vực áp dụng: giảng dạy môn chuyên lớp 10
2 Nội dung
a Giải pháp cũ thường làm:
Khi giảng dạy phần "BFS và các ứng dụng" cho học sinh THPT thường gặp phải hai vấn
đề chính đó là chưa có hệ thống bài tập rõ ràng và chuyên đề về đồ thị tương đối mới đối với đại bộ phận giáo viên dạy Tin học trong tỉnh
* Về vấn đề thiếu hệ thống bài tập rõ ràng, thông thường các giáo viên chỉ giải thích lý
thuyết và cung cấp một số ví dụ để học sinh có thể hiểu và áp dụng vào thực tế Tuy nhiên, điều này khiến cho học sinh gặp khó khăn trong việc nắm vững kiến thức và áp dụng vào các bài tập thực tế
Bài tập Tin học liên quan tới BFS trong các đề thi học sinh giỏi cấp tỉnh thường đa dạng
Để có tài liệu dạy đội tuyển, giáo viên thường phải dày công tìm tòi từ nhiều nguồn tư liệu Khi soạn giảng, giáo viên bắt buộc phải tham khảo rất nhiều tài liệu từ nhiều phương tiện, do đó mất rất nhiều thời gian và công sức, tốn kém nhiều tiền bạc
* Về vấn đề chuyên đề về đồ thị tương đối mới và khó đối với đại bộ phận giáo viên dạy
Tin học trong tỉnh Do đó nhiều giáo viên cảm thấy khó khăn trong việc giảng dạy vì không có
đủ kiến thức về đồ thị để giải thích và hướng dẫn cho học sinh Giáo viên cũng phải đối mặt với nhiều thách thức trong việc giảng dạy phần "BFS và các ứng dụng" Một số khó khăn thường gặp là:
Thiếu tài liệu và sách báo chuyên ngành: Việc tiếp cận các tài liệu và sách báo chuyên ngành về đồ thị và thuật toán BFS không phải là dễ dàng Vì tài liệu trên nguồn internet là rời rạc Điều này khiến cho các giáo viên khó có thể nắm bắt và cập nhật kiến thức mới nhất trong lĩnh vực này
Thiếu kinh nghiệm giảng dạy: Nhiều giáo viên chưa có đủ kinh nghiệm và kỹ năng trong việc giảng dạy phần "BFS và các ứng dụng" Điều này khiến cho việc truyền đạt kiến thức và hướng dẫn cho học sinh gặp nhiều khó khăn
b Giải pháp mới cải tiến:
Nhóm tác giả sử dụng hệ thống kiến thức thông qua việc phân loại các dạng BFS bằng thuật toán và các bài tập ứng dụng Do đó BFS và các ứng dụng được xây dựng là rất logic, đa dạng, phong phú, thể hiện kiến thức bao chùm từ cơ bản đến phức tạp, từ dễ đến khó, phù hợp với trình độ nhận thức của học sinh, có thể dành cho nhiều đối tượng học sinh dự thi học sinh giỏi THPT
Đối với học sinh lần đầu tiên tiếp cận với lý thuyết đồ thị sẽ không tránh khỏi những ngỡ ngàng, lạ lẫm, có phần trừu tượng khó hiểu Để giúp đỡ giải quyết vấn đề đó, trong chuyên đề này nhóm tác giả trình bày về phương pháp duyệt theo chiều rộng (BFS) trên đồ thị và các ứng dụng Phần lý thuyết về cơ bản đã rất rõ ràng trong cuốn Tài liệu giáo khoa chuyên Tin, nhóm
Trang 6tác giả trình bày lại theo hướng tiếp cận khác nhằm mục đính giúp cho giáo viên và học sinh có thể dễ dàng nghiên cứu hơn Trong nội dung nghiên cứu, nhóm tác giả trình bày về những ứng dụng cơ bản của BFS và các bài tập cho học sinh luyện tập, các bài tập được sắp xếp theo mức
độ từ dễ tới khó, mỗi bài có hướng dẫn sơ lược, có link test, một số bài chỉ để link để giáo viên
và học sinh tham khảo thêm Nội dung nghiên cứu này được dùng để dạy các em học sinh lớp
10 chuyên Tin, mới học đến phần lý thuyết cơ bản về đồ thị và các đối tượng học sinh ở các trường phổ thông trong tỉnh ôn thi HSG tiếp cận
Hệ thống bài tập lựa chọn đưa vào trong nội dung nghiên cứu này được sưu tầm chủ yếu nguồn trên SPOJ và VNOI để thuận tiện cho bạn đọc luyện tập Code mẫu một phần là của chính tác giả, một phần được tham khảo trên Internet
Trong mỗi dạng bài theo mức độ nhận thức, bài tập được sắp xếp theo từng chủ đề với
cùng mức độ kiến thức
3 Hiệu quả kinh tế, xã hội dự kiến đạt được
a Hiệu quả kinh tế
“BFS và các ứng dụng” không gây tốn kém về kinh tế của phụ huynh học sinh và nhà trường, vì vậy nó có thể áp dụng thường xuyên, liên tục ở các tiết học trên lớp; góp phần tích cực chuyển biến cách dạy, học của giáo viên và học sinh chuyên tin cũng như các đối tượng học sinh khá giỏi không thuộc lớp chuyên, trường chuyên
b Hiệu quả xã hội
- Nhiều học sinh đã tự giải được các bài tập trong cuốn Tài liệu giáo khoa chuyên tin và một số bài tập trên các trang nguồn SPOJ, VNOI
- Nhiều học sinh đã thực sự yêu thích, đam mê môn Tin học Qua đó các em có định hướng nghề nghiệp sau này
- Kết quả thu được thể hiện qua các bài kiểm tra qua hai năm học rất khả quan Cụ thể:
Kết quả kiểm tra giữa học kì II năm học 2021 – 2022 của lớp thực nghiệm 10 chuyên tin K63
Lớp Sĩ số
Số lượng % Số lượng % Số lượng % Số lượng %
- Kết quả kiểm tra học kì II năm học 2022 – 2023 của lớp thực nghiệm 10 chuyên tin K64
Trang 7Lớp Sĩ số Số lượng % Số lượng % Số lượng % Số lượng %
4 Điều kiện và khả năng áp dụng
Chúng tôi xin cam đoan mọi thông tin nêu trong đơn là trung thực, đúng sự thật, nếu sai chúng tôi xin hoàn toàn chịu trách nhiệm
Trang 8Phần B: PHỤ LỤC (Mục đích: Trình bày chi tiết các giải pháp trong sáng kiến)
Trang 91 Giới thiệu
Trong chuyên đề này tôi trình bày về phương pháp duyệt theo chiều rộng (BFS) trên đồ thị và các ứng dụng Phần lý thuyết về cơ bản đã rất rõ ràng trong cuốn Tài liệu giáo khoa chuyên Tin, tôi trình bày lại theo hướng tiếp cận của cá nhân, tài liệu được dùng để dạy các em học sinh lớp 10 chuyên Tin, mới học đến phần lý thuyết cơ bản về đồ thị
Đối với học sinh lần đầu tiên tiếp cận với lý thuyết đồ thị sẽ không tránh khỏi những ngỡ ngàng, lạ lẫm, có phần trừu tượng khó hiểu, để giúp đỡ giải quyết vấn đề đó, trong phạm
vi chuyên đề chỉ trình bày những ứng dụng cơ bản của BFS và các bài tập cho học sinh luyện tập, các bài tập được sắp xếp theo mức độ từ dễ tới khó, mỗi bài có hướng dẫn sơ lược, có link test, một số bài chỉ để link để bạn đọc tham khảo thêm
Các bài tập được sưu tầm chủ yếu nguồn trên SPOJ và VNOI để thuận tiện cho bạn đọc luyện tập Code mẫu một phần là của chính tác giả, một phần được tham khảo trên Internet Do hạn chế về thời gian cũng như trình độ, chuyên đề phản ánh góc tiếp cận của cá nhân trong quá trình dạy học phần BFS nên còn có nhiều thiếu sót, rất mong nhận được ý kiến đóng góp của bạn đọc để hoàn thiện hơn Xin chân thành cảm ơn
Trang 102 Yêu cầu kiến thức
Để tiếp cận được với chuyên đề này, yêu cầu người học cần chuẩn bị trước một số khái niệm về lý thuyết đồ thị, bao gồm:
Một đồ thị kí hiệu là G = (V,E)
Trong đó:
• V là tập các đỉnh của đồ thị Kí hiệu |V| = N là số đỉnh của đồ thị
• E là tập các cạnh của đồ thị Kí hiệu |E| = M là số cạnh của đồ thị
Đỉnh:
Đỉnh biểu diễn các đối tượng trong đồ thị, thường được đánh dấu bằng các số 1, 2,… hoặc kí hiệu bằng các chữ cái in thường u,v,…
Cạnh:
Cạnh nối đỉnh x với đỉnh y là một tập gồm hai phần tử (x,y) (x,y) thường được vẽ dưới dạng một đoạn thẳng nối hai đỉnh
Cạnh có hướng (cung):
Là một cặp đỉnh có thứ tự Trong mỗi cặp có thứ tự đó, đỉnh thứ nhất được gọi là đỉnh đầu, đỉnh thứ hai là đỉnh cuối
Cạnh vô hướng:
Không quan tâm đến hướng và coi hai đỉnh như nhau
Khuyên:
Là một cạnh nối một đỉnh với chính nó
Hai cạnh song song:
Là hai cạnh cùng nối hai đỉnh u, v
Đồ thị có hướng:
Là đồ thị mà tất cả các cạnh trong đồ thị đều có hướng
Đồ thị vô hướng:
Là đồ thị mà tất cả các cạnh trong đồ thị đều vô hướng
Đơn đồ thị:
Là đồ thị không có khuyên và không có cạnh song song
Đa đồ thị:
Là đồ thị không phải là đơn đồ thị
Bậc:
Trang 11Trong đồ thị vô hướng, bậc của đỉnh v trong đồ thị G, ký hiệu dG(u), là số cạnh liên thuộc với v, trong đó, khuyên được tính hai lần
Ta có định lí:
Giả sử G=(V,E) là đồ thị vô hướng, khi đó tổng các bậc đỉnh trong V sẽ bằng 2 lần số cạnh
! 𝑑!(𝑣) = 𝑚 ∗ 2
"∈$
Hệ quả: Trong đồ thị vô hướng, số đỉnh bậc lẻ là chẵn
Trong đồ thị có hướng, ta định nghĩa bán bậc ra của u là số cung đi ra khỏi nó, kí hiệu
d+ G(u), bán bậc vào của u là số cung đi vào đỉnh đó,
kí hiệu d- G(u)
Giả sử G=(V, E) là đồ thị có hướng, khi đó tổng các bán bậc vào bằng tổng các bán bậc
ra và bằng số cung của đồ thị
Đường đi và chu trình:
Một dãy các đỉnh P = (p0, p1, …, pk) sao cho (Pi-1, Pi) ∊ E, ∀i: 1 ≤ i ≤ k được gọi là một đường đi
Một đường đi là chu trình khi p0 = pk
Liên thông:
Một đồ thị vô hướng là liên thông nếu tồn tại đường đi giữa hai cặp đỉnh bất kì thuộc
đồ thị
Một đồ thị có hướng là liên thông yếu nếu phiên bản vô hướng của đồ thị đó là liên thông
Biểu diễn đồ thị trên máy tính
Có nhiều cách để biểu diễn đồ thị trên máy tính, tùy thuộc vào tính chất của đồ thị hoặc thuật toán áp dụng với đồ thị… Ta cũng có thể lưu kèm theo các thông tin như trọng số, giá trị phù hợp với từng cạnh
*Biển diễn đồ thị theo ma trận kề
*Biểu diễn đồ thị bằng danh sách cạnh
*Biểu diễn đồ thị bằng danh sách kề
*Biểu diễn đồ thị bằng danh sách liền thuộc
Trang 123 BFS và ứng dụng
3.1 Thuật toán duyệt đồ thị ưu tiên chiều rộng
Thuật toán duyệt đồ thị ưu tiên chiều rộng (Breadth-first search - BFS) là một trong
những thuật toán tìm kiếm cơ bản và thiết yếu trên đồ thị Mà trong đó, những đỉnh nào gần
đỉnh xuất phát hơn sẽ được duyệt trước
Ứng dụng của BFS có thể giúp ta giải quyết tốt một số bài toán trong thời gian và không
gian tối thiểu Đặc biệt là bài toán tìm kiếm đường đi ngắn nhất từ một đỉnh gốc tới tất cả các
đỉnh khác Trong đồ thị không có trọng số hoặc tất cả trọng số bằng nhau, thuật toán sẽ luôn trả
ra đường đi ngắn nhất có thể Ngoài ra, thuật toán này còn được dùng để tìm các thành phần
liên thông của đồ thị, hoặc kiểm tra đồ thị hai phía, …
Ý tưởng
Với đồ thị không trọng số và đỉnh nguồn s Đồ thị này có thể là đồ thị có hướng hoặc vô
hướng, điều đó không quan trọng đối với thuật toán
Có thể hiểu thuật toán như một ngọn lửa lan rộng trên đồ thị:
• Ở bước thứ 0, chỉ có đỉnh nguồn s đang cháy
• Ở mỗi bước tiếp theo, ngọn lửa đang cháy ở mỗi đỉnh lại lan sang tất cả các đỉnh kề
với nó
Trong mỗi lần lặp của thuật toán, "vòng lửa" lại lan rộng ra theo chiều rộng Những đỉnh
nào gần s hơn sẽ bùng cháy trước
Chính xác hơn, thuật toán có thể được mô tả như sau:
• Đầu tiên ta thăm đỉnh nguồn s
• Việc thăm đỉnh s sẽ phát sinh thứ tự thăm các đỉnh (u1,u2,…up) ( v1,v2,…,vq) kề
với s (những đỉnh gần s nhất) Tiếp theo, ta thăm đỉnh u1, khi thăm đỉnh u1 sẽ lại phát
sinh yêu cầu thăm những đỉnh (v1,v2,…,vq) (v1,v2,…,vq) kề với u1 Nhưng rõ ràng
những đỉnh v này “xa” s hơn những đỉnh u nên chúng chỉ được thăm khi tất cả những
đỉnh u đều đã được thăm Tức là thứ tự thăm các đỉnh sẽ là: s, u1,u2,…up,
v1,v2,…,vq,…