动态规划作业完整
2020年动态规划作业
作业 1 1 动态规划练习为保证某一设备的正常运转,需备有三种不同的零件 E 1 , E 2, E 3。
若增加备用零件的数量,可提高设备正常运转的可靠性,但增加了费用,而投资额仅为8000 元。
已知备用零件数与它的可靠性和费用的关系如表1 所示。
现要求在既不超出投资额的限制,又能尽量提高设备运转的可靠性的条件下,问各种零件的备件数量应是多少为好?要写出计算程序。
解设投资顺序为 E1,E2,E3,阶段编号逆向编号,即第一阶段计算给E3 投资的效果。
设ks 为第 k 阶段的剩余款,kx 为第 k 阶段的拨款额,状态转移方程为k k kx s s 1,目标函数为 ) 1 ( ) 1 ( ) 1 ( max3 2 1P P P f ,其中1P ,2P ,3P 分别为 E1,E2,E3 增加的可靠性第一阶段对 E3 的投资效果决策表s1\x1 0 2 3 4 *1xf1 0 10 1 1 10 1 2 1 12 13 1 1 23 24 1 1 2 7 4 75 1 1 2 7 4 76 1 1 27 4 7 7 1 1 2 7 4 78 1 1 2 7 4 7第二阶段,对 E2 的投资效果由于 E1 最多只需 3000,故 52 s 千决策表s2\x2 0 3 5 6 *2xf2 5 7 32 55 567 44 5 9 6 9 7 7 04 65 9 3 048 7 04 8 09 6 09 第三阶段对 E1 的投资效果决策表: s3\x3 0 2 3 4 *3xR3 8 09 09 8 0.7 0,2 09 回溯有两组最优解(1)x3=0,x2=3,x1=2,maxf=09 (2)x3=1,x2=3,x1=0,maxf=092 2 层次分析法练习你已经去过几家主要的摩托车商店,基本确定将从三种车型中选购一种,你选择的标准主要有价格、耗油量大小、舒适程度和外观美观情况。
经反复思考比较,构造了它们之间的成对比较判断矩阵。
动态规划练习例题
动态规划方法总结
动态规划算法的设计步骤
– – – – – – – 将问题表示成多步判断 确定是否满足优化原则——必要条件 确定子问题的重叠性——估计算法效率 列出关于优化函数的递推方程(或不等式)和边界条件 自底向上计算子问题的优化函数值----非递归的算法 备忘录方法记录中间结果 标记函数追踪问题的解
• S(i)表示结束于位置i的最大子区间和 • max{S(i)}即为所求最大子区间和 • 考虑如何递推求解并反算问题解
最大子矩阵
• 已知矩阵的大小定义为矩阵中所有元素的 和。给定一个矩阵,找到最大的非空(大小 至少是1 * 1)子矩阵。 • 例如这个矩阵的最大子矩阵大小为15。
0 -2 -7 0 9 2 -6 2 -4 1 -4 1 -1 8 0 -2
动态规划练习例题在棋盘上移动在一个nn的棋盘上棋子可以向上方右上方或左上方移动每次从x方格移动到y方格将获得pxy元钱pxy不一定是正数现求一个获得钱最多的从底边到顶边的一种移动棋子的方案
动态规划练习例题
在棋盘上移动
• 在一个n×n的棋盘上,棋子可以向上方、 右上方或左上方移动,每次从x方格移动到y 方格将获得p(x,y)元钱, p(x,y)不一定是正 数,现求一个获得钱最多的从底边到顶边 的一种移动棋子的方案。
解题思路
Qx, y 1 Q x, y max Qx 1, y 1 Q x 1, y 1 y 1 px, y 1, x, y y 1 px 1, y 1, x, y y 1且x 1 px 1, y 1, x, y y 1且x 字符串X=x1,x2,…xm和Y=y1,y2,…yn 使用一系列编辑操作将字符串X转变成Y。允许使 用插入,删除,修改三种操作,每种操作都有 一定的代价,求一个总代价最小的操作序列。 – 设从字符X中删除符号xi的代价为D(xi) – 将符号yj插入X的代价为I(yj) – 将X中的符号xi修改成yj的代价为C(xi,yj)
动态规划练习题及解答1【范本模板】
动态规划练习题[题1] 多米诺骨牌(DOMINO)问题描述:有一种多米诺骨牌是平面的,其正面被分成上下两部分,每一部分的表面或者为空,或者被标上1至6个点。
现有一行排列在桌面上: 顶行骨牌的点数之和为6+1+1+1=9;底行骨牌点数之和为1+5+3+2=11。
顶行和底行的差值是 2.这个差值是两行点数之和的差的绝对值。
每个多米诺骨牌都可以上下倒置转换,即上部变为下部,下部变为上部.现在的任务是,以最少的翻转次数,使得顶行和底行之间的差值最小.对于上面这个例子,我们只需翻转最后一个骨牌,就可以使得顶行和底行的差值为0,所以例子的答案为1.输入格式:文件的第一行是一个整数n(1〈=n<=1000〉,表示有n个多米诺骨牌在桌面上排成一行。
接下来共有n行,每行包含两个整数a、b(0〈=a、b〈=6,中间用空格分开〉。
第I+1行的a、b分别表示第I个多米诺骨牌的上部与下部的点数(0表示空).输出格式:只有一个整数在文件的第一行。
这个整数表示翻动骨牌的最少次数,从而使得顶行和底行的差值最小。
[题2]Perform巡回演出题目描述:Flute市的Phlharmoniker乐团2000年准备到Harp市做一次大型演出,本着普及古典音乐的目的,乐团指挥L.Y。
M准备在到达Harp市之前先在周围一些小城市作一段时间的巡回演出,此后的几天里,音乐家们将每天搭乘一个航班从一个城市飞到另一个城市,最后才到达目的地Harp市(乐团可多次在同一城市演出).由于航线的费用和班次每天都在变,城市和城市之间都有一份循环的航班表,每一时间,每一方向,航班表循环的周期都可能不同。
现要求寻找一张花费费用最小的演出表。
输入:输入文件包括若干个场景.每个场景的描述由一对整数n(2〈=n〈=10)和k(1〈=k<=1000)开始,音乐家们要在这n个城市作巡回演出,城市用1..n标号,其中1是起点Flute市,n是终点Harp市,接下来有n*(n-1)份航班表,一份航班表一行,描述每对城市之间的航线和价格,第一组n—1份航班表对应从城市1到其他城市(2,3,..。
动态规划(完整)
(3) 决策、决策变量
所谓决策就是确定系统过程发展的方案,
决策的实质是关于状态的选择,是决策者从
给定阶段状态出发对下一阶段状态作出的选
择。
用以描述决策变化的量称之决策变量, 和状态变量一样,决策变量可以用一个数, 一组数或一向量来描述.也可以是状态变量
的函数,记以 xk xk (sk ) ,表示于 k 阶段状
阶段变量描述当前所处的阶段位置,一 般用下标 k 表示;
(2) 确定状态
每阶段有若干状态(state), 表示某一阶段决策 面临的条件或所处位置及运动特征的量,称为 状态。反映状态变化的量叫作状态变量。 k 阶段的状态特征可用状态变量 sk 描述;
每一阶段的全部状态构成该阶段的状态集合Sk ,并有skSk。每个阶段的状态可分为初始状 态和终止状态,或称输入状态和输出状态, 阶段的初始状态记作sk ,终止状态记为sk+1 ,也是下个阶段的初始状态。
状态转移方程在大多数情况下可以由数学公 式表达, 如: sk+1 = sk + xk;
(6) 指标函数
用来衡量策略或子策略或决策的效果的 某种数量指标,就称为指标函数。它是定义 在全过程或各子过程或各阶段上的确定数量 函数。对不同问题,指标函数可以是诸如费 用、成本、产值、利润、产量、耗量、距离、 时间、效用,等等。
• 2、在全过程最短路径中,将会出现阶段的最优路
径;-----递推性
• 3、前面的终点确定,后面的路径也就确定了,且 与前面的路径(如何找到的这个终点)无关;----
-无后效性
• 3、逐段地求解最优路径,势必会找到一个全过程
最优路径。-----动态规划
§7.1多阶段决策问题
• 动态规划是解决多阶段最优决策的方法, 由美国数学家贝尔曼(R. Bellman) 于 1951年首先提出;
动态规划习题完整版
动态规划习题Document serial number【NL89WT-NY98YT-NC8CB-NNUUT-NUT108】动态规划专题分类视图数轴动规题:题1.2001年普及组第4题--装箱问题【问题描述】有一个箱子容量为V(正整数,0≤V≤20000),同时有n个物品(0<n≤30),每个物品有一个体积(正整数)。
要求从n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。
【输入格式】输入文件box.in有若干行。
第一行:一个整数,表示箱子容量V;第二行:一个整数,表示物品个数n;接下来n行,分别表示这n个物品的各自体积。
【输出格式】输出文件box.out只有一行数据,该行只有一个数,表示最小的箱子剩余空间。
【输入样例】2468312797【输出样例】题2.1996年提高组第4题--砝码秤重__数据加强版【问题描述】设有n种砝码,第k种砝码有Ck 个,每个重量均为Wk,求:用这些砝码能秤出的不同重量的个数,但不包括一个砝码也不用的情况。
【输入格式】输入文件weight.in的第一行只有一个数n,表示不同的砝码的种类数.第2行至第n+1行,每行有两个整数.第k+1行的两个数分别表示第k种砝码的个数和重量.【输出格式】输出文件weight.out中只有一行数据:Total=N。
表示用这些砝码能秤出的不同重量数。
【输入样例】22223【输出样例】Total=8【样例说明】重量2,3,4,5,6,7,8,10都能秤得【数据限制】对于100%的数据,砝码的种类n满足:1≤n≤100;对于30%的数据,砝码的总数量C满足:1≤C≤20;对于100%的数据,砝码的总数量C满足:1≤C≤100;对于所有的数据,砝码的总重量W满足:1≤W≤400000;题3.石子归并-szgb.pas【问题描述】有一堆石头质量分别为W1,W2,…,Wn.(Wi≤10000),将石头合并为两堆,使两堆质量的差最小。
【输入】输入文件szgb.in的第一行只有一个整数n(1≤n≤50),表示有n堆石子。
动态规划算法作业
动态规划算法作业动态规划是一种解决多阶段决策问题的优化方法。
在这种方法中,我们将问题划分为多个子问题,并通过解决这些子问题来求解原始问题的最优解。
动态规划可以应用于各种领域,如经济学、制造业、计算机科学等,在优化问题中经常被使用。
1.状态定义:确定问题的子问题以及每个子问题的状态。
状态是问题的关键属性,这些属性在问题的不同阶段保持不变。
2.状态转移方程:表示问题的子问题之间的关系。
它描述了如何从一个子问题转移到下一个子问题。
通过状态转移方程,我们可以推导出子问题的最优解。
3.初始条件:定义问题的起始状态。
这通常是问题的边界条件,如在第一个阶段的子问题中,我们需要定义初始状态。
4.最优解的计算:通过迭代计算,我们可以逐步解决子问题,并最终求解出原始问题的最优解。
这通常通过填充一个表或者使用递归函数来实现。
为了更好地理解动态规划算法的应用,我们可以考虑以下两个经典问题。
1.背包问题:有一个容量为C的背包和一组物品。
每件物品有一个重量和价值。
我们的目标是选择物品,使其总重量不超过背包的容量,同时价值最大化。
我们可以使用动态规划来解决这个问题。
我们定义一个二维表,其中每一行表示一个物品,每一列表示背包的容量。
通过填充这个表,我们可以计算出每个子问题的最优解,并最终得出最优解。
2.最长公共子序列问题:给定两个字符串,求它们的最长公共子序列。
子序列在原字符串中不一定是连续的,但保持原有顺序。
我们可以使用动态规划来解决这个问题。
我们定义一个二维表,其中每个单元格表示两个字符串的子问题。
通过填充这个表,我们可以逐步计算出更长子序列的最优解,并最终得出最长公共子序列。
动态规划算法的优点是可以减少问题的重复计算,并且可以避免使用递归导致的堆栈溢出。
然而,这种算法也存在一些局限性。
首先,动态规划算法需要定义子问题以及状态转移方程,这在一些问题中可能会很困难。
其次,动态规划算法的时间复杂度通常较高,特别是对于一些大规模问题。
动态规划作业完整
动态规划作业1、1、设某工厂自国外进口一部精密机器,由机器制造厂至出口港有三个港口可供选择,而进口港又有三个可供选择,进口后可经由两个城市到达目的地,其间的运输成本如图中所标的数字,试求运费最低的路线?把A看作终点,该问题可分为4个阶段。
f k(S k)表示从第K阶段点S k到终点A的最短距离。
f4(B1)=20,f4(B2)=40,f4(B3)=30f3(C1)=min[d3(C1,B1)+ f4(B1), d3(C1,B2)+ f4(B2), d3(C1,B3)+ f4(B3) ]=70,U3(C1)= B2 或B3f3(C2)=40 ,U3(C2)= B3f3(C3)=80 ,U3(C3)= B1或B2 或B3f2(D1)=80 ,U2(D1)= C1f2(D2)=70 ,U2(D2)= C2f1(E)=110 ,U1(E)= D1或D2所以可以得到以下最短路线,E→D1→C1→B2 / B3→AE→D2→C2→B3→A2、习题4-2解:1)将问题按地区分为三个阶段,三个地区的编号分别为1、2、3;2)设Sk表示为分配给第k个地区到第n个地区的销售点数,Xk表示为分配给第k个地区的销售点数,S k+1=S k-X kPk(Xk)表示为Xk个销售点分到第k个地区所得的利润值fk(Sk)表示为Sk个销售点分配给第k个地区到第n个地区的最大利润值3)递推关系式:fk(Sk)=max[ Pk(Xk)+ f k+1(S k-X k) ] k=3,2,1f4(S4)=04)从最后一个阶段开始向前逆推计算第三阶段:设将S3个销售点(S3=0,1,2,3,4)全部分配给第三个地区时,最大利润值为:f3(S3)=max[P3(X3)] 其中X3=S3=0,1,2,3,4表1第二阶段:设将S2个销售点(S2=0,1,2,3,4)分配给乙丙两个地区时,对每一个S2值,都有一种最优分配方案,使得最大盈利值为:f2(S2)=max[ P2(X2)+ f3(S2-X2) ]其中,X2=0,1,2,3,4表2第一阶段:设将S1个销售点(S1=4)分配给三个地区时,则最大利润值为:f1(S1)=max[ P1(X1)+ f2(4-X1) ]其中,X1=0,1,2,3,4表3然后按计算表格的顺序反推,可知最优分配方案有两个:最大总利润为531)由X1*=2,X2*=1,X3*=1。
动态规划 练习题
23.(11分)请用动态规划逆序求解法求解下列问题:求出下图中从A到E的最短路线及长度。
在图中标出每个点到终点的最短距离。
24. (11分)一个旅行者从A点出发,经过B、C、D等处,到达E。
各地间距离如图中所示。
问该旅行者应选择哪一条路线,使从A到E的总路程最短?(可直接在图上标号,最后给定答案)
24.一个旅行者从A点出发,经过B、C、D等处,到达E。
各地间距离如图中所示。
问该旅行者应选择哪一条路线,使从A到E的总路程最短?(可直接在图上标号,最后给定答案)(11分)
解:此为动态规划之“最短路问题”,可用逆向追踪“图上标号法”解决如下:
最佳策略为:A →B 2→C 1→D 1→E 或A →B 3→C 1→D 1→E 此时从A 到E 的总路程的最短距离都是11
23. 请用动态规划逆序求解法求解下列问题:
各点标号依次为:A:8, B1:7,B2:6, B3:8, C1:5, C2:4,D1:3,D2:1,D3:5.
25. 某厂生产C B A ,,三种产品,其所需劳动力、材料等有关数据见下表。
要求:建立模型,并用单纯形法计算,确定获利最大的产品生产计划。
解:(1)设C B A ,,
各生产321,,x x x 件。
有
32143min x x x z ++=
st.⎪⎩⎪
⎨⎧=≥≤++≤++)3,2,1(,03054345
536321321j x x x x x x x j
(4分)
获利最大的生产计划是C B A ,,各生产5件、0件、3件,最大利润为273453=⨯+⨯=z 元。
(15分)。
运筹学 动态规划-作业及答案
1
第五章 动态规划作业题及答案
1.用动态规划法求解求最短路径
从起点A 到终点E 之间各点的距离如图所示。
求A 到E 的最短路径。
B A
C B
D B C D E
C 21
23
12
31
2
5
11214
10610
41312113
96
5810
5
2
2.用动态规划法求解资源分配问题
有资金4万元,投资A 、B 、C 三个项目,每个项目的投资效益与投入该项目的资金有关。
三个项目A 、B 、C 的投资效益(万吨)和投入资金(万元)的关系见下表:
用动态规划法求解对三个项目的最优投资分配,使总投资效益最大。
3.用动态规划法求解生产库存问题
一个工厂生产某种产品,1~7月份生产成本和产品需求量的变化情况如下表:
为了调节生产生产和需求,工厂设有一个产品仓库,库容量H=9。
已知期初库存量为2,要求期末(七月低)库存量为0。
每个月生产的产品在月末入库,月初根据当月需求发货。
求七个月的生产量,能满足各月的需求,并使生产成本最低。
4.用动态规划法求解背包问题
第i 种每件价值c 1=65,c 2=85,c 3=40元; 第i 种物品每件重量为:w 1=2,w 2=3,w 3=1公斤;现有一只可装载重量为5公斤的背包,求各种物品应各取多少件放入背包,使背包中物品的价值最高。
动态规划专项练习(1)
动态规划专项练习(1)动态规划专项练习(1)1、警卫安排(security.pas/c/cpp)一个重要的基地被分为n个连通的区域。
出于某种神秘的原因,这些区域以一个区域为核心,呈一颗树形分布。
在每个区域安排警卫所需要的费用是不同的,而每个区域的警卫都可以望见其相邻的区域,只要一个区域被一个警卫望见或者是安排有警卫,这个区域就是安全的。
你的任务是:在确保所有区域都是安全的情况下,找到安排警卫的最小费用。
输入数据第一行n,表示树中结点的数目。
接下来的n行描述了n个区域的信息,每一行包含的整数依次为:区域的标号i(0<i<=n),在区域i安排警卫的费用k,区域i的子结点数目m,接下来m个数为区域i p="" 的子结点编号。
<=""> 输出数据一行一个整数,为最小的安排费用。
样例输入:security.in61 30 323 42 16 2 5 63 5 04 4 05 11 06 5 0输出security.out25数据范围对于所有的数据,0<n<=720。
< p="">2、最长上升子序列(LIS.pas/c/cpp)LIS问题是最经典的动态规划基础问题之一。
如果要求一个满足一定条件的最长上升子序列,你还能解决吗?给出一个长度为N整数序列,请求出它的包含第K个元素的最长上升子序列。
例如:对于长度为6的序列<2,7,3,4,8,5>,它的最长上升子序列为<2,3,4,5>,但如果限制一定要包含第2个元素,那么满足此要求的最长上升子序列就只能是<2,7,8>了。
输入数据第一行为两个整数N,K,如上所述。
接下来是N个整数,描述一个序列。
输出数据请输出一个整数,即包含第K个元素的最长上升子序列长度。
样例输入8 665 158 170 299 300 155 207 389输出4数据范围对于所有的数据,满足0<n<=200000,0<k<=n< p="">3、最短回文串(palindrome.pas/c/cpp)如果一个字符串正过来读和倒过来读是一样的,那么这个字符串就被称作回文串。
动态规划作业汇总
作业就是写代码测测的题目作业1 2004.t3合唱队形作业2 2008.t1能量项链作业3 2007.t3矩阵取数作业4奶牛食物农民John购买了一处肥沃的矩形牧场,分成M*N(1<=M<=12;1<=N<=12)个格子。
他想在那里的一些格子中种植美味的玉米。
遗憾的是,有些格子区域的土地是贫瘠的,不能耕种。
精明的FJ知道奶牛们进食时不喜欢和别的牛相邻,所以一旦在一个格子中种植玉米,那么他就不会在相邻的格子中种植,即没有两个被选中的格子拥有公共边。
他还没有最终确定哪些格子要选择种植玉米。
作为一个思想开明的人,农民John希望考虑所有可行的选择格子种植方案。
由于太开明,他还考虑一个格子都不选择的种植方案!请帮助农民John确定种植方案总数。
【输入格式】第1行:两个用空格分隔的整数M和N第2..M+1行:第i+1行描述牧场第i行每个格子的情况,N个用空格分隔的整数,表示这个格子是否可以种植(1表示肥沃的、适合种植,0表示贫瘠的、不可种植)【输出格式】一个整数:FJ可选择的方案总数除以100,000,000的余数。
【输入样例】2 31 1 10 1 0【输出样例】9【输出解释】给可以种植玉米的格子编号:1 2 30 4 0只种一个格子的方案有四种(1,2,3或4),种植两个格子的方案有三种(13,14或34),种植三个格子的方案有一种(134),还有一种什么格子都不种。
4+3+1+1=9。
作业5 2010.t2乌龟棋作业6 2011.d1.t2选择客栈作业7 2013.d2.t2花匠(有其它方法)作业8 2015.d2.t1跳石头(可以二分答案)作业9 2015.d2.t2子串作业10 2006.t2预算方案作业11 2014.d1.t3飞扬的小鸟作业12 WaveDescription波在不同的介质中的传播速度是不一样的。
真空中波速都是3*108m/s,而在液体介质中的波速会比真空中的波速小,并且在不同的液体介质中波速不一样。
动态规划习题集全
动态规划专题训练护卫队【问题描述】护卫车队在一条单行的街道前排成一队,前面河上是一座单行的桥。
因为街道是一条单行道,所以任何车辆都不能超车。
桥能承受一个给定的最大承载量。
为了控制桥上的交通,桥两边各站一个指挥员。
护卫车队被分成几个组,每组中的车辆都能同时通过该桥。
当一组车队到达了桥的另一端,该端的指挥员就用电话通知另一端的指挥员,这样下一组车队才能开始通过该桥。
每辆车的重量是已知的。
任何一组车队的重量之和不能超过桥的最大承重量。
被分在同一组的每一辆车都以其最快的速度通过该桥。
一组车队通过该桥的时间是用该车队中速度最慢的车通过该桥所需的时间来表示的。
问题要求计算出全部护卫车队通过该桥所需的最短时间值。
【输入格式】输入文件中的第一行包含三个正整数(用空格隔开),第一个整数表示该桥所能承受的最大载重量(用吨表示),第二个整数表示该桥的长度(用千米表示),第三个整数表示该护卫队中车辆的总数(n<1000)。
接下来的几行中,每行包含两个正整数W和S(用空格隔开),W表示该车的重量(用吨表示),S表示该车过桥能达到的最快速度(用千米/小时表示)。
车子的重量和速度是按车子排队等候时的顺序给出的。
【输出格式】输出文件中应该是一个实数,四舍五入精确到小数点后1位,表示整个护卫车队通过该桥所需的最短时间(用分钟表示)。
【输入输出样例】输入:100 5 1040 2550 2050 2070 1012 509 7049 3038 2527 5019 70输入:75.0DOLLARS【问题描述】在以后的若干天里戴维将学习美元与德国马克的汇率。
编写程序帮助戴维何时应买或卖马克或美元,使他从100美元开始,最后能获得最高可能的价值。
【输入格式】输入文件中的第一行是一个自然数N(1<=N<=100),表示戴维学习汇率的天数。
接下来的N行中每行是一个自然数A(1<=A<=1000)。
第i+1行的A表示预先知道的第i+1天的平均汇率,在这一天中,戴维既能用100美元买A马克也能用A马克购买100美元。
动态规划部分作业
1.用动态规划的逆序法求解下面问题:
⎩⎨
⎧=≥>=++⨯⨯=3,2,1,0)
0(..max 3213
2
21i x c c x x x t s x x x Z i
2.(运筹学书9.3) 某公司打算向它的三个营业区增设六个销售店,每个营业区至少增设一个。
从各区赚取的利润(单位为万元)与增设的销售店个数有关,其数据如下。
销售店增加数
A 区利润
B 区利润
C 区利润 0 100 200 150 1 200 210 160 2 280 220 170 3 330 225 180 4
340
230
200
试求各区应分配几个增设的销售店,才能使总利润最大?其值是多少?
3.(运筹学书9.4)某工厂有100台机器,拟分四个周期使用,在每一周期有两种生产任务。
据经验,把机器x 1台投入第一种生产任务,则在一个生产周期中将有x 1/3台机器作废;余下的机器全部投入第二种生产任务,则有1/10台机器作废。
如果干第一种生产任务每台机器可收益10,干第二种生产任务每台机器可收益7。
问怎样分配机器,使总收益最大?
4.(运筹学书 例2)机器负荷分配问题。
某种机器可在高低两种不同的负荷下进行生产,设机器在高负荷下生产的产量函数为g=8u 1,其中u 1为投入生产的机器数量,年完好率a=0.7;在低负荷下生产的产量函数为h=5y ,其中y 为投入生产的机器数量,年完好率为b=0.9。
假定开始生产时完好的机器数量s 1=1000台,试问每年如何安排机器在高、低负荷下的生产,使在五年内生产的产品总产量最高。
如果s 6=500台,如何分配?。
动态规划练习题(含答案)
动态规划练习题USACO 2.2 Subset Sums题目如下:对于从1到N的连续整集合合,能划分成两个子集合,且保证每个集合的数字和是相等的。
举个例子,如果N=3,对于{1,2,3}能划分成两个子集合,他们每个的所有数字和是相等的:and {1,2}这是唯一一种分发(交换集合位置被认为是同一种划分方案,因此不会增加划分方案总数)如果N=7,有四种方法能划分集合{1,2,3,4,5,6,7},每一种分发的子集合各数字和是相等的:{1,6,7} and {2,3,4,5} {注1+6+7=2+3+4+5}{2,5,7} and {1,3,4,6}{3,4,7} and {1,2,5,6}{1,2,4,7} and {3,5,6}给出N,你的程序应该输出划分方案总数,如果不存在这样的划分方案,则输出0。
程序不能预存结果直接输出。
PROGRAM NAME: subsetINPUT FORMAT输入文件只有一行,且只有一个整数NSAMPLE INPUT (file subset.in)7OUTPUT FORMAT输出划分方案总数,如果不存在则输出0。
SAMPLE OUTPUT (file subset.out)4参考程序如下:#include <fstream>using namespace std;const unsigned int MAX_SUM = 1024;int n;unsigned long long int dyn[MAX_SUM];ifstream fin ("subset.in");ofstream fout ("subset.out");int main() {fin >> n;fin.close();int s = n*(n+1);if (s % 4) {fout << 0 << endl;fout.close ();return ;}s /= 4;int i, j;dyn [0] = 1;for (i = 1; i <= n; i++)for (j = s; j >= i; j--)dyn[j] += dyn[j-i];fout << (dyn[s]/2) << endl;fout.close();return 0;}USACO 2.3 Longest Prefix题目如下:在生物学中,一些生物的结构是用包含其要素的大写字母序列来表示的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
动态规划作业1、1、设某工厂自国外进口一部精密机器,由机器制造厂至出口港有三个港口可供选择,而进口港又有三个可供选择,进口后可经由两个城市到达目的地,其间的运输成本如图中所标的数字,试求运费最低的路线?把A看作终点,该问题可分为4个阶段。
f k(S k)表示从第K阶段点S k到终点A的最短距离。
f4(B1)=20,f4(B2)=40,f4(B3)=30f3(C1)=min[d3(C1,B1)+ f4(B1), d3(C1,B2)+ f4(B2), d3(C1,B3)+ f4(B3) ]=70,U3(C1)= B2 或B3f3(C2)=40 ,U3(C2)= B3f3(C3)=80 ,U3(C3)= B1或B2 或B3f2(D1)=80 ,U2(D1)= C1f2(D2)=70 ,U2(D2)= C2f1(E)=110 ,U1(E)= D1或D2所以可以得到以下最短路线,E→D1→C1→B2 / B3→AE→D2→C2→B3→A2、习题4-2解:1)将问题按地区分为三个阶段,三个地区的编号分别为1、2、3;2)设Sk表示为分配给第k个地区到第n个地区的销售点数,Xk表示为分配给第k个地区的销售点数,S k+1=S k-X kPk(Xk)表示为Xk个销售点分到第k个地区所得的利润值fk(Sk)表示为Sk个销售点分配给第k个地区到第n个地区的最大利润值3)递推关系式:fk(Sk)=max[ Pk(Xk)+ f k+1(S k-X k) ] k=3,2,1f4(S4)=04)从最后一个阶段开始向前逆推计算第三阶段:设将S3个销售点(S3=0,1,2,3,4)全部分配给第三个地区时,最大利润值为:f3(S3)=max[P3(X3)] 其中X3=S3=0,1,2,3,4表1第二阶段:设将S2个销售点(S2=0,1,2,3,4)分配给乙丙两个地区时,对每一个S2值,都有一种最优分配方案,使得最大盈利值为:f2(S2)=max[ P2(X2)+ f3(S2-X2) ]其中,X2=0,1,2,3,4表2第一阶段:设将S1个销售点(S1=4)分配给三个地区时,则最大利润值为:f1(S1)=max[ P1(X1)+ f2(4-X1) ]其中,X1=0,1,2,3,4表3然后按计算表格的顺序反推,可知最优分配方案有两个:最大总利润为531)由X1*=2,X2*=1,X3*=1。
即得第一个地区分得2个销售点,第二个地区分得1个销售点,第三个地区分得1个销售点。
2)由X1*=3,X2*=1,X3*=0。
即得第一个地区分得3个销售点,第二个地区分得1个销售点,第三个地区分得0个销售点。
3、某施工单位有500台挖掘设备,在超负荷施工情况下,年产值为20万元/台,但其完好率仅为0.4,在正常负荷下,年产值为15万元/台,完好率为0.8。
在四年内合理安排两种不同负荷下施工的挖掘设备数量,使第四年年末仍有160台设备保持完好,并使产值最高。
试求出四年内使得产值最高的施工方案和产值数。
解:1)该问题分成四个阶段,k 表示年度,k =1,2,3,4 2)设Sk 表示为分配给第k 年初拥有的完好挖掘设备数量, Uk 表示为第k 年初分配在超负荷下施工的挖掘设备数量, Dk (Sk)={ Uk|0≤Uk ≤Sk }Sk -Uk 表示为第k 年初分配在正常负荷下施工的挖掘设备数量。
状态转移方程:S k +1=0.4Uk +0.8(Sk -Uk), S1=500台 3)设vk(sk,uk)为第k 年度的产量,则 vk =20Uk +15(Sk -Uk) 故指标函数为V1,4= f k (Sk)表示由资源量Sk 出发,从第k 年开始到第4年结束时所生产的产量最大。
4)递推关系式:f k (Sk)=MAX{20 Uk +15(Sk -Uk)+ f k+1[0.4Uk +0.8(Sk -Uk)]} k=1,2,3,4 5)从第4阶段开始,向前逆推计算 当k =4时,∑=41k )U ,(S V k k kS5=160, 0.4U4 +0.8(S4-U4)=160 2S4-U4=400 U4=2S4-400 f4(S4)=MAX{20 U4 +15(S4-U4)+ f5[0.4U4 +0.8(S4-U4)]} =MAX{5 U4 +15S4}=25S4-2000当k=3时,f3(S3)=MAX{20 U3 +15(S3-U3)+ f4[0.4U3 +0.8(S3-U3)]} = MAX{5U3+15S3+25(0.8S3-0.4U3)-2000}=MAX{-5U3 +35S3-2000}故得最大解U3*=0所以f3(S3)=35 S3-2000依次类推,可求得:U2*=0,f2(S2)=43S2-2000U1*=0,f1(S1)=49.4S1-2000因为S1=500台,故f1(S1)=22700台最优策略为U1*=0,U2*=0,U3*=0,U4*=112已知S1=500,S2=0.4U1 *+0.8(S1-U1*)=0.8S1=400S3=0.4U2 *+0.8(S2-U2*)=0.8S2=320S4=0.4U3 *+0.8(S3-U3*)=0.8S3=256U4=2S4-400=112 S4-U4=256-112=144即前三年应把年初全部完好的挖掘设备投入正常负荷下施工,第四年应把年初112台全部完好的挖掘设备投入超负荷下施工,144台投入正常负荷下施工。
这样最高产量为22700台。
4、某电视机厂为生产电视机而需生产喇叭,生产以万只为单位。
根据以往记录,一年的四个季度需要喇叭分别是3万、2万、3万、2万只。
设每万只存放在仓库内一个季度的存储费为0.2万元,每生产一批的装配费为2万元,每万只的生产成本费为1万元。
问应该怎样安排四个季度的生产,才能使总的费用最小?再生产点性质,Xi Xi hi Xi nXi Xi Xi Ci 2.0)(00,2,12)(=⎩⎨⎧==+= C(1,1)=C(3)+h(0)=5 C(1,2)=C(5)+h(2)=7.4 C(1,3)=C(8)+h(5)+h(3)=11.6 C(1,4)=C(10)+h(7)+h(5)+h(2)=14.8C(2,2)=C(2)+h(0)=4 C(2,3)=C(5)+h(3)=7.6 C(2,4)=C(7)+h(5)+h(2)=10.4C(3,3)=C(3)+h(0)=5 C(3,4)=C(5)+h(2)=7.4 C(4,4)=C(2)+h(0)=4f0=0 f1=f0+ C(1,1)=5 j(1)=1f2=min{f0+ C(1,2),f1+ C(2,2)}=min{0+7.4,5+4}=7.4 j(2)=1 f3= min{f0+ C(1,3),f1+ C(2,3),f2+ C(3,3)} =min{0+11.6,5+7.6,7.4+5}=11.6 j(3)=1F4= min{f0+ C(1,4),f1+ C(2,4),f2+ C(3,4), f3+ C(4,4)} =min{0+14.8,5+10.4,7.4+7.4,11.6+4}=14.8 j(4)=1,3 当j(4)=1,X1=d1+d2+d3+d4=10,X2=0,X3=0,X4=0当j(4)=3,X3=d3+d4=5,X4=0,X1=d1+d2=5,X2=0。
5、某工厂生产三种产品,各产品重量与利润关系如下表所示,现将此三种产品运往市场出售,运输能力总重量不超过6吨。
问如何安排运输使总利润最大。
解:(){}{()}()()}{2180,60max 3463180max )2130180max(3180max 62221,036343f f x f x x x x f x x ++=-+=++==≤(){}{()}()()()}{}{01260260,210,240max 0260,3130,60max 2362130max )180max(2130max 611112,1,026232===+++=-+=+==≤x f f f x f x x x f x x (){}{()}()118022322130max )180max(2130max 211022232===-+=+==≤x f x f x x x f x x()}{13,02,1103,22,01260260,260max 63========x x x x x x f6、某工厂在一年进行了A、B、C三种新产品试制,由于资金不足,估计在年内这三种新产品研制不成功的概率分别为0.40、0.60、0.80,因而都研制不成功的概率为0.4×0.6×0.8=0.l92。
为了促进三种新产品的研制,决定增援2万元的研制费,并要资金集中使用,以万元为单位进行分配。
其增援研制费与新产品不成功的概率如下表所示。
试问如何分配费用,使这三秤新产品都研制不成功的概率为最小。
解:1) (1分)将问题按产品A、B、C分为三个阶段,k=1、2、3;2) (6分)设Sk表示第k阶段可分配给第k个产品到第n个产品的研制费,S1=2Xk设为决策变量,表示第k阶段分配给第k个产品的研制费。
状态转移方程为Sk+1=Sk-Xk允许决策集合:Dk(Sk)={ Xk∣0≤Xk≤Sk,Xk为整数}Pk(Xk)表示为第k个产品失败的概率fk(Sk)表示为Sk万元研制费分配给第k个产品到第n个产品的最小的失败概率3)(4分)递推关系式:f k(Sk)=min[ Pk(Xk)×f k+1(Sk-Xk) ] k=3,2,1边界条件: f4(S4)=14)(11分)从最后一个阶段开始向前逆推计算第三阶段:设将S3万元研制费(S3=0,1,2)全部分配给C产品时,最小的失败概率为:f3(S3)=min[P3(X3)] 其中X3=S3=0,1,2X3*表示使得f3(S3)为最大值时的最优决策。
第二阶段:设将S2万元研制费(S2=0,1,2)分配给B、C产品时,最小的失败概率为:f2(S2)=min[ P2(X2)×f3(S2-X2) ]其中,X2=0,1,2第一阶段:设将S1万元研制费(S1=2)分配给三个产品时,最小的失败概率为:f1(S1)=min[ P1(X1)×f2(S1-X1) ]其中,X1=0,1,25)即分配给A产品1万元,B产品0万元,C产品1万元,可使三个小组都失败的概率减小到0.060。