SKKN một số bài toán quy hoạch động về dãy con nhằm bồi dưỡng học sinh giỏi tin học 11

18 143 0
SKKN một số bài toán quy hoạch động về dãy con nhằm bồi dưỡng học sinh giỏi tin học 11

Đ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

1 MỞ ĐẦU 1.1 Lý chọn đề tài Một tiêu chí để đánh giá chất lượng trường THPT tỷ lệ đạt học sinh giỏi trường so với mặt chung tỉnh, nước Chúng ta biết để có kết cao cơng tác bồi dưỡng HSG học sinh khơng phải nắm kiến thức mà phải biết phương pháp, thuật toán để giải tốn khó, nâng cao Nội dung tin học lập trình lớp 11 nội dung lạ đa số học sinh với nhiều khái niệm, thuật ngữ, cấu trúc liệu mà học sinh tiếp xúc lần đầu Vì ngơn ngữ lập trình địi hỏi học sinh phải làm quen với nhiều kiểu liệu, để giải toán Tin học việc xác định thuật tốn để giải tốn cơng việc quan trọng Tuy nhiên, học sinh việc thiết kế thuật toán nhằm giải tối ưu tốn cịn gặp nhiều khó khăn Qua thực tế cơng tác giảng dạy 10 năm trường, qua học hỏi kinh nghiệm từ đồng nghiệp qua nhiều lần đứng đội tuyển nhận thấy đề thi HSG Tin học cấp tỉnh có số tốn cần sử dụng kỹ thuật lập trình cao Tuy có nhiều cách để giải với tốn nâng cao có giới hạn thời gian nhớ chương trình nên khơng lựa chọn thuật toán hiệu học sinh dễ dàng điểm Test Và toán nâng cao việc lựa chọn thuật tốn hiệu vơ quan trọng Vì vậy, tơi nghiên cứu chuyên đề toán dãy có sử dụng phương pháp quy hoạch động nhằm đem lại kết tối ưu cho toán đề tài tơi chọn là: “Một số tốn quy hoạch động dãy nhằm bồi dưỡng học sinh giỏi Tin học lớp 11” 1.2 Mục đích nghiên cứu Nhằm giúp học sinh giỏi lựa chọn thuật toán tối ưu để giải góp thêm vào ngân hàng lượng tập nhằm hỗ trợ thêm cho công tác bồi dưỡng học sinh giỏi Đưa thuật toán để giải toán phương pháp quy hoạch động, nâng cao khả tư sáng tạo cho học sinh, nâng cao chất lượng học sinh giỏi Nêu vấn đề, phân dạng tốn tin học có liên quan, thực ví dụ minh họa, đưa thuật toán viết Code chương trình tham khảo cho tốn để học sinh quan sát qua nắm vững kiến thức phương pháp quy hoạch động Cũng thông qua đề tài nhằm cung cấp thêm phương pháp tư duy, tiếp cận để giải toán bồi dưỡng HSG cấp tỉnh 1.3 Đối tượng nghiên cứu - Môn Tin học lớp 11 trường THPT - Học sinh khá, giỏi khối 11 trường PT Nguyễn Mộng Tuân - Nghiên cứu lí luận tập giải tốn phương pháp quy hoạch động dạy học bồi dưỡng học sinh giỏi 1.4 Phương pháp nghiên cứu - Hình thành học sinh kỹ phân tích, xử lý vấn đề liên quan đến toán quy hoạch động - Xây dựng qui trình giảng dạy với tập sử dụng phương pháp quy hoạch động việc tích cực hóa hoạt động nhận thức cho học sinh - Đánh giá, so sánh kết học sinh Để trình bày sáng kiến kinh nghiệm này, sử dụng phối kết hợp nhiều phương pháp như: nghiên cứu tài liệu, sách, báo, thông qua mạng, tham khảo ý kiến cấp đồng nghiệp, điều tra bản, thực nghiệm so sánh, phân tích kết thực nghiệm phù hợp với mơn học thuộc lĩnh vực Tin học NỘI DUNG SÁNG KIẾN KINH NGHIỆM 2.1 Cơ sở lý luận sáng kiến kinh nghiệm Trong trình học tập, gặp nhiều tập Toán -Tin Khi cần đến quy hoạch động? Khơng có cơng thức cho tốn Tuy nhiên, có số tính chất tốn mà nghĩ đến quy hoạch động Dưới hai tính chất nhấn mạnh nhất: - Bài tốn có tốn gối - Bài tốn có cấu trúc tối ưu Các tập dạng phong phú đa dạng Thực tế chưa có thuật tốn hồn chỉnh áp dụng cho tốn Tuy nhiên, người ta tìm số thuật toán chung chia để trị, tham ăn, quay lui, Các thuật tốn áp dụng để giải lớp rộng toán hay gặp thực tế Trong viết này, tơi muốn đề cập với bạn thuật tốn khác, thuật tốn quy hoạch động Để giải tốn ta chia tốn thành tốn nhỏ giải cách dễ dàng Sau kết hợp lời giải tốn con, ta có lời giải tốn ban đầu Trong q trình giải tốn đơi ta gặp nhiều kết trùng lặp tốn Để tăng tính hiệu quả, thay phải tính lại kết đó, ta lưu chúng vào bảng Khi cần lời giải tốn ta cần tìm bảng, khơng cần tính lại Tư tưởng thuật tốn quy hoạch động đơn giản Tuy nhiên áp dụng thuật tốn vào trường hợp cụ thể lại khơng dễ Khi giải toán phương pháp này, phải thực hai yêu cầu quan trọng sau: - Tìm cơng thức truy hồi xác định nghiệm tốn qua nghiệm toán nhỏ - Với toán cụ thể, ta đề phương án lưu trữ nghiệm cách hợp lý để từ truy cập cách thuận tiện Căn vào việc lựa chọn đội tuyển dự thi học sinh giỏi nhà trường, để đội ngũ học sinh giỏi trường PT Nguyễn Mộng Tuân ngày đạt kết cao Giúp cho học sinh chuyên tin khối THPT thi đạt kết ngày cao, tạo nguồn tài liệu tham khảo thuật toán hỗ trợ cho giáo học sinh giáo viên dạy đội tuyển học sinh giỏi nhà trường 2.2 Thực trạng vấn đề trước áp dụng sáng kiến kinh nghiệm Trong trình bồi dưỡng học sinh giỏi Tin học lớp 11 có nhiều tốn sử dụng nhiều thuật toán giải khác Nhưng chưa áp dụng phương pháp quy hoạch động tốn Test khơng lấy hết điểm Thuật tốn khơng tối ưu, q thời gian Đây khó khăn học sinh em chưa làm quen nhiều với tập thiết kế thuật toán phương pháp quy hoạch động Qua việc giảng dạy học sinh khá, giỏi ôn thi học sinh giỏi Tin 11, nhận thấy việc hệ thống tập theo chuyên đề có sử dụng phương pháp quy hoạch động để học sinh tham khảo luyện đề quan trọng có tính hiệu cao 2.3 Giải pháp sử dụng để giải vấn đề 2.3.1.Phương pháp quy hoạch động a Tư tưởng phương pháp Quy hoạch động (Dynamic Programming) phương pháp hiệu để giải nhiều toán tin học, đặc biệt toán tối ưu, có số bà tốn sử dụng phương pháp quy hoạch động lại cho hiệu cao hẳn so với nhiều phương pháp khác Số lượng thi áp dụng phương pháp quy hoạch động để giải đề thi học sinh giỏi môn Tin học thường cao Trong phương pháp để giải tốn lập trình quy hoạch động phương pháp giảm thời gian chạy thuật tốn thể tính chất tốn gối cấu trúc tối ưu Cấu trúc tối ưu có nghĩa lời giải tối ưu cho tốn Có thể giải toán với cấu trúc tối ưu quy trình ba bước: - Bước 1: Chia tốn thành toán nhỏ - Bước 2: Giải toán cách tối ưu cách sử dụng đệ quy theo quy trình ba bước - Bước 3: Sử dụng kết tối ưu để xây dựng lời giải tối ưu cho toán ban đầu Các toán giải cách chia chúng thành toán nhỏ tiếp tục ta đến trường hợp đơn giản dễ tìm cho lời giải Một tốn có tốn trùng nghĩa tốn sử dụng để giải nhiều tốn lớn khác Ví dụ dãy Fibonaci, F3=F1+F2 F4=F2+F3 tính số phải tính F Khi tính F5 cần đến F3 F4 Như tính F5 tính F2 hai lần nhiều Điều áp dụng có tốn gối giúp cho toán tối ưu thời gian chạy chương trình nhanh - Trong phương án quy hoạch động, nguyên lý chia để trị thể rõ: Khi phải giải toán nào, ta giải tồn tốn lưu trữ lời giải hay đáp số chúng với mục đích sử dụng lại theo phối hợp để giải toán tổng quát - Quy hoạch động việc giải tất toán nhỏ (bài toán sở) để từ bước giải tốn lớn hơn, giải toán lớn (bài tốn ban đầu) Q trình từ tốn sở tìm lời giải tốn ban đầu phải qua hữu hạn bước Các bước cài đặt chương trình sử dụng quy hoạch động: + Giải tất tốn sở (thơng thường dễ), lưu lời giải vào bảng phương án + Dùng công thức truy hồi phối hợp lời giải toán nhỏ lưu bảng phương án để tìm lời giải tốn lớn lưu chúng vào bảng phương án Cho tới tốn ban đầu tìm lời giải + Dựa vào bảng phương án, truy vét tìm nghiệm tối ưu + Cho tới nay, chưa có định lý cho biết cách xác tốn giải hiệu quy hoạch động Tuy nhiên để biết tốn giải quy hoạch động hay khơng, ta đặt câu hỏi: + Liệu lưu trữ nghiệm tốn hình thức để phối hợp tìm nghiệm tốn lớn? + Nhìn chung thường tốn tối ưu giải phương pháp truy hồi thường giải phương pháp quy hoạch động độ phức tạp thuật toán nhỏ b Các bước thực quy hoạch động Các bước để giải toán tối ưu quy hoạch động: - Bước 1: Lập hệ thức: Dựa vào nguyên lý tối ưu tìm cách chia q trình giải tốn thành giai đoạn, sau tìm hệ thức biểu diễn tương quan định bước xử lý với bước xử lý trước Hoặc tìm cách phân rã tốn thành tốn tương tự có kích thước nhỏ hơn, tìm hệ thức nêu quan hệ kết tốn kích thước cho với kết tốn kiểu có kích thước nhỏ nhằm sử dụng hàm thủ tục đệ quy Cách xây dựng hàm: Chia việc giải toán thành n giai đoạn, giai đoạn i có trạng thái ban đầu t(i) chịu tác động đến d(i) biến trạng thái t(i+1) giai đoạn i+1 (i=1,2, ,n-1) Theo nguyên lý tối ưu Bellman việc tối ưu giai đoạn cuối không làm ảnh hưởng đến kết toán Với trạng thái ban đầu t(n), sau làm giai đoạn n tốt ta có trạng thái n-1 t(n-1) tác động điều khiển giai đoạn n-1 d(n-1) Sau tối ưu giai đoạn n-1 ta lại có t(n-2) tối ưu giai đoạn n-2 giai đoạn từ n giảm đến tối ưu coi hồn thành tốn Gọi i giá trị tối ưu tốn tính đến giai đoạn k Fk, giá trị tối ưu tốn tính riêng giai đoạn k Gk Fk=Fk-1+Gk hay ta có cơng thức sau: Fk(t(k))=max{Gk(t(k),d(k))+Fk-1(t(k-1))}(*) - Bước 2: Tổ chức liệu chương trình Các giá trị Fk thường lưu trữ bảng (mảng chiều mảng hai chiều) Cần lưu ý khởi tạo giá trị ban đàu bảng cho thích hợp, kết tốn có kích thước nhỏ tốn giải Fk(t(1))=max{Gt(t(1),d(1))+F0(t(0))} Dựa vào hệ thức (*) giá trị có bảng để tìm dần giá trị cịn lại bảng Ngồi ra, cần mảng lưu trữ nghiệm tương ứng với giá trị tối ưu giai đoạn - Bước 3: Truy vét, tìm nghiệm toán dựa vào bảng phương án Dựa vào bảng lưu trữ nghiệm bảng giá trị tối ưu giai đoạn xây dựng tìm kết toán Làm tốt thuật toán cách thu gọn hệ thức (*) giảm kích thước miền nhớ Thường tìm cách dùng mảng chiều thay cho mảng hai chiều giá trị dòng (hoặc cột) mảng hai chiều phụ thuộc dòng (hoặc cột) kề trước 2.3.2 Các toán quy hoạch động dãy a Bài toán 1: Dãy tăng dài liên tiếp Cho dãy gồm N số nguyên a[1],a[2], ,a[n] Một dãy gọi dãy N gồm K phần tử liên tiếp dãy: a[i],a[i+1],a[i+2], ,a[i+k-1] Hãy tìm dãy tăng liên tiếp dài Dữ liệu vào: tệp văn BAI1.INP có cấu trúc sau: + Dòng chứa số nguyên N (N

Ngày đăng: 09/06/2021, 13:10

Từ khóa liên quan

Mục lục

  • Các bước cơ bản để giải một bài toán tối ưu bằng quy hoạch động:

  • e. Bài toán 5: Dãy con liên tiếp dài nhất có tổng bằng 0

  • Cho dãy A gồm N số nguyên a1a2……an. (N<100000). Hãy in ra dãy con liên tiếp dài nhất trong dãy cho trước mà có tổng =0. (│ai│<109).

  • Ví dụ:

  • BAI5.INP

  • BAI5.OUT

  • 5

  • 2 1 -2 3 -2

  • 1 -2 3 -2

  • Phân tích thuật toán:

  • f. Bài toán 6: Dãy con liên tiếp dài nhất có tổng chia hết cho K

  • Phân tích thuật toán:

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

Tài liệu liên quan