中南大学2014算法试卷及答案分析
2014年12月中南大学网络教育课程考试:算法分析与设计作业参考答案

《算法分析与设计》作业参考答案作业一一、名词解释:1.递归算法:直接或间接地调用自身的算法称为递归算法。
2.程序:程序是算法用某种程序设计语言的具体实现。
二、简答题:1.算法需要满足哪些性质?简述之。
答:算法是若干指令的有穷序列,满足性质:(1)输入:有零个或多个外部量作为算法的输入。
(2)输出:算法产生至少一个量作为输出。
(3)确定性:组成算法的每条指令清晰、无歧义。
(4)有限性:算法中每条指令的执行次数有限,执行每条指令的时间也有限。
2.简要分析分治法能解决的问题具有的特征。
答:分析分治法能解决的问题主要具有如下特征:(1)该问题的规模缩小到一定的程度就可以容易地解决;(2)该问题可以分解为若干个规模较小的相同问题,即该问题具有最优子结构性质; (3)利用该问题分解出的子问题的解可以合并为该问题的解;(4)该问题所分解出的各个子问题是相互独立的,即子问题之间不包含公共的子问题。
3.简要分析在递归算法中消除递归调用,将递归算法转化为非递归算法的方法。
答:将递归算法转化为非递归算法的方法主要有:(1)采用一个用户定义的栈来模拟系统的递归调用工作栈。
该方法通用性强,但本质上还是递归,只不过人工做了本来由编译器做的事情,优化效果不明显。
(2)用递推来实现递归函数。
(3)通过Cooper 变换、反演变换能将一些递归转化为尾递归,从而迭代求出结果。
后两种方法在时空复杂度上均有较大改善,但其适用范围有限。
三、算法编写及算法应用分析题: 1.冒泡排序算法的基本运算如下:for i ←1 to n-1 do for j ←1 to n-i do if a[j]<a[j+1] then 交换a[j]、a[j+1]; 分析该算法的时间复杂性。
答:排序算法的基本运算步为元素比较,冒泡排序算法的时间复杂性就是求比较次数与n 的关系。
(1)设比较一次花时间1;(2)内循环次数为:n-i 次,(i=1,…n ),花时间为:∑-=-=in j i n 1)(1(3)外循环次数为:n-1,花时间为:2.设计一个分治算法计算一棵二叉树的高度。
2014年校级优秀博士、硕士学位论文

博士
博士 博士 博士 博士 博士
20121224
20130702 20121224 20130702 20130702 20130702
骨髓间充质干细胞促进鼻咽癌细胞骨侵袭和骨溶蚀能力的机 病理学与病理生理学
制研究
以潮霉素为筛选标记的水稻叶绿体转化体系的建立
生物学
广义灰色分析体系建模的基本问题及其模型集群分析研究
化学生物信息学新方法及其在医药研究中的应用
制药工程
双水相萃取体系在分离纯化芦荟活性成分中的应用研究
应用化学
锂离子电池用复合型 PVDF-HFP 基聚合物电解质的制备及性能 电化学工程
研究
地图空间信息量的度量方法研究
地图制图学与地理信 息工程
基于数学形态学的大地电磁强干扰分离及应用
地球探测与信息技术
青藏高原东南部下地壳流及上地幔构造研究
氧糖剥夺/复氧(OGD/R)模型中 GOLPH3 介导高尔基体应激 (GAS)的相关机制研究
神经病学
慢性应激诱发抑郁的多巴胺能神经通路异常机制
临床心理学
MicroRNAs: The new players in mesial temporal lobe epilepsy pathogenesis in the developing brains
地球探测与信息技术
连铸保护渣结晶与传热机理研究
冶金工程
锂离子电池镍基 LiNi1-2xCoxMnxO2 正极材料的合成及改性研究 冶金物理化学
生物质能铁矿烧结的基础研究
钢铁冶金
几类分数阶微分与差分系统解的存在性与多重性
数学
论红色资源在思想政治教育中的应用
思想政治教育
基于双语言信息的多准则决策方法研究
中南大学数据结构与算法第7章图课后作业答案分解

第7章图(基础知识)习题练习答案7.1 在图7.23所示的各无向图中:(1)找出所有的简单环。
(2)哪些图是连通图?对非连通图给出其连通分量。
(3)哪些图是自由树(或森林)?答:(1)所有的简单环:(同一个环可以任一顶点作为起点)(a)1231(b)无(c)1231、2342、12341(d)无(2)连通图:(a)、(c)、(d)是连通图,(b)不是连通图,因为从1到2没有路径。
具体连通分量为:(3)自由树(森林):自由树是指没有确定根的树,无回路的连通图称为自由树:(a)不是自由树,因为有回路。
(b)是自由森林,其两个连通分量为两棵自由树。
(c)不是自由树。
(d)是自由树。
7.2 在图7.24(下图)所示的有向图中:(1) 该图是强连通的吗? 若不是,则给出其强连通分量。
(2) 请给出所有的简单路径及有向环。
(3) 请给出每个顶点的度,入度和出度。
(4) 请给出其邻接表、邻接矩阵及逆邻接表。
答:(1)该图是强连通的,所谓强连通是指有向图中任意顶点都存在到其他各顶点的路径。
(2)简单路径是指在一条路径上只有起点和终点可以相同的路径:有v1v2、v2v3、v3v1、v1v4、v4v3、v1v2v3、v2v3v1、v3v1v2、v1v4v3、v4v3v1、v3v1v4、另包括所有有向环,有向环如下:v1v2v3v1、v1v4v3v1(这两个有向环可以任一顶点作为起点和终点)(3)每个顶点的度、入度和出度:D(v1)=3ID(v1)=1OD(v1)=2D(v2)=2 ID(v2)=1OD(v2)=1D(v3)=3 ID(v3)=2OD(v3)=1D(v4)=2 ID(v4)=1OD(v4)=1(4)邻接表:(注意边表中邻接点域的值是顶点的序号,这里顶点的序号是顶点的下标值-1)vertex firstedge next┌─┬─┐┌─┬─┐┌─┬─┐0│v1│─→│ 1│─→│ 3│∧│├─┼─┤├─┼─┤└─┴─┘1│v2│─→│ 2│∧│├─┼─┤├─┼─┤2│v3│─→│ 0│∧│├─┼─┤├─┼─┤3│v4│─→│ 2│∧│└─┴─┘└─┴─┘逆邻接表:┌─┬─┐┌─┬─┐0│v1│─→│ 2│∧│├─┼─┤├─┼─┤1│v2│─→│ 0│∧│├─┼─┤├─┼─┤┌─┬─┐2│v3│─→│ 1│─→│ 3│∧│├─┼─┤├─┼─┤└─┴─┘3│v4│─→│ 0│∧│└─┴─┘└─┴─┘邻接矩阵:0 1 0 10 0 1 01 0 0 00 0 1 07.3 假设图的顶点是A,B...,请根据下述的邻接矩阵画出相应的无向图或有向图。
中南大学高等工程数学试题及参考答案.docx

中南大学专业硕士“高等工程数学Ⅰ”考试试卷(开卷)考试日期: 2014 年月日时间 100 分钟注:解答全部写在答题纸上一、填空题 ( 本题 24 分,每小题 3 分 )1111324(1)如果Ax b, A 161,矩阵 A 1, A,利用 Gauss-Seidel 迭253113344代法求解此方程组是否收敛;答案:953,收敛,212解析: || A ||1为列范数,等于各列绝对值之和的最大值,||A ||为行范数,等于各行绝对值之和的最大值, A 为严格对角占优矩阵,根据课本P143定理 5.4.12 知, Jacobi 和 G-S 均收敛。
( 2)利用迭代法求解非线性方程 f ( x) 2x e x0 的根,取初值 x0 0.5 。
给出一个根的存在区间,在该区间上收敛的迭代函数为;答案: [-1 ,0] ,g( x) 1 e x2解析:1 1 xf (1)20,f(0)10 ,故在[-10]g(x)e,根据课本P93定理 4.2.32e1可知迭代函数收敛的条件:(1)在[-1,0] 上一阶导数存在;( 2)x [1,0] ,均有 | g(x) |[-1,0];(3)| g' ( x) |max 1 ,2 1e x在[-1,0]上收敛。
故 g( x)2(3)设事件A发生的概率为p,在 n 次重复试验中事件m np近似服A 发生次数为m,当 n 充分大时,m )m(1n从的分布为;答案:N (0,1)解析:课本 P187 定理 7.2.4(4)设x1 , x2 , x3 , x4[ 1,1] ,若数值积分公式1 f (x)dx A1 f ( x1 ) A2 f ( x2 ) A3 f ( x3 )A4 f ( x4 ) 的代数精度大于11,则A1A2A3A4;答案: 21解析:令 f ( x) 1 ,可得1dx2A1 A2A3A4。
1( 5)已知y f ( x) 通过点(x i, y i), i0,1,2,3 ,则其Lagrange插值基函数l2( x);答案: l 2 ( x)(x x0 )( x x1)( x x3 ) ( x2 x0 )( x2x1 )( x2x3 )解析:课本 P20 拉格朗日插值基函数的定义(式 2.3.2)。
中南大学12级运筹学试题(附答案)

中南大学考试试题2013 --2014 学年 下 学期 时间120分钟运筹学 课程 48 学时 3 学分 考试形式: 闭 卷专业年级: 商学院12级 总分100分,占总评成绩70%一、 对下列线性规划模型12312312313123max 321142321,,0Z x x x x x x x x x x x x x x =---+≤⎧⎪-++≥⎪⎪⎨-+≤⎪⎪≥⎪⎩ (1)求上述线性规划的最优解(20分)(2) 写出上述线性规划的对偶规划模型,并求出其最化解(15分)答案及评分标准:(1)无最优解 标准化正确 5分利用对偶单纯形法,大M 法或二阶段单纯形法求解结果正确 15分 方法正确结果不正确 8-15分 使用对偶单纯形法求解 0分。
(2)12312312123123min 1134232121,,0G y y y y y y y y y y y y y y =-++-≥⎧⎪⎪--≥-⎪⎨-+≥-⎪⎪⎪≥⎩上述规划问题无解。
写出对偶单纯形 10分指出无解 5分。
二、某工厂要对一种产品制定今后三个时期的生产计划,据估计在今后的三个时期内,市场对该产品的需求量如下:假定该厂生产每批次产品的固定成本为3(千元),如不生产就为0;每单位产品成本为1(千元);每个时期生产能力所允许的最大生产批量不超过5个单位;每个时期期末未售出的产品,每单位需付存储费0.5(千元)。
还假定在第一个时期的初始库存量为0,第三个时期之末的库存量也为0。
试问该厂该如何安排各个时期的生产与库存,才能在满足市场需要的条件下,使总成本最小。
答案及评分标准:解:需求量 D1=2;D2=3;D3=4。
(1)阶段n: 1,2,3,4(2)状态Sn: S1={0}; S2=S1+X1-D1={0,1,2,3}; S3=S2+X2-D2={0,1,2,3,4};S4=S3+X3-D3={0}; (得分点:4分)(3)决策 X1={2,3,4,5}; X2={0,1,2,3,4,5}; X3={0,1,2,3,4} (得分点:3分)(4)状态转移方程:Sn+1=Sn+Xn-Dn (得分点:1分)(5)阶段指标函数:rn(Xn)=3+1*Xn+0.5Sn, Xn>0=0.5Sn, Xn=0 (得分点:2分)(6)指标函数递推方程:)]()([)(1*10*++≥+≥+=n n n n D X S X n n S f x r Min S f nn n n , 1,2=n)]([)(3303*33333x r Min S f D X S X =+≥= (得分点:2分)利用表格计算,从最后一个阶段开始, n=3时:S3+X3-D3=0, 即X3=4-S3 (得分点:2分)n=1时:S1+X1≥D1=2, 即X1≥2;X1<=5; S2=S1+X1-2=X1-2 (得分点:1最优策略为:X*={X1*,X2*,X3*}={5,0,4}(得分点:1分)Z*=16.5 (得分点:1分)三、现从A 1,A 2,A 3三个产粮区向B 1,B 2,B 3,B 4四个地区运送粮食,已知三个产粮区可提供的粮食分别为9,5,7(万吨),四个地区的粮食需求量分别为3,8,4,6(万吨),产粮地到需求地的单位运价(万元)如下表所示,请问如何调运才能使总运费最小?(15分)解:(1)用最小元素法得到初始调运方案如下:总运费:Z= 5×9 + 4×8 + 3×1 + 2×2 +3×5 +4×3 = 111(2)求得空格的检验数如下:λ11=-5,λ13=4,λ22=1,λ23=4,λ31=6,λ34=2选λ11=-5对应的空格x11入基,在x11的闭回路中,标正号的格子增加3,标负号的格子减少3,得新调运方案如下:总运费:Z= 3×2 + 5×9 +1×8 + 5×2 +3×5 +4×3 =96(3)求得新调运方案空格的检验数如下:λ13=4,λ21=5,λ22=1,λ23=4,λ31=11,λ34=2全部空格检验数均为非负,当前调运方案为最优:x11 = 3,x12 = 5,x14= 1,x24= 5,x32= 3,x33= 4Z* = 3×2 + 5×9 +1×8 + 5×2 +3×5 +4×3 =96四、有5项工作要分派给5个人完成,每人只能作一项工作,每项工作也只能由一个人完成,各人完成各项工作获得的利润见下表。
2014年考研计算机专业(基础综合)真题试卷(题后含答案及解析)

2014年考研计算机专业(基础综合)真题试卷(题后含答案及解析) 题型有:1. 单项选择题 2. 综合应用题单项选择题1-40小题,每小题2分,共80分。
下列每题给出的四个选项中,只有一个选项是最符合题目要求的。
1.下列程序段的时间复杂度是_______。
count=0;for(k=1;k<=n,k*=2)for(j=1;j<=n,j++)count++;A.O(log2n)B.O(n)C.O(nlog2n)D.O(n2)正确答案:C2.假设栈初始为空,将中缀表达式a/b+(c*d-e*f)/g转换为等价的后缀表达式的过程中,当扫描到f时,栈中的元素依次是_______。
A.+(*-B.+(-*C./+(*-*D./+-*正确答案:B3.循环队列放在一维数组A[0…M-1]中,end1指向队头元素,end2指向队尾元素的后一个位置。
假设队列两端均可进行入队和出队操作,队列中最多能容纳M-1个元素。
初始时为空。
下列判断队空和队满的条件中,正确的是_______。
A.队空:end1==end2;队满:end1==(end2+1)mod MB.队空:end1==end2;队满:end2==(end1+1)mod (M-1)C.队空:end2==(end1+1)mod M;队满:end1==(end2+1)mod MD.队空:end1==(end2+1)mod M;队满:end2==(end1+1)mod (M-1)正确答案:A4.若对如下的二叉树进行中序线索化,则结点x的左、右线索指向的结点分别是_______。
A.e、cB.e、aC.d、cD.b、a正确答案:D5.将森林F转换为对应的二叉树T,F中叶结点的个数等于_______。
A.T中叶结点的个数B.T中度为1的结点个数C.T中左孩子指针为空的结点个数D.T中右孩子指针为空的结点个数正确答案:C6.5个字符有如下4种编码方案,不是前缀编码的是_______。
计算机学科专业基础综合真题2014年

计算机学科专业基础综合真题2014年(总分:137.00,做题时间:90分钟)一、{{B}}单项选择题{{/B}}(总题数:40,分数:80.00)1.下列程序段的时间复杂度是count=0;for(k=1; k<=n; k*=2)for(j=1; j<=n; j++)count++;∙ A.O(log2n)∙ B.O(n)∙ C.O(nlog2n)∙ D.O(n2)(分数:2.00)A.B.C. √D.解析:[解析] 题目中给出了一个2层的嵌套循环,里层循环的时间复杂度是O(n),外层循环的时间复杂度是O(log2n)。
对于嵌套循环,其整体复杂度是两层循环的复杂度的乘积,因此总体的时间复杂度是D(nlog2n)。
2.假设栈初始为空,将中缀表达式a/b+(c*d-e*f)/g转换为等价的后缀表达式的过程中,当扫描到f时,栈中的元素依次是∙ A.+(*-∙ B.+(-*∙ C./+(*-*∙ D./+-*(分数:2.00)A.B. √C.D.解析:[解析] 后缀表达式为ab/cd*ef*-g/+。
根据中缀表达式a/b+(c*d-e*f)/g转换为等价的后缀表达式的过程,字母不需要入栈,只有扫描到符号时才需要入栈。
最先入栈的是“/”,当扫描完b时出栈。
接下来入栈的是“+”和“(”,然后扫描c,后面的“*”要入栈,再扫描d,然后“*”出栈。
接下来“-”入栈,扫描e,接下来的“*”入栈,接下来就扫描到f了。
此时没有出栈的有“+,(,-,*”。
3.循环队列存放在一维数组A[0..M-1]中,end1指向队头元素,end2指向队尾元素的后一个位置。
假设队列两端均可进行人队和出队操作,队列中最多能容纳M-1个元素,初始时为空。
下列判断队空和队满的条件中,正确的是∙ A.队空:end1==end2;队满:end1==(end2+1)mod M∙ B.队空:end1==end2;队满:end2==(end1+1)mod(M-1)∙ C.队空:end2==(end1+1)mod M;队满:end1==(end2+1)mod M∙ D.队空:end1=(end2+1)mod M;队满:end2==(end1+1)mod(M-1)(分数:2.00)A. √B.C.D.解析:[解析] 对于循环链表来说,队列空的条件是队头指针和队尾指针指向同一个位置,即end1==end2;队列满的条件是队尾指针指向队头指针的前一个位置,即end1==(end2+1)mod M。
中南大学大三软件专业算法设计与分析试卷及答案

中南大学20XX 学年第二学期?计算机算法设计与分析?试题院系:软件学院 专业:软件工程 年级:20XX 级一.计算题〔35分〕1.(6分) 对以下各组函数f(n)和g(n),确定f(n)=O(g(n))或f(n)=Ω(g(n))或f(n)=θ(g(n))。
(1) f(n)=3n ,g(n)=2n(2) f(n)=log n + 5,g(n)=log n 2(3) f(n)=log n ,g(n)=n答:(1) f(n) = Ω(g(n)) (2分)(2) f(n) = θ(g(n)) (2分)(3) f(n) = O(g(n)) (2分)2.〔8分〕采用动态规划策略,计算a={5,-3,7,-4,-5,9,-2,10,-3,2}的最大子段和,并给出这个最大子段和的起始下标和终止下标。
[设数组a 中的元素下标从1开始。
]要求给出过程。
答:b[1]=5;b[2]=max{b[1]+a[2],a[2]}=max{2,-3}=2b[3]=max{b[2]+a[3],a[3]}=max{9,7}=9b[4]=max{b[3]+a[4],a[4]}=max{5,-4}=5b[5]=max{b[4]+a[5],a[5]}=max{0,-5}=0b[6]=max{b[5]+a[6],a[6]}=max{9,9}=9b[7]=max{b[6]+a[7],a[7]}=max{7,-2}=7b[8]=max{b[7]+a[8],a[8]}=max{17,10}=17b[9]=max{b[8]+a[9],a[9]}=max{14,-3}=14b[10]=max{b[9]+a[10],a[10]}=max{16,2}=16(上述每两行1分,共5分)最大子段和为17〔1分〕〔假设数组下标从1开始〕起始下标:6〔1分〕,终止下标:8〔1分〕 〔假设数组下标从0开始〕起始下标:5〔0.5分〕,终止下标:7〔0.5分〕3.〔11分〕设有3件工作分配给3个人,将工作i 分配给第j 个人所花的费用为C ij ,现将为每一个人都分配1件不同的工作,并使总费用到达最小。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中南大学考试试卷2013 -- 2014学年下学期时间100分钟 2014 年6 月6日算法分析与设计课程 48 学时 3 学分考试形式:闭卷专业年级:12级计算机、信安、物联本科生,总分100分,占总评成绩70 % 注:此页不作答题纸,请将答案写在答题纸上一、简答题(本题30分,每小题5分)1、陈述算法在最坏情况下的时间复杂度和平均时间复杂度;这两种评估算法复杂性的方法各自有什么实际意义?1最坏情况下的时间复杂度称最坏时间复杂度。
一般不特别说明,讨论的时间复杂度均是最坏情况下的时间复杂度。
意义:最坏情况下的时间复杂度是算法在任何输入实例上运行时间的上界,这就保证了算法的运行时间不会比任何更长2平均时间复杂度是指所有可能的输入实例均以等概率出现的情况下,算法的期望运行时间。
意义:在输入不同的情况下算法的运行时间复杂度可能会发生变化。
平均时间复杂度给出了算法的期望运行时间,有助于算法好坏的评价以及在不同算法之间比较时有一个统一标准2、简单描述分治法的基本思想。
分治法的基本思想是将一个规模为n的问题分解为k个规模较小的子问题,这些子问题互相独立且与原问题相同。
递归地解这些子问题,然后将各个子问题的解合并得到原问题的解。
3、何谓最优子结构性质?如果问题的最优解所包含的子问题的解也是最优的,我们就称该问题具有最优子结构性质(即满足最优化原理)。
最优子结构性质为动态规划算法解决问题提供了重要线索。
4、何谓P、NP、NPC问题P(Polynomial问题):也即是多项式复杂程度的问题。
NP就是Non-deterministic Polynomial的问题,也即是多项式复杂程度的非确定性问题。
NPC(NP Complete)问题,这种问题只有把解域里面的所有可能都穷举了之后才能得出答案,这样的问题是NP里面最难的问题,这种问题就是NPC问题。
5、试比较回溯法与分支限界法。
1、引言1.1回溯法回溯法在问题的解空间树中,按深度优先策略,从根结点出发搜索解空间树。
算法搜索至解空间树的任意一点时,先判断该结点是否包含问题的解。
如果肯定不包含,则跳过对该结点为根的子树的搜索,逐层向其祖先结点回溯;否则,进入该子树,继续按深度优先策略搜索。
这种以深度优先方式系统搜索问题解的算法称为回溯法。
1.2分支限界法分支限界法是以广度优先或以最小耗费优先的方式搜索解空间树,在每一个活结点处,计算一个函数值,并根据函数值,从当前活结点表中选择一个最有利的结点作为扩展结点,使搜索朝着解空间上有最优解的分支推进,以便尽快地找出一个最优解,这种方法称为分支限界法。
2、回溯法的基本思想用回溯法解问题时,应明确定义问题的解空间。
问题的解空间至少应包含问题的一个解。
之后还应将解空间很好的组织起来,使得能用回溯法方便的搜索整个解空间。
在组织解空间时常用到两种典型的解空间树,即子集树和排列树。
确定了解空间的组织结构后,回溯法从开始结点出发,以深度优先方式搜索整个解空间。
这个开始结点成为活结点,同时也成为当前的扩展结点。
在当前的扩展结点处,搜索向纵深方向移至一个新结点。
这个新结点就成为新的活结点,并成为当前扩展结点。
如果在当前的扩展结点处不能再向纵深方向移动,则当前扩展结点就成为死结点。
此时,应往回移动至最近的一个活结点处,并使这个活结点成为当前的扩展结点。
回溯法以这种工作方式递归的在解空间中搜索,直至找到所要求的解或解空间中已无活结点时为止。
3、分支限界法的基本思想用分支限界法解问题时,同样也应明确定义问题的解空间。
之后还应将解空间很好的组织起来。
分支限界法也有两种组织解空间的方法,即队列式分支限界法和优先队列式分支限界法。
两者的区别在于:队列式分支限界法按照队列先进先出的原则选取下一个节点为扩展节点,而优先队列式分支限界法按照优先队列中规定的优先级选取优先级最高的节点成为当前扩展节点。
分支限界法常以广度优先或以最小耗费优先的方式搜索问题的解空间树。
在分支限界法中,每一个活结点只有一次机会成为扩展结点。
活结点一旦成为扩展结点,就一次性产生其所有儿子结点。
在这些儿子结点中,导致不可行解或导致非最优解的儿子结点被舍弃,其余儿子结点被加入活结点表中。
此后,从活结点表中取下一结点成为当前扩展结点,并重复上述结点扩展过程。
这个过程一直持续到找到所需的解或活结点表为空时为止。
4、回溯法的设计原理在设计一个回溯算法时,通常按照以下步骤进行:(1)针对所给问题,定义问题的解空间;(2)确定易于搜索的解空间结构;(3)以深度优先方式搜索解空间,并在搜索过程中用剪枝函数避免无效搜索。
在一般情况下用递归方法实现回溯法的基本框架如下:void backtrack (int t){if (t>n)output(x);elsefor (int i=f(n,t);i<=g(n,t);i++){x[t]=h(i);if (constraint(t)&&bound(t))backtrack(t+1);}}其中:t表示递归深度,output(x)记录或输出得到的可行解x,f(n,t)和g(n,t)分别表示在当前扩展结点处未搜索过的子树的起始编号和终止编号,h(i)表示当前扩展结点处的第i个可选值,constraint(t)和bound(t)表示当前扩展结点的约束函数和限界函数。
5、分支限界法的设计原理在设计一个分支限界算法时,通常按照以下步骤进行:(1)针对所给问题,定义问题的解空间;(2)确定易于搜索的解空间结构;(3)以广度优先方式搜索解空间,并在搜索过程中用剪枝函数避免无效搜索。
6、回溯法与分支限界法的差异及应用回溯法与分支定界法都是在问题的解空间上搜索问题解的算法。
但是两者是有区别的:首先,求解目标不同:一般而言,回溯法的求解目标是找出解空间树中满足约束条件的所有解,而分支限界法的求解目标则是尽快地找出满足约束条件的一个解。
其次,搜索方法不同:由于求解目标不同,导致分支限界法与回溯法对解空间的搜索方式也不同,回溯法采用深度优先方法搜索解空间,而分支限界法一般采用用广度优先或以最小耗费优先的方式搜索解空间。
再次,对扩展结点的扩展方式不同:在搜索解空间书中两者的主要区别在于它们对当前扩展结点所采用的扩展方式不同。
在回溯法中,如果当前的扩展结点不能够再向纵深方向移动,则当前扩展结点就成为死结点,此时应回溯到最近的一个活结点处,并使此活结点成为扩展结点。
而在分支限界法中,每一个活结点只有一次机会成为扩展结点。
活结点一旦成为扩展结点,就一次性产生其所有儿子结点。
最后,存储空间的要求不同:分支限界法的存储空间比回溯法大得多,因此当内存容量有限时,回溯法成功的可能性更大。
下面结合具体的实例来说明何种情况下比较适合采用回溯法,何种情况下比较适合采用分支限界法:适合采用回溯法的问题:最典型的代表如n后问题,即在n*n个格的棋盘上放置彼此不受攻击的n个皇后。
按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。
对于n后问题,解与解之间不存在优劣的区别。
必须要搜索到叶节点时才能确定出一组解。
这种情况下,我们采用回溯法来解决时,采用排列树的解空间结构,在最坏的情况下,其堆栈的深度不会超过n。
而采用分支限界法时,由于解之间不存在优劣关系,故不可能用限界函数剪枝,需要较大的存储空间。
适合采用分支限界法的问题:最典型的代表如布线问题,即印刷电路板将布线区域划分成n*m个方格阵列。
要求确定连接方格a的中点到方格b的中点的最短布线方案。
在布线时,电路只能沿直线或直角布线。
为了避免线路相交,已布了线的方格做了封锁标记,其他线路不允许穿过被封锁的方格。
此问题,如果采用回溯法来解决时,为了找到最短路径,必须把整个区域的所有路径逐一搜索后才能得到最优解,这使得算法效率较低。
而如果用分支限界法来解决,则可以保证找到的解是最短的布线方案,因为如果存在一条由a至b的更短的路径,b结点一定会更早地被加入到活结点队列中并得到处理。
6、贪心法是一种通过多步选择,试图获得最优解的方法。
贪心法每次选择的原则是什么?请举例说明。
设计贪心算法的三个步骤将最优化问题转化为这样的形式:对其做出一次选择后,只剩下一个子问题需要求解(比较重要的一步)证明作出贪心选择后,原问题总是存在最优解,即贪心选择总是安全的证明作出贪心选择后,剩余的子问题满足性质:其最优解与贪心选择组合即可得到原问题的最优解,这样就得到了最优子结构两个关键因素1. 贪心选择性质:可以通过做出局部最优(贪心)选择来构造全局最优解;即每个步骤做出贪心选择能生成全局最优解【视不同具体问题进行证明,没有普遍适用的方法】2. 最优子结构:一个问题的最优解包含其子问题的最优解经典最优化问题的两个变形0-1背包问题:一个正在抢劫的小偷发现了n个商品,第i个商品价值vi美元,重wi 磅,vi和wi都是整数;小偷想尽可能拿走价值更多的商品,但是他的背包最多能容纳W磅的商品,W是一个整数【对每个商品,不能拿走一部分,要么完整拿走,要么留下)分数背包问题:条件和0-1背包问题一样,但对每个商品,小偷可以拿走一部分两个问题都有最优子结构,很相似,但是贪心算法可以求解分数背包问题,而不能求解0-1背包问题分数背包问题:计算每个商品的每磅价值vi/wi,每次选择每磅价值最高的商品即可0-1背包问题:因为小偷无法装满背包,空闲空间降低了方案的有效每磅价值;当我们考虑一个商品食肉装入背包,需要比较包含此商品的子问题的解和不包含它的子问题的解,然后才能做出选择当然,由于两个问题都有最优子结构,所以能用动态规划算法进行求解。
////////////////////////////拓展////////////////////////////////////////////////////////////////////////////////////////////////////////二、简答题(本题25分,每小题5分)1、简单描述分治法的基本思想。
2、简述动态规划方法所运用的最优化原理。
3、何谓最优子结构性质?4、简单描述回溯法基本思想。
5、何谓P、NP、NPC问题二、简答题(本题25分,每小题5分)1、分治法的基本思想是将一个规模为n的问题分解为k个规模较小的子问题,这些子问题互相独立且与原问题相同;对这k个子问题分别求解。
如果子问题的规模仍然不够小,则再划分为k个子问题,如此递归的进行下去,直到问题规模足够小,很容易求出其解为止;将求出的小规模的问题的解合并为一个更大规模的问题的解,自底向上逐步求出原来问题的解。
2、“最优化原理”用数学化的语言来描述:假设为了解决某一优化问题,需要依次作出n个决策D1,D2,…,Dn,如若这个决策序列是最优的,对于任何一个整数k,1 < k < n,不论前面k个决策是怎样的,以后的最优决策只取决于由前面决策所确定的当前状态,即以后的决策Dk+1,Dk+2,…,Dn也是最优的。