Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 61 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
61
Dung lượng
1,76 MB
Nội dung
SỞ GD & ĐT NGHỆ AN SÁNG KIẾN KINH NGHIỆM Đề tài: SỬ DỤNG QUY HOẠCH ĐỘNG ĐỂ GIẢI QUYẾT MỘT SỐ BÀI TOÁN TRONG BỒI DƯỠNG HỌC SINH GIỎI MÔN TIN HỌC LĨNH VỰC: TIN HỌC Năm học 2022 – 2023 SỞ GD & ĐT NGHỆ AN TRƯỜNG THPT LÊ VIẾT THUẬT SÁNG KIẾN KINH NGHIỆM Tên đề tài: SỬ DỤNG QUY HOẠCH ĐỘNG ĐỀ GIẢI QUYẾT MỘT SỐ BÀI TỐN TRONG BỒI DƯỠNG HỌC SINH GIỎI MƠN TIN HỌC Lĩnh vực: TIN HỌC Tác giả: Trần Thị Anh Thư Trần Diệu Thúy Tổ: Toán - Tin Năm học 2022 – 2023 ĐẶT VẤN ĐỀ I Lý chọn đề tài Xuất phát từ xu hướng tuyển sinh trường Đại học có ngành học Công nghệ thông tin Hiện số trường Đại học sử dụng kết kì thi học sinh giỏi tỉnh để làm tiêu chí lựa chọn xét tuyển Tin học lập trình mơn học khó học sinh THPT Làm để học sinh hiểu, học tốt, yêu thích tham gia tốt kỳ thi học sinh giỏi Tin học điều mà nhiều giáo viên dạy tin học trăn trở Trong tin học, tốn việc mà ta muốn máy tính thực hiện, để giải tốn cần có thuật tốn Thuật tốn dãy hữu hạn thao tác xếp theo trình tự xác định cho từ input sau thực dãy thao tác ta thu output cần tìm tốn Như tốn dùng nhiều thuật tốn để giải quyết, vấn đề chọn thuật toán hay phương pháp phù hợp với kiểu để đạt hiệu cao Chương trình Tin học phổ thơng có số thuật tốn để giải lớp toán định như: thuật toán Sắp xếp, tìm kiếm số phương pháp thiết kế thuật toán như: Chia để trị, tham lam, quy hoạch động Từ thực tế giảng dạy thân chúng tơi nhận thấy việc nắm vững thuật tốn áp dụng cách linh hoạt tập định không đơn giản Khi cần đến quy hoạch động? Đó câu hỏi khó trả lời Khơng có cơng thức cho tốn Để nhận dạng tốn thực với thuật tốn khơng phải dễ, ngồi để cài đặt thuật toán hiệu địi hỏi người lập trình nắm vững phương pháp thiết kế thuật giải Trên sở đó, trăn trở nghiên cứu đề tài “Sử dụng Quy hoạch động để giải số toán bồi dưỡng học sinh giỏi môn Tin học” II Đối tượng nghiên cứu Đề tài tập trung nghiên cứu, tìm hiểu, phân tích từ 30 tập đến nâng cao 10 toán luyện tập dạng tập quy hoạch động, để tìm nhiều cách làm khác nhau, đánh giá độ phức tạp, đo thời gian thực chương trình, để so sánh tìm chương trình tối ưu dễ hiểu chương trình đưa III Phương pháp nghiên cứu - Phương pháp nghiên cứu lí luận - Phương pháp thống kê, xử lí số liệu - Phương pháp đặt vấn đề - giải vấn đề - Phương pháp phân tích, tổng hợp - Phương pháp Test - Phương pháp thực nghiệm - Phương pháp so sánh đối chiếu IV Cấu trúc đề tài Phần một: Đặt vấn đề Phần hai: Nội dung Phần ba: Kết luận NỘI DUNG I Cơ sở đề tài Cơ sở lí luận 1.1 Khái niệm Quy hoạch động (dynamic programming) kỹ thuật lập trình giúp đơn giản hóa hiệu việc chia tốn lớn thành toán chồng chéo cấu trúc tối ưu Những tốn thường có nhiều nghiệm nghiệm có giá trị đánh giá Do đó, cần tính tốn nhiều lần sử dụng lời giải tốn để tìm đáp án cho toán ban đầu Khi muốn giải tốn cách nhanh thuật toán cách giải giúp tối ưu thời gian Quy hoạch động bao gồm bốn bước sau: Bước 1: Đặc trưng hóa cấu trúc lời giải tối ưu Bước 2: Định nghĩa giá trị lời giải tối ưu cách đệ quy Bước 3: Tính trị lời giải tối ưu theo kiểu từ lên xuống Bước 4: Xây dựng lời giải tối ưu từ thơng tin tính tốn Thay gọi đệ quy, thuật tốn tính tốn lời giải toán trước tiên lưu vào mảng nhớ Tiếp theo, dùng lời giải tốn mảng tính trước để giải tốn lớn theo cơng thức truy hồi Cơng thức truy hồi công thức thể quan hệ bước toán kết bước sau nhờ vào kết bước trước Thuật tốn với ưu điểm tiết kiệm thời gian tính tốn có vài nhược điểm Đầu tiên, việc tìm cơng thức truy hồi hay phân rã toán lớn yêu cầu phải suy nghĩ phân tích thật kỹ Điều giúp bạn tránh sai sót rủi ro phải tính lại từ đầu Thứ hai khó xử lý liệu bảng lưu trữ yêu cầu mảng hai ba chiều Cuối cùng, tốn tối ưu áp dụng giải quy hoạch động Bên cạnh đó, tốn tối ưu có số đặc điểm cần lưu ý đây: Cần phân tách toán lớn thành nhiều toán kết hợp lời giải toán để giải toán lớn Bản chất thuật toán giải tất tốn Quy hoạch động khơng thể tiến hành không gian lưu trữ không đủ để phối hợp Khi nên áp dụng thuật toán quy hoạch động? Điểm định giải thuật tốn cần tìm cơng thức truy hồi cho trường hợp toán Đối với số tốn dễ dàng có nhiều cách giải giải quy hoạch động chưa giải pháp tối ưu Mỗi toán kiểu khó khác nhau, khơng có cơng thức chung cho tất tốn Vậy nên áp dụng đến thuật toán này? Thường tốn có hai tính chất bạn sử dụng thuật tốn quy hoạch động vào Đó tốn gối cấu trúc tối ưu Sử dụng thuật toán quy hoạch động nào? Bài toán gối Bài toán gối toán nhỏ chia từ toán ban đầu Việc sử dụng lặp lại nhiều lần này, thuật toán lưu kết mà khơng cần tính lại, giúp bạn tiết kiệm nhiều thời gian Việc giải toán nhiều lần khơng thể tránh khỏi việc trùng lời giải toán Khi tốn khơng gối việc áp dụng thuật tốn khơng Quy hoạch động khơng thể tối ưu với thuật tốn tìm kiếm nhị phân Lý chia tốn lớn thành toán nhỏ toán cần giải lần mà khơng gọi lại Bài tốn tính Fibonacci ví dụ điển hình tốn gối Bằng cách cộng fibonacci thứ n-1 n-2 tính số fibonacci thứ n Bài tốn số fibonacci thứ n tốn tính fibonacci n-1 n-2 Cơng thức tính tốn số Fibonacci tính sau: def fib(n): if n 20 T1 < T2 Sở dĩ tỷ suất tăng T1 nhỏ tỷ suất tăng T2 Như cách hợp lý ta xét tỷ suất tăng hàm thời gian thực chương trình thay xét thân thời gian thực hiện.Cho hàm T(n), T(n) gọi có độ phức tạp f(n) tồn C, N0 cho T(n) ≤ Cf(n) với n ≥ N0 (tức T(n) có tỷ suất tăng f(n)) kí hiệu T(n) O(f(n)) (đọc “ô f(n)”) Các hàm thể độ phức tạp có dạng thường gặp sau: log2n, n, nlog2n, n2, n3, 2n, n!, nn Trong cách viết, ta thường dùng logn thay cho log2n cho gọn Khi ta nói đến độ phức tạp thuật tốn ta nói đến hiệu thời gian thực chương trình nên xem việc xác định thời gian thực chương trình xác định độ phức tạp thuật toán 1.3 Phương pháp lựa chọn cài đặt chương trình tối ưu giải số dạng tập dãy Đối với dạng tập dãy con, chúng tơi đưa tốn bản, từ tốn chúng tơi trình bày từ cách giải (cả cách làm học sinh cách làm định hướng cho học sinh làm) Với phương châm“ mưa dầm thấm lâu”, không hướng dẫn học sinh cách làm tối ưu mà phát vấn dạng tập mà yêu cầu học sinh làm theo trình tự sau: Bước 1: Xác định toán Bước 2: Suy nghĩ tìm thuật tốn, viết chương trình, tính độ phức tạp (Có thể nhiều cách) Bước 3: Trao đổi cách làm với bạn để tìm hay dở Bước 4: Sử dụng phần mềm Themis-chấm tự động để chấm cách làm (với 10 test nhiều mà giáo viên xây dựng sẵn, test cấu hình điểm, thời gian chạy không giây) Bước 5: Nhận xét tối ưu thuật toán Bước 6: Giáo viên định hướng cách làm tối ưu (nếu có) Bước 7: Sử dụng phần mềm Themis để chấm tất cách viết chương trình Bước 8: Dựa vào kết quả, lựa chọn chương trình có độ phức tạp nhỏ nhất, thời gian thực test nhỏ chương trình ngắn gọn dễ hiểu Bước 9: Lập trình giải tập tương tương với cách lựa chọn Cơ sở thực tiễn 2.1 Thực trạng học tập học sinh a) Khảo sát thực trạng Chúng tơi tiến hành khảo sát tìm hiểu thực trạng học tập học sinh Cụ thể, phát phiếu điều tra cho HS nhiều lớp khác để em phát biểu cảm nhận nêu ý kiến, nguyện vọng việc học môn Tin học Nội dung khảo sát sau : Hãy trả lời câu hỏi cách đánh dấu x vào ô trống bảng có câu trả lời phù hợp với em Nội dung Có Khơng Câu 1: Em có u thích mơn Tin học khơng? Câu 2: Em có u thích mơn Tin học lập trình khơng? Câu 3: Em có biết quy hoạch động không? - Kết thu sau: TT Lớp 10D1 10A 11A 11T 12T 12A1 Câu Có Khơng 45/45 0/45 100% 0% 40/50 10/50 80% 20% 35/38 3/38 92.1% 7.9% 36/40 4/40 90% 10% 34/42 8/42 81% 19% 30/32 2/32 93.7% 6.3% Nội dung khảo sát Câu Có Không 15/45 30/45 33.3% 66.7% 30/50 20/50 60% 40% 25/38 13/38 65.8% 34.2% 23/40 17/40 57.5% 42.5% 22/42 20/42 52.4% 47.6% 15/32 17/32 46.9% 53.1% Câu Có Khơng 1/45 44/45 2.2% 97.8% 3/50 47/50 6% 94% 4/38 34/38 10.5% 89.5% 10/40 30/40 25% 75% 5/42 37/42 11.9% 88.1% 4/32 28/32 12.5% 87.5% b) Phân tích, đánh giá thực trạng Từ kết khảo sát đó, chúng tơi nhận thấy: Đa số học sinh u thích mơn Tin học lĩnh vực ứng dụng tìm hiểu Internet tham gia trị chơi trí tuệ, hay tự làm phần mềm nhỏ trị chơi ô chữ học, hay tạo video hình ảnh có ích mơn học Tuy nhiên nội dung trường THPT phần lập trình khó khăn dẫn đến học sinh khơng có hứng thú, tốn có sử dụng quy hoạch động tốn khó thường xuất đề thi học sinh giỏi môn Tin học, nên em HS biết sử dụng 2.2 Thực trạng dạy học kiểm tra đánh giá giáo viên a) Khảo sát thực trạng Chúng tơi tiến hành tìm hiểu thực trạng việc dạy học kiểm tra đánh giá giáo viên (gồm giáo viên dạy Tin học trường THPT Lê Viết Thuật) b) Phân tích, đánh giá thực trạng Chúng nhận thấy: - Việc dạy học giáo viên hướng dẫn sử dụng toán, thuật toán (chủ yếu sử dụng sách giáo khoa sách tập Tin học 11) - Việc kiểm tra đánh giá giáo viên nặng theo chuẩn kiến thức kĩ - Đối với HS có học lực mơn Tin khá, giỏi, GV chưa tổ chức bồi dưỡng tập trung hết mà dành hướng dẫn số HS có tham gia đội tuyển HSG GV chưa có tài liệu cụ thể để dạy bồi dưỡng HSG mà tìm hiểu tham khảo để hướng dẫn HS Việc sử dụng tài liệu chuyên tin gặp khó khăn với lực HS trường 2.3 Thực trạng tài liệu tham khảo a) Khảo sát thực trạng: Để có kết luận thực trạng tài liệu tham khảo, tiến hành khảo sát tài liệu tham khảo: Sách giáo khoa sách tập môn Tin học lớp 11 (NXB GD Việt Nam) b) Phân tích, đánh giá thực trạng: Từ kết khảo sát đó, chúng tơi có nhận xét sau: - Các sách đề cập đến thuật toán Sắp xếp, tìm kiếm khơng đề cập đến thuật tốn quy hoạch động - Đối với môn Tin học sách tham khảo dùng cho học sinh phần lập trình không phong phú môn tự nhiên khác nên khó khăn việc giảng dạy học nội dung - Các chương trình mà số tài liệu đưa khó hiểu phức tạp khơng phù hợp lực học sinh đại trà Trường THPT Lê Viết Thuật Vì việc nghiên cứu áp dụng đề tài “Sử dụng Quy hoạch động để giải số toán bồi dưỡng học sinh giỏi môn Tin học” hi vọng trở thành nguồn tài liệu tham khảo hữu ích cho giáo viên học sinh trình dạy học II Sử dụng Quy hoạch động để giải số toán bồi dưỡng học sinh giỏi môn Tin học Dạng tập chủ đề đoạn đạt giá trị tối ưu (tổng, độ dài đạt max, min) Bài 1: Đoạn có Tổng lớn init(); for(int qq =1; qq > l >> r; int k = log2(r - l +1); cout