湖南大学复习算法分析期末答案大题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、解答题
1.机器调度问题。
问题描述:现在有n件任务和无限多台的机器,任务可以在机器上得到处理。每件任务的开始时间为s i,完成时间为f i,s i 最优分配是指使用的机器最少的可行分配方案。 问题实例:若任务占用的时间范围是{[1,4],[2,5],[4,5],[2,6],[4,7]},则按时完成所有任务最少需要几台机器(提示:使用贪心算法)画出工作在对应的机器上的分配情况。 3. 单源最短路径的求解。 问题的描述:给定带权有向图(如下图所示)G =(V,E),其中每条边的权是非负实数。另外,还给定V中的一个顶点,称为源。现在要计算从源到所有其它各顶点的最短路长度。这里路的长度是指路上各边权之和。这个问题通常称为单源最短路径问题。 解法:现采用Dijkstra算法计算从源顶点1到其它顶点间最短路径。请将此过程填入下表中。】 3' 2¥ 1 100 30 maxint 10 - {1} \ dist[5] dist[4] dist[3] dist[2] u S 迭代 | 7. 最长公共子序列问题:给定2个序列X={x 1,x2,…,xm }和Y={y 1,y2,…,yn },找出X 和Y 的最长公共子序列。 由最长公共子序列问题的最优子结构性质建立子问题最优值的递归关系。用c[i][j]记录序列Xi 和Yj 的最长公共子序列的长度。其中, Xi={x1,x2,…,xi};Yj={y1,y2,…,yj}。当i=0或j=0时,空序列是Xi 和Yj 的最长公共子序列。故此时C[i][j]=0。其它情况下,由最优子结构性质可建立递归关系如下: 00,0[][][1][1]1 ,0;max{[][1],[1][]},0;i j i j i j c i j c i j i j x y c i j c i j i j x y ⎧==⎪ =--+>=⎨⎪-->≠⎩ 在程序中,b[i][j]记录C[i][j]的值是由哪一个子问题的解得到的。 三、算法理解 1、写出多段图最短路经动态规划算法求解下列实例的过程,并求出最优值。 各边的代价如下: C(1,2)=3, C(1,3)=5 ,C(1,4)=2 C(2,6)=8 ,C(2,7)=4 ,C(3,5)=5 ,C(3,6)=4, C(4,5)=2,C(4,6)=1 C(5,8)=4, C(6,8)=5 ,C(7,8)=6 解:Cost(4,8)=0 ~ Cost(3,7)= C(7,8)+0=6 ,D[5]=8 Cost(3,6)= C(6,8)+0=5, D[6]=8 Cost(3,5)= C(5,8)+0=4 D[7]=8 Cost(2,4)= min{C(4,6)+ Cost(3,6), C(4,5)+ Cost(3,5)} = min{1+ 5, 2+4}=6 D[4]=6 Cost(2,3)= min{C(3,6)+ Cost(3,6) } = min{4+5}=9 D[3]=5 Cost(2,2)= min{C(2,6)+ Cost(3,6), C(2,7)+ Cost(3,7)} = min{8+5, 4+6}=10 D[2]=7 ¥ Cost(1,1)= min{C(1,2)+ Cost(2,2), C(1,3)+ Cost(2,3), C(1,4)+ Cost(2,4)} = min{3+10, 5+9,2+6}= 8 D[1]=4 1→4→6→8 2、 写出maxmin 算法对下列实例中找最大数和最小数的过程。 数组 A=(48,12,61,3,5,19,32,7) 解:写出maxmin 算法对下列实例中找最大数和最小数的过程。 数组 A=() — 1、 48,12,61,3, 5,19,32,7 2、48,12 61,3 5,19 32,7 3、 48~61, 12~3 19~32,5~7 4、 61~32 3~5 5、 61 3 1、 快速排序算法对下列实例排序,算法执行过程中,写出数组A 第一次被分割的过程。 A=(65,70,75,80,85,55,50,2) 解:第一个分割元素为65 # 2、 归并排序算法对下列实例排序,写出算法执行过程。 A=(48,12,61,3,5,19,32,7) 解: 48,12,61,3 5,19,32,7 48,12 61,3 5,19 32,7 12,48 3,61 5,19 7,32 《 3, 12, 48, 61 5, 7, 19,32 3,5, 7,12,19,32,48,61 - (1) (2) (3) (4) (5) (6) (7) (8) i p 65 70 75 80 85 55 50 2 2 8 65 2 75 80 85 55 50 70 3 7 65 2 50 80 85 55 75 70 4 6 65 2 50 55 85 80 75 70 4 6 3、 写出图着色问题的回溯算法的判断X[k]是否合理的过程。 解:i ←0 while i if G[k,i]=1 and X[k]= X[i] then return false i ←i+1 repeat > if i= k then return true 4、 对于下图,写出图着色算法得出一种着色方案的过程。 解:K ←1 X[1] ←1 , 返回 true X[2]←1,返回false; X[2]←X[2]+1=2, 返回 true X[3]←1 ,返回false; X[3]←X[3]+1=2, 返回false;X[3]←X[3]+1=3, 返回 true , X[4]←1, 返回false; X[4]←X[4]+1=2, 返回false;X[4]←X[4]+1=3, 返回 true 找到一个解 (1,2,3,3) 5、 写出第7题的状态空间树。 解: / … 8、写出归并排序算法对下列实例排序的过程。