skkn PHƯƠNG PHÁP GIẢI bài TOÁN TIN BẰNG QUY HOẠCH ĐỘNG

28 562 1
skkn PHƯƠNG PHÁP GIẢI bài TOÁN TIN BẰNG QUY HOẠCH ĐỘNG

Đ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Ở GIÁO DỤC VÀ ĐÀO TẠO GIA LAI TRƯỜNG THPT CHUYÊN HÙNG VƯƠNG TỔ TOÁN TIN ĐỀ TÀI: “PHƯƠNG PHÁP GIẢI BÀI TOÁN TIN BẰNG QUY HOẠCH ĐỘNG” Người thực hiện: LÊ VĂN TRƯỜNG Giáo viên: Tin học Pleiku, 2/2014 Phương pháp giải toán - tin quy hoạch động PHƯƠNG PHÁP GIẢI BÀI TOÁN TIN BẰNG QUY HOẠCH ĐỘNG A PHẦN MỞ ĐẦU I Lí chọn đề tài Hiện tài liệu dạng chuyên đề nâng cao phục vụ cho việc bồi dưỡng học sinh giỏi môn Tin học chưa thật đầy đủ tổng quát, đặc biệt chuyên đề khó giới, đưa vào đề thi học sinh giỏi Quốc gia như: Quy hoạch động, Luồng cực đại mạng,… Từ thực tiễn giảng dạy tin trường THPT Chuyên Hùng Vương thấy để đạt hiệu cao bồi dưỡng học sinh giỏi, cần có cách thiết kế giảng cho phù hợp với nội dung kiến thức dựa tài liệu chuyên đề đầy đủ rõ ràng từ lý thuyết đến tập theo xu chung kì thi học sinh giỏi cấp tương lai, điều kiện tiến để mang lại thành tích cao cho đội tuyển học sinh giỏi kì thi Xuất phát từ sở trên, chọn đề tài “Phương pháp giải toán tin quy hoạch động”, sáng kiến giúp học sinh trường THPT Chuyên Hùng Vương vận dụng kiến thức vào làm tốt dạng đề thi Quốc gia có liên quan luồng cực đại, phục vụ cho việc bồi dưỡng học sinh giỏi trường II Mục đích đề tài - Giới thiệu phương pháp giải toán - tin quy hoạch động (QHĐ) - Các bước giải toán - tin phương pháp QHĐ - Giải số toán phương pháp quy hoạch động điển hình - Một số tập áp dụng có hướng dẫn giải thuật cho học sinh tự làm - Từ giúp học sinh trường THPT Chuyên Hùng Vương vận dụng kiến thức vào làm tốt dạng đề thi Quốc gia có dạng quy hoạch động Lê Văn Trường-Gv Trường THPT Chuyên Hùng Vương Gia Lai Phương pháp giải toán - tin quy hoạch động III Nhiệm vụ nghiên cứu - Giới thiệu phương pháp giải toán - tin quy hoạch động (QHĐ) - Các bước giải toán - tin phương pháp QHĐ - Hướng dẫn giải số toán phương pháp quy hoạch động điển hình - Một số tập áp dụng có hướng dẫn giải thuật cho học sinh tự làm - Đưa số tượng tự để em học sinh giỏi vận dụng thực hành máy IV Đối tượng nghiên cứu - Học sinh giỏi tin học 11, 12 trường THPT Chuyên Hùng Vương V Phương pháp nghiên cứu - Kết hợp thực tiễn giáo dục trường THPT Chuyên Hùng Vương xu đề thi học sinh giỏi Quốc gia Bộ giáo dục đào tạo - Có tham khảo tài liệu bồi dưỡng học sinh giỏi nước - Tham khảo số dạng đề thi học sinh giỏi Quốc gia Bộ giáo dục đào tạo dạng quy hoạch số năm gần B NỘI DUNG I Cơ sở lí luận - Các cách tiếp cận tri thức mới, đại học sinh trường THPT Chuyên Hùng Vương khó khăn thiếu tài liệu chuyên sâu bồi dưỡng học sinh giỏi tin học tiếng Việt, có chưa thật đầy đủ, tổng quát, tài liệu tiếng Anh nhiều mà khả đọc hiểu em chưa thật tốt Lê Văn Trường-Gv Trường THPT Chuyên Hùng Vương Gia Lai Phương pháp giải toán - tin quy hoạch động - Vì tham khảo tài liệu nước để viết lên sáng đề tài phương pháp quy hoạch động từ lý thuyết đến thuật toán có số toán cho em vận dụng để thực hành máy tính Từ em làm tốt đề có dạng tương tự kì thi chọn học sinh giỏi tin học II Nội dung giải pháp thực II.1 Nội Dung I MỞ ĐẦU Tư tưởng quy hạch động Bellman đề cập từ 1960 nhằm tìm nghiệm toán tối ưu Thời kỳ 1960-1970 thời kỳ phát triển rực rỡ phương pháp này, nhờ nhiều toán với kích thước liệu lớn giải với tốc độ chạy chương trình nhanh so với cách giải trước Song đến năm 1970 xuất số toán mà cách giải quy hoạch động tỏ hạn chế, tương đối có hiệu quả, chí có hiệu qủa Tuy nhiên với hàng loạt toán thông dụng phương pháp phương pháp tốt Phương pháp giải toán - tin quy hoạch động (QHĐ) Trong nhiều trường hợp, để giải toán cho ta đưa giải số toán kết hợp nghiệm toán để nhận nghiệm toán cần giải Để giải toán ta lại đưa giải toán nhỏ Quá trình tiếp tục nhận toán giải dễ dàng, kỹ thuật chia - để - trị, giải toán nhận trình chia nhỏ cách độc lập Phương pháp quy hoạch động có điểm giống kỹ thuật chia để trị trình phân chia toán thành toán con, kết toán lưu lại để xây dựng kết toán ban đầu tránh giải nhiều lần toán Do phương pháp quy hoạch động thường giải kỹ thuật lên (bottom-up) Lê Văn Trường-Gv Trường THPT Chuyên Hùng Vương Gia Lai Phương pháp giải toán - tin quy hoạch động Ví dụ Tính Cnk (với 11 5 13 10 11 10 Ta có toàn văn chương trình: uses crt; type mang=array[1 100]of integer; var f :text; a,b,c,truoc : mang; n,cs: integer; Lê Văn Trường-Gv Trường THPT Chuyên Hùng Vương Gia Lai Phương pháp giải toán - tin quy hoạch động procedure nhap; var i:byte; begin assign(f,'daycon.inp'); reset(f); readln(f, n); for i:=1 to n read(f,a[i]); close(f); end; procedure taobang; var i,j,bMax,chiso : byte; begin b[1]:=1; truoc[1]:=0; for i:= to n begin bmax:= 0; chiso:=0; for j:= i-1 downto if (a[j] bmax) then begin bmax:= b[j]; chiso:= j; end; b[i] := bmax +1; truoc[i] := chiso; end; Lê Văn Trường-Gv Trường THPT Chuyên Hùng Vương Gia Lai Phương pháp giải toán - tin quy hoạch động end; (* In ket qua bang de quy *) procedure xuat(i:integer); begin if truoc[i]=0 then write(f,a[i]) else begin xuat(truoc[i]); write(f,' >',a[i]); end; end; procedure truyvet; var max,i : byte; begin max:= b[1];cs:=1; for i:= to n if max < b[i] then begin max:= b[i]; cs:=i; end; assign(f,'daycon.out'); rewrite(f); writeln(f,max); Xuat(cs); Lê Văn Trường-Gv Trường THPT Chuyên Hùng Vương Gia Lai Phương pháp giải toán - tin quy hoạch động Begin F[0,j]:=0; Luu[0,j]:=0; end; For i:=1 to n For j:=1 to W Begin F[i,j]:=f[i-1,j];luu[i,j]:=0; (*Neu khong chon vat i *) for k:=1 to j div a[i] (* Duyet het kha nang co the cho vat i tu > k vat *) if (F[i,j]< F[i-1,j-a[i]*k]+C[i]*k) then (* Neu chon vat i vat so luong k ma gia tri lon hon chap nhan gia tri moi *) Begin F[i,j]:=F[i-1,j-a[i]*k]+C[i]*k; (* ghi nhan gia trij F[i,j] *) luu[i,j]:=k; (* Ghi nhan vat i da chon voi so luong la k *) End; end; end; (***************************) { procedure In_ra; Var i:integer; begin Assign(f1,'balo_1.out'); rewrite(f1); Writeln(f1,F[n,w]); i:=n; (* viet so luong cac vat theo thu tu nguoc Lê Văn Trường-Gv Trường THPT Chuyên Hùng Vương Gia Lai 13 Phương pháp giải toán - tin quy hoạch động n 0) then begin find_path(i-1,j-a[i]*luu[i,j]); if in then write(f1,luu[i,j],' >') else write(f1,luu[i,j]); end; end; procedure In_ra; begin Assign(f1,'balo_1.out'); rewrite(f1); Writeln(f1,F[n,w]); Lê Văn Trường-Gv Trường THPT Chuyên Hùng Vương Gia Lai 14 Phương pháp giải toán - tin quy hoạch động find_path(n,w); close(f1); end; begin input; Qh_dong; In_ra; end Ví dụ 4: Bài toán ba lô 2: Cho ba lô chứa trọng lượng tối đa w Có n đồ vật, đồ vật thứ i có khối lượng a[i] giá trị c[i], 1 tslddf tslddf - thêm g/3 => tsglddf tsglddf - thay f/7/s => tsgldds Trong trường hợp biến đổi được, tìm cách biến đổi dùng phép biến đổi thông báo tiếp vào file OUT.TXT theo quy cách Hướng dẫn : Giả sử độ dài S1, S2 tương ứng M N Ta xây dựng mảng A[0 M,0 N] mà A[i,j] số phép biến đổi cần dùng để biến đổi đoạn đầu độ dài i S1 thành đoạn đầu độ dài j S2 Ta có A[0,j] = j A[i,0]=i với 0

Ngày đăng: 05/05/2017, 17:12

Từ khóa liên quan

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

Tài liệu liên quan