动态规划习题答案

合集下载

5动态规划演算法习题答案

5动态规划演算法习题答案

5动态规划演算法习题答案1.最大子段和问题:给定整数序列,求该序列形如的子段和的最大值:1)已知一个简单演算法如下:int maxsum(int n,int a,int}试分析该演算法的时间複杂性。

2) 试用分治演算法解最大子段和问题,并分析演算法的时间複杂性。

3)试说明最大子段和问题具有最优子结构性质,并设计一个动态规划演算法解最大子段和问题。

分析演算法的时间複杂度。

(提示:令)解:1)分析按照第一章,列出步数统计表,计算可得 2)分治演算法:将所给的序列a[1:n]分为两段 a [1:n/2]、a[n/2+1:n],分别求出这两段的最大子段和,则a[1:n]的最大子段和有三种可能:①a[1:n]的最大子段和与a[1:n/2]的最大子段和相同;②a[1:n]的最大子段和与a[n/2+1:n]的最大子段和相同;③a[1:n]的最大子段和为两部分的栏位和组成,即;intmaxsubsum ( int *a, int left , int right)int s2 =0;int right_sum =0;for ( int i = center +1; i sum)sum = b;j=i;end}return sum;}自行推导,答案:时间複杂度为o(n)。

2.动态规划演算法的时间複杂度为o(n)(双机排程问题)用两台处理机a和b处理个作业。

设第个作业交给机器a处理时所需要的时间是,若由机器b来处理,则所需要的时间是。

现在要求每个作业只能由一台机器处理,每台机器都不能同时处理两个作业。

设计一个动态规划演算法,使得这两台机器处理完这个作业的时间最短(从任何一台机器开工到最后一台机器停工的总的时间)。

以下面的例子说明你的演算法:解:(思路一)在完成前k个作业时,设机器a工作了x 时间,则机器b此时最小的工作时间是x的一个函式。

设f[k][x]表示完成前k个作业时,机器b最小的工作时间,则其中对应第k个作业由机器b来处理(完成k-1个作业时机器a工作时间仍是x,则b在k-1阶段用时为);而对应第k个作业由机器a处理(完成k-1个作业,机器a工作时间是x-a[k],而b完成k阶段与完成k-1阶段用时相同为)。

动态规划练习题及解答1

动态规划练习题及解答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,...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个航班价格之和的最小值.如果不可能存在这样的巡回演出路线,输出0.样例输入: 样例输出:3 6 4602 130 150 03 75 0 807 120 110 0 100 110 120 04 60 70 60 503 0 135 1402 70 802 32 0 701 800 0[题3] 复制书稿(BOOKS)问题描述:假设有M本书(编号为1,2,…M),想将每本复制一份,M本书的页数可能不同(分别是P1,P2,…PM)。

动态规划习题答案汇编

动态规划习题答案汇编

2.某公司有资金4百万元向A,B和C3个项目追加投资,各个项目可以有不同的投资额(百万元计),相应的效益如表所示。

问怎样分配资金,使总效益值最大?##表8-47解:设S1-A,B,C项目的总投资额,S2-B、C项目的总投资额S3-C项目的投资额;X k-k项目的投资额;(X1-A项目的投资额,X2-B项目的投资额,X3-C项目的投资额)W k(S k,X k)-对K项目投资X k后的收益:W k(S k,X k)=W k (X k)T k (S k,X k)-S k+1=S k-X kf k (S k)-当K至第3项目允许的投资额为S k时所能获得的最大收益。

为获得最大利润,必须将4百万全部投资,假设有4阶段存在,有S4=0,建立递归方程f4 (S k)=0f k (S k)=max{ W k (X k)+f k +1(S k+1)} k=3,2,1X k∈D k(S k)第一步,K=3f4(S4)=0f3 (S3)=max{W3 (X3)+f4 (S4)}X3∈D3(S3)S4=S3-X3第二步:K=2 f2 (S2)=max{W2 (X2)+f3 (S3)}X2∈D2(S2)S3=S2-X2W2 (X2)+f3 (S2-X2)第三步:K=1 f1 (S1) =max {W1 (X1)+ f2 (S2)}X1∈D1(S1)S2= S1- X1W1 (X1)+ f2 (S1- X1)S1=4 →S2=1 →S3=1↓↓↓X1*=3 X2*=0 X3*=1A投资3百万,B不投资C投资1百万。

总收益164百万元。

3.(最优分配问题)有一个仪表公司打算向它的3个营业区设立6家销售店。

每个营业区至少设一家,所获利润如表。

问设立的6家销售店数应如何分配,可使总利润最大?解:s k——对k#,…,3#营业区允许设立的销售店数x k——对k#营业区设立的销售店数w k (s k,x k)——对k#营业区设立x k销售店后的利润:w k (s k,,x k)= w k (x k)T k (s k, x k)——s k +1= s k - x kf k (s k)——当第k至第3个营业区允许设立的销售店数为s k 时所能获得的最大利润递归方程:f4(s4)=0f k (s k)=max {wk (xk)+ fk+1(sk+1)}, k=3,2,1 xk∈Dk(sk)k=3时,有方程f4 (s4)=0f3(s3)= max {w3(x3)+ f4(s4) }x3∈D3(s3)s3=s2—x2k=2,有方程f2(s2)= max {w2(x2)+ f3(s3) }x2∈D2(s2)s3=s2—x2k=1,有方程f1(s1)= max{w1(x1)+ f2(s2) } x1∈D1(s1) s2=s1—x1s1=6 → s2=3 → s3=2 ↓ ↓ ↓x1*=3 x2*=1 x3*=2分别A1、A2、A3营业区设立3家、1家、2家销售店,最大利润为7704.用动态规划方法求解下列模型:maxf=10X1+4X2+5X3s.t. 3X1+5 X2+4 X3≤150≤X1≤2 0≤X2≤2 X3≥0 ,X j为整数j=1,2,3解:收费C1=10 C2=4 C3=5X1为货物1的装载件数X2为货物2的装载件数X3为货物3的装载件数分3阶段S1为货物1、2、3允许的装载重量(3X1+5 X2+4 X3的允许值)S2为货物2、3允许装载的重量(5 X2+4 X3的允许值)S3 为货物3允许装载的重量(4 X3的允许值)第一步:K=3f4(S4)=0f3(S3)= max{5X3+ f4(S4)| X3∈D3(S3)}S4= S3 -4 X3第二步:K=2f2(S2)= max{4X2+ f3(S3)| X2∈D2(S2)} S3= S2 -5 X2划分点:第三步:K=1f1(S3)= max{10X1+ f2(S2)| X1∈D1(S1)}S2= S1-3 X110X1+ f2(S1-3 X1)顺序追踪:最优策略为S1=15 →S2=9 →S3=9↓↓↓X1*=2 X2*=0 X3*=2最优装载方案为:货物1装2件;货物2不装;货物3装2件装载收费为30元5.用动态规划方法解下列0—1背包问题:Max f =12x1+12x2+9x3+16x4+30x5;s.t. 3x1+4x2+3x3+4x4+6x5≤12;x j=0,1, j=1,……,5解:本问题分为5个阶段。

动态规划习题答案

动态规划习题答案

动态规划习题答案2.某公司有资金4百万元向A,B和C3个项目追加投资,各个项目可以有不同的投资额(百万元计),相应的效益如表所示。

问怎样分配资金,使总效益值最大?##表8-47解:设S1-A,B,C项目的总投资额,S2-B、C项目的总投资额S3-C项目的投资额;X k-k项目的投资额;(X1-A项目的投资额,X2-B项目的投资额,X3-C项目的投资额)W k(S k,X k)-对K项目投资X k后的收益:W k(S k,X k)=W k (X k)T k (S k,X k)-S k+1=S k-X kf k (S k)-当K至第3项目允许的投资额为S k时所能获得的最大收益。

为获得最大利润,必须将4百万全部投资,假设有4阶段存在,有S4=0,建立递归方程f4 (S k)=0f k (S k)=max{ W k (X k)+f k +1(S k+1)} k=3,2,1X k?D k(S k)第一步,K=3f4(S4)=0f3 (S3)=max{W3 (X3)+f4 (S4)}X3?D3(S3)S4=S3-X3第二步:K=2 f2 (S2)=max{W2 (X2)+f3 (S3)} X2?D2(S2)S3=S2-X2W2 (X2)+f3 (S2-X2)第三步:K=1 f1 (S1) =max {W1 (X1)+ f2 (S2)} X1?D1(S1)S2= S1- X1W1 (X1)+ f2 (S1- X1)S1=4 →S2=1 →S3=1↓↓↓X1*=3 X2*=0 X3*=1A投资3百万,B不投资C投资1百万。

总收益164百万元。

3.(最优分配问题)有一个仪表公司打算向它的3个营业区设立6家销售店。

每个营业区至少设一家,所获利润如表。

问设立的6家销售店数应如何分配,可使总利润最大?解:s k——对k#,…,3#营业区允许设立的销售店数x k——对k#营业区设立的销售店数w k (s k,x k)——对k#营业区设立x k销售店后的利润:w k (s k,,x k)= w k (x k)T k (s k, x k)——s k +1= s k - x kf k (s k)——当第k至第3个营业区允许设立的销售店数为s k 时所能获得的最大利润递归方程:f4(s4)=0f k (s k)=max {wk (xk)+ fk+1(sk+1)}, k=3,2,1 xk?Dk(sk)k=3时,有方程f4 (s4)=0f3(s3)= max {w3(x3)+ f4(s4) }x3?D3(s3)s3=s2—x2k=2,有方程f2(s2)= max {w2(x2)+ f3(s3) }x2?D2(s2)s3=s2—x2k=1,有方程f1(s1)= max {w1(x1)+ f2(s2) }x1?D1(s1)s2=s1—x1s1=6 → s2=3 → s3=2↓↓↓x1*=3 x2*=1 x3*=2分别A1、A2、A3营业区设立3家、1家、2家销售店,最大利润为7704.用动态规划方法求解下列模型:maxf=10X1+4X2+5X3s.t. 3X1+5 X2+4 X3≤150≤X1≤2 0≤X2≤2 X3≥0 ,X j为整数j=1,2,3解:收费C1=10 C2=4 C3=5X1为货物1的装载件数X2为货物2的装载件数X3为货物3的装载件数分3阶段S1为货物1、2、3允许的装载重量(3X1+5 X2+4 X3的允许值)S2为货物2、3允许装载的重量(5 X2+4 X3的允许值)S3 为货物3允许装载的重量(4 X3的允许值)第一步:K=3f4(S4)=0f3(S3)= max{5X3+ f4(S4)| X3?D3(S3)}S4= S3 -4 X3第二步:K=2f2(S2)= max{4X2+ f3(S3)| X2?D2(S2)} S3= S2 -5 X2划分点:第三步:K=1f1(S3)= max{10X1+ f2(S2)| X1?D1(S1)} S2= S1-3 X110X1+ f2(S1-3 X1)顺序追踪:最优策略为S1=15 →S2=9 →S3=9↓↓↓X1*=2 X2*=0 X3*=2最优装载方案为:货物1装2件;货物2不装;货物3装2件装载收费为30元5.用动态规划方法解下列0—1背包问题:Max f =12x1+12x2+9x3+16x4+30x5;s.t. 3x1+4x2+3x3+4x4+6x5≤12;x j=0,1, j=1,……,5解:本问题分为5个阶段。

最新动态规划习题答案

最新动态规划习题答案

2.某公司有资金4百万元向A,B和C3个项目追加投资,各个项目可以有不同的投资额(百万元计),相应的效益如表所示。

问怎样分配资金,使总效益值最大?##表8-47解:设S1-A,B,C项目的总投资额,S2-B、C项目的总投资额S3-C项目的投资额;X k-k项目的投资额;(X1-A项目的投资额,X2-B项目的投资额,X3-C项目的投资额)W k(S k,X k)-对K项目投资X k后的收益:W k(S k,X k)=W k (X k)T k (S k,X k)-S k+1=S k-X kf k (S k)-当K至第3项目允许的投资额为S k时所能获得的最大收益。

为获得最大利润,必须将4百万全部投资,假设有4阶段存在,有S4=0,建立递归方程f4 (S k)=0f k (S k)=max{ W k (X k)+f k +1(S k+1)} k=3,2,1X k∈D k(S k)第一步,K=3f4(S4)=0f3 (S3)=max{W3 (X3)+f4 (S4)}X3∈D3(S3)S4=S3-X3第二步:K=2 f2 (S2)=max{W2 (X2)+f3 (S3)}X2∈D2(S2)S3=S2-X2W2 (X2)+f3 (S2-X2)第三步:K=1 f1 (S1) =max {W1 (X1)+ f2 (S2)}X1∈D1(S1)S2= S1- X1W1 (X1)+ f2 (S1- X1)S1=4 →S2=1 →S3=1↓↓↓X1*=3 X2*=0 X3*=1A投资3百万,B不投资C投资1百万。

总收益164百万元。

3.(最优分配问题)有一个仪表公司打算向它的3个营业区设立6家销售店。

每个营业区至少设一家,所获利润如表。

问设立的6家销售店数应如何分配,可使总利润最大?解:s k——对k#,…,3#营业区允许设立的销售店数x k——对k#营业区设立的销售店数w k (s k,x k)——对k#营业区设立x k销售店后的利润:w k (s k,,x k)= w k (x k)T k (s k, x k)——s k +1= s k - x kf k (s k)——当第k至第3个营业区允许设立的销售店数为s k 时所能获得的最大利润递归方程:f4(s4)=0f k (s k)=max {wk (xk)+ fk+1(sk+1)}, k=3,2,1 xk∈Dk(sk)k=3时,有方程f4 (s4)=0f3(s3)= max {w3(x3)+ f4(s4) }x3∈D3(s3)s3=s2—x2k=2,有方程f2(s2)= max {w2(x2)+ f3(s3) }x2∈D2(s2)s3=s2—x2k=1,有方程f1(s1)= max {w1(x1)+ f2(s2)} x1∈D1(s1) s2=s1—x1s1=6 → s2=3 → s3=2↓ ↓ ↓x1*=3 x2*=1 x3*=2分别A1、A2、A3营业区设立3家、1家、2家销售店,最大利润为7704.用动态规划方法求解下列模型:maxf=10X1+4X2+5X3s.t. 3X1+5 X2+4 X3≤150≤X1≤2 0≤X2≤2 X3≥0 ,X j为整数j=1,2,3解:收费C1=10 C2=4 C3=5X1为货物1的装载件数X2为货物2的装载件数X3为货物3的装载件数分3阶段S1为货物1、2、3允许的装载重量(3X1+5 X2+4 X3的允许值)S2为货物2、3允许装载的重量(5 X2+4 X3的允许值)S3 为货物3允许装载的重量(4 X3的允许值)第一步:K=3f4(S4)=0f3(S3)= max{5X3+ f4(S4)| X3∈D3(S3)}S4= S3 -4 X3第二步:K=2f2(S2)= max{4X2+ f3(S3)| X2∈D2(S2)} S3= S2 -5 X2划分点:第三步:K=1f1(S3)= max{10X1+ f2(S2)| X1∈D1(S1)}S2= S1-3 X110X1+ f2(S1-3 X1)顺序追踪:最优策略为S1=15 →S2=9 →S3=9↓↓↓X1*=2 X2*=0 X3*=2最优装载方案为:货物1装2件;货物2不装;货物3装2件装载收费为30元5.用动态规划方法解下列0—1背包问题:Max f =12x1+12x2+9x3+16x4+30x5;s.t. 3x1+4x2+3x3+4x4+6x5≤12;x j=0,1, j=1,……,5解:本问题分为5个阶段。

运筹学 动态规划-作业及答案

运筹学 动态规划-作业及答案

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.POJ 1160Post OfficeTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 17936 Accepted: 9655DescriptionThere is a straight highway with villages alongside the highway. The highway is represented as an integer axis, and the position of each village is identified with a single integer coordinate. There are no two villages in the same position. The distance between two positions is the absolute value of the difference of their integer coordinates.Post offices will be built in some, but not necessarily all of the villages. A village and the post office in it have the same position. For building the post offices, their positions should be chosen so that the total sum of all distances between each village and its nearest post office is minimum.You are to write a program which, given the positions of the villages and the number of post offices, computes the leastpossible sum of all distances between each village and its nearest post office.IntputYour program is to read from standard input. The first line contains two integers: the first is the number of villages V, 1 <= V <= 300, and the second is the number of post offices P, 1 <= P <= 30, P <= V. The second line contains V integers in increasing order. These V integers are the positions of the villages. For each position X it holds that 1 <= X <= 10000. outputThe first line contains one integer S, which is the sum of all distances between each village and its nearest post office. Sample input10 51 2 3 6 7 9 11 22 44 50Sample output9题目大意:用数轴描述一条高速公路,有V个村庄,每一个村庄坐落在数轴的某个点上,需要选择P个村庄在其中建立邮局,要求每个村庄到最近邮局的距离和最小。

运筹学动态规划习题

运筹学动态规划习题
习题三
一、某工厂购进100台机器,准备生产A、B 两种产品。如生产产品A,每台机器每年可 收入45万元,损坏率为65%;若生产产品B, 每台机器每年可收入35万元,损坏率为 35%;估计三年后有新机器出现,旧的机 器将全部淘汰。试问每年应然后安排生产, 使在三年内收入最多?
答案: 第一年将100台机器全部生产产品B,第二年 将余下的机器生产产品B,第三年把所有的 机器生产产品A。三年的总收入为7676.25 万元。
二、某厂有100台机床,能够加工两种零件, 要安排4个月的任务,根据以往经验,用这 些机床加工第一种零件,一个月后损坏率 为1/3;加工第二种零件时,一个月后损坏 率为1/10。又已知机床加工第一种零件时一 个月的受益为10万元,机床加工第二种零 件时一个月的受益为7万元。现安排4个月 的任务,使总收益为最大。
பைடு நூலகம்
• 答案: • 设每个月为一个阶段,共4个阶段。每个阶 段可投入生产的机床数为状态变量SK,加 工第一种零件的机床数为决策变量UK,加 工第二种零件的机床数为SK-UK,阶段指标 函数为DK=7SK+3UK,SK+1=9/10SK-7/30UK。 用逆序的递推方法求解:前两月全部加工 第二种零件,后两月全部加工第一种零件。 其最大收益为2680
• 首先建立动态规划的模型 • 划分成3个阶段,每个阶段决策一个项目 的投资额,每个阶段决策的投资时可以使 用的资金作为状态变量,利润为阶段的指 标函数。 • 利用基本递推方程从第3阶段开始求解 • 给企业的投资额为 95万元 在城市购买房 地产的投资额为 105万元 • 最大利润为 681万元
三、某公司有资金200万元,打算全部参与三 个方面的投资。(1)参与一个企业投资, 当投资额为X1(万元)时,可得利润为 J1=4X1-2(万元);(2)参与一个电视片 制作,当投资额为X2(万元)时,可得利 润为J2=1/16X2-1/5X2-2(万元);(3)在 城市购买房地产,当投资额为X3(万元) 时,可得利润为J3=3X3-10(万元)。又知 投资额的上限为X1≤95万元;X2≤50万元。 用动态规划法决策使总利润最大?

动态规划讲解大全(含例题及答案)

动态规划讲解大全(含例题及答案)
基本模型
多阶段决策过程的最优化问题。 在现实生活中,有一类活动的过程,由于它的特殊性,可将过程分成若干个互相联系的阶段,在 它的每一阶段都需要作出决策,从而使整个过程达到最好的活动效果。当然,各个阶段决策的选取不 是任意确定的,它依赖于当前面临的状态,又影响以后的发展,当各个阶段决策确定后,就组成一个 决策序列,因而也就确定了整个过程的一条活动路线,如图所示:(看词条图) 这种把一个问题看作是一个前后关联具有链状结构的多阶段过程就称为多阶段决策过程,这种问 题就称为多阶段决策问题。
在前面的例子中,第一个阶段就是点 A,而第二个阶段就是点 A 到点 B,第三个阶段是点 B 到点 C,而第四个阶段是点 C 到点 D。
状态:状态表示每个阶段开始面临的自然状况或客观条件,它不以人们的主观意志为转移,也称 为不可控因素。在上面的例子中状态就是某阶段的出发位置,它既是该阶段某路的起点,同时又是前 一阶段某支路的终点。
fout.close(); return 0; }
USACO 2.3 Longest Prefix
题目如下: 在生物学中,一些生物的结构是用包含其要素的大写字母序列来表示的。生物学家对于把长的序 列分解成较短的(称之为元素的)序列很感兴趣。 如果一个集合 P 中的元素可以通过串联(允许重复;串联,相当于 Pascal 中的 “+” 运算符) 组成一个序列 S ,那么我们认为序列 S 可以分解为 P 中的元素。并不是所有的元素都必须出现。 举个例子,序列 ABABACABAAB 可以分解为下面集合中的元素: {A, AB, BA, CA, BBC} 序列 S 的前面 K 个字符称作 S 中长度为 K 的前缀。设计一个程序,输入一个元素集合以及一 个大写字母序列,计算这个序列最长的前缀的长度。 PROGRAM NAME: prefix INPUT FORMAT 输入数据的开头包括 1..200 个元素(长度为 1..10 )组成的集合,用连续的以空格分开的字 符串表示。字母全部是大写,数据可能不止一行。元素集合结束的标志是一个只包含一个 “.” 的行。 集合中的元素没有重复。接着是大写字母序列 S ,长度为 1..200,000 ,用一行或者多行的字符串 来表示,每行不超过 76 个字符。换行符并不是序列 S 的一部分。 SAMPLE INPUT (file prefix.in) A AB BA CA BBC . ABABACABAABC OUTPUT FORMAT 只有一行,输出一个整数,表示 S 能够分解成 P 中元素的最长前缀的长度。 SAMPLE OUTPUT (file prefix.out) 11 示例程序如下: #include <stdio.h>

运筹学:动态规划、图与网络优化习题与答案

运筹学:动态规划、图与网络优化习题与答案

一、判断题1.动态规划分为线性动态规划和非线性动态规划。

()正确答案:×2.对于一个动态规划问题,应用顺推法和逆推法可能会得到不同的最优解。

()正确答案:×3.在用动态规划解题时,定义状态时应保证各个阶段中所做的决策的相互独立性。

()正确答案:√4.动态规划计算中的“维数障碍”主要是由问题中阶段数的急剧增加而引起的。

()正确答案:×二、选择题1.关于图论中图的概念,以下叙述()正确。

A.图中的有向边表示研究对象,结点表示衔接关系。

B.图中的点表示研究对象,边表示点与点之间的关系。

C.图中任意两点之间必有边。

D.图的边数必定等于点数减1。

正确答案:B2. 关于树的概念,以下叙述()正确。

A.树中的点数等于边数减1B.连通无圈的图必定是树C.含n个点的树是唯一的D.任一树中,去掉一条边仍为树。

正确答案:B3. 一个连通图中的最小树()。

A.是唯一确定的B.可能不唯一C.可能不存在D.一定有多个。

正确答案:B4.关于最大流量问题,以下叙述()正确。

A.一个容量网络的最大流是唯一确定的B.达到最大流的方案是唯一的C.当用标号法求最大流时,可能得到不同的最大流方案D.当最大流方案不唯一时,得到的最大流量应相同。

正确答案:D5. 图论中的图,以下叙述()不正确。

A.图论中点表示研究对象,边或有向边表示研究对象之间的特定关系。

B.图论中的图,用点与点的相互位置,边的长短曲直来表示研究对象的相互关系。

C.图论中的边表示研究对象,点表示研究对象之间的特定关系。

D.图论中的图,可以改变点与点的相互位置。

只要不改变点与点的连接关系。

正确答案:C6. 关于最小树,以下叙述()正确。

A.最小树是一个网络中连通所有点而边数最少的图B.最小树是一个网络中连通所有的点,而权数最少的图C.一个网络中的最大权边必不包含在其最小树内D.一个网络的最小树一般是不唯一的。

正确答案:B7.关于可行流,以下叙述()不正确。

《运筹学》 第五章习题及 答案

《运筹学》 第五章习题及 答案

《运筹学》第五章习题1.思考题(1)试述动态规划的“最优化原理”及它同动态规划基本方程之间的关系。

(2)动态规划的阶段如何划分?(3)试述用动态规划求解最短路问题的方法和步骤。

(4)试解释状态、决策、策略、最优策略、状态转移方程、指标函数、最优值函数、边界函数等概念。

(5)试述建立动态规划模型的基本方法。

(6)试述动态规划方法的基本思想、动态规划的基本方程的结构及正确写出动态规划基本方程的关键步骤。

2.判断下列说法是否正确(1)动态规划分为线性动态规划和非线性动态规划。

(2)动态规划只是用来解决和时间有关的问题。

(3)对于一个动态规划问题,应用顺推法和逆推法可能会得到不同的最优解。

(4)在用动态规划的解题时,定义状态时应保证各个阶段中所做的决策的相互独立性。

(5)在动态规划模型中,问题的阶段等于问题的子问题的数目。

(6)动态规划计算中的“维数障碍”,主要是由于问题中阶段数的急剧增加而引起的。

3.计算下图所示的从A 到E 的最短路问题4.计算下图所示的从A 到E 的最短路问题5.计算从A 到B、C、D 的最短路线。

已知各线段的长度如下图所示。

6.设某油田要向一炼油厂用管道供应油料,管道铺设途中要经过八个城镇,各城镇间的路程如下图所示,选择怎样的路线铺设,才使总路程最短?7.用动态规划求解下列各题(1).222211295max x x x x z -+-=;⎩⎨⎧≥≤+0,52121x x x x ;(2).33221max x x x z =⎩⎨⎧≥≤++0,,6321321x x x x x x ;8.某人外出旅游,需将3种物品装入背包,但背包重量有限制,总重量不超过10千克。

物品重量及其价值等数据见下表。

试问每种物品装多少件,使整个 背包的价值最大?913 千克。

物品重量及其价值的关系如表所示。

试问如何装这些物品,使整个背包 价值最大?10 量和相应单位价值如下表所示,应如何装载可使总价值最大?303011 底交货量,该厂的生产能力为每月600件,该厂仓库的存货能力为300件,又 每生产100件产品的费用为1000元。

动态规划习题集全

动态规划习题集全

动态规划专题训练护卫队【问题描述】护卫车队在一条单行的街道前排成一队,前面河上是一座单行的桥。

因为街道是一条单行道,所以任何车辆都不能超车。

桥能承受一个给定的最大承载量。

为了控制桥上的交通,桥两边各站一个指挥员。

护卫车队被分成几个组,每组中的车辆都能同时通过该桥。

当一组车队到达了桥的另一端,该端的指挥员就用电话通知另一端的指挥员,这样下一组车队才能开始通过该桥。

每辆车的重量是已知的。

任何一组车队的重量之和不能超过桥的最大承重量。

被分在同一组的每一辆车都以其最快的速度通过该桥。

一组车队通过该桥的时间是用该车队中速度最慢的车通过该桥所需的时间来表示的。

问题要求计算出全部护卫车队通过该桥所需的最短时间值。

【输入格式】输入文件中的第一行包含三个正整数(用空格隔开),第一个整数表示该桥所能承受的最大载重量(用吨表示),第二个整数表示该桥的长度(用千米表示),第三个整数表示该护卫队中车辆的总数(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美元。

动态规划算法题(5题)

动态规划算法题(5题)

动态规划算法题(5题)1、题⽬描述(⽹易)有 n 个学⽣站成⼀排,每个学⽣有⼀个能⼒值,⽜⽜想从这 n 个学⽣中按照顺序选取 k 名学⽣,要求相邻两个学⽣的位置编号的差不超过d,使得这 k 个学⽣的能⼒值的乘积最⼤,你能返回最⼤的乘积吗?输⼊描述:每个输⼊包含 1 个测试⽤例。

每个测试数据的第⼀⾏包含⼀个整数 n (1 <= n <= 50),表⽰学⽣的个数,接下来的⼀⾏,包含 n 个整数,按顺序表⽰每个学⽣的能⼒值 ai(-50 <= ai <= 50)。

接下来的⼀⾏包含两个整数,k 和 d (1 <= k <= 10, 1 <= d <= 50)。

输出描述:输出⼀⾏表⽰最⼤的乘积。

试题分析:本题要使⽤动态规划来解,动态规划的特点:1.求解的是最优化问题;2.可以分解为最优⼦结构本题可以先求解在第i个学⽣的位置下,j(j<K)个学⽣的能⼒值的最⼤值,得到所有学⽣位置下j个学⽣的能⼒值的最⼤值;在j个学⽣的情况下,得到j+1个学⽣的最⼤值,样例输出: 10 8 7 2 -7 9 5 4 10 -7 1 3 3输出: 630如上,第⼀步先计算k=2的情况:7:在d=3的情况下,最⼤最⼩值都为562:在d=3的情况下,最⼤值为16,最⼩值为14-7:在d=3的情况下,最⼤值为-14,最⼩值为-56......得到第⼀趟的结果k=3的情况下(这⾥以第⼀趟的结果为基础,只有这样就不需要考虑第⼀趟中d=3的限制):2:在d=3的情况下,最⼤最⼩值都为112(56*2)-7:在d=3的情况下,最⼤值为-98(14*-7)最⼩值为-392(56*-7)9:在d=3的情况下,最⼤值为504(56*9)最⼩值为-504(-56*9)......得到第⼆趟的结果返回最⼤值就是最后的结果#-*- coding:utf-8 -*-n=input()array=[int(i) for i in raw_input().split()]k,d=[int(i) for i in raw_input().split()]# n=36array_max=array_min=array#轮询k-1趟即可for i in range(0,k-1):_max=[-float('inf')]*n#将最⼤值的数组赋值⽆穷⼩_min=[float('inf')]*n#将最⼩值的数组赋值⽆穷⼤for j in range(i+1,n):if j<=d+i:#下⾯对应的min、max都是考虑到array[j]为负值的情况下temp_max = max(max(ii*array[j] for ii in array_max[i:j]),max(ii*array[j] for ii in array_min[i:j]))temp_min = min(min(ii*array[j] for ii in array_max[i:j]),min(ii*array[j] for ii in array_min[i:j]))else:temp_max = max(max(ii*array[j] for ii in array_max[j-d:j]),max(ii*array[j] for ii in array_min[j-d:j]))temp_min = min(min(ii*array[j] for ii in array_max[j-d:j]),min(ii*array[j] for ii in array_min[j-d:j]))_max[j]=temp_max_min[j]=temp_minarray_max=_maxarray_min=_minprint array_maxprint array_minprint max(array_max)2、题⽬描述(腾讯):腾讯⼤厦有39层,你⼿⾥有两颗⼀抹⼀眼的玻璃珠。

动态规划模拟题及答案

动态规划模拟题及答案

动态规划测试题一:填空题(每空2分,共20分)1.动态规划算法的步骤是(找出最优解的性质,并刻画其结构特征)、(递归地定义最优值)(以自底向上的方式计算最优值)、(根据计算最优值时得到的信息构造最优解)。

2.为方便起见、将矩阵连乘积A i A i+1……A j简记为(A[i:j] )。

3.动态规划算法的两个基本要素是(最优子结构性质)和(重叠子问题性质)。

4.矩阵连乘问题的算法可由(递归)设计实现。

5.对于矩阵连乘问题、设计算A[i:j]、1≤i≤j≤n,所需要的最少数乘次数为m[i][j],则原则问题的最优值为(m[1][n] )。

6. 动态规划算法的基本思想是将待求解问题分解成若干(子问题),先求解(子问题),然后从这些(子问题)的解得到原问题的解。

二:综合题(第一题5分其余各题15分,共50分)1.补充下面的最大子段和动态规划算法。

int MaxSum(int n,int *a){int sum=0,b=0;for(int i=1;i<=n;i++){if(b>0){b+=a[i];besti=1;}else b=a[i];if(b>sum){sum=b;bestj=i;}}return sum;}2. 0—1背包问题:有5种物品,背包的容量为c=10,物品i的重量为wi,其价值为vi:(w1,v1)=(2,6) (w2,v2)=(2,3) (w3,v3)=(6,5) (w4、v4)=(5,4)(w5,v5)=(4,6), 求最优解及最优值。

解∵p[5+1]={(0,0)}又∵(w5,w5)=(4,6)∴q[5+1]=p[5+1]○+(4,6)={(4,6)}则p[5]=m5j-其中的受控点={(0,0),(4,6)}又∵(w4,v4)=(5,4)∴q[5]○+(w4,v4)={(0,0),(4,6)}○+(5,4)={(5,4),(9,10)}∴w4j=p[5]∨q[5]={(0,0),(4,6),(5,4),(9,10)}又∵(w3,v3)=(6,5)∴q[4]=p[4]○+(w3,v3)={(6,5),(10,11)}∴m3j=p[4]∨q[4]={(0,0),(4,6),(6,5),(9,10),(10,11)} 则p[3]=m3j-其中的受控点={(0,0),(4,6),(9,10),(10,11)}又∵(w2,v2)=(2,3)∴q[3]=p[3]○+(w2,v2)={(2,3),(6,9)}∴m2j={(0,0),(2,3),(4,6), (6,9),(9,10),(10,11) } p[2]=m2j-其中的受控点={(0,0),(2,3),(4,6),(6,9),(9,10),(10,11)}又∵(w1,v1)=(2,6)∴q[2]=p[2]○+(w2,v2)={(2,6),(4,9),(6,12),(8,15)}∴m1j={(0,0),92,3},(2,6),(4,6),(4,9),(6,9),(6,12),(8,15),(9,10),(10,11)}∴p[1]={(0,0),(2,6),(4,9),(6,12),(8,15)}∴此0—1问题的最优值15.最优解为p[1]={(0,0),(2,6),(4,9)(6,12),(8,15)}3.设n=4,(a1,a2,a3,a4)=(3,4,8.10),(b1,b2,b3,b4)=(6,2,9,15),求作业中的一种最优调度方案并计算其最优值。

完整动态规划答案

完整动态规划答案

02队备件配置优化问题摘 要 本文讨论了在一定总费用下,如何配置各部件的备件使系统的可靠性最大的问题。

对问题一,以部件配置备件的数量为决策,根据状态变量和决策变量写出状态转移方程。

然后从后向前地计算系统可靠性最大的概率,得到递推公式和终端条件。

对问题二,将数据代入问题一的模型。

系统的可靠性最大问题转化为求部件间相通的最大概率问题,从后向前分别求出系统联通的概率,最后比较得出要使系统的可靠性最大,则需部件1、2、3的备件数分别为3个、1个、2个。

动态规划模型常用来求解经济管理中的货物存贮、设备更新、资源分配、任务均衡、水库调度、系统可靠性等问题,在离散系统最优控制中也有广泛应用。

关键词 动态规划;备件配置;系统可靠性一、 问题提出系统由若干部件串联而成,只要一个部件出现故障,系统就不能正常工作。

为了提高系统可靠性每个部件都装有备件,一旦原部件出线故障,备件就自动进入系统。

显然,备件越多系统可靠性越大,但费用也越高。

在一定的总费用下,如何配置各部件的备件使系统的可靠性最大是一个实际问题。

通过建立相关数学模型,解决如下问题:问题一:由n 个部件串联的系统,当部件k 配置j 个备件时,该部件正常工作的概率及费用均已知,在总费用不超过给定值的条件下,建立使系统的可靠性最大的模型。

问题二:设3 n 且每个部件至多配置3个备件,部件k 配置j 个备件时正常工作的概率kj p 及费用kj c 如表1,总费用不超过10,如何配置各部件的备件数使系统的可靠性最大。

该问题属于离散动态优化问题。

动态规划模型是解决该问题的有效方法。

对问题一:将部件配置备件的次序划分阶段,部件配置备件的数量为决策,根据状态变量和决策变量写出状态转移方程。

然后从后向前地计算系统可靠性最大的概率,得到递推公式。

对问题二:只需将问题二中的数据代入问题一所建的模型中即可。

至于模型的求解,可将每个部件配置备件的费用看做各个部件的不同站点,画出示意图,从一个部件的每一个站点到达下一部件的哪个站点由总费用不超过10元及部件间相通的概率决定。

动态规划练习题(含答案)

动态规划练习题(含答案)

动态规划练习题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题目如下:在生物学中,一些生物的结构是用包含其要素的大写字母序列来表示的。

力扣优秀题解

力扣优秀题解

力扣优秀题解——动态规划动态规划(Dynamic programming,简称DP)是一种常见的求解优化问题的方法。

它与分治算法类似,都是通过将大问题分解成若干个小问题来求解的。

不同的是,DP解决的问题通常是有重叠子问题和最优子结构特征的,即在求解过程中会反复计算相同的子问题,并且每个子问题都具有最优解,可以通过这些最优解推导出全局最优解。

力扣中的很多题目都可以使用动态规划来解决,比如最长公共子序列、股票买卖、打家劫舍等等。

下面针对这些题目进行详细解析。

一、最长公共子序列题目描述:给定两个字符串text1 和text2,返回它们的最长公共子序列。

如果不存在公共子序列,返回0。

示例:输入:text1 = "abcde", text2 = "ace" 输出:3 解释:最长公共子序列是 "ace",它的长度为 3。

解题思路:最长公共子序列问题是比较经典的DP问题。

设字符串text1和text2的长度分别为m 和n,令dp[i][j]表示text1[0:i]和text2[0:j]的最长公共子序列长度,为方便起见,text1和text2的下标从1开始。

当text1[i-1] == text2[j-1]时,dp[i][j] = dp[i-1][j-1] + 1,即text1[0:i-1]和text2[0:j-1]的最长公共子序列长度加上1。

当text1[i-1] != text2[j-1]时,dp[i][j] = max(dp[i-1][j], dp[i][j-1]),即考虑text1[0:i-1]和text2[0:j]的最长公共子序列长度与text1[0:i]和text2[0:j-1]的最长公共子序列长度,两者取最大值。

最终的答案即为dp[m][n]。

代码实现:class Solution: def longestCommonSubsequence(self, text1: str, text2: str) -> int: m, n = len(text1), len(text2) dp = [[0] * (n + 1) for _ in range(m + 1)] for i in range(1, m + 1): for j in range(1, n + 1): if text1[i - 1] == text2[j - 1]: dp[i][j] = dp[i - 1][j - 1] + 1 else: dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]) return dp[m][n]二、股票买卖题目描述:给定一个数组prices,其中prices[i]是一支给定股票第i天的价格。

动态规划专项练习题解

动态规划专项练习题解

另一种方法
• 将原串与原串的倒序做一次LCS—最长公 共子序列,用原串长度减去LCS长度,即 为需要插入字符的个数 • 例如:ab3bd与 db3ba • LCS(‘ab3bd’, ‘db3ba’)=‘b3b’ • 因此, ans=Len(‘ab3bd’)-Len(‘b3b’)=2
LCS的求法
• 最长公共子串(LCS),有三种情况: 1. 公共子串的元素必须相邻. 2. 公共子串的元素可以不相邻 3. 求多个字符串而不是两个字符串的最长公共 子串 • 动归4中,我们讲了求情况2的LCS序列。下面我们 来讨论情况1的做法。
• 任务:对于任意一个字符串,输出将这个字符串 变为回文串需要插入的最少字符个数,比如, ab3bd只需要插入2个字符就可以变为一个回文串. • 0<n<=1992,n为字符串长度。
分析
• ab3bd • 只需变为adb3bda即可,在前面插入d,在 后面插入a; • 我们分几种情况讨论:
– 若A形如 ?A?,(问号代表任意一个相同字符, 下同)则只需将A变为回文串。 – 若A形如?A再在A的后面插入一个”?” – 若A形如A ?再在A的前面插入一个”?”
分析
• 性质:青蛙遍历的路径不会相交。
• 上图中图2的路径比图1要短。 • 证明:图1: D1=d(1,3)+d(2,3)+d(2,4) 图2: D2=d(1,2)+d(2,3)+d(3,4) 要证明D1>D2,只要证明d(1,3) +d(2,4)>d(1,2)+d(3,4) 连接两边,见图3,由三角形的三边关系定理即可证明。
动态规划
• 设f(i,j)为将Ai..Aj变为回文串的最小代价,则
f (i 1, j 1), 若a[i] a[ j ] f (i, j ) min f (i 1, j ) 1, 若a[i] a[ j ],后插一个字符 f (i, j - 1) 1,若a[i] a[ j ],前插一个字符
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2.某公司有资金4百万元向A,B和C3个项目追加投资,各个项目可以有不同的投资额(百万元计),相应的效益如表所示。

问怎样分配资金,使总效益值最大?##表8-47解:设S-A,B,C项目的总投资额,S-B、C项目的总投资额21S-C 项目的投资额;3X-k项目的投资额;k(X-A项目的投资额,X-B项目的投资额,X-C项目的投资额)312W(S,X)-对K项目投资X后的收益:W(S,X)=W (X) kkkkkkkkk T (S,X)-S=S-X kk+1kkkk f (S)-当K至第3项目允许的投资额为S时所能获得的最大收益。

kkk为获得最大利润,必须将4百万全部投资,假设有4阶段存在,有S=0,建立递归方程4f(S)=0k4f (S)=max{ W (X)+f(S)} k=3,2,1 k+1kk +1kkk X∈D(S)kkk第一步,K=3f(S)=044 f (S)=max{W (X)+f (S)} 434333X∈D(S) 333S=S-X334第二步:)} f (S (X (S)=max{W)+f K=2 322322) X∈D(S 222-X =S S232W (X)+f (S-X)22322第三步:)} (S (X) =max f (S {W)+ f K=1 211121) DX∈(S111- X S= S 121)(X- X)+ f (SW1 12 11S=4 →S=1 →S=1 312↓↓↓X*=3 X*=0 X*=1312百万。

1投资C 不投资B 百万,3投资A.总收益164百万元。

3.(最优分配问题)有一个仪表公司打算向它的3个营业区设立6家销售店。

每个营业区至少设一家,所获利润如表。

问设立的6家销售店数应如何分配,可使总利润最大?利润营业区A k (x) wA A A k321180 200 1 210230 2 220 280 销售260 3 330 225 店数x2803404 230解:## ,3营业区允许设立的销售店数s——对k,…k#营业区设立的销售店数——对k x k x销售店后的利润:)——对k#营业区设立 w(s,x kkk k)(x (sw,,x)= w kkkk k = s - x) T (s x——s kkk,kkk +1s3个营业区允许设立的销售店数为至第) f (s——当第k kkk时所能获得的最大利润递归方程:)=0(sf44.f (s)=max {wk (xk)+ fk+1(sk+1)}, k=3,2,1 kk xk∈Dk(sk)k=3时,有方程f (s)=044f3(s3)= max {w3(x3)+ f4(s4) }x∈D3(s3) 3s3=s2—x2k=2,有方程}{f2(s2)= max w2(x2)+ f3(s3)D2(s2) ∈x2x2 —s3=s2k=1,有方程}f1(s1)= max {w1(x1)+ f2(s2)D1(s1) x1∈x1 s2=s1—s3=2 s2=3 s1=6 →→↓↓↓*=2 *=3 xx*=1 x321家销售店,最大利润为2家、1家、3营业区设立A3、A2、A1分别7704.用动态规划方法求解下列模型:maxf=10X+4X+5X 321≤15+4 Xs.t. 3X+5 X312≤2 0≤X≤2 X≥0 ,X为整数≤0Xj=1,2,3 j321解:收费C=10 C=4 C=5 312X为货物1的装载件数1X为货物2的装载件数2X为货物3的装载件数3分3阶段S为货物1、2、3允许的装载重量(3X+5 X+4 X的允许值)3121S为货物2、3允许装载的重量(5 X+4 X的允许值)322S为货物3允许装载的重量(4 X的允许值)33第一步:K=3f(S)=044f(S)= max{5X f(S)| X∈D(S)} 3333+4433S S -4 X334=S0~34~78~1112~15D(S) {0}{0,1}{0,1,2}{0,1,2,3}33S X=0 X=1 X=2 X=3 f (S) X* 3333333300~3 0+0__________________0+0 5+0 ______ ______ 4~7 5 10+0 5+0 8~11 10+0 ______ 10 20+0 5+0 10+0 15+0 12~15 15 3第二步:K=2f(S)= max{4X f(S)| X∈D(S)} 2222+3322S= S -5 X210~15 0~45~9S2{0,1,2} {0,1}) {0}D (S22划分点:第三步:K=1f(S)= max{10X f(S)| X∈D(S } )11+132211.S= S-3 X 11210X f(S-3 X) 11+12顺序追踪:最优策略为=9 S S=9 →S=15 →312↓↓↓*=2X *=0 X*=2 X 321装不装;货物32件最优装载方案为:货物1装2件;货物2 装载收费为30元5.用动态规划方法解下列0—1背包问题:Max f =12x+12x+9x+16x+30x;52143s.t.3x+4x+3x+4x+6x≤12; 53241x=0,1, j=1,……,5 j解:本问题分为5个阶段。

令sax+…+ax的允许值4k4kk——x第k阶段x取值,x=0,1kkk——w(s, x)——x产生的价值:w(s, x)=cx kkkkkk kkkT(s, x)——s=s- ax kkkk+1kkk f(s)——在ax+…+ ax≤s的条件下,cx+…+cx能4 4kkkkk44 kk取得的最大值。

.递归方程为f(s)=066 f(s)=max{cx+f(s)},k=5,4,3,2,1k+1kkkkk+1k=5f(s}55x∈D(s)555(3055==0~5000—1306~1230f(s)=max{16x+f(s)} 54454k=4 ) D(s∈x444s=s-4x 44 5f(s)=max{9x+f(s)}k=3 43433x∈D(s)333 s=s -3x 3 43)}(sf(s)=max{12x+f32223k=2 x∈D(s)222s=s -4x 232*2k=1f(s)=max{12x+f(s)}21121x∈D(s)111s=s-3x s=121211sf(s) x* )(s3xf12x1-11+21111x=0x=11112+391510+46 12s=12 s=9 s=9 s=6 s=654321x=1x*=0 x*=1 x*=0 x*=1*5142311.今设计一种由4个元件串联而成的部件,为提高部件的可靠性,每一元件可以由1个、2个或3个并联的单位元件组成。

关于元件K (K=1,2,3,4)配备j个并联单位元件(j=1,2,3)后的可靠性R和成本C由表给出,假设该部件的总成本允许为15个单位,试kjkj 问如何确定各元件的单位元件配备数目,使系统的可靠性最高?解:逆序解法。

S ——仪表上配备k#,…,4#元件时允许使用的费用 k X ——K#元件所选用的单位元件 k W (S ,X )——K#元件采用单位元件时的可靠性,有 kkk W (S ,X )=Rx kkkk k T (S ,X )——S SCx kkkk - kk+1=k fS ——在费用限额为S 元件串联时相应3#,…,k#的条件下,k )k (k 部分可获得的最大可靠性递归方程 fS=1 ()54 fS max {W (S ,X )﹒fS },K=4,3,2,1. )k+1kk (k (k )=kk+1第一步,对K=4,第二步:S f(S)X*Rx﹒CxfS3232)31(33 –33=1 X36 0.9×0.8 0.72 11 0.8 0.727 0.9×1 0.820.7388 ×0.91×9 0.90.820.738第三步,对K=2,S f(S)X*xRx﹒fSC2222)22–3(2 22=2 =1XX228 0.6×0.72 0.432 1 —1 0.4320.69 —×0.72第四步,对K=4, fS= max{Rx﹒fS})(34(4)434S SCxS=1544 –43=,4S CxRx﹒fS1)1141–2(11X* f(S)114=3X =2 =1 X X 11115 0.7×0.576 0.75×0.576 0.85×0.432 0.432 2SSSS=3=6 →=10 →=15 →1231↓↓↓↓X*=2 X*=2 X*=1 X*=1 4132元件1为2个,元件2为2个,元件3为1个,元件4为1个,可靠性为0.432。

顺序解法:S——仪表上配备1#,…,K#元件时允许使用的费用k X——K#元件所选用的单位元件k W(S,X)——K#元件采用单位元件时的可靠性,有kkk W(S,X)=Rx kkkk k T(S,X)——S SCx kkkk-1=kk -k fS——在费用限额为S的条件下,1#,…,K#元件串联时相应kk)k(部分可获得的最大可靠性递归方程fS=1()00fS max{W(S,X)﹒fS},K=1,2,3,4 )k)kk-1kk-1=(kk(第一步,对K=1, fS= max{Rx}11()114<=S<=7 1S={4,5,6,7}1S 4 5 6 7 1{1,2,3}{1,2}SD {1}{1,2})11(S f(S)X*Rx111111=3 X=1XX=2 1110.7 ——4 1 0.72 —0.75 0.750.752 —0.750.76 0.7530.80.7570.70.8第二步,对K=2, fS= max{Rx﹒fS})2(2(12)12S SCx2–1= 2 26<=S<=9 2S={6,7,8,9}21 —0.450.6×7 0.752 8 0.750.560.8×0.70.6×20.80.60.69 ××0.750.8第三步,对K=3, fS= max{Rx﹒fS})3(()32233S SCx33 –2=39<=S12<=2.S={9,10,11,12}21 ×10 0.90.45 0.4051 0.911 ×0.560.504112×0.60.540.9第四步,对K=4, fS= max{Rx﹒fS})4(34)3(44S SCxS=1544–3=4 ,4S f(S)X*Rx﹒fSCx4444)43(4 –444=2XX=14415 0.8×0.54 0.82×0.405 0.432 1SSSS=5=9 =12 →→=15 →1324↓↓↓↓X*=1 X*=1 X*=2 X*=2 1423元件1为2个,元件2为2个,元件3为1个,元件4为1个,可靠。

相关文档
最新文档