动态规划作业完整
动态规划讲解大全含例题及答案
动态规划讲解大全含例题及答案动态规划讲解大全动态规划(dynamic programming)是运筹学的一个分支,是求解决策过程(decision process)最优化的数学方法。
20世纪50年代初美国数学家R.E.Bellman等人在研究多阶段决策过程(multistep decision process)的优化问题时,提出了著名的最优化原理(principle of optimality),把多阶段过程转化为一系列单阶段问题,逐个求解,创立了解决这类过程优化问题的新方法——动态规划。
1957年出版了他的名著Dynamic Programming,这是该领域的第一本著作。
动态规划问世以来,在经济管理、生产调度、工程技术和最优控制等方面得到了广泛的应用。
例如最短路线、库存管理、资源分配、设备更新、排序、装载等问题,用动态规划方法比用其它方法求解更为方便。
虽然动态规划主要用于求解以时间划分阶段的动态过程的优化问题,但是一些与时间无关的静态规划(如线性规划、非线性规划),只要人为地引进时间因素,把它视为多阶段决策过程,也可以用动态规划方法方便地求解。
动态规划程序设计是对解最优化问题的一种途径、一种方法,而不是一种特殊算法。
不象前面所述的那些搜索或数值计算那样,具有一个标准的数学表达式和明确清晰的解题方法。
动态规划程序设计往往是针对一种最优化问题,由于各种问题的性质不同,确定最优解的条件也互不相同,因而动态规划的设计方法对不同的问题,有各具特色的解题方法,而不存在一种万能的动态规划算法,可以解决各类最优化问题。
因此读者在学习时,除了要对基本概念和方法正确理解外,必须具体问题具体分析处理,以丰富的想象力去建立模型,用创造性的技巧去求解。
我们也可以通过对若干有代表性的问题的动态规划算法进行分析、讨论,逐渐学会并掌握这一设计方法。
基本模型多阶段决策过程的最优化问题。
在现实生活中,有一类活动的过程,由于它的特殊性,可将过程分成若干个互相联系的阶段,在它的每一阶段都需要作出决策,从而使整个过程达到最好的活动效果。
动态规划练习例题
动态规划方法总结
动态规划算法的设计步骤
– – – – – – – 将问题表示成多步判断 确定是否满足优化原则——必要条件 确定子问题的重叠性——估计算法效率 列出关于优化函数的递推方程(或不等式)和边界条件 自底向上计算子问题的优化函数值----非递归的算法 备忘录方法记录中间结果 标记函数追踪问题的解
• 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)
第3章 动态规划_作业-3.22
0.36
0 1 2 3
1 0.24
2
3
4
5
6 1
0
1
2
3
4
5
6
0
0.6
0.18
1
0
0.36
0.09
2
1 2
0
0.31
0.13 0.56
3 4 0.3 0.42
2 3
4
5 6 7
0
4 4
0
4
5
6 7
5 5
0
0.06
5 6
k 3 : C ( 3, 2 ) C ( 4 , 4 ) C ( 3,4) m in k 4 : C ( 3 , 3 ) C ( 5 ,4 )
式1 式2
C(i, j)=min{C(i, k-1)+C(k+1, j)+w(i,j)} (1≤i≤j≤n, i≤k≤j) =min{C(i, k-1)+C(k+1, j)}+w(i,j) (1≤i≤j≤n, i≤k≤j) 式3
0 1 0.24 2 3 4 5 6 1 2 0.09 3 0.13 4 0.3 5 0.06 6 7 0 1 2 3 4 5 6
s
0 0.18 0.42 0.6
C(i, i-1)=0 (1≤i≤n+1) C(i, i)=pi (1≤i≤n)
式1 式2
C(i, j)=min{C(i, k-1)+C(k+1, j)+w(i,j)} (1≤i≤j≤n, i≤k≤j) =min{C(i, k-1)+C(k+1, j)}+w(i,j) (1≤i≤j≤n, i≤k≤j) 式3
动态规划练习题及解答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,..。
动态规划练习题(含答案)
动态规划练习题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题目如下:在生物学中,一些生物的结构是用包含其要素的大写字母序列来表示的。
动态规划例题
动态规划例题动态规划是一种以最优化原理为基础的问题求解方法,通过拆分问题为若干阶段,每个阶段求解一个子问题,再逐步推导出整个问题的最优解。
例如,有一个背包能够承受一定的重量,现有一些物品,每个物品都有自己的重量和价值。
我们希望将物品放入背包中,使得背包的总价值最大。
这个问题可以用动态规划来解决。
首先,我们定义一个二维数组dp,其中dp[i][j]表示在前i个物品中,容量为j的背包中所能放入的物品的最大价值。
那么,对于每一个物品,可以选择放入背包或者不放入背包。
如果选择放入背包,最大价值为dp[i-1][j-w[i]] + v[i],其中w[i]表示第i个物品的重量,v[i]表示第i个物品的价值。
如果选择不放入背包,最大价值为dp[i-1][j]。
因此,dp[i][j]的状态转移方程为:dp[i][j] = max(dp[i-1][j-w[i]] + v[i], dp[i-1][j])。
基于这个状态转移方程,可以逐步求解从第1个物品到第n个物品的最大价值。
最终,dp[n][W]即为问题的最优解,其中W 表示背包的容量。
举个简单的例子,假设背包的容量为10,有3个物品,它们的重量分别为3、4、5,价值分别为4、5、6。
此时,可以得到如下的dp矩阵:0 0 0 0 0 0 0 0 0 0 00 0 0 4 4 4 4 4 4 4 40 0 0 4 5 5 9 9 9 9 90 0 0 4 5 5 9 10 10 14 14我们可以看到,dp[3][10]的最大价值为14,表示在前3个物品中,容量为10的背包中所能放入的物品的最大价值为14。
通过动态规划,我们可以有效地求解背包问题,得到物品放入背包的最优解。
这个例子只是动态规划的一个简单应用,实际上,动态规划可以解决各种复杂的问题,如最长公共子序列、最大子数组和、最大字段和等。
因此,学习动态规划是非常有意义的。
最新2000信管动态规划作业
fk(Sk)=max{gk(xk)+fk+1(Sk+1)} k=3,2,1
0≤akxk≤Sk
f4(s4)=0
k=3时 f3(s3)=max{2x32}
0≤3x3≤s3
显然当x3*=s3/3时取得最大值2/9x32
运筹学作业
则f3(s3)=max{2x32}=2s32 0≤3x3≤s3 当k=2时 f2(s2)=max{9x2+f3(s3)} 0≤4x2≤s3 =max{9x2+2/9(s2-4x2)2} 0≤4x2≤s3
因为f2(0)=2/9s22 ;f2(s2/4)=9/4s2
当 f2(0)= f2(s2/4) 时 有 2 / 9 s22=9/4s2 则 s2=81/8>10
有s2必小于81/8
所以f2(0)<f2(s2/4) 則x2*=s2/4
k=1时 f1(s1)=max{4x1+f2(s2)}
0≤2x1≤s1
x3*=s3=s1=9 则maxz=174
(到第
3个项目的资金额,决策变量xk为决定投给 第K个项目的资金额;状态转移方程为 sk+1=sk-xk;最优指标函数 fk(sk)表示第K阶 段,初始状态为sk时,从第K到第三个项目 所获最大收益,f1(s1)即为所求的总收益。递 推方程为:
益为90/4.
结束语
谢谢大家聆听!!!
18
2000信管动态规划作业
(3)
MaxZ=4x12-x22+2x32+12 3x1+2x2+x3=9
xi≥0 (i=1,2,3) 解:利用动态规划求解。 用逆序解法:设状态转移方程为:Sk+1=Sk-
动态规划习题完整版
动态规划习题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。
运筹学 动态规划-作业及答案
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 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,而在液体介质中的波速会比真空中的波速小,并且在不同的液体介质中波速不一样。
动态规划部分作业
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台,如何分配?。
动态规划习题课共32页
谢谢!
36、自己的鞋子,自己知道紧在哪里。——西班牙
37、我们唯一不会改正的缺点是软弱。——拉罗什福科
xiexie! 38、我这个人走得很慢,但是我从不后退。——亚伯力做你应该做的事吧。——美华纳
动态规划习题课
11、获得的成功越大,就越令人高兴 。野心 是使人 勤奋的 原因, 节制使 人枯萎 。 12、不问收获,只问耕耘。如同种树 ,先有 根茎, 再有枝 叶,尔 后花实 ,好好 劳动, 不要想 太多, 那样只 会使人 胆孝懒 惰,因 为不实 践,甚 至不接 触社会 ,难道 你是野 人。(名 言网) 13、不怕,不悔(虽然只有四个字,但 常看常 新。 14、我在心里默默地为每一个人祝福 。我爱 自己, 我用清 洁与节 制来珍 惜我的 身体, 我用智 慧和知 识充实 我的头 脑。 15、这世上的一切都借希望而完成。 农夫不 会播下 一粒玉 米,如 果他不 曾希望 它长成 种籽; 单身汉 不会娶 妻,如 果他不 曾希望 有小孩 ;商人 或手艺 人不会 工作, 如果他 不曾希 望因此 而有收 益。-- 马钉路 德。
40、学而不思则罔,思而不学则殆。——孔子
动态规划作业完整
动态规划作业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。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
动态规划作业1、1、设某工厂自国外进口一部精密机器,由机器制造厂至出口港有三个港口可供选择,而进口港又有三个可供选择,进口后可经由两个城市到达目的地,其间的运输成本如图中所标的数字,试求运费最低的路线?把A看作终点,该问题可分为4个阶段f k(S k)表示从第K阶段点S k到终点A的最短距离f4(B i)=20, f4(B2)=40, f4(B3)=30f3(C i)=min[d 3(C i, B i)+ f4(B i), d3(C i, B2)+ f4(B2), d3(C i, B3)+ f4(B3)]=70,U3(C l)= B2 或B3f3(C2)=40,U3(C2)= B3f3(C3)=80,U3(C3)= B l 或B2 或B3以D i)=80,U2(D I)=C If2(D2)=70,U2(D2)= C2f i(E)=110,U i(E)= D i 或D2所以可以得到以下最短路线,E T D I^C I^B 2 / B3^AE TD 2^C 2TB 3—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+i(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,42第一阶段:设将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。
在四年内合理安排两种不同负荷下施工的挖掘设备数量, 使第四年年末仍有 1 60台设备保持完好, 并使产值最高。
试求出四年内使得产值最高的施工方案和产值数。
解:1)该问题分成四个阶段,k表示年度,k = 1,2,3,42)设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)4故指标函数为V1,4= Vk(Sk,Uk)k1f k(Sk)表示由资源量Sk出发,从第k年开始到第4年结束时所生产的产量最大。
4)递推关系式:f k(Sk)= MAX{20 Uk +15(Sk —Uk)+f k+i[0.4Uk +0.8(Sk—Uk)]} k=1,2,3,45)从第 4 阶段开始,向前逆推计算当k = 4时,S5=160, 0.4U4 +0.8(S4-U4)=160 2S4-U4=400 U4=2S4-400f4(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即前三年应把年初全部完好的挖掘设备投入正常负荷下施工,第四年应把年初 1 1 2台全部完好的挖掘设备投入超负荷下施工, 144台投入正常负荷下施工。
这样最高产量为22700 台4、某电视机厂为生产电视机而需生产喇叭,生产以万只为单位。
根据以往记录,一年的四个季度需要喇叭分别是 3 万、2 万、3 万、2 万只。
设每万只存放在仓库内一个季度的存储费为0.2 万元,每生产一批的装配费为 2 万元,每万只的生产成本费为 1 万元。
问应该怎样安排四个季度的生产,才能使总的费用最小?再生产点性质,Ci(Xi) 02 X X i i X0i 1,2, n hi ( Xi ) 0.2XiC(1,1)=C(3)+h(0)=5 C(1,2)=C(5)+h(2)=7.4C(1,3)=C(8)+h(5)+h(3)=11.6C(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.6C(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.4C(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)=1f3= 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=080当 j(4)=3,X3二d3+d4=5,X4=0,X1二d1+d2=5,X2=05、 某工厂生产三种产品,各产品重量与利润关系如下表所示,现将此三种产品运往市场出售,运输能力总重量不超过6吨。
问如何 安排运输使总利润最大。
解:f 3 6 max 180x3 max(80Xl 130x2) max 180x3 f 2 6 4x3x3 0,1max 0 f 2 6 ,180 f 2 2 f 2 6 max 130x223x2 6max 130x2 f 1 6 x2 0,1,2max 0 f 1 6 ,130 max 240,210,260 260 x1 0f 2 2 max 130x23x2 2max 130x2 f 1 2x2 0f 1 2x1 1 f 3 6 max 260,260 260x1 0, x2 2, x3 0 x1 1,x20, x3 1max(80x1)3x2f 1 3 ,260 f 1 0 max(80x1) 3x26、某工厂在一年进行了A、B、C三种新产品试制,由于资金不足,估计在年内这三种新产品研制不成功的概率分别为0.40、0.60、0.80,因而都研制不成功的概率为0.4X 0.6X 0.8=0.192。
为了促进三种新产品的研制,决定增援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 I 0< Xk< Sk Xk为整数}Pk(Xk)表示为第k个产品失败的概率fk(Sk)表示为Sk万元研制费分配给第k个产品到第n个产品的最小的失败概率3)(4分)递推关系式:边界条件:f4(S4)= 1f k(Sk) = min[ Pk(Xk) 矗+1 (Sk —Xk) ] k=3,2,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。