Bài giảng Phân tích và thiết kế giải thuật: Chương 5 - PGS.TS. Dương Tuấn Anh
Số trang: 72
Loại file: ppt
Dung lượng: 378.50 KB
Lượt xem: 16
Lượt tải: 0
Xem trước 8 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng Phân tích và thiết kế giải thuật - Chương 5 trình bày một số kiến thức về qui hoạch động và giải thuật tham lam. Sau khi học xong chương này người học có thể biết được qui hoạch động là gì, các bước của qui hoạch động, các thành phần của quy hoạch động, biết được giải thuật tham lam là gì,... mời các bạn cùng tham khảo.
Nội dung trích xuất từ tài liệu:
Bài giảng Phân tích và thiết kế giải thuật: Chương 5 - PGS.TS. Dương Tuấn AnhChương 4Qui hoạch động và giải thuậttham lam Quihoạchđộng Giảithuậtthamlam 11. Qui hoạch độngQuyhoạchđộng(dynamicprogramming)giảicácbàitoánbằngcáchkếthợpcáclờigiảicủacácbàitoánconcủabàitoánđangxét.Phươngphápnàykhảdụngkhicácbàitoánconkhôngđộclậpđốivớinhau,tứclàkhicácbàitoánconcódùngchungnhữngbàitoán“cháu”(subsubproblem).Quihoạchđộnggiảicácbàitoán“cháu”dùngchungnàymộtlầnvàlưulờigiảicủachúngtrongmộtbảngvàsauđókhỏiphảitínhlạikhigặplạibàitoáncháuđó.Quihoạchđộngđượcápdụngchonhữngbàitoántốiưuhóa(optimizationproblem). 2Bốn bước của qui hoạch độngSựxâydựngmộtgiảithuậtquihoạchđộngcóthểđược chialàmbốnbước:1. Đặctrưnghóacấutrúccủalờigiảitốiưu.2.Địnhnghĩagiátrịcủalờigiảitốiưumộtcáchđệquy.3.Tínhtrịcủalờigiảitốiưutheokiểutừdướilên.4.Cấutạolờigiảitốiưutừnhữngthôngtinđãđượctính toán. 3Thí dụ1: Nhân xâu ma trậnChomộtchuỗigồmnmatrận,vàtamuốntínhtíchcácmatrận.A1A2…An (5.1)Tíchcủaxâumatrậnnàyđượcgọilàmởđóngngoặcđầyđủ(fullyparenthesized)nếunólàmộtmatrậnđơnhoặclàtíchcủahaixâumatrậnmởđóngngoặcđầyđủ.Thídụ:A1A2A3A4cóthểđượcmởđóngngoặcđầyđủtheo5cách: (A1(A2(A3A4))) (A1((A2A3)A4) ((A1A2)(A3A4)) (A1(A2A3))A4) (((A1A2)A3)A4) 4Cáchmàtamởđóngngoặcmộtxâumatrậncóảnhhưởngrấtlớnđếnchiphítínhtíchxâumatrận.Thídụ: A1 10 100A2 100 5A3 5 50((A1A2)A3))thựchiện10.100.5+10.5.50=5000+2500=7500phépnhânvôhướng.(A1(A2A3))thựchiện100.5.50+10.100.50=25000+50000=75000phépnhânvôhướng.Haichiphítrênrấtkhácbiệtnhau. 5Phát biểu bài toán nhân xâu ma trậnBàitoántínhtíchxâumatrận:‘Chomộtchuỗigồmnmatrận,vớimỗii=1,2,…,n,matrậnAicókíchthướcpi1 pi,tamở đóngngoặctíchnàysaochotốithiểuhóatổngsốphép nhânvôhướng”.Đâylàmộtbàitoántốiưuhóathuộcloạikhó. 6Cấu trúc của một cách mở đóng ngoặc tối ưuBước1:Đặctrưnghóacấutrúccủamộtlờigiảitốiưu.DùngAi..jđểkýhiệumatrậnkếtquảcủaviệctínhAiAi+1…Aj.MộtsựmởđóngngoặctốiưucủatíchxâumatrậnA1.A2…AnTáchxâungaytạivịtrínằmgiữaAkvàAk+1vớimộttrịnguyênk,1 kDiễn tả lời giải một cách đệ quyỞđây,nhữngbàitoánconcủatalàbàitoánxácđịnhchiphítốiưuứngvớisựmởđóngngoặcchochuỗiAi.Ai+1…Ajvới1 i j n.Đặtm[i,j]làtổngsốtốithiểucácphépnhânvôhướngđượcđòihỏiđểtínhmatrậnAi..j.ChiphícủacáchrẻnhấtđểtínhA1..nsẽđượcghiởm[1,n].GiảsửrằngsựmởđóngngoặctốiưutáchđôitíchchuỗiAiAi+l…AjtạigiữaAkandAk+l,vớii kMột công thức đệ quyNhưvậy,địnhnghĩađệquychochiphítốithiểucủamộtsựmởđóngngoặcchoAiAi+l…Ajlànhưsau:m[i,j]=0 nếui=j, =min{m[i,k]+m[k+1,j]+pi1pkpj.} nếuiMột nhận xét quan trọngMộtnhậnxétquantrọnglàSựmởđóngngoặccủaxâuconA1A2....AkbêntrongsựmởđóngngoặctốiưucủaxâuA1A2…Ancũngphảilàmộtsựmởđóngngoặctốiưu.Nhưvậy,mộtlờigiảitốiưuchobàitóantíchxâumatrậnchứađựngtrongnónhữnglờigiảitốiưucủanhữngbàitoáncon.Bướcthứhaicủaphươngphápquihoạchđộnglàđịnhnghĩatrịcủalờigiảitốiưumộtcáchđệquytheonhữnglờigiảitốiưucủanhữngbàitoáncon. 10 Tính những chi phí tối ưuThayvìtínhlờigiảidựavàocôngthứcchoở(5.2)bằngmộtgiảithuậtđệquy,chúngtađithựchiệnBước3củaquihoạchđộng:tínhchiphítốiưubằngcáchtiếpcậntừdướilên.GiảsửmatrậnAicókíchthướcpi1 pivớii=1,2,..,n.Đầuvàolàchuỗitrịsố.Thủtụcdùngmộtbảngm[1..n,1..n]đểlưucácchiphím[i,j]vàbảngs[1..n,1..n]đểlưugiátrịnàocủavịtríkmàthựchiệnđượcchiphítốiưukhitínhm[i,j].ThủtụcMATRIXCHAINORDERtrảvềhaimảngmvàs. 11Thủ tục tính hai bảng m và sprocedureMATRIXCHAINORDER(p,m,s);beginn:=length[p]1;fori:=1tondom[i,i]:=0;forl:=2tondo/*l ...
Nội dung trích xuất từ tài liệu:
Bài giảng Phân tích và thiết kế giải thuật: Chương 5 - PGS.TS. Dương Tuấn AnhChương 4Qui hoạch động và giải thuậttham lam Quihoạchđộng Giảithuậtthamlam 11. Qui hoạch độngQuyhoạchđộng(dynamicprogramming)giảicácbàitoánbằngcáchkếthợpcáclờigiảicủacácbàitoánconcủabàitoánđangxét.Phươngphápnàykhảdụngkhicácbàitoánconkhôngđộclậpđốivớinhau,tứclàkhicácbàitoánconcódùngchungnhữngbàitoán“cháu”(subsubproblem).Quihoạchđộnggiảicácbàitoán“cháu”dùngchungnàymộtlầnvàlưulờigiảicủachúngtrongmộtbảngvàsauđókhỏiphảitínhlạikhigặplạibàitoáncháuđó.Quihoạchđộngđượcápdụngchonhữngbàitoántốiưuhóa(optimizationproblem). 2Bốn bước của qui hoạch độngSựxâydựngmộtgiảithuậtquihoạchđộngcóthểđược chialàmbốnbước:1. Đặctrưnghóacấutrúccủalờigiảitốiưu.2.Địnhnghĩagiátrịcủalờigiảitốiưumộtcáchđệquy.3.Tínhtrịcủalờigiảitốiưutheokiểutừdướilên.4.Cấutạolờigiảitốiưutừnhữngthôngtinđãđượctính toán. 3Thí dụ1: Nhân xâu ma trậnChomộtchuỗigồmnmatrận,vàtamuốntínhtíchcácmatrận.A1A2…An (5.1)Tíchcủaxâumatrậnnàyđượcgọilàmởđóngngoặcđầyđủ(fullyparenthesized)nếunólàmộtmatrậnđơnhoặclàtíchcủahaixâumatrậnmởđóngngoặcđầyđủ.Thídụ:A1A2A3A4cóthểđượcmởđóngngoặcđầyđủtheo5cách: (A1(A2(A3A4))) (A1((A2A3)A4) ((A1A2)(A3A4)) (A1(A2A3))A4) (((A1A2)A3)A4) 4Cáchmàtamởđóngngoặcmộtxâumatrậncóảnhhưởngrấtlớnđếnchiphítínhtíchxâumatrận.Thídụ: A1 10 100A2 100 5A3 5 50((A1A2)A3))thựchiện10.100.5+10.5.50=5000+2500=7500phépnhânvôhướng.(A1(A2A3))thựchiện100.5.50+10.100.50=25000+50000=75000phépnhânvôhướng.Haichiphítrênrấtkhácbiệtnhau. 5Phát biểu bài toán nhân xâu ma trậnBàitoántínhtíchxâumatrận:‘Chomộtchuỗigồmnmatrận,vớimỗii=1,2,…,n,matrậnAicókíchthướcpi1 pi,tamở đóngngoặctíchnàysaochotốithiểuhóatổngsốphép nhânvôhướng”.Đâylàmộtbàitoántốiưuhóathuộcloạikhó. 6Cấu trúc của một cách mở đóng ngoặc tối ưuBước1:Đặctrưnghóacấutrúccủamộtlờigiảitốiưu.DùngAi..jđểkýhiệumatrậnkếtquảcủaviệctínhAiAi+1…Aj.MộtsựmởđóngngoặctốiưucủatíchxâumatrậnA1.A2…AnTáchxâungaytạivịtrínằmgiữaAkvàAk+1vớimộttrịnguyênk,1 kDiễn tả lời giải một cách đệ quyỞđây,nhữngbàitoánconcủatalàbàitoánxácđịnhchiphítốiưuứngvớisựmởđóngngoặcchochuỗiAi.Ai+1…Ajvới1 i j n.Đặtm[i,j]làtổngsốtốithiểucácphépnhânvôhướngđượcđòihỏiđểtínhmatrậnAi..j.ChiphícủacáchrẻnhấtđểtínhA1..nsẽđượcghiởm[1,n].GiảsửrằngsựmởđóngngoặctốiưutáchđôitíchchuỗiAiAi+l…AjtạigiữaAkandAk+l,vớii kMột công thức đệ quyNhưvậy,địnhnghĩađệquychochiphítốithiểucủamộtsựmởđóngngoặcchoAiAi+l…Ajlànhưsau:m[i,j]=0 nếui=j, =min{m[i,k]+m[k+1,j]+pi1pkpj.} nếuiMột nhận xét quan trọngMộtnhậnxétquantrọnglàSựmởđóngngoặccủaxâuconA1A2....AkbêntrongsựmởđóngngoặctốiưucủaxâuA1A2…Ancũngphảilàmộtsựmởđóngngoặctốiưu.Nhưvậy,mộtlờigiảitốiưuchobàitóantíchxâumatrậnchứađựngtrongnónhữnglờigiảitốiưucủanhữngbàitoáncon.Bướcthứhaicủaphươngphápquihoạchđộnglàđịnhnghĩatrịcủalờigiảitốiưumộtcáchđệquytheonhữnglờigiảitốiưucủanhữngbàitoáncon. 10 Tính những chi phí tối ưuThayvìtínhlờigiảidựavàocôngthứcchoở(5.2)bằngmộtgiảithuậtđệquy,chúngtađithựchiệnBước3củaquihoạchđộng:tínhchiphítốiưubằngcáchtiếpcậntừdướilên.GiảsửmatrậnAicókíchthướcpi1 pivớii=1,2,..,n.Đầuvàolàchuỗitrịsố.Thủtụcdùngmộtbảngm[1..n,1..n]đểlưucácchiphím[i,j]vàbảngs[1..n,1..n]đểlưugiátrịnàocủavịtríkmàthựchiệnđượcchiphítốiưukhitínhm[i,j].ThủtụcMATRIXCHAINORDERtrảvềhaimảngmvàs. 11Thủ tục tính hai bảng m và sprocedureMATRIXCHAINORDER(p,m,s);beginn:=length[p]1;fori:=1tondom[i,i]:=0;forl:=2tondo/*l ...
Tìm kiếm theo từ khóa liên quan:
Thiết kế giải thuật Phân tích giải thuật Qui hoạch động Giải thuật tham lam Bài toán nhân xâu Bài toán cái túiGợi ý tài liệu liên quan:
-
Giáo trình Cấu trúc dữ liệu và thuật toán trên C++
74 trang 372 0 0 -
Bài giảng Phân tích thiết kế và giải thuật - Chương 2: Kỹ thuật thiết kế giải thuật
80 trang 249 0 0 -
Giải thuật và cấu trúc dữ liệu
305 trang 161 0 0 -
57 trang 132 1 0
-
Bài giảng Phân tích thiết kế thuật toán: Chương 3 - Nguyễn Văn Linh
87 trang 109 0 0 -
Phân tích và thiết kế giải thuật: Các kỹ thuật thiết kế giải thuật - Chương 5
0 trang 51 0 0 -
10 trang 50 0 0
-
Giáo trình giải thuật - tổng quan giải thuật
0 trang 42 0 0 -
Bài giảng Phân tích thiết kế và giải thuật - Chương 1: Kỹ thuật phân tích giải thuật
59 trang 34 0 0 -
0 trang 28 0 0