bồi dưỡng học sinh giỏi môn tin học thpt chuyên đề ứng dụng BFS và DFS trong giải bài tập lý thuyết đồ thị

29 125 0
  • Loading ...
1/29 trang

Thông tin tài liệu

Ngày đăng: 29/04/2017, 20:47

MỤC LỤC Dữ liệu vào 19 Dữ liệu .19 Ví dụ 19 VNOI - Olympic tin học Việt Nam - Mục lục diễn đàn - Forum 28 1 Phần mở đầu 1.1 chọn đề tài - Bước sang kỷ 21, nhìn lại kỷ 20 kỷ mà người đạt nhiều thành tựu khoa học rực rỡ nhất, thành tựu bùng nổ ngành khoa học máy tính Sự phát triển kỳ diệu máy tính kỷ gắn liền với phát triển toán học đại, toán rời rạc Toán rời rạc nói chung thuyết đồ thị nói riêng công cụ thiết yếu cho nhiều ngành khoa học kỹ thuật - Trong chương trình học tập học sinh chuyên Tin trường THPT trang bị kiến thức thuyết đồ thị để nhằm phục vụ cho việc lập trình giải toán, làm tập lập trình Bởi điều thông qua giải tập, học sinh phải thực hoạt động định bao gồm nhận dạng thể định nghĩa, định lý, quy tắc hay phương pháp, hoạt động toán học phức hợp Học sinh nắm thuyết cách vững vàng thông qua việc làm tập - Việc cung cấp thêm phương pháp giải tập cho học sinh chuyên Tin nhu cầu cần thiết Hiện việc nghiên cứu khai thác số yếu tố thuyết đồ thị số tác giả quan tâm Nếu ta có phương pháp giúp học sinh chuyên Tin trung học phổ thông vận dụng kiến thức thuyết đồ thị vào giải toán giúp học sinh giải số lớp toán góp phần nâng cao chất lượng dạy học giải tập cho học sinh chuyên Tin - BFS DFS thuật toán tìm kiếm quan trọng đồ thị Những thuật toán móng quan trọng để xây dựng thiết kế thuật giải khác thuyết đồ thị Xuất phát từ lựa chọn đề tài: “Ứng dụng BFS DFS giải tập thuyết đồ thị ” 1.2 Mục tiêu, nhiệm vụ đề tài - Mục tiêu đề tài: Chỉ hướng vận dụng DFS BFS thuyết đồ thị vào giải toán tìm biện pháp để giúp học sinh chuyên Tin trung học phổ thông hình thành phát triển lực vận dụng thuyết đồ thị vào giải tập lập trình - Nhiệm vụ đề tài: + Tìm hiểu nội dung thuyết đồ thị trang bị cho học sinh chuyên Tin Trong sâu vào hai thuật toán tìm kiếm đồ thị DFS BFS + Chỉ hệ thống tập chương trình toán vận dụng DFS BFS để giải tập thuyết đồ thị + Kiểm tra hiệu biện pháp, phương án thuyết đồ thị vào giải toán thực tế 1.3 Phương pháp nghiên cứu - Nghiên cứu luận + Tài liệu Giáo khoa chuyên tin, sách nâng cao, sách chuyên đề + Các tài liệu thuyết đồ thị ứng dụng thực tiễn sống dạy học + Các công trình nghiên cứu vấn đề liên quan trực tiếp đến phương pháp đồ thị - Thực nghiệm sư phạm + Chỉ cho học sinh dấu hiệu "nhận dạng" cách thức vận dụng thuyết đồ thị vào giải tập toán + Biên soạn hệ thống tập luyện tập cho học sinh số đề kiểm tra để đánh giá khả vận dụng thuyết đồ thị vào giải toán + Tiến hành thực nghiệm đánh giá kết thực nghiệm Phần nội dung 2.1 Cơ sở luận Theo triết học vật biện chứng, mâu thuẫn động lực thúc đẩy trình phát triển Một vấn đề gợi cho học sinh học tập mâu thuẫn yêu cầu nhiệm vụ nhận thức với tri thức kinh nghiệm sẵn có Theo nhà tâm học, người bắt đầu tư tích cực nảy sinh nhu cầu tư duy, tức đứng trước khó khăn nhận thức cần phải khắc phục, tình gợi vấn đề Theo tâm học kiến tạo, học tập chủ yếu trình người học xây dựng tri thức cho cách liên hệ cảm nghiệm với tri thức có 2.2.Thực trạng a Thuận lợi - Được quan tâm, giúp đỡ tận tình Ban Gíam Hiệu tổ chức đoàn thể nhà trường Sự ủng hộ nhiệt tình đồng nghiệp giúp cho trình giảng dạy Tin học đạt hiệu cao - Học sinh lớp trương chuyên nói chung, học sinh lớp chuyên tin nói riêng thông minh, ham học Trong lớp đa số học sinh tích cực phát biểu xây dựng bài, nguồn động viên lớn trình giảng dạy - Nhìn chung, học tập theo phương pháp học sinh có hứng thú học tập so với so với phương pháp dạy học truyền thống Vì thế, có điều kiện phát triển tư khả diễn đạt em b Khó khăn - Đội ngũ giáo viên Tin học thiếu, đặc biệt giáo viên dạy chuyên Tin Công việc giáo viên dạy tin học nhà trường phải đảm nhận nhiều, thời gian đầu tư cho chuyên môn hạn chế - Dạy học theo lối dạy nhồi nhét, dạy luyện thi, đối phó với thi, kiểm tra cho có điểm số cao mà chưa quan tâm đến phát triển trí tuệ, lực cá nhân học sinh Giáo viên học sinh chưa khắc phục nhận thức, thói quen dạy học truyền thống, nặng thuyết coi nhẹ thực hành ứng dụng Các em học sinh thường nắm thuyết, việc vận dụng thuyết để làm tập hạn chế Giáo viên phải song hành việc dạy thuyết cho học sinh với đưa phương pháp làm tập vận dụng kiến thức học Việc làm tập thực hành giúp học sinh nắm vững kiến thức, từ phát triển tư cách tổng quát, giúp em giải lớp toán lớn Qua việc giải tập học sinh yêu thích, hứng thú với môn học Đề tài nghiên cứu “Ứng dụng BFS DFS giải tập thuyết đồ thị” nguồn tài liệu bổ ích cho giáo viên học sinh việc giảng dạy chuyên đề thuyết đồ thị 2.3 Quá trình thực a Các Khái niệm thuyết đồ thị - Định nghĩa đồ thị: Đồ thị cấu trúc rời rạc bao gồm đỉnh cạnh nối đỉnh Chúng ta phân biệt loại đồ thị khác kiểu số lượng cạnh nối hai đỉnh đồ thị - Định nghĩa Đơn đồ thị vô hướng G = (V,E) bao gồm V tập đỉnh, E tập cặp thứ tự gồm hai phần tử khác V gọi cạnh - Định nghĩa Đa đồ thị vô hướng G= (V, E) bao gồm V tập đỉnh, E tập cặp thứ tự gồm hai phần tử khác V gọi cạnh Hai cạnh e1 e2 gọi cạnh lặp chúng tương ứng với cặp đỉnh - Định nghĩa Giả đồ thị vô hướng G = (V, E) bao gồm V tập đỉnh E tập cặp thứ tự gồm hai phần tử (không thiết phải khác nhau) V gọi cạnh Cạnh e gọi khuyên có dạng e = (u, u) - Định nghĩa Đơn đồ thị có hướng G = (V, E) bao gồm V tập đỉnh E tập cặp có thứ tự gồm hai phần tử khác V gọi cung - Định nghĩa Đa đồ thị có hướng G = (V, E) bao gồm V tập đỉnh E tập cặp có thứ tự gồm hai phần tử khác V gọi cung Hai cung e 1, e2 tương ứng với cặp đỉnh gọi cung lặp - Cạnh liên thuộc: Hai đỉnh u v đồ thị vô hướng G gọi kề (u,v) cạnh đồ thị G Nếu e = (u, v) cạnh đồ thị ta nói cạnh liên thuộc với hai đỉnh u v, nói nối đỉnh u đỉnh v, đồng thời đỉnh u v gọi đỉnh đầu cạnh (u, v) - Bậc đỉnh: Bậc đỉnh v đồ thị G=(V, E), ký hiệu deg(v) số cạnh liên thuộc với Nếu cạnh khuyên tính Thí dụ Xét đồ thị cho hình 1, ta có deg(a) = 1, deg(b) = 4, deg(c) = 4, deg(f) = 3, deg(d) = 1, deg(e) = 3, deg(g) = Đỉnh bậc gọi đỉnh cô lập Đỉnh bậc gọi đỉnh treo Trong ví dụ đỉnh g đỉnh cô lập, a d đỉnh treo Định Giả sử G = (V, E) đồ thị vô hướng với m cạnh Khi tông bậc tất đỉnh hai lần số cạnh Thí dụ Đồ thị với n đỉnh có bậc có cạnh? Giải: Theo định ta có 2m = 6n Từ suy tổng cạnh đồ thị 3n Ta gọi bán bậc (bán bậc vào) đỉnh v đồ thị có hướng số cung đồ thị khỏi (đi vào nó) ký hiệu deg+(v) (deg-(v)) Thí dụ Xét đồ thị cho hình Ta có deg-(a)=1, deg-(b)=2, deg-(c)=2, deg-(d)=2, deg-(e) = deg+(a)=3, deg+(b)=1, deg+(c)=1, deg+(d)=2, deg+(e)=2 Định Giả sử G = (V, E) đồ thị có hướng Khi Tổng tất bán bậc tổng tất bán bậc vào số cung Đồ thị vô hướng thu cách bỏ qua hướng cung gọi đồ thị vô hướng tương ứng với đồ thị có hướng cho - Đường đi, chu trình đồ thị Đường độ dài n từ đỉnh u đến đỉnh v, n số nguyên dương, đồ thị vô hướng G = (V, E) dãy x0, x1,…, xn-1, xn u = x0 , v = xn , (xi , xi+1) ∈ E, i = 0, 1, 2,…, n-1 Đường nói biểu diễn dạng dãy cạnh: (x0, x1), (x1, x2), …, (xn-1, xn) Đỉnh u gọi đỉnh đầu, đỉnh v gọi đỉnh cuối đường Đường có đỉnh đầu trùng với đỉnh cuối (tức u = v) gọi chu trình Đường hay chu trình gọi đơn cạnh bị lặp lại - Tính liên thông đồ thị - Đồ thị vô hướng G = (V, E) gọi liên thông tìm đường hai đỉnh b Biểu diễn đồ thị máy tính - Có nhiều cách khác để lưu trữ đồ thị máy tính Sử dụng cấu trúc liệu tùy theo cấu trúc đồ thị thuật toán dùng để thao tác đồ thị Trên thuyết, người ta phân biệt cấu trúc danh sách cấu trúc ma trận Tuy nhiên, ứng dụng cụ thể, cấu trúc tốt thường kết hợp hai Người ta hay dùng cấu trúc danh sách cho đồ thị thưa (sparse graph), chúng đòi hỏi nhớ Trong đó, cấu trúc ma trận cho phép truy nhập liệu nhanh hơn, lại cần lượng nhớ lớn đồ thị có kích thước lớn - Các cấu trúc danh sách Danh sách liên thuộc (Incidence list) - Mỗi đỉnh có danh sách cạnh nối với đỉnh Các cạnh đồ thị được lưu danh sách riêng (có thể cài đặt mảng (array) danh sách liên kết động (linked list)), phần tử ghi thông tin cạnh, bao gồm: cặp đỉnh mà cạnh nối (cặp có thứ tự đồ thị có hướng), trọng số liệu khác Danh sách liên thuộc đỉnh chiếu tới vị trí cạnh tương ứng danh sách cạnh Danh sách kề (Adjacency list) - Mỗi đỉnh đồ thị có danh sách đỉnh kề (nghĩa có cạnh nối từ đỉnh đến đỉnh đó) Trong đồ thị vô hướng, cấu trúc gây trùng lặp Chẳng hạn đỉnh nằm danh sách đỉnh đỉnh phải có danh sách đỉnh Lập trình viên chọn cách sử dụng phần không gian thừa, liệt kê quan hệ kề cạnh lần Biểu diễn liệu thuận lợi cho việc từ đỉnh tìm đỉnh nối với nó, đỉnh liệt kê tường minh - Các cấu trúc ma trận Ma trận liên thuộc (Incidence matrix) - Đồ thị biểu diễn ma trận kích thước p × q, p số đỉnh q số cạnh, quan hệ đỉnh đầu cạnh cạnh Đơn giản nhất: đỉnh chứa liệu , trường hợp khác Ma trận kề (Adjaceny matrix) - ma trận N × N, N số đỉnh đồ thị Nếu có cạnh nối đỉnh với đỉnh phần tử 1, không, có giá trị Cấu trúc tạo thuận lợi cho việc tìm đồ thị để đảo đồ thị Ma trận dẫn nạp (Admittance matrix) ma trận Kirchhoff (Kirchhoff matrix) hay ma trận Laplace (Laplacian matrix) - định nghĩa kết thu lấy ma trận bậc (degree matrix) trừ ma trận kề Do đó, ma trận chứa thông tin quan hệ kề (có cạnh nối hay không) đỉnh lẫn bậc đỉnh c Thuật toán tìm kiếm đồ thị * Thuật toán tìm kiếm theo chiều rộng Trong thuyết đồ thị, tìm kiếm theo chiều rộng (BFS) thuật toán tìm kiếm đồ thị việc tìm kiếm bao gồm thao tác: (a) thăm đỉnh đồ thị; (b) thêm đỉnh kề với đỉnh vừa thăm vào danh sách thăm tương lai Có thể sử dụng thuật toán tìm kiếm theo chiều rộng cho hai mục đích: tìm kiếm đường từ đỉnh gốc cho trước tới đỉnh đích, tìm kiếm đường từ đỉnh gốc tới tất đỉnh khác Trong đồ thị trọng số, thuật toán tìm kiếm theo chiều rộng tìm đường ngắn Thuật toán BFS đỉnh gốc thăm đỉnh kề với đỉnh gốc Sau đó, với đỉnh số đó, thuật toán lại thăm đỉnh kề với mà chưa thăm trước lặp lại Xem thêm thuật toán tìm kiếm theo chiều sâu, sử dụng thao tác có trình tự thăm đỉnh khác với thuật toán tìm kiếm theo chiều rộng Thuật toán sử dụng cấu trúc liệu hàng đợi để lưu trữ thông tin trung gian thu trình tìm kiếm: Chèn đỉnh gốc vào hàng đợi Lấy đỉnh hàng đợi thăm • Nếu đỉnh đỉnh đích, dừng trình tìm kiếm trả kết • Nếu chèn tất đỉnh kề với đỉnh vừa thăm chưa thăm trước vào hàng đợi Nếu hàng đợi rỗng, tất đỉnh đến được thăm – dừng việc tìm kiếm trả "không thấy" Nếu hàng đợi không rỗng quay bước Thủ tục BFS(G,v): tạo hàng đợi Q chèn v vào Q đánh dấu thăm v while Q khác rỗng: lấy phần tử t Q if t đỉnh đích: 10 trả t for all cung e=(t, o) xuất phát từ t if chưa thăm o: 11 đánh dấu thăm o 12 chèn o vào Q Thuật toán tìm kiếm theo chiều rộng dùng để giải nhiều toán thuyết đồ thị, chẳng hạn như: - Tìm tất đỉnh thành phần liên thông - Thuật toán Cheney cho việc dọn rác - Tìm đường ngắn hai đỉnh u v (với chiều dài đường tính số cung) - Kiểm tra xem đồ thịđồ thị hai phía - Thuật toán Cuthill–McKee - Thuật toán Ford–Fulkerson để tìm luồng cực đại mạng * Thuật toán tìm kiếm theo chiều sâu Tư tưởng thuật toán là: Giả sử xét đồ thị G(V,E) Từ đỉnh u V thời ta thăm tới đỉnh kề v u trình lặp lại đỉnh v bước tổng quát, giả sử xét đỉnh u0, có hai khả xảy ra: -Nếu tồn đỉnh v0 kề với u0 mà chưa thăm đỉnh v0 trở thành đỉnh thăm trình tìm kiếm lại đỉnh v0 -Ngược lại, đỉnh kề với u0 thăm ta quay trở lại đỉnh mà trước ta đến đỉnh u0 để tiếp tục trình tìm kiếm Như vậy, trình thăm đỉnh thuật toán tìm kiếm theo chiều sâu, đỉnh thăm muộn sớm duyệt xong (Cơ chế Last In First Out - Vào 10 End; Lời gọi thủ tục đệ quy sau: Write(s); Print_Way(s); Các bạn tuỳ chọn cách mà thích thiết nghĩ chưa phải vấn đề quan trọng Nếu tinh ý dựa vào thứ tự thăm đỉnh thuật toán tìm kiếm theo chiều rộng BFS ta có nhận xét quan trọng, là: Nếu có đường từ s đến t, đường tìm thuật toán tìm kiếm theo chiều rộng cho hành trình cực tiểu số cạnh Bài toán 3: Truyền tin Một lớp gồm N học viên, học viên cho biết bạn mà học viên liên lạc (chú ý liên lạc liên lạc chiều, ví dụ : Bạn An gửi tin tới Bạn Vinh Bạn Vinh chưa gửi tin tới Bạn An) Thầy chủ nhiệm có thông tin quan trọng cần thông báo tới tất học viên lớp (tin phải truyền trực tiếp) Để tiết kiệm thời gian, thầy nhắn tin tới số học viên sau nhờ học viên nhắn lại cho tất bạn mà học viên liên lạc được, cho tất học viên lớp nhận tin Câu hỏi Có phương án giúp thầy chủ nhiệm với số học viên mà thầy chủ nhiệm cần nhắn? Gợi ý làm bài: - Có thể nhận thấy toán toán phát biểu phía Có thể coi học sinh đỉnh đồ thị Hai học sinh liên lạc với cạnh Từ suy toán Bài toán tìm thành phần liên thông đồ thị Bài toán 4: Đường đến số Mỗi số nguyên dương biểu diễn dạng tích số nguyên dương X,Y cho X
- Xem thêm -

Xem thêm: bồi dưỡng học sinh giỏi môn tin học thpt chuyên đề ứng dụng BFS và DFS trong giải bài tập lý thuyết đồ thị , bồi dưỡng học sinh giỏi môn tin học thpt chuyên đề ứng dụng BFS và DFS trong giải bài tập lý thuyết đồ thị , bồi dưỡng học sinh giỏi môn tin học thpt chuyên đề ứng dụng BFS và DFS trong giải bài tập lý thuyết đồ thị

Từ khóa liên quan

Gợi ý tài liệu liên quan cho bạn

Nhận lời giải ngay chưa đến 10 phút Đăng bài tập ngay