建筑材料作业-精选.pdf

建筑材料作业-精选.pdf
建筑材料作业-精选.pdf

建筑材料作业 2

说明:本次作业对应教材第5、6章内容。

一、单项选择题(每小题2分,共40分)

1.素有“建筑工业的粮食”之称的建筑材料的是( C )。

A.石灰 B.水泥

C.石膏 D.水玻璃

2.下列各类水泥,用量最大,应用最为广泛的是( A )。

A.硅酸盐水泥 B.铝酸盐水泥

C.硫铝酸盐水泥 D.铁铝酸盐水泥

3.硅酸盐水泥的水化速度表现为( A )。

A.早期快后期慢 B.早期慢后期快

C.早期快,后期也快 D.早期慢,后期也慢

4.一般情况下,水泥水化反应时的温度不低于( D )。

A.30℃ B.20℃ C.10℃ D.0℃

5.水泥石体积安定性不良的原因是( D )。

A.游离氧化钙过多 B.游离氧化镁过多

C.掺人的石膏过多 D.以上都是

6.水泥的水化热指的是( B )。

A.水泥净浆达到标准稠度时所需要的水量

B.水泥在水化过程中放出的热量

C.水泥凝结硬化过程中,体积变化是否均匀适当的性质

D.水泥经高温灼烧处理后的质量损失率

7.水泥石中引起腐蚀的组分主要是( A )。

A.氢氧化钙和水化铝酸钙 B.碳酸钙和氧化钙

C.石膏和氧化钙 D.碳酸钠和氯化钠

8.硅酸盐水化热高的特点决定了硅酸盐水泥不宜用于( B )。

A.预应力混凝土工程 B.大体积混凝土工程

C.高强混凝土工程 D.路面与地面工程

9.相比较来讲,对于抢修工程或早期强度要求高的工程宜优先选用( A )。

A.铝酸盐水泥 B.硅酸盐水泥

C.粉煤灰水泥 D.矿渣水泥

10.普通硅酸水泥中掺入少量混合材料的主要作用是( A )。

A.扩大其强度等级范围,以利于合理选用

B.改变其初凝时间

C.改变其体积安定性

D.改变其储运方式

11.混凝土和钢筋可以共同工作,是由于两者具有几乎相等的( B )。

A.密度 B.线膨胀系数

C.抗拉强度 D.导热系数

12.配置混凝土时,水泥的选用主要考虑( B )。

A.密度 B.品种和强度等级

C.碱含量 D.水泥的初凝时间

13.砂在干燥的环境中自然堆放达到干燥状态往往是( B )。

A.全干状态 B.气干状态

C.湿润状态 D.饱和面干状态

14.混凝土拌合物在一定的施工条件和环境下,是否易于各种施工工序的操作.以获得均匀密实混凝土的性能称为( A )。

A.耐久性 B.刚度 C.和易性 D.坚固性

15.混凝土拌合物的流动性能够反映( B )。

A.混凝土拌合物的稀稠程度及充满模板的能力

B.混凝土拌合物的稳定性

C.混凝土拌合物的均匀性

D.混凝土拌合物的饱和状态

16.下列关于坍落度说法有误的一项是( B )。

A.坍落度试验法可以测定混凝土拌合物工作性

B.坍落度是保水性的指标

C.坍落度越大,流动性越大

D.测定坍落度的同时,可以观察确定黏聚性

17.砂率指的是( A )。

A.每立方米混凝土中砂的质量和砂石的总质量之比

B.每立方米混凝土中砂的质量和石子的质量之比

C.每立方米混凝土中砂的质量与混凝土总质量之比

D.每立方米混凝土中砂石的质量与混凝土总质量之比

18.配合比正常的普通混凝土受压时,最可能发生的破坏形式是( C )。

A.骨料先发生破坏

B.水泥石先发生破坏

C.水泥石与粗骨料的结合面先发生破坏

D.骨料与水泥石同时发生破坏

19.下列各种混凝土外加剂可用来调节混凝土凝结时间的是( A )。

A.早强剂 B.减水剂

C.膨胀剂 D.着色剂

20.混凝土配合比设计中的三个基本参数分别是( A )。

A.水灰比、砂率、单位用水量 B.水灰比、水化热、单位用水量

C.水化热、砂率、单位用水量 D.水灰比、砂率、水化热

二、判断题(每小题2分,共20分)

1.生产硅酸盐水泥时,第一步先生产出水泥熟料。(√)

2.水泥的水化硬化一般在28d内发展速度较慢,28d后发展速度较快。(×)

3.水泥放热量大小及速度与水泥熟料的矿物组成和细度没有任何关系。(×)

4.当侵蚀作用比较强烈时,应在水泥制品表面加做保护层。(√)

5.高铝水泥早期的水化热非常小,因此,施工时环境温度越高越好。(×)

6.水、水泥、砂(细骨料)、石子(粗骨料)是普通混凝土的四种基本组成材料。(√)7.判断砂粗细程度的指标是细度模数,细度模数越小,砂越粗。(√)

8.影响混凝土拌合物工作性的因素主要有组成材料和环境条件,而与时间无关。(×)9.增大混凝土拌合物的水灰比,可降低硬化混凝土的孔隙率,增加水泥与骨料间的粘结力,

强度得以提高。(×)

10.配合比设计的过程是一逐步满足混凝土的强度、工作性、耐久性、节约水泥等设计目标的过程。(√)

三、简答题(每小题6分,共30分)

1.水泥的细度指的是什么.水泥的细度对水泥的性质有什么影响?

细度是指水泥颗粒粗细的程度,它是影响水泥性能的重要指标。颗粒愈细,与水反应的表面积愈大,因而水化反应的速度愈快,水泥石的早期强度愈高,但硬化收缩也愈大,且水泥在储运过程中易受潮而降低活性。因此,水泥细度要适当。

水泥细度可以采用筛析法(GB/T1345-91)和比表面积法(GB/T8074-87)测定。硅酸盐水泥比表面积大于300m2/kg,普通水泥80μm方孔筛筛余不得超过10.0%。

2.影响硅酸盐系水泥凝结硬化的主要因素有哪些?

(1)水泥的熟料矿物组成及细度

(2)水灰比

(3)石膏的掺量

(4)环境温度和湿度

(5)龄期

(6)外加剂的影响

3.硅酸盐水泥的凝结时间、初凝时间、终凝时间各指什么?

凝结时间是指水泥从加水开始,到水泥浆失去可塑性所需要的时间。水泥在凝结过程中经历了初凝和终凝两种状态,因此,水泥凝结时间又分为初凝时间和终凝时间。初凝时间是指水泥从加水搅拌到水泥浆开始失去塑性所经历的时间;终凝时间是指从水泥加水搅拌到水泥浆

完全失去塑性所经历的时间。

水泥凝结时间对工程施工有重要的意义。初凝时间过短,将影响水泥混凝土的拌和、运输和浇筑;终凝时间过长,则会影响施工工期。因此应该严格控制水泥的凝结时间。

硅酸盐水泥初凝不得早于45min,终凝不得迟于 6.5h。

4.什么是石子的连续级配,采用连续级配的石子对混凝土性能有哪些影响?

连续级配是石子的粒径从大到小连续分级,每一级都占有适当的比例。采用连续级配配置的混凝土拌和物工作性好,不易发生离析;但是,当最大粒径较大,天然形成的连续级配与理论最佳值有偏差,且在运输、堆放过程中容易离析。

5.提高混凝土耐久性的措施有哪些?

混凝土的耐久性要求主要应根据工程特点、环境条件而定。工程上主要应从材料的质量、配合比设计、施工质量控制等多方面采取措施给以保证。具体的有以下几点。

(1)选择合适品种的水泥

(2)控制混凝土的最大水灰比和最小水泥用量。

(3)选用质量良好的骨料,并注意颗粒级配的改善。

(4)掺加外加剂

(5)严格控制混凝土施工质量,保证混凝土的均匀、密实。

四、计算题(共计l0分)

混凝土试验室配合比为l:2.28:4.47(水泥:砂子:石子),水灰比为0.64,每立方混凝土水泥用量为286kg。现场测得砂子的含水率为3%,石子的含水率为l%。试计算施工配合比及每立方混凝土各种材料的用量。

由实验室配合比1:2.28:4.47(水泥:砂子:石子),算出干砂=286*2.28=652.08因现场砂含水率为3%,现场砂=652*(1+3%)=671.56

干石子=286*4.47=1278.42因石子含水率为1%,现场石子=1278.42*(1+1%)=1291.2理论水=水泥*水灰比=286*0.64=183.04

砂中含水重量=671.5-652.08=19.42石子含水重量=1291.2-1278.42=12.78施工每方用水量为:183.04-19.42-12.78=150.84

算法分析作业

算法分析练习题(一) 一、选择题 1、二分搜索算法是利用( A )实现的算法。 A、分治策略 B、动态规划法 C、贪心法 D、回溯法 2、下列不是动态规划算法基本步骤的是( A )。 A、找出最优解的性质 B、构造最优解 C、算出最优解 D、定义最优解 3.下列算法中通常以自底向上的方式求解最优解的是( B )。 A、备忘录法 B、动态规划法 C、贪心法 D、回溯法 4、衡量一个算法好坏的标准是(C )。 A 运行速度快 B 占用空间少 C 时间复杂度低 D 代码短 5、以下不可以使用分治法求解的是(D )。 A 棋盘覆盖问题 B 选择问题 C 归并排序 D 0/1背包问题 6. 实现循环赛日程表利用的算法是( A )。 A、分治策略 B、动态规划法 C、贪心法 D、回溯法 7.备忘录方法是那种算法的变形。( B ) A、分治法 B、动态规划法 C、贪心法 D、回溯法8.最长公共子序列算法利用的算法是( B )。 A、分支界限法 B、动态规划法 C、贪心法 D、回溯法9.实现棋盘覆盖算法利用的算法是( A )。 A、分治法 B、动态规划法 C、贪心法 D、回溯法 10. 矩阵连乘问题的算法可由(B)设计实现。 A、分支界限算法 B、动态规划算法 C、贪心算法 D、回溯算法 11、Strassen矩阵乘法是利用( A )实现的算法。 A、分治策略 B、动态规划法 C、贪心法 D、回溯法 12、使用分治法求解不需要满足的条件是(A )。 A 子问题必须是一样的 B 子问题不能够重复

C 子问题的解可以合并 D 原问题和子问题使用相同的方法解 13、下列算法中不能解决0/1背包问题的是(A ) A 贪心法 B 动态规划 C 回溯法 D 分支限界法 14.实现合并排序利用的算法是( A )。 A、分治策略 B、动态规划法 C、贪心法 D、回溯法15.下列是动态规划算法基本要素的是( D )。 A、定义最优解 B、构造最优解 C、算出最优解 D、子问题重叠性质 16.下列算法中通常以自底向下的方式求解最优解的是( B )。 A、分治法 B、动态规划法 C、贪心法 D、回溯法 17、合并排序算法是利用( A )实现的算法。 A、分治策略 B、动态规划法 C、贪心法 D、回溯法 18.实现大整数的乘法是利用的算法( C )。 A、贪心法 B、动态规划法 C、分治策略 D、回溯法 19. 实现最大子段和利用的算法是( B )。 A、分治策略 B、动态规划法 C、贪心法 D、回溯法 20. 一个问题可用动态规划算法或贪心算法求解的关键特征是问题的( B )。 A、重叠子问题 B、最优子结构性质 C、贪心选择性质 D、定义最优解 21. 实现最长公共子序列利用的算法是( B )。 A、分治策略 B、动态规划法 C、贪心法 D、回溯法 二、填空题 1.算法的复杂性有时间复杂性和空间复杂性之分。 2、程序是算法用某种程序设计语言的具体实现。 3、算法的“确定性”指的是组成算法的每条指令是清晰的,无歧义的。 4.矩阵连乘问题的算法可由动态规划设计实现。 5、算法是指解决问题的一种方法或一个过程。

0018算法笔记——【动态规划】流水作业调度问题与Johnson法则

1、问题描述: n个作业{1,2,…,n}要在由2台机器M1和M2组成的流水线上完成加工。每个作业加工的顺序都是先在M1上加工,然后在M2上加工。M1和M2加工作业i所需的时间分别为ai和bi。流水作业调度问题要求确定这n个作业的最优加工顺序,使得从第一个作业在机器M1上开始加工,到最后一个作业在机器M2上加工完成所需的时间最少。 2、问题分析 直观上,一个最优调度应使机器M1没有空闲时间,且机器M2的空闲时间最少。在一般情况下,机器M2上会有机器空闲和作业积压2种情况。设全部作业的集合为N={1,2,…,n}。S是N的作业子集。在一般情况下,机器M1开始加工S中作业时,机器M2还在加工其他作业,要等时间t后才可利用。将这种情况下完成S中作业所需的最短时间记为T(S,t)。流水作业调度问题的最优值为T(N,0)。 设π是所给n个流水作业的一个最优调度,它所需的加工时间为 aπ(1)+T’。其中T’是在机器M2的等待时间为bπ(1)时,安排作业 π(2),…,π(n)所需的时间。 记S=N-{π(1)},则有T’=T(S,bπ(1))。 证明:事实上,由T的定义知T’>=T(S,bπ(1))。若T’>T(S,bπ(1)),设π’是作业集S在机器M2的等待时间为bπ(1)情况下的一个最优调度。

则π(1),π'(2),…,π'(n)是N的一个调度,且该调度所需的时间为 aπ(1)+T(S,bπ(1))

0018算法笔记——【动态规划】流水作业调度问题与Johnson法则

0018算法笔记——【动态规划】流水作业调度问题与Johnson 法则 1、问题描述: n个作业{1,2,…,n}要在由2台机器M1和M2组成的流水线上完成加工。每个作业加工的顺序都是先在M1上加工,然后在M2上加工。M1和M2加工作业i所需的时间分别为ai和bi。流水作业调度问题要求确定这n个作业的最优加工顺序,使得从第一个作业在机器M1上开始加工,到最后一个作业 在机器M2上加工完成所需的时间最少。 2、问题分析 直观上,一个最优调度应使机器M1没有空闲时间,且机器M2的空闲时间最少。在一般情况下,机器M2上会有机器空闲和作业积压2种情况。设全部作业的集合为N={1,2,…,n}。S是N的作业子集。在一般情况下,机器M1开始加工S中作业时,机器M2还在加工其他作业,要等时间t后才可利用。将这种情况下完成S中作业所需的最短时间记为T(S,t)。流水作业调度问题的最优值为T(N,0)。 设π是所给n个流水作业的一个最优调度,它所需的加工时间为 aπ(1)+T’。其中T’是在机器M2的等待时间为bπ(1)时,安排作业π(2),…,π(n)所需的时间。 记S=N-{π(1)},则有T’=T(S,bπ(1))。

证明:事实上,由T的定义知T’>=T(S,bπ(1))。若T’>T(S,bπ(1)),设π’是作业集S在机器M2的等待时间为bπ(1)情况下的一个最优调度。则π(1),π'(2),…,π'(n)是N的一个调度,且该调度所需的时间为 aπ(1)+T(S,bπ(1))

动态规划算法是一种经典的算法

动态规划算法是一种经典的算法,它是如此美妙的算法,值得每一个程序员拥有。但是,直到晚上看《算法导论》,才发现自己现在才全面理解它,不禁狂汗。。。 以经典的背包问题来展示动态规划算法: 代码 1 #include 2 3#define N 4 4#define W 5 5 6//物品的重量 7int w[] = {-1, 2, 1, 3, 2}; 8 9//价值数组 10int vi[] = {-1, 12, 10, 20, 15}; 11 12int v[N+1][W+1]; //v[i][j]表示从前i个物品选能够放进承重量为j的背包的子集的最大总价值 13 14void init() 15 { 16int i, j; 17for (i = 0; i <= N; i++) 18for (j = 0; j <= W; j++) 19 v[i][j] = -1; 20 21for (i = 0; i <= N; i++) 22 v[i][0] = 0; 23 24for (i=0; i <= W; i++) 25 v[0][i] = 0; 26 } 27 28 29//基于备忘录的动态规划算法 30int MKFnapsack_MEMOIZE(int i, int j) 31 { 32int value; 33if (v[i][j] < 0) //如果v[i][j]还没有计算,则进行计算 34 { 35if (j < w[i]) 36 value = MKFnapsack_MEMOIZE(i-1,j); 37else 38 { 39int v1 = MKFnapsack_MEMOIZE(i-1, j);

动态规划算法实验报告

动态规划算法实验报告

————————————————————————————————作者: ————————————————————————————————日期:

实验标题 1、矩阵连乘 2、最长公共子序列3、最大子段和 4、凸多边形最优三角剖分 5、流水作业调度 6、0-1背包问题 7、最优二叉搜索树 实验目的掌握动态规划法的基本思想和算法设计的基本步骤。 实验内容与源码1、矩阵连乘 #include #include using namespace std; const int size=4; //ra,ca和rb,cb分别表示矩阵A和B的行数和列数 void matriMultiply(int a[][4],int b[][4],int c[][4],int ra,intca,int rb,int cb) { if(ca!=rb) cerr<<"矩阵不可乘"; for(int i=0;i<ra;i++) for(int j=0;j<cb;j++) { int sum=a[i][0]*b[0][j]; for(int k=1;k

2015算法设计与分析复习试题及答案详解

1.一个算法就是一个有穷规则的集合,其中之规则规定了解决某一特殊类型问题的一系列运算,此外,算法还应具有以下五个重要特性:_________,________,________,__________,__________。 2.算法的复杂性有_____________和___________之分,衡量一个算法 好坏的标准是______________________。 3.某一问题可用动态规划算法求解的显著特征是 ____________________________________。 4.若序列X={B,C,A,D,B,C,D},Y={A,C,B,A,B,D,C,D},请给出序列X 和Y的一个最长公共子序列_____________________________。 5.用回溯法解问题时,应明确定义问题的解空间,问题的解空间至少应包含___________。 6.动态规划算法的基本思想是将待求解问题分解成若干____________,先求解___________,然后从这些____________的解得到原问题的解。 7.以深度优先方式系统搜索问题解的算法称为_____________。 8.0-1背包问题的回溯算法所需的计算时间为_____________,用动态规划算法所需的计算时间为____________。 9.动态规划算法的两个基本要素是___________和___________。 10.二分搜索算法是利用_______________实现的算法。 二、综合题(50分) 1.写出设计动态规划算法的主要步骤。 2.流水作业调度问题的johnson算法的思想。

动态规划算法实验报告

实验标题 1、矩阵连乘 2、最长公共子序列 3、最大子段和 4、凸多边形最优三角剖分 5、流水作业调度 6、0-1背包问题 7、最优二叉搜索树 实验目的掌握动态规划法的基本思想和算法设计的基本步骤。 实验内容与源码1、矩阵连乘 #include #include using namespace std; const int size=4; //ra,ca和rb,cb分别表示矩阵A和B的行数和列数 void matriMultiply(int a[][4],int b[][4],int c[][4],int ra ,int ca,int rb ,int cb ) { if(ca!=rb) cerr<<"矩阵不可乘"; for(int i=0;i

动态规划算法原理与的应用

动态规划算法原理 及其应用研究 2012年5月20日摘要:动态规划是解决最优化问题的基本方法,本文介绍了

动态规划的基本思想和基本步骤,并通过几个实例的分析,研究了利用动态规划设计算法的具体途径。关键词:动态规划多阶段决策 1.引言 规划问题的最终目的就是确定各决策变量的取值,以使目标函数达到极大或极小。在线性规划和非线性规划中,决策变量都是以集合的形式被一次性处理的;然而,有时我们也会面对决策变量需分期、分批处理的多阶段决策问题。所谓多阶段决策问题是指这样一类活动过程:它可以分解为若干个互相联系的阶段,在每一阶段分别对应着一组可供选取的决策集合;即构成过程的每个阶段都需要进行一次决策的决策问题。将各个阶段的决策综合起来构成一个决策序列,称为一■ 个策略。显然,由于各个阶段选取的决策不同,对应整个过程可以有一系列不同的策略。当过程采取某个具体策略时,相应可以得到一个确定的效果,采取不同的策略,就会得到不同的效果。多阶段的决策问题,就是要在所有可能采取的策略中选取一个最优的策略,以便得到最佳的效果。动态规划是一种求解多阶段决策问题的系统技术,可以说它横跨整个规划领域(线性规划和非线性规划)。在多阶段决策问题中,有些问题对阶段的划分具有明显的时序性,动态规划的“动态”二字也由此而得名。动态规划的主要创始人是美国数学家贝尔曼(Bellman)。20世纪40年代末50年代初,当时在兰德公司(Rand Corporation)从事研究工作的贝尔曼首先提出了动态规划的概念。1957年贝尔曼发表了数篇研究论文,并出版了他的第一部著作《动态规划》。该著作成为了当时唯一的进一步研究和应用动态规划的理论源泉。在贝尔曼及其助手们致力于发展和推广这一技术的同时,其他一些学者也对动态规划的发展做出了重大的贡献,其中最值得一提的是爱尔思(Aris)和梅特顿(Mitten )。爱尔思先后于1961年和1964年出版了两部 关于动态规划的著作,并于1964年同尼母霍思尔(Nemhause)、威尔德(Wild)一道创建了处理分枝、循环性多阶段决策系统的一般性理论。梅特顿提出了许多对动态规划后来发展有着重要意义的基础性观点,并且对明晰动态规划路径的数学性质做出了巨大的贡献。 动态规划问世以来,在工程技术、经济管理等社会各个领域都有着广泛的应用,并且获得了显著的效果。在经济管理方面,动态规划可以用来解决最优路径

算法分析作业

算法分析练习题(一) 一、选择题 1、二分搜索算法就是利用( A )实现的算法。 A、分治策略 B、动态规划法 C、贪心法 D、回溯法 2、下列不就是动态规划算法基本步骤的就是( A )。 A、找出最优解的性质 B、构造最优解 C、算出最优解 D、定义最优解 3.下列算法中通常以自底向上的方式求解最优解的就是( B )。 A、备忘录法 B、动态规划法 C、贪心法 D、回溯法 4、衡量一个算法好坏的标准就是(C )。 A 运行速度快 B 占用空间少 C 时间复杂度低 D 代码短 5、以下不可以使用分治法求解的就是(D )。 A 棋盘覆盖问题 B 选择问题 C 归并排序 D 0/1背包问题 6、实现循环赛日程表利用的算法就是( A )。 A、分治策略 B、动态规划法 C、贪心法 D、回溯法 7、备忘录方法就是那种算法的变形。( B ) A、分治法 B、动态规划法 C、贪心法 D、回溯法 8.最长公共子序列算法利用的算法就是( B )。 A、分支界限法 B、动态规划法 C、贪心法 D、回溯法 9.实现棋盘覆盖算法利用的算法就是( A )。 A、分治法 B、动态规划法 C、贪心法 D、回溯法 10、矩阵连乘问题的算法可由( B)设计实现。 A、分支界限算法 B、动态规划算法 C、贪心算法 D、回溯算法 11、Strassen矩阵乘法就是利用( A )实现的算法。 A、分治策略 B、动态规划法 C、贪心法 D、回溯法 12、使用分治法求解不需要满足的条件就是(A )。 A 子问题必须就是一样的 B 子问题不能够重复

C 子问题的解可以合并 D 原问题与子问题使用相同的方法解 13、下列算法中不能解决0/1背包问题的就是(A ) A 贪心法 B 动态规划 C 回溯法 D 分支限界法 14.实现合并排序利用的算法就是( A )。 A、分治策略 B、动态规划法 C、贪心法 D、回溯法 15.下列就是动态规划算法基本要素的就是( D )。 A、定义最优解 B、构造最优解 C、算出最优解 D、子问题重叠性质 16.下列算法中通常以自底向下的方式求解最优解的就是( B )。 A、分治法 B、动态规划法 C、贪心法 D、回溯法 17、合并排序算法就是利用( A )实现的算法。 A、分治策略 B、动态规划法 C、贪心法 D、回溯法 18.实现大整数的乘法就是利用的算法( C )。 A、贪心法 B、动态规划法 C、分治策略 D、回溯法 19、实现最大子段与利用的算法就是( B )。 A、分治策略 B、动态规划法 C、贪心法 D、回溯法 20、一个问题可用动态规划算法或贪心算法求解的关键特征就是问题的( B )。 A、重叠子问题 B、最优子结构性质 C、贪心选择性质 D、定义最优解 21、实现最长公共子序列利用的算法就是( B )。 A、分治策略 B、动态规划法 C、贪心法 D、回溯法 二、填空题 1、算法的复杂性有时间复杂性与空间复杂性之分。 2、程序就是算法用某种程序设计语言的具体实现。 3、算法的“确定性”指的就是组成算法的每条指令就是清晰的,无歧义的。 4、矩阵连乘问题的算法可由动态规划设计实现。 5、算法就是指解决问题的一种方法或一个过程。

实验三动态规划

实验二动态规划 (一)、实验目的 通过编程实现动态规划的有关算法,理解动态规划的原理,掌握动态规划基本思想与应用技巧。 (二)、实验题目与要求: 实验题目1:最长公共子序列问题的算法 若给定序列X={x1,x2,…,xm},则另一序列Z={z1,z2,…,zk}是X的子序列是指存在一个严格递增下标序列{i1,i2,…,ik}使得对于所有j=1,2,…,k 有:zj=xij。例如,序列Z={B,C,D,B}是序列X={A,B,C,B,D,A,B}的子序列,相应的递增下标序列为{2,3,5,7}。给定2个序列X和Y,当另一序列Z既是X的子序列又是Y的子序列时,称Z是序列X 和Y的公共子序列。 给定2个序列X={x1,x2,…,xm}和Y={y1,y2,…,yn},找出X和Y的最长公共子序列。 实验要求: 1.理解动态规划算法的原理,认真阅读题目。完善程序,实现该算法; 2.结果显示最长公共子序列。 实验提示: 先求最长公共子序列,X和Y的最长公共子序列的长度记录于c[m][n]中 public static int lcsLength(char [ ]x,char [ ]y,int [ ][ ]b) { int m=x.length-1; int n=y.length-1; int [][]c=new int [m+1][n+1]; for (int i = 1; i <= m; i++) c[i][0]=0; for (int i = 1; i <= n; i++) c[0][i]=0; for (int i = 1; i <= m; i++) for (int j = 1; j <= n; j++) { if (x[i]= =y[j]) { c[i][j]=c[i-1][j-1]+1; b[i][j]=1;} else if (c[i-1][j]>=c[i][j-1]) { c[i][j]=c[i-1][j]; b[i][j]=2;} else { c[i][j]=c[i][j-1]; b[i][j]=3;} } return c[m][n];

5 动态规划算法习题答案

1.最大子段和问题:给定整数序列 n a a a ,,,21 ,求该序列形如∑=j i k k a 的子段和 的最大值: ? ?? ???∑=≤≤≤j i k k n j i a 1max ,0max 1) 已知一个简单算法如下: int Maxsum(int n,int a,int& best i,int& bestj){ int sum = 0; for (int i=1;i<=n;i++){ int suma = 0; for (int j=i;j<=n;j++){ suma + = a[j]; if (suma > sum){ sum = suma; besti = i; bestj = j; } } } return sum; }试分析该算法的时间复杂性。 2) 试用分治算法解最大子段和问题,并分析算法的时间复杂性。 3) 试说明最大子段和问题具有最优子结构性质,并设计一个动态规划算法解最大子段和问题。分析算法的时间复杂度。 (提示:令1()m ax ,1,2,,j k i j n k i b j a j n ≤≤≤===∑ ) 解:1)分析按照第一章,列出步数统计表,计算可得)(2 n O 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]的最大子段和为两部分的字段和组成,即 j n j i l n i j a a a a a +++++=+?? ? ???=?? ????∑ 122;

动态规划算法

动态规划算法 基本概念 动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。 基本思想与策略 基本思想与分治法类似,也是将待求解的问题分解为若干个子问题(阶段),按顺序求解子阶段,前一子问题的解,为后一子问题的求解提供了有用的信息。 在求解任一子问题时,列出各种可能的局部解,通过决策保留那些有可能达到最优的局部解,丢弃其他局部解。依次解决各子问题,最后一个子问题就是初始问题的解。 由于动态规划解决的问题多数有重叠子问题这个特点,为减少重复计算,对每一个子问题只解一次,将其不同阶段的不同状态保存在一个二维数组中。 与分治法最大的差别是:适合于用动态规划法求解的问题,经分解后得到的子问题往往不是互相独立的(即下一个子阶段的求解是建立在上一个子阶段的解的基础上,进行进一步的求解)。 适用的情况 能采用动态规划求解的问题的一般要具有3个性质: (1)最优化原理:如果问题的最优解所包含的子问题的解也是最优的,就称该问题具有最优子结构,即满足最优化原理。 (2)无后效性:即某阶段状态一旦确定,就不受这个状态以后决策的影响。也就是说,某状态以后的过程不会影响以前的状态,只与当前状态有关。

(3)有重叠子问题:即子问题之间是不独立的,一个子问题在下一阶段决策中可能被多次使用到。(该性质并不是动态规划适用的必要条件,但是如果没有这条性质,动态规划算法同其他算法相比就不具备优势) 求解的基本步骤 动态规划所处理的问题是一个多阶段决策问题,一般由初始状态开始,通过对中间阶段决策的选择,达到结束状态。 这些决策形成了一个决策序列,同时确定了完成整个过程的一条活动路线(通常是求最优的活动路线)。如图所示。动态规划的设计都有着一定的模式,一般要经历以下几个步骤。 初始状态→│决策1│→│决策2│→…→│决策n│→结束状态 图1 动态规划决策过程示意图 (1)划分阶段:按照问题的时间或空间特征,把问题分为若干个阶段。在划分阶段时,注意划分后的阶段一定要是有序的或者是可排序的,否则问题就无法求解。 (2)确定状态和状态变量:将问题发展到各个阶段时所处于的各种客观情况用不同的状态表示出来。当然,状态的选择要满足无后效性。 (3)确定决策并写出状态转移方程:因为决策和状态转移有着天然的联系,状态转移就是根据上一阶段的状态和决策来导出本阶段的状态。所以如果确定了决策,状态转移方程也就可写出。但事实上常常是反过来做,根据相邻两个阶段的状态之间的关系来确定决策方法和状态转移方程。 (4)寻找边界条件:给出的状态转移方程是一个递推式,需要一个递推的终止条件或边界条件。

动态规划算法作业

动态规划作业 (所有算法实现代码承诺为本人自己编写并且截图为实际有效截图) 作者:吴迪 参考资料:课件ppt,百度百科 算法分析3-1 设计一个O(n2)时间的算法,找出由n个数组成的序列的最长单调递增子序列。分析:考虑一个拥有n个元素的数列{a n},欲找出其最长单调递增子序列,对于 前i-1个元素组成的单调递增序列,考虑第a i个元素,最长单调递增子序列是否应该包含这个元素?如果它在序列中不是单增的,并且能确定前面的元素都是必定选中的,那么肯定它不被选入单增序列;如果它是单增的,仍然需要考虑它后面可能出现多于一个元素的单增子序列都比它要小的情况。所以在这样的条件下,使用动态规划的方法,递归分析是合理的选择。 用数列{b i}来记录数列{a n}的最长单调递增子序列,0<=imax) max=b[i];

} 算法复杂性为0(n2)。 算法分析3-4 考虑下面的整数线性规划问题 设计一个解此问题的动态规划算法,并分析算法的计算复杂性 分析;这题是01背包问题的变种,只不过同一种物品可以重复多次放入背包(无件数限制),即所谓完全背包问题。wi对应第i件物品重量,vi对应第i件物品价值。从每种物品的角度考虑,与它相关的策略已并非取或不取两种,而是有取0件、取1件、取2件……等很多种。 状态转移方程:f[v]=max{f[v-k*c]+k*w},其中0<=k*c<= v。 完全背包问题有一个很简单有效的优化:若两件物品i、j满足c<=c[j]且w>=w[j],则将物品j去掉,不用考虑。由于有O(N*V)个状态需要求解,求解每个状态的时间则不是常数了,求解状态f[v]的时间是O(v/c),,但是由于每件物品都可能取多件,总的复杂度就超过O(VN)了。 算法分析3-7 给定一个m×n的矩形网络,设其左上角为起点S。一辆汽车从起点S出发驶向右下角终点T。网格边上的数字表示距离。在若干个网格点处设置了障碍,表示该网格点不可到达。试设计一个算法,求出汽车从起点S出发到达终点T的一条行驶路程最短的路线。 分析:用一个集合R放置最短路径的所有网格点共m*n个。 点集合中的点有其对应坐标原点(0,0)的横纵坐标x,y属性。 用一个集合T记录所有边,边集合中的边有其边长和所连接的两点, 对于mXn的矩行网络,有横向边(m+1)*n条,纵向边m*(n+1)条,。将所有边放入T集合,然后遍历去掉所有直接链接不可达点的边。剩下的就是一张可达的网格图,对于起点S和终点T,从S开始,可以采用图论的Dijkstra算法更新S到每个点的距离d。(用距离记录集合M记录S到每个点的距离。) d(u)=min(d(u),d(v k+1)+w(v k+1->u)). (u与v k+1相邻)

算法:动态规划解决流水作业问题

算法:动态规划解决流水作业问题 //3d9 动态规划流水作业调度问题 #include "stdafx.h" #include using namespace std; const int N = 5; class Jobtype { public: int operator <=(Jobtype a) const { return(key<=a.key); } int key,index; bool job; }; int FlowShop(int n,int a[],int b[],int c[]); void BubbleSort(Jobtype *d,int n);//本例采用冒泡排序 int main() { int a[] = {2,4,3,6,1}; int b[] = {5,2,3,1,7}; int c[N]; int minTime = FlowShop(N,a,b,c); cout<<"作业在机器1上的运行时间为:"<

运筹学课程作业——动态规划算法的应用

中国地质大学研究生课程论文封面 课程名称运筹学 教师姓名王广民 研究生姓名谢盼盼 研究生学号120100887 研究生专业工商管理 所在院系经济管理学院 类别: A.博士 B.硕士 C.进修生 日期: 2010 年12 月25 日

评语 注:1、无评阅人签名成绩无效; 2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效; 3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。

动态规划算法的应用 摘要:从动态规划的基本概念入手,介绍了多阶段决策问题、阶段与状态、决策与策略等一些专有名词的定义;利用一些常见的实例阐述了动态规划在设计与实现时的多样性、模式性和技巧性等特点;最后通过一个具体问题的解决过程,可以看出动态规划是一个必不可少的有利工具。通过问题描述、样例分析、算法设计、问题实现、测试结果等几个步骤详细讨论了动态规划在应用中的实现过程和思考方法,体现出在应用中相应的实践指导意义。 关键词:动态规划;算法 1引言 动态规划(Dynamic Programming)是运筹学的一个分支,是求解决策过程(Decision Process)最优化的数学方法。20世纪50年代初美国数学家R.EBellman等人在研究多阶段决策过程(Multistep Decision Process)的优化问题时,提出了著名的最优化原理(Principle of Optimality),把多阶段过程转化为一系列单阶段问题,逐个求解,创立了解决这类过程优化问题的新方法—动态规划。 动态规划问世以来,在城市规划、经济管理、生产调度、工程技术和最优控制等方面得到了广泛的应用。例如神经网络、生物有机体DNA的相似程度分析、最短路线、库存管理、资源分配、资产投资、证券交易、经营决策、企业生产物流控制、农业灌溉阅、施工计划安排、单一品种项目的生产批量问题、设备更新、最优化设计、学习方法、排序、装载等问题,用动态规划方法比用其它方法求解更为方便。动态规划主要用于求解以时间划分阶段的动态过程的优化问题,而且一些与时间无关的静态规划(如线性规划、非线性规划),只要人为地引进时间因素,把它视为多阶段决策过程,也可以用动态规划方法方便地求解。 2动态规划的基本概念 动态规划是算法设计的一种重要手段,在各行各业的程序设计中被应用得越来越普遍。因此,如何更深入地了解动态规划,从而更为有效地运用算法设计的这个有力武器,是一个值得深入研究的问题。首先来了解一些动态规划的基本概念: (1)阶段与阶段变量 将所有问题的过程,按照时间或空间特征,划分成若干个相互联系的子问题,则每个子问题称为一个阶段。用来表示阶段的变量称为阶段变量。 (2)状态与状态变量 过程中各个阶段开始时所处的客观条件或位置称为状态。 动态规划的状态具有如下性质:当某阶段状态给定后,在这阶段以后过程的发展不受这阶段以前各段状态的影响。描述各阶段所处状态的变量成为状态变量。状态变量取值的集合称为状态集合。 (3)决策与决策变量 当各段状态取定后,就可以做出不同的决定和选择,从而确定下一阶段的状态,这种决定称为决策。表示决策的变量称为决策变量。决策变量可选择的范围称为允许决策集合。(4)状态转移 前阶段的状态和决策决定了下一阶段的状态,它们之间的关系称为状态转移。 (5)策略 由阶段K=1到阶段K=n的全部过程中,每个阶段所选择的决策构成一个决策序列,称之为一个策略。 (6)后部子过程与后部子策略

动态规划算法原理及应用

动态规划算法 刘兴田 (浙江工业大学计算机学院软件工程1205班201226630512) 摘要:动态规划是解决最优化问题的基本方法,本文介绍了动态规划的基本思想和基本步骤,并通过几个实例的分析,研究了利用动态规划设计算法的具体途径。关键词:动态规划算法 Dynamic Programming Liu xingtian (Zhe Jiang University Of Technology, Computer Science and Technology Campus,Software Engineering 1205 26630512) Abstract:Dynamic Programming is the most effective way to solve the problem of optimization .This dissertation introduce the thinking of Dynamic Programming and the step to using Dynamic Programming ,it also gives some examples to help analysis Dynamic Programming and the specific method to use Dynamic Programming . Key words : Dynamic Programming , Alsgorithm 1.引言 规划问题的最终目的就是确定各决策变量的取值,以使目标函数达到极大或极小。在线性规划和非线性规划中,决策变量都是以集合的形式被一次性处理的;

算法分析与设计作业(一)与参考答案

《算法分析与设计》作业(一) 本课程作业由两部分组成。第一部分为“客观题部分”,由15个选择题组成,每题1分,共15分。第二部分为“主观题部分”,由简答题和论述题组成,共15分。作业总分30分,将作为平时成绩记入课程总成绩。 客观题部分: 一、选择题(每题1分,共15题) 1、递归算法:(C ) A、直接调用自身 B、间接调用自身 C、直接或间接调用自身 D、不调用自身 2、分治法的基本思想是将一个规模为n的问题分解为k个规模较小的字问题,这些子问题:(D ) A、相互独立 B、与原问题相同 C、相互依赖 D、相互独立且与原问题相同 3、备忘录方法的递归方式是:(C ) A、自顶向下 B、自底向上 C、和动态规划算法相同 D、非递归的 4、回溯法的求解目标是找出解空间中满足约束条件的:(A ) A、所有解 B、一些解 C、极大解 D、极小解 5、贪心算法和动态规划算法共有特点是:( A ) A、最优子结构 B、重叠子问题 C、贪心选择 D、形函数 6、哈夫曼编码是:(B) A、定长编码 B、变长编码 C、随机编码 D、定长或变长编码 7、多机调度的贪心策略是:(A) A、最长处理时间作业优先 B、最短处理时间作业优先 C、随机调度 D、最优调度 8、程序可以不满足如下性质:(D ) A、零个或多个外部输入 B、至少一个输出 C、指令的确定性 D、指令的有限性 9、用分治法设计出的程序一般是:(A ) A、递归算法 B、动态规划算法

C、贪心算法 D、回溯法 10、采用动态规划算法分解得到的子问题:( C ) A、相互独立 B、与原问题相同 C、相互依赖 D、相互独立且与原问题相同 11、回溯法搜索解空间的方法是:(A ) A、深度优先 B、广度优先 C、最小耗费优先 D、随机搜索 12、拉斯维加斯算法的一个显著特征是它所做的随机选性决策有可能导致算法:( C ) A、所需时间变化 B、一定找到解 C、找不到所需的解 D、性能变差 13、贪心算法能得到:(C ) A、全局最优解 B、0-1背包问题的解 C、背包问题的解 D、无解 14、能求解单源最短路径问题的算法是:(A ) A、分支限界法 B、动态规划 C、线形规划 D、蒙特卡罗算法 15、快速排序算法和线性时间选择算法的随机化版本是:( A ) A、舍伍德算法 B、蒙特卡罗算法 C、拉斯维加斯算法 D、数值随机化算法 主观题部分: 二、写出下列程序的答案(每题2.5分,共2题) 1、请写出批处理作业调度的回溯算法。 #include #include using namespace std; class Flowing { friend int Flow(int ** ,int ,int []); private: //int Bound(int i); void Backtrack(int t); int **M;// int *x;//当前解

算法分析作业

算法分析作业 IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】

算法分析练习题(一) 一、选择题 1、二分搜索算法是利用( A )实现的算法。 A、分治策略 B、动态规划法 C、贪心法 D、回溯法 2、下列不是动态规划算法基本步骤的是( A )。 A、找出最优解的性质 B、构造最优解 C、算出最优解 D、定义最优解3.下列算法中通常以自底向上的方式求解最优解的是( B )。 A、备忘录法 B、动态规划法 C、贪心法 D、回溯法 4、衡量一个算法好坏的标准是(C )。 A 运行速度快 B 占用空间少 C 时间复杂度低 D 代码短 5、以下不可以使用分治法求解的是(D )。 A 棋盘覆盖问题 B 选择问题 C 归并排序 D 0/1背包问题 6. 实现循环赛日程表利用的算法是( A )。 A、分治策略 B、动态规划法 C、贪心法 D、回溯法 7.备忘录方法是那种算法的变形。( B )

A、分治法 B、动态规划法 C、贪心法 D、回溯法 8.最长公共子序列算法利用的算法是( B )。 A、分支界限法 B、动态规划法 C、贪心法 D、回溯法 9.实现棋盘覆盖算法利用的算法是( A )。 A、分治法 B、动态规划法 C、贪心法 D、回溯法 10. 矩阵连乘问题的算法可由( B)设计实现。 A、分支界限算法 B、动态规划算法 C、贪心算法 D、回溯算法 11、Strassen矩阵乘法是利用( A )实现的算法。 A、分治策略 B、动态规划法 C、贪心法 D、回溯法 12、使用分治法求解不需要满足的条件是(A )。 A 子问题必须是一样的 B 子问题不能够重复 C 子问题的解可以合并 D 原问题和子问题使用相同的方法解 13、下列算法中不能解决0/1背包问题的是(A )

《算法设计与分析》考试题目与答案

《算法分析与设计》期末复习题 一、选择题 1.应用 Johnson法则的流水作业调度采用的算法是(D) A. 贪心算法 B. 分支限界法 C.分治法 D. 动态规划算法 2.Hanoi 塔问题如下图所示。现要求将塔座 A 上的的所有圆盘移到塔座 B 上,并仍按同样顺序叠置。移动圆盘时遵守Hanoi 塔问题的移动规则。由此设计出解Hanoi 塔问题的递归算法正确的为:( B) A. void hanoi(int n, int A, int C, int B) { if (n > 0) {Hanoi 塔 hanoi(n-1,A,C, B); move(n,a,b); hanoi(n-1, C, B, A); } B. void hanoi(int n, int A, int B, int C) { if (n > 0) { hanoi(n-1, A, C, B); move(n,a,b); hanoi(n-1, C, B, A); } C. void hanoi(int n, int C, int B, int A) { if (n > 0) { hanoi(n-1, A, C, B); move(n,a,b); hanoi(n-1, C, B, A); }

D. void hanoi(int n, int C, int A, int B) { if (n > 0) { hanoi(n-1, A, C, B); move(n,a,b); hanoi(n-1, C, B, A); } 3.动态规划算法的基本要素为( C) A.最优子结构性质与贪心选择性质 B.重叠子问题性质与贪心选择性质 C.最优子结构性质与重叠子问题性质 D.预排序与递归调用 4.算法分析中,记号 O 表示( B),记号表示( A),记号表示( D)。 A.渐进下界 B.渐进上界 C.非紧上界 D.紧渐进界 E.非紧下界 5.以下关于渐进记号的性质是正确的有:(A ) A. f (n)(g(n)),g(n)(h(n)) f (n)(h(n)) B. f (n)O(g(n)),g(n)O(h(n))h(n)O(f (n)) C. O(f(n))+O(g(n)) = O(min{f(n),g(n)}) D. f (n)O(g(n))g(n) O(f (n)) 6.能采用贪心算法求最优解的问题,一般具有的重要性质为:(A) A. 最优子结构性质与贪心选择性质 B.重叠子问题性质与贪心选择性质

相关文档
最新文档