中科院自动化所博士2006 算法设计与分析

合集下载

2017-2018年中国科学院自动化研究所考博试题 模式识别

2017-2018年中国科学院自动化研究所考博试题 模式识别

第1页 共2页
6. (20 分) 在一个模式识别问题中,有下列 8 个样本,每个样本为一个二维特征向量: (4, 1),(2, 1),(4, 1),(2, 1),(4,1),(2, 1),(4, 1),(2, 1)。其中,括号内的第 一个数据表示该样本点的第一个特征,括号内的第二个数据表示该样本点的第二个特 征。 (1) 现在考虑对这 8 个样本进行聚类。采用 C 均值聚类算法,并假定聚类中心的个数为 2,两个初始聚类点分别为(-5,0)和(5,0)。根据上述初始条件,请写出 C 均值聚类算 法的计算步骤,并给出最后的聚类中心;(10 分) (2) 对上述 8 个样本,假设前 4 个样本属于第一类,后 4 个样本属于第二类,现在要求 只使用一个特征达到这样的分类目的。请给出一种特征选择方法,并给出计算过程 和结果。(10 分)
x6=(5, 3)T 。请完成如下任务: (1)、写出线性支持向量机需要求解的原问题和对偶问题(不要求进行求解);(10 分) (2)、当软间隔惩罚参数 C 取值很大时,定性地画出所得到的分类决策面,并解释原因;
(提示:先将 6 个样本点在答题纸上画出,然后画出分类决策面)(3 分) (3)、当软间隔惩罚参数 C 取值很小时,定性地画出所得到的分类决策面,并解释原因。
科目名称:模式识别
第2页 共2页
中国科学院自动化研究所
2018 年招收攻读博士学位研究生入学统一考试试卷 科目名称:模式识别
考生须知:
1. 本试卷满分为 100 分,全部考试时间总计 180 分钟。 2. 所有答案必须写在答题纸上,写在试题纸上或草稿纸上一律无效。
1. (10 分 ). 对 于 c 类 分 类 问 题 , 假 定 各 类 条 件 概 率 密 度 函 数 均 为 多 元 正 态 分 布 p(x | i ) ~ N(μi , Σi ), i 1, 2, , c ,其中,xRd 表示数据的特征向量,i 和i 分别为第 i 类的均值向量和协方差矩阵,i 代表第 i 个类别。在最小错误率贝叶斯决策的框架下,请完

2013年中国科学院自动化研究所考博真题 算法设计与分析

2013年中国科学院自动化研究所考博真题 算法设计与分析

2/2
中国科学院自动化研究所 2013 年招收攻读博士学位研究生入学考试题
考试科目: 算法设计与分析
(共 2 页,6 个大题,满分 100 分,时间为 3 个小时) 说明:设计算法可以用类程序语言描述。 1. 完成下列各题 (本题包括 6 个小题,满分 30 分) : (1) 简述下面程序段的功能: Status algo1(Stack S, int e) { Stack T; int d; InitStack(T); while (! StackEmpty(S)) { pop (S, d); if (d != e) push(T, d); } while (! StackEmpty(T)) { pop (T, d); push (S, d); } } (2) 简述下列函数的功能: void algo2(SString &Sub, SString S, int pos, int len) { if (pos < 1 || pos > S[0] || len < 0 || len > S[0] – pos +1) return ERROR; Sub[1 .. len] = S[pos .. pos + len - 1]; Sub[0] = len; return OK; }
B
A
C: 问结点 A 和 E 的度分别为多少?该树的度为多少? 请画出 3 个结点的树的所有形态。
E
图1
1/2
(4) 有如图 2 所示的图 G,请给出 G 的强连通分量。
1 6 2 3
5
4
图2 (5) 假设有二维数组 A6×8,每个元素用相邻的 6 个字节存储,存储器按字节 编址。已知 A 的起始存储位置(基地址)为 1000,请计算: (a) 数组 A 的存储容量; (b) 数组 A 的最后一个元素 a57 的第一个字节的地址; (c) 按列存储时,元素 a47 的第一个字节的地址。 (6) 有如下关键字序列:(45, 24, 53, 12, 37, 93)。请画出其二叉排序树。假设 6 个记录的查找概率相等,均为 1/6,分析该二叉排序树的平均查找长度。 2. 设一顺序表 va 中的元素非递减有序。请设计一个算法将 x 插入到顺序表的适 当位置上,以保持该表的有序性。 (本题满分 10 分) 3. 算术四则运算的基本规则是:先乘除,后加减;从左到右;先括号内,后括 号外。请设计一个算法,接受键盘输入的任意一个四则运算表达式,给出其 运算结果。 (本题满分 15 分) 4. 请编写算法实现串的替换操作 Replace(&S, T, V),即用串 V 置换串 S 中所有 与 T 相同的子串后,构成一个新串。 (本题满分 15 分) 5. 请写出折半查找算法,然后将其改写成递归算法。 (本题满分 15 分) 6. 给定一个无向图 G (V , E) ,如果 U V ,且对任意的 u, v U 有 (u, v) E , 则称 U 是 G 的一个完全子图。G 的完全子图 U 是 G 的一个团,当且仅当 U 不包含在 G 的更大的完全子图中。 G 的最大团是指 G 中所含顶点数最多的团。 请设计一个算法求解最大团问题。 (本题满分 15 分)

算法设计与分析试卷及答案

算法设计与分析试卷及答案

算法设计与分析1、(1) 证明:O(f)+O(g)=O(f+g)(7分)(2) 求下列函数的渐近表达式:(6分)① 3n 2+10n;② 21+1/n;2、对于下列各组函数f(n)和g(n),确定f(n)=O(g(n))或f(n)=Ω(g(n))或f(n)=θ(g(n)),并简述理由。

(15分)(1);5log )(;log )(2+==n n g n n f (2);)(;log )(2n n g n n f == (3);log )(;)(2n n g n n f == 3、试用分治法对数组A[n]实现快速排序。

(13分)4、试用动态规划算法实现最长公共子序列问题。

(15分)5、试用贪心算法求解汽车加油问题:已知一辆汽车加满油后可行驶n 公里,而旅途中有若干个加油站。

试设计一个有效算法,指出应在哪些加油站停靠加油,使加油次数最少。

(12分)6、试用动态规划算法实现下列问题:设A 和B 是两个字符串。

我们要用最少的字符操作,将字符串A 转换为字符串B ,这里所说的字符操作包括:(1)删除一个字符。

(2)插入一个字符。

(3)将一个字符改为另一个字符。

将字符串A 变换为字符串B 所用的最少字符操作数称为字符串A 到B 的编辑距离,记为d(A,B)。

试设计一个有效算法,对任给的两个字符串A 和B ,计算出它们的编辑距离d(A,B)。

(16分)⎣⎦2/)(;3)(i i g i i f ==。

对于给定的两个整数n 和m ,要求用最少的变换f 和g 变换次数将n 变为m 。

(16分)1、⑴证明:令F(n)=O(f),则存在自然数n 1、c 1,使得对任意的自然数n ≥n 1,有:F(n)≤c 1f(n)……………………………..(2分)同理可令G(n)=O(g),则存在自然数n 2、c 2,使得对任意的自然数n ≥n 2,有:G(n)≤c 2g(n)……………………………..(3分)令c 3=max{c 1,c 2},n 3=max{n 1,n 2},则对所有的n ≥n 3,有: F(n)≤c 1f(n)≤c 3f(n)G(n)≤c 2g(n)≤c 3g(n)……………………………..(5分) 故有:O(f)+O(g)=F(n)+G(n)≤c 3f(n)+c 3g(n)=c 3(f(n)+g(n)) 因此有:O(f)+O(g)=O(f+g)……………………………..(7分) ⑵ 解:① 因为;01033)103(lim 222=+-+∞→n n n n n n 由渐近表达式的定义易知: 3n 2是3n 2+10n 的渐近表达式。

《算法设计与分析》(全)

《算法设计与分析》(全)
巢湖学院计算机科学与技术系
1.1、算法与程序
程序:是算法用某种程序设计语言的具体实现。 程序可以不满足算法的性质(4)。 例如操作系统,是一个在无限循环中执行的程序, 因而不是一个算法。 操作系统的各种任务可看成是单独的问题,每一个 问题由操作系统中的一个子程序通过特定的算法来实 现。该子程序得到输出结果后便终止。
渐近分析记号的若干性质
(1)传递性: ➢ f(n)= (g(n)), g(n)= (h(n)) f(n)= (h(n)); ➢ f(n)= O(g(n)), g(n)= O (h(n)) f(n)= O (h(n)); ➢ f(n)= (g(n)), g(n)= (h(n)) f(n)= (h(n)); ➢ f(n)= o(g(n)), g(n)= o(h(n)) f(n)= o(h(n)); ➢ f(n)= (g(n)), g(n)= (h(n)) f(n)= (h(n)); (2)反身性: ➢ f(n)= (f(n));f(n)= O(f(n));f(n)= (f(n)). (3)对称性: ➢ f(n)= (g(n)) g(n)= (f(n)) . (4)互对称性: ➢ f(n)= O(g(n)) g(n)= (f(n)) ; ➢ f(n)= o(g(n)) g(n)= (f(n)) ;
巢湖学院计算机科学与技术系
渐近分析记号的若干性质
规则O(f(n))+O(g(n)) = O(max{f(n),g(n)}) 的证明: ➢ 对于任意f1(n) O(f(n)) ,存在正常数c1和自然数n1,使得对
所有n n1,有f1(n) c1f(n) 。 ➢ 类似地,对于任意g1(n) O(g(n)) ,存在正常数c2和自然数
巢湖学院计算机科学与技术系
第1章 算法引论

算法设计与分析复习题目及答案

算法设计与分析复习题目及答案

分治法1、二分搜索算法是利用(?分治策略)实现的算法。

9. 实现循环赛日程表利用的算法是(分治策略)27、Strassen矩阵乘法是利用(分治策略?)实现的算法。

34.实现合并排序利用的算法是(分治策略)。

实现大整数的乘法是利用的算法(?分治策略)。

17.实现棋盘覆盖算法利用的算法是(分治法)。

29、使用分治法求解不需要满足的条件是(子问题必须是一样的)。

不可以使用分治法求解的是(0/1背包问题)。

动态规划下列不是动态规划算法基本步骤的是(构造最优解)下列是动态规划算法基本要素的是(子问题重叠性质)。

下列算法中通常以自底向上的方式求解最优解的是(动态规划法?)备忘录方法是那种算法的变形。

(动态规划法)最长公共子序列算法利用的算法是(?动态规划法)。

矩阵连乘问题的算法可由(动态规划算法B)设计实现。

实现最大子段和利用的算法是(??动态规划法?? )。

贪心算法能解决的问题:单源最短路径问题,最小花费生成树问题,背包问题,活动安排问题,不能解决的问题:N皇后问题,0/1背包问题是贪心算法的基本要素的是(贪心选择性质和最优子结构性质)。

回溯法回溯法解旅行售货员问题时的解空间树是(排列树)。

剪枝函数是回溯法中为避免无效搜索采取的策略回溯法的效率不依赖于下列哪些因素(确定解空间的时间)分支限界法最大效益优先是(?分支界限法)的一搜索方式。

分支限界法解最大团问题时,活结点表的组织形式是(?最大堆)。

分支限界法解旅行售货员问题时,活结点表的组织形式是(最小堆)优先队列式分支限界法选取扩展结点的原则是(结点的优先级)在对问题的解空间树进行搜索的方法中,一个活结点最多有一次机会成为活结点的是( 分支限界法).从活结点表中选择下一个扩展结点的不同方式将导致不同的分支限界法,以下除( 栈式分支限界法)之外都是最常见的方式.(1)队列式(FIFO)分支限界法:按照队列先进先出(FIFO)原则选取下一个节点为扩展节点。

(2)优先队列式分支限界法:按照优先队列中规定的优先级选取优先级最高的节点成为当前扩展节点。

算法设计与分析王晓东

算法设计与分析王晓东

习题2-1 求下列函数的渐进表达式:3n^2+10n; n^2/10+2n; 21+1/n; logn^3; 10 log3^n 。

解答:3n^2+10n=O(n^2),n^2/10+2^n=O(2^n),21+1/n=O(1),logn^3=O(logn),10log3^n=O(n).习题2-3 照渐进阶从低到高的顺序排列以下表达式:n!,4n^2,logn,3^n,20n,2,n^2/3。

解答:照渐进阶从高到低的顺序为:n!、3^n、4n^2 、20n、n^2/3、logn、2习题2-4(1)假设某算法在输入规模为n时的计算时间为T(n)=3*2^n。

在某台计算机上实现并完成该算法的时间为t秒。

现有另外一台计算机,其运行速度为第一台计算机的64倍,那么在这台新机器上用同一算法在t秒内能解输入规模为多大的问题?(2)若上述算法的计算时间改进为T(n)=n^2,其余条件不变,则在新机器上用t秒时间能解输入规模多大的问题?(3)若上述算法的计算时间进一步改进为,其余条件不变,那么在新机器上用t秒时间能解输入规模多大的问题?解答:(1)设能解输入规模为n1的问题,则t=3*2^n=3*2^n/64,解得n1=n+6(2)n1^2=64n^2得到n1=8n(3)由于T(n)=常数,因此算法可解任意规模的问题。

习题2-5 XYZ公司宣称他们最新研制的微处理器运行速度为其竞争对手ABC公司同类产品的100倍。

对于计算复杂性分别为n,n^2,n^3和n!的各算法,若用ABC公司的计算机能在1小时内能解输入规模为n的问题,那么用XYZ公司的计算机在1小时内分别能解输入规模为多大的问题?解答:n'=100nn'^2=100n^2得到n'=10nn'^3=100n^3得到n'=4.64nn'!=100n!得到n'<n+log100=n+6.64习题2-6对于下列各组函数f(n)和g(n),确定f(n)=O(g(n))或f(n)=Ω(g(n))或f(n)=θ(g(n)),并简述理由。

中科院计算机算法设计与分析各章作业+历年习题

中科院计算机算法设计与分析各章作业+历年习题

5.下面那些规则是正确的?为什么? 1). f (n) O( F (n)), g (n) O(G(n)) f (n) / g (n) O( F (n) / G(n)) ;错 2). f (n) O( F (n)), g (n) O(G(n)) f (n) / g (n) ( F (n) / G(n)) ;错 3). f (n) O( F (n)), g (n) O(G(n)) f (n) / g (n) ( F (n) / G(n)) ;错 4). f (n) ( F (n)), g (n) (G(n)) f (n) / g (n) ( F (n) / G(n)) ;错 5). f (n) ( F (n)), g (n) (G(n)) f (n) / g (n) ( F (n) / G(n)) 。错 6).
7
对顶点个数进行归纳。 当顶点数|v(D)|=2 时,因为每个点的入度和出度相等,易得构成有向 Euler 环游。 假设顶点数|v(D)|=k 时结论成立,则 当顶点数|v(D)|=k + 1 时,任取 v∈v(D).设 S={以 v 为终点的边},K={以 v 为始点的边},因为 v 的入度和出度相等,故 S 和 K 中边数相等。记 G=D-v.对 G 做如下操作: 任取 S 和 K 中各一条边 e1、e2 ,设在 D 中 e1 v1v , e2 vv2 ,则对 G 和 S 做如下操作 G G v1v2 , S S {e2} ,重复此步骤直到 S 为空。这个过程最终 得到的 G 有 k 个顶点,且每个顶点的度与在 G 中完全一样。由归纳假设,G 中 存在有向 Euler 环游,设为 C。在 G 中从任一点出发沿 C 的对应边前行,每当遇 到上述添加边 v1v2 时, 都用对应的两条边 e1, e2 代替, 这样可以获得有向 Euler 环游。 3)G 是至少有三个顶点的无向图,则 G 包含 Euler 环游等价于 G 中无奇度顶 点。 (即任意顶点的度为偶数) 。 3. 设 G 是具有 n 个顶点和 m 条边的无向图, 如果 G 是连通的, 而且满足 m = n-1, 证明 G 是树。

【分析】算法分析与设计作业参考答案

【分析】算法分析与设计作业参考答案

【关键字】分析《算法分析与设计》作业参考答案作业一一、名词解释:1.递归算法:直接或间接地调用自身的算法称为递归算法。

2.程序:程序是算法用某种程序设计语言的具体实现。

2、简答题:1.算法需要满足哪些性质?简述之。

算法是若干指令的有穷序列,满足性质:1)输入:有零个或多个外部量作为算法的输入。

2)输出:算法产生至少一个量作为输出。

3)确定性:组成算法的每条指令清晰、无歧义。

4)有限性:算法中每条指令的执行次数有限,执行每条指令的时间也有限。

2.简要分析分治法能解决的问题具有的特征。

分析分治法能解决的问题主要具有如下特征:1)该问题的规模缩小到一定的程度就可以容易地解决;2)该问题可以分解为若干个规模较小的相同问题,即该问题具有最优子结构性质;3)利用该问题分解出的子问题的解可以合并为该问题的解;4)该问题所分解出的各个子问题是相互独立的,即子问题之间不包含公共的子问题。

3.简要分析在递归算法中消除递归调用,将递归算法转化为非递归算法的方法。

将递归算法转化为非递归算法的方法主要有:1)采用一个用户定义的栈来模拟系统的递归调用工作栈。

该方法通用性强,但本质上还是递归,只不过人工做了本来由编译器做的事情,优化效果不明显。

2)用递推来实现递归函数。

3)通过Cooper变换、反演变换能将一些递归转化为尾递归,从而迭代求出结果。

后两种方法在时空复杂度上均有较大改善,但其适用范围有限。

三、算法编写及算法应用分析题:1.冒泡排序算法的基本运算如下:for i ←1 to n-1 dofor j ←1 to n-i doif a[j]<a[j+1] then交换a[j]、a[j+1];分析该算法的时间复杂性。

解答:排序算法的基本运算步为元素比较,冒泡排序算法的时间复杂性就是求比较次数与n的关系。

1)设比较一次花时间1;2)内循环次数为:n-i次,(i=1,…n),花时间为:3)外循环次数为:n-1,花时间为:2.设计一个分治算法计算一棵二叉树的高度。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

中国科学院自动化研究所
2006年招收攻读博士学位研究生入学统一考试试题 科目名称:算法设计与分析
考生须知:
1.本试卷满分为100分,全部考试时间总计180分钟。

2.所有答案必须写在答题纸上,写在试题纸上或草稿纸上一律无效。

(共两页,六个大题,满分100分)
1.完成下列各题[25分]:
(1) 下列算法求一个十进制正整数在二进制表示中的二进制数字的个数:
Binary(n) /* n为十进制正整数 */
count← 1
while n > 1 do
count←count +1
n←
⎣⎦2/n
return count
请问该算法的循环次数大约是多少?n>1时,比较运算次数为多少?
(2) 请写一个递归函数计算二叉树的高度(只有一个根结点的二叉树的高度为1)。

(3) 从空的二叉树开始,根据字典顺序(注意,“he”< “toss”, “tea”< “teach”),严格按照A VL树(或“称平衡的二叉检索树”,“平衡的二
叉排序树”)插入算法,依次插入he、tea、teach、twin、hot、toss这
6个关键码。

请画出插入所有结点后的A VL树。

(4) 对于环状的链式队列,写出计算队列元素个数的程序。

(5) Fibonacci序列为0,1,1,2,3,5,8,13,21,…其中,每个元素是前两个元素之和。

请设计一个计算该序列任意元素的递归过程。

2.一个n个节点的有向图的传递闭包可以定义为一个n阶布尔矩阵T,使得当
第i 个顶点到第j 个顶点的路径长度为正时,T [i , j ]=1;否则,T [i , j ]=0(n j i ≤≥,1)。

请设计一个算法来求该传递闭包,并分析你设计的算法的时间复杂度。

[10分]
3. 给定由n 个整数(可能为负整数)组成的序列n a a a ,,,21L ,给出动态规划算
法求该序列形如∑=j
i k k a 的子段和的最大值,并说明算法的时间代价和空间代
价。

当所有整数均为负整数时定义其最大子段和为0。

依此定义,所求的最优值为}max ,0max{1∑=≤≤≤j i k k n j i a 。

例如,当)
2,5,13,4,11,2().,.,,(654321
−−−−=a a a a a a 时,最大子段和为204
2=∑=k k a 。

[15分]
4. 给定n 种物品和一个袋子,物品i 的重量是w i ,其价值为v i ,袋子的容量为
c 。

物品i 装入袋子时可以选择物品i 的一部分,而不一定全部装入袋子。

请问:如何选择装入袋子的物品,使得装入袋子中物品的总价值最大?要求:(1)给出该问题的形式化描述;(2)给出算法描述;(3)给出算法的时间复杂度。

[15分]
5. 一个长度为n 的有序序列加入k 个新元素(k << n )
,假设这k 个新元素随机地分布于整个序列中。

请编写算法对插入新元素后的序列排序,并分析该算法的时间代价和空间代价。

[15分]
6. 设A 和B 是两个字符串。

对于字符串可以执行如下操作:
(1) 删除一个字符;(2)插入一个字符;(3)将一个字符替换成另外一个
字符。

利用上面的三种操作可以将字符串A 转换成字符串B 。

这种转换所需要的最少的字符串操作次数称为字符串A 到B 的编辑距离,记为d(A, B)。

请设计一个算法,对任意给定的两个字符串A 和B ,计算出他们的编辑距离d(A, B)。

[20分]。

相关文档
最新文档