1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Sáng kiến kinh nghiệm bfs và các ứng dụng

34 1 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 34
Dung lượng 1,63 MB

Nội dung

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 haivấ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

SỞ 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” NĂM HỌC : 2022-2023 Phần A: BẢN TÓM TẮT SÁNG KIẾN KINH NGHIỆM 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 Nội dung a Giải pháp cũ thường làm: Khi giảng dạy phần "BFS ứng dụng" cho học sinh THPT thường gặp phải hai vấn đề chưa có hệ thống tập rõ ràng chuyên đề đồ thị tương đối đại phận giáo viên dạy Tin học tỉnh * Về vấn đề thiếu hệ thống tập rõ ràng, thông thường giáo viên giải thích lý thuyết cung cấp số ví dụ để học sinh hiểu áp dụng vào thực tế Tuy nhiên, điều khiến cho học sinh gặp khó khăn việc nắm vững kiến thức áp dụng vào tập thực tế Bài tập Tin học liên quan tới BFS đề 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 nhiều tài liệu từ nhiều phương tiện, nhiều thời gian công sức, tốn nhiều tiền bạc * Về vấn đề chuyên đề đồ thị tương đối khó đại phận giáo viên dạy Tin học tỉnh Do nhiều giáo viên cảm thấy khó khăn việc giảng dạy khơng có đủ kiến thức đồ thị để giải thích hướng dẫn cho học sinh Giáo viên phải đối mặt với nhiều thách thức việc giảng dạy phần "BFS ứng dụng" Một số khó khăn thường gặp là: Thiếu tài liệu sách báo chuyên ngành: Việc tiếp cận tài liệu sách báo chuyên ngành đồ thị thuật tốn BFS khơng phải dễ dàng Vì tài liệu nguồn internet rời rạc Điều khiến cho giáo viên khó nắm bắt cập nhật kiến thức lĩnh vực Thiếu kinh nghiệm giảng dạy: Nhiều giáo viên chưa có đủ kinh nghiệm kỹ việc giảng dạy phần "BFS ứng dụng" Điều khiến cho việc truyền đạt kiến thức hướng dẫn cho học sinh gặp nhiều khó khăn b Giải pháp 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 dạng BFS thuật toán tập ứng dụng Do BFS ứng dụng xây dựng logic, đa dạng, phong phú, thể kiến thức bao chùm từ đến phức tạp, từ dễ đến khó, phù hợp với trình độ nhận thức học sinh, 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 tiếp cận với lý thuyết đồ thị không tránh khỏi ngỡ ngàng, lạ lẫm, có phần trừu tượng khó hiểu Để giúp đỡ giải vấn đề đó, chun đề nhóm tác giả trình bày phương pháp duyệt theo chiều rộng (BFS) đồ thị ứng dụng Phần lý thuyết rõ ràng Tài liệu giáo khoa chun 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 học sinh dễ dàng nghiên cứu Trong nội dung nghiên cứu, nhóm tác giả trình bày ứng dụng BFS tập cho học sinh luyện tập, tập xếp theo mức độ từ dễ tới khó, có hướng dẫn sơ lược, có link test, số để link để giáo viên học sinh tham khảo thêm Nội dung nghiên cứu dùng để dạy em học sinh lớp 10 chuyên Tin, học đến phần lý thuyết đồ thị đối tượng học sinh trường phổ thông tỉnh ôn thi HSG tiếp cận Hệ thống tập lựa chọn đưa vào nội dung nghiên cứu sưu tầm chủ yếu nguồn SPOJ VNOI để thuận tiện cho bạn đọc luyện tập Code mẫu phần tác giả, phần tham khảo Internet Trong dạng theo mức độ nhận thức, tập xếp theo chủ đề với mức độ kiến thức Hiệu kinh tế, xã hội dự kiến đạt a Hiệu kinh tế “BFS ứng dụng” không gây tốn kinh tế phụ huynh học sinh nhà trường, áp dụng thường xun, liên tục tiết học lớp; góp phần tích cực chuyển biến cách dạy, học giáo viên học sinh chuyên tin đối tượng học sinh giỏi không thuộc lớp chuyên, trường chuyên b Hiệu xã hội - Nhiều học sinh tự giải tập Tài liệu giáo khoa chuyên tin số tập trang nguồn SPOJ, VNOI - Nhiều học sinh thực u thích, đam mê mơn Tin học Qua em có định hướng nghề nghiệp sau - Kết thu thể qua kiểm tra qua hai năm học khả quan Cụ thể: Kết kiểm tra học kì II năm học 2021 – 2022 lớp thực nghiệm 10 chuyên tin K63 Kh Giỏi L ớp Tb Yếu Sĩ số Số lượng % Số lượng % Số lượng % Số lượng % 28.6 23 65.7% 10 5.7% 0% Tin % - Kết kiểm tra học kì II năm học 2022 – 2023 lớp thực nghiệm 10 chuyên tin K64 Giỏi Khá Tb Yếu L Sĩ ớp số Tin Số % lượng 24 Số % lượng 8.6% 10 Số Số lượng 8.6% lượng 9% Điều kiện khả áp dụng Chúng xin cam đoan thông tin nêu đơn trung thực, thật, sai chúng tơi xin hồn toàn chịu trách nhiệm % Phần B: PHỤ LỤC (Mục đích: Trình bày chi tiết giải pháp sáng kiến) Giới thiệu Trong chun đề tơi trình bày phương pháp duyệt theo chiều rộng (BFS) đồ thị ứng dụng Phần lý thuyết rõ ràng Tài liệu giáo khoa chun Tin, tơi trình bày lại theo hướng tiếp cận cá nhân, tài liệu dùng để dạy em học sinh lớp 10 chuyên Tin, học đến phần lý thuyết đồ thị Đối với học sinh lần tiếp cận với lý thuyết đồ thị không tránh khỏi ngỡ ngàng, lạ lẫm, có phần trừu tượng khó hiểu, để giúp đỡ giải vấn đề đó, phạm vi chuyên đề trình bày ứng dụng BFS tập cho học sinh luyện tập, tập xếp theo mức độ từ dễ tới khó, có hướng dẫn sơ lược, có link test, số để link để bạn đọc tham khảo thêm Các tập sưu tầm chủ yếu nguồn SPOJ VNOI để thuận tiện cho bạn đọc luyện tập Code mẫu phần tác giả, phần tham khảo Internet Do hạn chế thời gian trình độ, chun đề phản ánh góc tiếp cận cá nhân trình dạy học phần BFS nên cịn có nhiều thiếu sót, mong nhận ý kiến đóng góp bạn đọc để hồn thiện Xin chân thành cảm ơn Yêu cầu kiến thức Để tiếp cận với chuyên đề này, yêu cầu người học cần chuẩn bị trước số khái niệm lý thuyết đồ thị, bao gồm: Một đồ thị kí hiệu G = (V,E) Trong đó:  V tập đỉnh đồ thị Kí hiệu |V| = N số đỉnh đồ thị  E tập cạnh đồ thị Kí hiệu |E| = M số cạnh đồ thị Đỉnh: Đỉnh biểu diễn đối tượng đồ thị, thường đánh dấu số 1, 2,… kí hiệu chữ in thường u,v,… Cạnh: Cạnh nối đỉnh x với đỉnh y tập gồm hai phần tử (x,y) (x,y) thường vẽ dạng đoạn thẳng nối hai đỉnh Cạnh có hướng (cung): Là cặp đỉnh có thứ tự Trong cặp có thứ tự đó, đỉnh thứ gọi đỉnh đầu, đỉnh thứ hai đỉnh cuối Cạnh vô hướng: Không quan tâm đến hướng coi hai đỉnh Khuyên: Là cạnh nối đỉnh với Hai cạnh song song: Là hai cạnh nối hai đỉnh u, v Đồ thị có hướng: Là đồ thị mà tất cạnh đồ thị có hướng Đồ thị vơ hướng: Là đồ thị mà tất cạnh đồ thị vơ hướng Đơn đồ thị: Là đồ thị khơng có khun khơng có cạnh song song Đa đồ thị: Là đồ thị đơn đồ thị Bậc: Trong đồ thị vô hướng, bậc đỉnh v đồ thị G, ký hiệu dG(u), số cạnh liên thuộc với v, đó, khun tính hai lần Ta có định lí: Giả sử G=(V,E) đồ thị vơ hướng, tổng bậc đỉnh V lần số cạnh ∑ d G ( v )=m∗2 v ∈V Hệ quả: Trong đồ thị vô hướng, số đỉnh bậc lẻ chẵn Trong đồ thị có hướng, ta định nghĩa bán bậc u số cung khỏi nó, kí + hiệu d G(u), bán bậc vào u số cung vào đỉnh đó, kí hiệu d-G(u) Giả sử G=(V, E) đồ thị có hướng, tổng bán bậc vào tổng bán bậc số cung đồ thị Đường chu trình: Một dãy đỉnh P = (p0, p1, …, pk) cho (Pi-1, Pi) ∊ E, ∀i: ≤ i ≤ k gọi đường Một đường chu trình p0 = pk Liên thông: Một đồ thị vô hướng liên thông tồn đường hai cặp đỉnh thuộc đồ thị Một đồ thị có hướng liên thông yếu phiên vô hướng đồ thị liên thơng Biểu diễn đồ thị máy tính Có nhiều cách để biểu diễn đồ thị máy tính, tùy thuộc vào tính chất đồ thị thuật toán áp dụng với đồ thị… Ta lưu kèm theo thơng tin trọng số, giá trị phù hợp với cạnh *Biển diễn đồ thị theo ma trận kề *Biểu diễn đồ thị danh sách cạnh *Biểu diễn đồ thị danh sách kề *Biểu diễn đồ thị danh sách liền thuộc BFS ứ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) thuật tốn tìm kiếm thiết yếu đồ thị Mà đó, đỉnh gần đỉnh xuất phát duyệt trước Ứng dụng BFS giúp ta giải tốt số toán thời gian khơng gian tối thiểu Đặc biệt tốn tìm kiếm đường ngắn từ đỉnh gốc tới tất đỉnh khác Trong đồ thị khơng có trọng số tất trọng số nhau, thuật tốn ln trả đường ngắn Ngồi ra, thuật tốn cịn dùng để tìm thành phần liên thơng đồ thị, kiểm tra đồ thị hai phía, … Ý tưởng Với đồ thị không trọng số đỉnh nguồn s Đồ thị đồ thị có hướng vơ hướng, điều khơng quan trọng thuật tốn Có thể hiểu thuật tốn lửa lan rộng đồ thị: Ở bước thứ 0, có đỉnh nguồn s cháy Ở bước tiếp theo, lửa cháy đỉnh lại lan sang tất đỉnh kề với Trong lần lặp thuật tốn, "vịng lửa" lại lan rộng theo chiều rộng Những đỉnh gần s bùng cháy trước   Chính xác hơn, thuật tốn mơ tả sau:  Đầu tiên ta thăm đỉnh nguồn s  Việc thăm đỉnh s phát sinh thứ tự thăm đỉ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, thăm đỉnh u1 lại phát sinh yêu cầu thăm đỉnh (v1,v2,…,vq) (v1,v2,…,vq) kề với u1 Nhưng rõ ràng đỉnh v “xa” s đỉnh u nên chúng thăm tất đỉnh u thăm Tức thứ tự thăm đỉnh là: s, u1,u2,…up, v1,v2,…,vq, … Thuật tốn tìm kiếm theo chiều rộng sử dụng danh sách để chứa đỉnh “chờ” thăm Tại bước, ta thăm đỉnh đầu danh sách, loại khỏi danh sách cho đỉnh kề với chưa thăm xếp hàng vào cuối danh sách Thuật toán kết thúc danh sách rỗng Thuật toán Thuật toán sử dụng cấu trúc liệu hàng đợi (queue) để chứa đỉnh duyệt theo thứ tự ưu tiên chiều rộng Bước 1: Khởi tạo  Các đỉnh trạng thái chưa đánh dấu Ngoại trừ đỉnh nguồn s đánh dấu  Một hàng đợi ban đầu chứa phần tử s Bước 2: Lặp lại bước sau hàng đợi rỗng:  Lấy đỉnh u khỏi hàng đợi  Xét tất đỉnh v kề với u mà chưa đánh dấu, với đỉnh v đó: o Đánh dấu v thăm o Lưu lại vết đường từ u đến v o Đẩy v vào hàng đợi (đỉnh v chờ duyệt bước sau) Bước 3: Truy vết tìm đường Mô tả  Xét đồ thị sau đây, với đỉnh nguồn s=1 : Đánh giá Ta sử dụng mảng moveX[] moveY[] để dễ dàng duyệt qua tất ô kề cạnh với ô xét Độ phức tạp Với test: Vì ô ma trận duyệt lần nên ta độ phức tạp O(N×M)  Ta thêm O(4×N×M) ta phải duyệt qua 44 ô kề cạnh với ô ma trận Nhìn chung, độ phức tạp thuật tốn O(t×(N×M+4×N×M)) Với t số lượng test  3.5 Ứng dụng BFS để tìm đường ngắn đồ thị không trọng số Những sử dụng BFS thường u cầu tìm số bước (hoặc đường ngắn nhất) từ điểm đầu đến điểm cuối Bên cạnh đó, đường điểm thường có chung trọng số (và thường 1) Phổ biến dạng cho bảng N×M, có qua ô không qua Bảng mê cung, sơ đồ, thành phố thứ thứ tương đương Có thể nói tốn BFS kinh điển Hãy xem xét toán sau đây: Bài toán Đề Cho bảng hình chữ nhật chia thành lưới vng kích thước R×C (1≤R,C≤100) Mỗi mang giá trị sau : , * , B , C Cơ bị Bessie đứng C cần đến ô B Mỗi bước Bessie từ vng sang ô vuông khác kề cạnh không vào ô * hay khỏi bảng Hãy tìm số bước để Bessie đến B Đảm bảo có B ô C bảng, tồn đường từ C đến B Dữ liệu: - Dòng đầu hai số R, C - R dòng dịng chứa C kí tự là: * B C Kết quả: đưa kết tốn Phân tích Theo mối quan hệ xây dựng đề bài, Bessie di chuyển từ ô vuông sang ô vuông khác kề cạnh Từ đó, ta xây dựng mơ hình đồ thị toán:  Gọi đỉnh đồ thị tương ứng với ô lưới ô vuông  Tồn cạnh nối cặp đỉnh (u,v) từ ô tương ứng với đỉnh u di chuyển đến tương ứng với đỉnh v (đồng nghĩa, ô tương ứng với đỉnh u kề cạnh với ô tương ứng với đỉnh v ô ô * ) Sau xây dựng đồ thị, toán quy sau: Tìm đường ngắn từ đỉnh tương ứng với ô C đến đỉnh tương ứng với B Độ dài đường ngắn số bước mà Bessie cần thực Vậy để tìm kết tốn, ta áp dụng thuật toán BFS Cài đặt Cấu trúc liệu:  Hằng số maxN = 110  Mảng d[][] - Mảng lưu số bước để từ ô xuất phát đến ô khác  Mảng visit[][] - Mảng đánh dấu ô qua  Hàng đợi q - Chứa ô duyệt theo thứ tự ưu tiên chiều rộng

Ngày đăng: 08/02/2024, 23:31

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w