1. Trang chủ
  2. » Luận Văn - Báo Cáo

Ứng dụng phương pháp quy hoạch động trong bồi dưỡng học sinh giỏi tin trung học phổ thông

94 3 0

Đ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

BỘ GIÁO DỤC VÀ ĐÀO TẠO DAI HOC HUE TRUONG DAI HOC KHOA HOC PHAM THI ANH DAO UNG DUNG PHUONG PHAP QUY HOACH DONG TRONG BOI DUONG HOC SINH GIOI TIN TRUNG HOC PHO THONG CHUYEN NGANH © : KHOA HOC MAY TINH MA SO : 60 48 01 01 LUAN VAN THAC SI KHOA HOC DINH HUONG NGHIEN CUU NGUOI HUONG DAN KHOA HOC PGS.TS HOANG QUANG Thừa Thiên Huế, 2018 LỜI CAM ĐOAN Tôi xin cam đoan cơng trình nghiên cứu riêng cá nhân tơi, hướng dẫn khoa học PGS.TS Hồng Quang Các kết nêu luận văn trung thực chưa công bố cơng trình khoa học khác Thừa Thiên Huế, ngày 24 tháng 04 năm 2018 Học viên Phạm Thị Anh Đào LỜI CẢM ƠN Lời đầu tiên, xin gởi lời cảm ơn chân thành sâu sắc đến Quý thầy cô giáo Khoa Công nghệ thông tin - Trường Đại học Khoa học Huế tận tình hướng dẫn, truyền đạt kiến thức, tạo điều kiện thuận lợi trình học tập thực luận văn tốt nghiệp Tôi xin chân thành gửi lời biết ơn đến PGS.TS Hoàng Quang, người thầy hướng dẫn tận tỉnh có góp ý sâu sắc, hướng dẫn quý báu cho tơi suốt q trình nghiên cứu, kịp thời cho nhiều lời động viên nhận xét đắn để tơi có thê hồn thành tốt đề tài Trong trình thực dé tài, xin chân thành gửi lời cảm ơn đến giúp đỡ, lời động viên từ phía gia đình, đồng nghiệp, bạn bè động lực to lớn giúp tơi hồn thành tốt dé tài nghiên cứu mỉnh Tôi gửi lời cảm ơn đến trường THPT Đông Hà, nơi công tác tạo điều kiện học thực đề tài nghiên cứu Bản thân cố gắng trình thực để tài chắn khơng tránh khỏi thiếu sót Kính mong q thầy bạn tận tình góp ý, bảo Xin chan cam on! Thừa Thiên Huế, ngày 24 tháng 04 năm 2018 Học viên Phạm Thị Anh Đào il MỤC LỤC Trang LỚI GAM ĐO AT tang non hit 000 SỰ GI130 HE GEN HUY GEREDƯGHHHIHPQJ8Hãtigiilgiatiraggtuagazaai i 0009901912 ÔỎ ii h9 iii nƯờg,7 DANH MỤC CÁC HÌNH 5555522 EEEE.EEEEiEErrrrrrrrrrrkee Vv )97000157 - , )HD,HHA Chương CƠ SỞ LÝ THUYÉT VỀ PHƯƠNG PHÁP QUY HOẠCH ĐỌNG 1.1.MỘT SÓ KHÁI NIỆM CƠ BẢN VỀ PHƯƠNG PHÁP QUY HOẠCH ĐỘNG 2202 22222122112211221121121121121121222222112122222222 re 1.1.1 Phương pháp quy hoạch động - c St S2 Series 1.1.2 Các toán gối 222 2s 22222212212112211221122122122 te 1.1.3 Cấu trúc tối ưu -s s22 2212E12Et21 E121 re 1.1.4 Hai cách tiếp cận quy hoạch động thường ding cece 1:]1:5 Nguyên lý:của phương PhẨP serene 1.2 CAC BUGC THỰC HIỆN GIẢI BÀI TOÁN QUY HOACH DONG 1.2.1 Các bước thực - L2 22211111211 11221 1111121111501 1111 1k1 x ky 1.2.2 Một số ví đụ 52 22222222122112211121112111211211221222212222 re 11 1.3 TIỂU KÉT CHƯƠNG l . 2222222221222121122121121121222222xe 17 Chương MÓI QUAN HỆ GIỮA PHƯƠNG PHÁP QUY HOẠCH ĐỌNG VÀ MỌT SÓ PHƯƠNG PHÁP KHÁC 5©©25°©5+ScseExteEreetreerreerrerrreee 18 2.1 SỰ KHÁC NHAU GIỮA PHƯƠNG PHÁP QUY HOẠCH ĐỘNG VÀ PHƯƠNG PHÁP ĐỆ QUY 5c 51 2211221121 21222112121 e ray 18 2.2 MÓI QUAN HỆ GIỮA PHƯƠNG PHÁP QUY HOẠCH ĐỘNG VÀ PHƯƠNG PHÁP VÉT CẠN .-25222222212212211211212222222 re 20 2.2.1 Giới thiệu thuật toán vét cạn 552222 221222122222222 re 20 2.2.2 Phương pháp quy hoạch động phương pháp vét cạn 21 1H 2.3 MÓI QUAN HỆ GIỮA PHƯƠNG PHÁP QUY HOẠCH ĐỘNG VÀ PHƯƠNG PHÁP THAM LAM -©22-22222221122211222112121211 11 1E.e.ye 25 2.3.1 Giới thiệu thuật toán tham lam .-222222212221221222121 2222 xee 25 2.3.2 Phương pháp quy hoạch động phương pháp tham lam 26 2.4 TIỂU KÉT CHƯƠNG 222222 2212221221221122112112211221222222 re 30 Chương PHÂN LOẠI MỘT SỐ BÀI TOÁN GIẢI BẰNG PHƯƠNG PHÁP 9)060:09(0:E0 c7 ẽ ‹-(-‹-ägAH,H.HDH , 31 3.1 BÀI TỐN XÉP BA LƠ (KNAPSACK) 5c 2E trai 32 3.2 BÀI TOÁN DÃY CƠN ĐƠN ĐIỆU DÀI NHẤTT 22-222222- Bước 3: Lập bảng Procedure Var Lapbang; i,j:integer; Begin m:=Length(X); n:=length(F); For i:=0 to m L[i,-1]:=101; For 3:=0 to n L[-1,j]:=101; For i:=1 to m L[i,0O]:=i; For j:=1 to n L[0,3]:=j; For ii=—1 For to j:=1 M to N Begin If X[iJ=F[j] Tf X[i]F[j] then L[i,j]:=L[i-1,j-1]; then L[i,j]:=Min(L[i-1,j],L[i,j-1],L[i-1,j-1])+1; End; writeln(L[m,n]); En3; > Bước 4: Tổng hợp kết Procedure Var Tonghopketqua; i,j:integer; Begin While If (m0O) X[m]=F[n] or (n0) then 55 thi có giới hạn thời gian, nhớ chương trình, nên thuật tốn hiệu cần thiết Và trường hợp vậy, quy hoạch động thuật toán phù hợp Chỉ cần làm học sinh gần có giải Tuy nhiên việc làm cho em học sinh phổ thông sử dụng thành thạo phương pháp lập trình khơng phải vấn đề dễ dàng Hiểu rõ thuật toán bước đầu giúp em học sinh tự tin đồng thời phân tích tốn xác định phương pháp giải đắn giúp em có thành tích tốt Biết mối quan hệ quy hoạch động phương pháp khác giúp việc giải toán để dàng nhanh chóng Là giáo viên giảng dạy môn Tin học trường trung học phô thông, việc bồi dưỡng học sinh giỏi nhiệm vụ vô quan trọng, nhận thấy việc ứng dụng phương pháp quy hoạch động thiết kế thuật toán mảng kiến thức cần thiết học sinh tham gia bồi dưỡng học sinh giỏi Vì vậy, chọn để tài “Ứng dụng phương pháp Quy hoạch động bi dưỡng học sinh giỏi Tìn — Trung học phổ thông" để làm đề tài nghiên cứu Hy vọng tư liệu hữu ích cho giáo viên, học sinh người quan tâm đến phương pháp Luận văn bao gồm ba chương Chương l giới thiệu cho có nhìn khái qt thuật tốn quy hoạch động Chương giới thiệu mối quan hệ phương pháp quy hoạch động số phương pháp khác: đệ quy, vét cạn, tham lam Chương phân loại số toán giải phương pháp quy hoạch động Phần phu lục dùng Pascal để cài đặt, giải toán giới thiệu chương phương pháp quy hoạch động Bởi thi học sinh giỏi THPT chủ yếu sử dụng ngôn ngữ lập trình Pascal nên tồn thuật tốn cài đặt Pascal Việc thuận tiện cho em học sinh giáo viên việc học tập giảng dạy Mặc dù thân tơi ln cố gắng q trình thực đề tài chắn không tránh khỏi thiếu sót, kính mong q thầy bạn tận tình góp ý, bảo Chương I CƠ SỞ LÝ THUYÉT VÈ PHƯƠNG PHÁP QUY HOẠCH ĐỘNG Quy hoạch động mặc đù không nằm nội dung chương trình tin học phổ thơng kỹ thuật lập trình thường sử dụng kỳ thị học sinh giỏi, Olympic, tin học trẻ Chương giới thiệu thuật toán quy hoạch động, bao gồm phần: khái niệm quy hoạch động, bước để giải tốn quy hoạch động số ví dụ minh hoạ 11 MỘT SÓ KHÁI NIỆM CƠ BAN VE PHƯƠNG PHÁP QUY HOẠCH ĐỘNG 1.1.1 Phương pháp quy hoạch động Trong ngành khoa học máy tính, gwy hoạch động phương pháp giảm thời gian chạy thuật tốn thể tính chất foán gối (overlapping subproblem) cấu trúc toi uu (optimal substructure) [7] Nhà toán học Richard Bellman (1920-1984) phát minh phương pháp quy hoạch động vào năm 1953 Phương pháp xây đựng chủ đề kỹ thuật phân tích tốn tơ chức IEEE thừa nhận [2] Phương pháp quy hoạch động việc giải tất toán nhỏ (bài toán sở) để từ bước giải toán lớn giải toán lớn (bài toán ban đầu) Ý tưởng phương pháp quy hoạch động tránh tính tốn lại tốn xét, nói cách khác phương pháp quy hoạch động thể sức mạnh nguyên lý chia đề trị đến cao độ 1.1.2 Các toán gối Tương tự thuật toán chia để trị, quy hoạch động chia toán lớn thành toán nhỏ Quy hoạch động sử dụng toán gọi gọi lại Phương pháp quy hoạch động lưu kết toán này, gọi, khơng cần phải tính lại, làm giảm thời gian tính tốn Quy hoạch động áp dụng (hoặc nói áp dụng var vt:byte; begin if r"); write(x[n-1]); procedure ma array[0 100,0 100] of byte; TÀI LIỆU THAM KHẢO Tiếng Việt [1] Hồ Sĩ Đàm zmk (2013), Tài liệu chuyên Tin học — Bài tập,Quyên 1,Nxb Giáo dục Việt Nam [2] Hồ Sĩ Đàm va nnk (2009), Tài liệu giáo khoa chuyên tin Tập 1,Nxb Giáo dục Việt Nam [3] Lê Minh Hoan(2002), Chuyén đề Giải thuật lập trình, Đại học sư phạm Hà Nội [4] Trần Đỗ Hùng (Chủ biên - 2007) Bài tập quy hoạch động (chuyên đề bôi dưỡng HSG THPT), Nxb Giáo dục Việt Nam [5] Võ Văn Trị (2013), Chuyên đề Quy hoạch động trạng thái, THPT chuyên Võ Nguyên Giáp, Quảng Bình [6] N Wirth (1982), Cdu tric đữ liệu + Giải thuật = Chương trình, Bản dịch tiếng Việt Nguyễn Văn Ba, Nguyễn Văn Lư, Vũ Duy Mẫn, Hồ Thuần, Nxb Thống kê Tiếng Anh [7] T Cormen, C E Leiserson, R L Rivest (2005), Introduction to Algorithms, Cambridge, MIT Press, 2nd Edition [8] Stuart Dreyfus (2002), Richard Bellman on the birth of Dynamic Programming [9] Albert Cohen (2007), Approximation by Greedy Algorithms, SIAM News, Volume 40, Number [10] J D Smith (2000), Design and Analysis of Computer Algorithms, PWS- KENT 75 PHỤ LỤC MỘT SĨ CHƯƠNG TRÌNH MINH HOẠ Knapsack không bị chặn program btctx; const fi='ChiecTX.inp'; fo='ChiecTX.Out'; var r,s,n,p,k:integer; m,xX:array[0 100] ciarray[0 100] of of byte; real; liarray[0 50,0 50] u:array[0 50,0 50] procedure var of of real; byte; nhapdl; i:byte; begin assign(input,fi); reset(input); assign(output,fo); rewrite (output) read(n);read(p); for i:=1 to n begin read (m[i]); read (c[i]); readin; end; end; procedure var lapbang; tam:real; begin for for s:=1 to r:=0 if n to s=1 p then begin u[x,l]:=r div m[1]; l[r,1]:=u[r,1]*c[1]; end else begin ; {tinh u[r,s] va 1l[r,s]ị! l[r,s]:=0; u[r,s]:=0; for k:=0 to r div m[s] begin tam:=k*c[s]+l[r-k*m[s],s-1]; if tam>l[r,s] then begin +1[r,s]:=tam; HEF;3ST 9=kR? end; end; end; end; procedure var tonghop; k:byte; begin ci=p; For s:=n downto Begin x[s]:=ul[r,s]? r:=r-x[s]*m[s]; End; writeln('Gia for © s:=1 to tri n cuc dai cua tui xach writeln('Do vat ',s,' eal”) end; procedure dongtep; begin close(input); close(output); end; BEGIN nhapdl; lapbang; tonghop; il la:',l[p,n]); can lay: ',x[s], dongtep; END Knapsack 0/1 program btctx; const fi='ChiecTX.inp'; £o='ChiecTX.Out'; var r,s,n,p,k:integer; m,xX:array[0 100] of byte; c:array[0 100] of real; procedure var liarray[0 50,0 50] of real; u:array[0 50,0 50] of byte; nhapdl; i:byte; begin assign(input,fi); reset(input); assign(output,fo); rewrite (output) read(n);read(p); for i:=1 to n begin read read (m[i]); (c[i]); readln; end; end; procedure var lapbang; tam:real; begin for for i£ s:=1 r:=0 s=1 to to n p then if m[1l]l[r,s] then begin i[r,s]:=tam; u[r,s]:=k; end; end; end; end; procedure var tonghop; k:byte; begin ci=p; For s:=n downto Begin x[s]:=ul[r,s]? r:=r-x[s]*m[s]; End; writeln('Gia for © s:=1 to tri n cuc dai cua tui xach writeln('Do vat ',s,' eal”) end; procedure dongtep; begin close(input); close(output); 1V la:',l[p,n]); can lay: ',x[s], end; BEGIN nhapdl; lapbang; tonghop; dongtep; END Day don diéu dai nhat uses crt; Const Max = 5000; fi='DCTDN.INP'; fo="DCTDN.OUT'; Var a,L,T:array [1 Max] of integer; i,j,N,jmax:integer; g:text; Procedure var Docfile; i:integer; begin assign(input, fi); reset (input); assign (output,fo); rewrite (output) ; readln(n); for i:=1 to n read (alil); end; procedure Lapbang; Begin L[1] :=1;T[1] :=0;a[N+1] for i:=2 N+1 to :=32767; begin jmax:=0; 11 1e for j:=1 if to i-1 (alj]b if min>c then min:=b then else min:=a; min:=c; end; Procedure Docfile; Begin vi Assign (input,£1) Reset ; (input) ; Assign(output ,fo) ; Rewrite (output) ; Readln (X) ; Readln (E) ; End; Procedure Var Lapbang; i,j: integer; Begin m:=Length (X) ; n:=length (E); For i:=0 to m L[i,-1]:=101; For j3:=0 to n L[-1,j]:=101; For i:=1 to m L[i,0]: For j:=1 to n L[0,j]:=j; For i:=1 For to j:=1 M to N Begin If X[iJ=F[j] If X[i]F[j] then L[i,j] then :=L[i-1,j-1]; L[i,j]:=Min(L[i-1,j] ,L[i,j-1] ,L[i-1,j- 1])+1; End; writeln(L[m,n]); End; Procedure Var Tonghopketqua; i,j:integer; Begin While TẾ (m0) or X[m]=E[n] (n0) then Begin dec (m) ; dec (n) ; End Else Begin Write(X,' If ->'); L[m,n]=L[m,n-1]+1 then Vii Begin Write('Insert(',m,', Insert (F[n] dec (n) ; ',F[n],')'); ,X,m+1) ; End Else TẾ L[m,n]=L[m-1,n-1]+1 then Begin write('Replace(',m,', ',F[n],')'); X[m] :=F[n]; dec (n) ; dec ; (m) End Else Begin write('Delete(',m, Delete (X,m,1) dec (m) ; ; End; writeln('->', X); End; End; Procedure Dongfile; Begin close (input) close ; (output) ; End; BEGIN Docfile; Lapbang; Tonghopketqua; Dongfile END Bài toán nhân ma trận program PhepNhanToHopNhieuMaTran; const fi='"PNNMT.inp'; fo='PNNMT.Out'; var n,i,s,v,v:ibyte; m:array[0 100] of byte; Vill ')'); x:array[1 100] byte; l:array[1 50,1 50] of real; k:array[1 50,1 50] of byte; procedure var of nhapdl; j:byte; begin assign(input,fi); reset(input); assign(output,fo); rewrite(output); readin(n); for j:=0 to readln n (m[3])¿; end; procedure var lapbang; tam:real; begin for for s:=1 to r:=s if n downto r=s then l[r,s]:=0 else begin {tinh l[r,s] va k[r,s]} l1[r,s]:=m[r-1]*m[r]*m[r+1] k[r,s]:=rF; for v:=r to s-1 begin tam:=l[r,v]+m[r-1]*m[v] *m [s]+1[v+1,s]; {writeln('tam:',tam:4:0); writeln('"l[',r,',',s,']:' if tam

Ngày đăng: 11/01/2024, 22:49

Xem thêm:

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN