(Skkn 2023) phương pháp quy hoạch động và ứng dụng vào giải một số bài toán bồi dưỡng học sinh giỏi, thi chuyên bằng ngôn ngữ lập trình pascal và c++

49 6 0
(Skkn 2023) phương pháp quy hoạch động và ứng dụng vào giải một số bài toán bồi dưỡng học sinh giỏi, thi chuyên bằng ngôn ngữ lập trình pascal và c++

Đ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

SỞ GD&ĐT NGHỆ AN TRƯỜNG THPT CON CUÔNG ……………………… SÁNG KIẾN KINH NGHIỆM NÀ M TÊN ĐỀ TÀI: PHƯƠNG PHÁP QUY HOẠCH ĐỘNG VÀ ỨNG DỤNG VÀO GIẢI MỘT SỐ BÀI TOÁN BỒI DƯỠNG HỌC SINH GIỎI, THI CHUYÊN BẰNG NGƠN NGỮ LẬP TRÌNH PASCAL VÀ C++ Nhóm tác giả: Đặng Văn Hảo Ngô Thị Thanh Huyền Phan Thị Thuý An Lĩnh vực: Tin học Đơn vị: Trường THPT Con Cuông Con Cuông - Năm 2022 MỤC LỤC Phần I Đặt vấn đề: Lí chọn đề tài Mục đích nghiên cứu, đóng góp đề tài Đối tượng nghiên cứu Phương pháp nghiên cứu Phạm vi nghiên cứu 6 Cấu trúc đề tài Cơ sở lý luận Cơ sở thực tiễn Phần II Nội dung: Cơ sở lý luận 1 Giới thiệu Phương pháp quy hoạch động 1.2.1 Khái niệm 1.2.2 Đặc điểm chung phương pháp quy hoạch động 1.2.3 Các bước giải toán quy hoạch động Cách tiếp cận quy hoạch động Lớp toán giải quy hoạch động Ưu điểm hạn chế quy hoạch động 10 1.5.1 Ưu điểm 10 1.5.2 Hạn chế 10 Cơ sở thực tiễn 10 2.1 Thực trạng vấn đề trước áp dụng đề tài 11 2.1.1 Đặc điểm tình hình 11 2.1.2 Thực trạng trước nghiên cứu 11 2.1.3 Các giải pháp giải vấn đề 12 2.2 Rèn luyện kỹ vận dụng phương pháp Quy hoạch động để giải số toán đến nâng cao 12 2.2.1 Bài toán Tìm dãy khơng giảm nhiều phần tử 12 2.2.2 Bài toán Dãy chung dài 15 2.2.3 Bài tốn dãy có tổng s 19 2.2.4 Bài toán chia kẹo 23 2.2.5 Bài toán 5: Xếp đồ vật vào ba lơ (mỗi vật có số lượng hạn chế) 27 Hướng dẫn giải số toán quy hoạch động 32 2.3.1 Bài toán xâu chung dài 32 2.3.2 Bài toán Cho thuê máy 33 2.3.3 Bài tốn Rơ bốt 35 2.4 Một số toán áp dụng phương pháp quy hoạch động tự giải 36 2.4.1 Bài 1: Tổng lớn 36 2.4.2 Bài toán 2: Phân tích 37 2.4.3 Bài tốn 3: Bố trí phịng họp 38 2.4.4 Bài toán 4: Nối điểm 38 2.4.5 Bài toán 5: Tính tổng dãy số 39 2.4.6 Bài toán 6: Dãy Con lớn đan dấu 40 2.4.7 Bài toán 7: Sắp xếp xâu 40 2.4.8 Bài tốn 8: Tìm mật 41 2.4.9 Bài toán 9: TWOVALS 41 2.5 So sánh kết trước sau áp dụng phương pháp Quy hoạch động vào việc bồi dưỡng 42 2.5.1 Trước áp dụng phương pháp Quy hoạch động vào việc bồi dưỡng học sinh giỏi 42 2.5.2 Sau áp dụng phương pháp Quy hoạch động vào việc bồi dưỡng học sinh giỏi 43 Phần III Kết luận: 45 Kết Luận 45 1.1 Với mục tiêu đặt đề tài làm được: 45 1.2 Hướng phát triển đề tài: 45 Một số kiến nghị đề xuất 46 TÀI LIỆU THAM KHẢO 47 PHỤ LỤC 48 Phần I Đặt vấn đề Lí chọn đề tài Tự học tập, nghiên cứu nhiệm vụ quan trọng giáo viên để nâng cao trình độ chun mơn, phục vụ cho cơng tác giảng dạy đặc biệt bồi dưỡng đội tuyển học sinh giỏi Trong năm gần đây, đề thi học sinh giỏi tỉnh, quốc gia tập trang giải trực tuyến vn.spoj.com, vnoi.info, … có nhiều tập sử dụng kiến thức đệ quy, duyệt, chia để trị, … giải gặp nhiều khó khăn mặt tốc độ giới hạn liệu Trong sử dụng phương pháp quy hoạch động phương pháp có kết hợp với quy hoạch động cho hiệu cao Quy hoạch động phương pháp hiệu để giải lớp toán Tin học Đặc biệt toán tối ưu, sử dụng phương pháp quy hoạch động chương trình chạy nhanh, cách viết chương trình rõ ràng Nhưng khơng phải tốn áp dụng phương pháp quy hoạch động Vậy thường tốn áp dụng phương pháp quy hoạch động cách giải toán quy hoạch động vấn đề? Mặt khác bồi dưỡng thi học sinh giỏi giáo viên lựa chọn ngơn ngữ lập trình Pascal, C++ Python Pascal ngơn ngữ lập trình cũ, câu lệnh dài không hỗ trợ nhiều Python ngơn ngữ lập trình nhất, câu lệnh ngắn gọn, hỗ trợ nhiều viết chương trình Tuy nhiên số tốn chạy chương trình cịn hạn chế mặt thời gian Chính thi học sinh giỏi ngơn ngữ lập trình C++ lựa chọn nhiều Cho nên đề tài tơi sử dụng ngơn ngữ lập trình C++ để viết chương trình minh hoạ thuật tốn Ngồi tơi cịn minh hoạ chương trình ngơn ngữ lập trình Pascal (Link code minh hoạ ngơn ngữ lập trình pascal để phần phụ lục đề tài) cho số bạn đọc dễ hiểu nắm bắt tốt chưa tiếp cận nhiều với ngơn ngữ lập trình C++ Vì lý trên, với kinh nghiệm tìm hiểu thân, đưa đề tài “phương pháp quy hoạch động ứng dụng vào giải số toán bồi dưỡng học sinh giỏi, thi chuyên ngôn ngữ lập trình Pascal C++” Mục đích nghiên cứu, đóng góp đề tài - Đề tài nêu định hướng giúp học sinh tiếp cận phương pháp Quy hoạch động để giải số toán tối ưu phù hợp với liệu tốn - Giúp người đọc tiếp cận ngơn ngữ lập trình C++ tốt lập trình - Từ bồi dưỡng học sinh lực giải vấn đề giải toán Tin học, đồng thời rèn luyện nâng cao kĩ lập trình cho em Đặc biệt học sinh tham gia dự thi học sinh giỏi cấp tỉnh THCS, THPT, thi Olimpic Tin học trẻ thi vào trường chuyên Đối tượng nghiên cứu - Đối tượng nghiên cứu học sinh giỏi tin, giáo viên giảng dạy, bồi dưỡng học sinh giỏi môn Tin trường THCS THPT - Phương pháp quy hoạch động toán tối ưu Phương pháp nghiên cứu Để hoàn thành nhiệm vụ, nghiên cứu nhiều sách chuyên đề Tin học dành cho học sinh Chuyên tin, vấn đề cấu trúc liệu, thuật tốn cài đặt chương trình Cùng trao đổi, thảo luận, rút kinh nghiệm đồng nghiệp trường nhằm nâng cao chất lượng cho đề tài Lựa chọn số toán giải phương pháp Quy hoạch động đề thi chương trình tin học chuyên THPT Phạm vi nghiên cứu Lí thuyết Quy hoạch động số tập ứng dụng kĩ thuật xử lí Quy hoạch động hiệu đề thi học sinh giỏi, tập trang trực tuyến như: vn.spoj.com, vnoi.info, laptrinh.ntu.edu.vn, chuyentin.pro… Cấu trúc đề tài Ngoài phần mở đầu, kết luận kiến nghị, phần nội dung đề tài gồm có nội dung: Cơ sở lý luận Giới thiệu phương pháp Quy hoạch động, bước tiếp cận với phương pháp Quy hoạch động, cách nhận diện xem toán tối ưu giải phương pháp Quy hoạch động giải cách giải nào? Trình bày dạng, phân tích cài đặt chương trình cụ thể để bạn đọc dễ hiểu Qua vận dụng để giải toán sau Cơ sở thực tiễn Nêu thực trạng vấn đề, hạn chế, khó khăn học sinh giáo viên việc giải tốn lớn, tốn ơn thi học sinh giỏi Qua giải vấn đề đưa tốn điển hình để so sánh sử dụng phương pháp Quy hoạch động số phương pháp khác Sử dụng phương pháp Quy hoạch động vận dụng lập trình giải tốn đề thi hay ơn luyện Trang bị kiến thức cho học sinh giáo viên để giải tốt gặp tốn có liên quan đến sử dụng phương pháp Quy hoạch động cách hiệu Phần II Nội dung: Cơ sở lý luận Giới thiệu phương pháp Quy hoạch động, bước tiếp cận với phương pháp Quy hoạch động, cách nhận diện xem toán tối ưu giải phương pháp quy hoạch động giải cách giải nào? Trình bày dạng, phân tích cài đặt chương trình cụ thể để bạn đọc dễ hiểu Qua vận dụng để giải tốn sau 1 Giới thiệu Phương pháp quy hoạch động nhà toán học người Mỹ Richard Bellman (1920 – 1984) phát minh năm 1953 Phương pháp quy hoạch động (dynamic programming) kỹ thuật áp dụng để giải nhiều lớp toán, đặc biệt tốn tối ưu Vậy tốn tối ưu gì? Đó tốn có nhiều nghiệm chấp nhận nghiệm có giá trị đánh giá Mục tiêu đặt tìm nghiệm tối ưu, nghiệm có giá trị đánh giá nhỏ lớn (tối ưu) Khi tiến hành giải toán phức tạp (bài toán lớn) ban đầu người ta thường chia tốn thành tốn độc lập đơn giản để giải, tiến hành giải xong toán ta tổng hợp lời tốn tốn lớn cần giải Đây phương pháp chia để trị sử dụng thơng dụng q trình lập trình giải tốn Tin học Nhưng toán phức tạp sử dụng phương pháp test liệu lớn Vì chưa tối ưu mặt thời gian Chính phương pháp Quy hoạch động đời nhằm cải tiến vấn đề Phương pháp quy hoạch động 1.2.1 Khái niệm Phương pháp quy hoạch động kỹ thuật nhằm đơn giản hóa việc tính tốn cơng thức truy hồi cách lưu toàn hay phần kết tính tốn bước trước với mục đích sử dụng lại (Công thức truy hồi công thức thể quan hệ bước toán kết bước sau thường dựa vào kết bước trước Kết bước cuối kết tốn cần tìm) Vậy chất quy hoạch động =Chia để trị+Mảng (Lưu lại kết quả) Phương pháp quy hoạch động sử dụng nguyên lý bottom - up, nghĩa “ từ lên” Đầu tiên ta phải giải tốn đơn giản nhất, tìm nghiệm Sau kết hợp tốn lại để tìm lời giải cho tốn lớn giải toán yêu cầu với phương pháp toán sau giải xong lưu trữ lại đem sử dụng cần Khi tiết kiệm nhớ thời gian thực Ngược lại phương pháp đệ quy giải toán theo hướng top – down, nghĩa để giải toán ban đầu, ta phải giải tốn Đây phương pháp hay, nhiên phương pháp gặp số hạn chế mặt thời gian , tốc độ phải tính tốn nhiều lần số tốn giống Để thấy rõ ta tìm hiểu ví dụ sau: Xét ví dụ 1: dãy Fibonacci dãy số nguyên sau: F0= 1, F1= 1, Fn = Fn-1+Fn-2 với n>=2 Hãy tính F5 Cách Cách #include #include #include #include int f(int n) main() { { int t; int i,f[10]; if (n

Ngày đăng: 27/07/2023, 10:06

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan