




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、动态规划在信息学奥林匹克竞赛中的应用一.动态规划含义:在现实生活中,有一类活动的过程,由于它的特殊性,可将过程分成若干个互相联系的阶段,在它的每一阶段都要做岀决策,从而使整个过程达到最好的活动效果.因此,各个阶段决策确定后,组成一个决策序列,因而也就确定了 整个过程的一条活动路线.这种把一个问题看作是一个前后关联具有链状结构的多阶段过程,就称为多阶段决策过程,这种问题称为多阶段决策问题.在多阶段决策问题中,各个阶段采取的决策,一般来说是和时间有关的,决策依赖于当前状态,又随即引起状态 的转移,一个决策序列就是在变化的状态中产生岀来的,故有动态的含义,我们称这种解决多阶段决策最优化的过程为动态规
2、划.二动态规划特征动态规划的显著特征是:无后效性,有边界条件,且一般划分为很明显的阶段.动态规划一般还存在一条或多条状态转移方程三例题1.Catcher 防卫导弹(GDOI98)题目讲得很麻烦,归根结底就是求一整串数中的最长不上升序列这道题目一开始我使用回溯算法,大概可以拿到1/3的分吧,后来发现这其实是动态规划算法中最基础的题目 用一个二维数组 C1.Max,1.2来建立动态规划状态转移方程(注:C1.Max,1表示当前状态最多可击落的导弹数,C1.Max,2表示当前状态的前继标志):Ci=MaxCj+1,(j=i+1.n), 然后程序也就不难实现了 .示范程序:program catche
3、r_hh;varf:text;i,j,k,max,n,num:integer;a:array 1.4000 of integer; 导弹高度数组c:array 1.4000,1.2 of integer;动态规划数组procedure readfile;beginassign(f,catcher.dat); reset(f);readln(f,num);for i:=1 to num doreadln(f,ai);end;procedure work;beginfillchar(c,sizeof(c),0); cnum,1:=1;清空数组,赋初值开始进行动态规划for i:=num-1 dow
4、nto 1 dobeginn:=0; max:=1;for j:=i+1 to num doif (aiaj) and (maxmax then begin max:=ci,1; n:=i; end;返回寻找路径repeatwriteln(n, ); n:=cn,2;until n=0;end;beginreadfile; work;end.2.Perform 巡回演出(GDKOI2000)题目描述:Flute市的Phlharmoniker乐团2000年准备到Harp市做一次大型演出,本着普及古典音乐的目的,乐团指挥 L.Y.M准备在到达Harp市之前先在周围一些小城市作一段时间的巡回演出,此
5、后的几天里,音乐家们将每天搭乘一个航班从一个城市飞到另一个城市,最后才到达目的地 Harp市(乐团可多次在同一城市演出).由于航线的费用和班次每天都在变,城市和城市之间都有一份循环的航班表,每一时间,每一方向,航班表循环的周期都可能不同.现要求寻找一张花费费用最小的演岀表.输入:输入文件包括若干个场景.每个场景的描述由一对整数 n(2=n=10)和k(1=k=1000)开始,音乐家们要在这n 个城市作巡回演出,城市用1.n标号,其中1是起点Flute市,n是终点Harp市,接下来有n*(n-1)份航班表,一份航班表 一行,描述每对城市之间的航线和价格,第一组n-1份航班表对应从城市1到其他城市
6、(2,3,.n)的航班,接下的n-1行 是从城市2到其他城市(1,3,4.n)的航班,如此下去.每份航班又一个整数 d(1=d=30)开始,表示航班表循环的周期,接下来的d个非负整数表示1,2.d天对应的 两个城市的航班的价格,价格为零表示那天两个城市之间没有航班 例如3 75 0 80表示第一天机票价格是 75KOI,第 二天没有航班,第三天的机票是 80KOI,然后循环:第四天又是75KOI,第五天没有航班,如此循环.输入文件由n=k=0 的场景结束.输岀:对每个场景如果乐团可能从城市1出发,每天都要飞往另一个城市,最后(经过k天)抵达城市n,则输出这k个航班价格之和的最小值.如果不可能存
7、在这样的巡回演出路线,输出0.样例输入:3 62130 150375 0 807 120 110 0 100 110 120 0460 70 60 503 0 135 1402 70 802 32 0 701 800 0样例输出:4600初看这道题,很容易便可以想到动态规划,因为第x天在第y个地方的最优值只与第x-1天有关,符合动态规划的无后效性原则,即只与上一个状态相关联,而某一天x航班价格不难求出S=C(x-1) mod m +1.我们用天数和地点 来规划用一个数组 A1.1000,1.10来存储,Ai,j表示第i天到达第j个城市的最优值,Ci,j,l表示i城市与j城市间第 l天航班价格,
8、则Ai,j=MinAi-1,l+Cl,j,i (l=1.n 且Cl,j,i0),动态规划方程一出,尽可以放怀大笑了 .示范程序:program perform_hh;varf,fout:text;p,l,i,j,n,k:integer;a:array 1.1000,1.10 of integer; 动态规划数组c:array 1.10,1.10 of record 航班价格数组num:integer;t:array 1.30 of integer;end;e:array 1.1000 of integer;procedure work;begin人工赋第一天各城市最优值for i:=1 to
9、n dobeginif c1,i.t10then a1,i:=c1,i.t1;end;for i:=2 to k dobeginfor j:=1 to n dobeginfor l:=1 to n dobeginif (jl)and (cl,j.t(i-1) mod cl,j.num+10)判断存在航班and (ai,j=0) or (ai-1,l+cl,j.t(i-1) mod cl,j.num+1ai,j) 判断比当前解优then ai,j:=ai-1,l+cl,j.t(i-1) mod cl,j.num+1;赋值end;end;end;ep:=ak,n; 第p个场景的最优值end;pro
10、cedure readfile; 读文件beginassign(f,PERFORM.DA T); reset(f);assign(fout,PERFORM.OUT); rewrite(fout);readln(f,n,k); p:=0;while (n0) and (k0) dobeginp:=p+1;fillchar(c,sizeof(c),0); fillchar(a,sizeof(a),0);for i:=1 to n dobeginfor j:=1 to i-1 dobeginread(f,ci,j.num);for l:=1 to ci,j.num doread(f,ci,j.tl)
11、;end;for j:=i+1 to n dobeginread(f,ci,j.num);for l:=1 to ci,j.num do read(f,ci,j.tl);end;end;work;readln(f,n,k);end;输岀各个场景的解for i:=1 to p-1 dowriteln(fout,ei); write(fout,ep);close(f);close(fout);end;beginreadfile;end.四小结动态规划与穷举法相比,大大减少了计算量,丰富了计算结果,不仅求岀了当前状态到目标状态的最优值,而且同时求出了到中间状态的最优值,这对于很多实际问题来说是很有用
12、的.这几年,动态规划已在各省市信息学奥林匹克竞赛中占据相当重要的地位,每年省赛8道题目中一般有23道题目属于动态规划,动态规划相比一般穷举也存 在一定缺点:空间占据过多,但对于空间需求量不大的题目来说,动态规划无疑是最佳方法! 五课后题目1.m个人抄n本书,每本书页数已知,每个人(第一个人除外)都必须从上一个人抄的最后一本书的下一本抄起(书必须整本整本的抄),求一种分配方法,使抄书页数最多的人抄书页数尽可能少.(GDOI99 Books).2.有一字符串有多种编码方式可供人选择,将这个字符串进行编码,使求得得编码长度最短。(GDKOI2000外,其他每个城市只能访问一次,求最多能访问多少个城市.沁园春雪山舞银蛇,原驰蜡象,欲与天公试比Compress)3. Canada境内有自西向东的一系列城市:Halifax,Hamilton,Montelia,Vanc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 常态化防疫知识培训课件
- 轮式装甲车设计
- 员工培训与能力提升计划表单
- 年产12万套汽车电动助力项目可行性研究报告
- 2025年特岗教师招聘笔试初中体育学科实战模拟题集
- 2025年程序员职业资格认证考试预测题
- 2025年市场营销师认证考试模拟题及答案集
- 2025年边海防派出所职位报考指南及模拟题集
- 眩晕APP课件教学课件
- 2025年数据分析师面试宝典与实战模拟题集
- 有创血压测量操作评分标准
- 架桥机事故案例警示-课件
- 茶文化与茶疗课件
- 班组长执行力管理培训
- 家谱图和家庭治疗课件
- 建筑工程施工转包违法分包等违法行为监督检查工作方案
- 外研版六年级上册英语 Module 2 单元测试卷(含听力音频)
- 《建筑材料与检测》教学课件(全)
- 2022年北京市中考地理试题及参考答案
- 干燥塔安装施工工艺标准
- 地震勘探原理及方法实验指导书
评论
0/150
提交评论