递归算法的优缺点.doc
文本预览下载声明
递归算法的优缺点:
优点:结构清晰,可读性强,而且容易用数学归纳法来证明算法的正确性,因此它为设计算法、调试程序带来很大方便。
缺点:递归算法的运行效率较低,无论是耗费的计算时间还是占用的存储空间都比非递归算法要多。
边界条件与递归方程是递归函数的二个要素
应用分治法的两个前提是问题的可分性和解的可归并性
以比较为基础的排序算法的最坏倩况时间复杂性下界为0(n·log2n)。
回溯法以深度优先的方式搜索解空间树T,而分支限界法则以广度优先或以最小耗费优先的方式搜索解空间树T。
舍伍德算法设计的基本思想
设A是一个确定性算法,当它的输入实例为x时所需的计算时间记为tA(x)。设Xn是算法A的输入规模为n的实例的全体,则当问题的输入规模为n时,算法A所需的平均时间为
这显然不能排除存在x∈Xn使得 的可能性。希望获得一个随机化算法B,使得对问题的输入规模为n的每一个实例均有
拉斯维加斯( Las Vegas )算法的基本思想
设p(x)是对输入x调用拉斯维加斯算法获得问题的一个解的概率。一个正确的拉斯维加斯算法应该对所有输入x均有p(x)0。
设t(x)是算法obstinate找到具体实例x的一个解所需的平均时间 ,s(x)和e(x)分别是算法对于具体实例x求解成功或求解失败所需的平均时间,则有:
解此方程可得:
蒙特卡罗(Monte Carlo)算法的基本思想
设p是一个实数,且1/2p1。如果一个蒙特卡罗算法对于问题的任一实例得到正确解的概率不小于p,则称该蒙特卡罗算法是p正确的,且称p-1/2是该算法的优势。
如果对于同一实例,蒙特卡罗算法不会给出2个不同的正确解答,则称该蒙特卡罗算法是一致的。
线性规划基本定理:如果线性规划问题有最优解,则必有一基本可行最优解。
单纯形算法的特点是:
(1)只对约束条件的若干组合进行测试,测试的每一步都使目标函数的值增加;
(2)一般经过不大于m或n次迭代就可求得最优解。
单纯形算法的基本思想就是从一个基本可行解出发,进行一系列的基本可行解的变换。每次变换将一个非基本变量与一个基本变量互调位置,且保持当前的线性规划问题是一个与原问题完全等价的标准线性规划问题。
图灵机由以下几部分组成:一条无限长的带(有无穷个格子)、一个读写头、一个有限状态控制器以及一个程序。
NPC形式化定义:
定义1:语言L是NP完全的当且仅当(1) LNP;(2)对于所有L’NP有L’ pL。
如果有一个语言L满足上述性质(2),但不一定满足性质(1),则称该语言是NP难的。
所有NP完全语言构成的语言类称为NP完全语言类,就是NPC。
定理1 设L是NP完全的,则(1)L?P当且仅当P=NP;(2)若 L ?p L1,且 L1? NP,则L1是NP完全的。
团问题:
任给图G和整数k.试判定图G中是否存在具有k个顶点的团?
1)团问题?NP。显然,验证G的一个子图是否成团只需多项式时间即可。
2)SAT?团问题。
任给表达式f.构造一个相应的图G如下:
①图G的每个顶点对应于f中的每个文字(多次出现的重复计算)。
②若G中两个顶点其原对应的文字不相互补且不出现于同一于句中,则将其连线。
设f有n个子句,则f可满足当且仅当f对应的图G中有n个顶点的团。
这是因为:
若f可满足,即有某种赋值使得f取值为真,它等价于使得每个ci中都至少有一个文字为真,这n个文字(每个ci(1<in)中一个)对应的图G中的n个顶点就构成一个团。
(b)若图G中有一n个顶点的团,则取给出使得这n个顶点对应的文字都为真的赋值,则f的取值为真(这由图G的定义易证)。
显见,上述构造图G的方法是多项式界的,因此SAT团问题。
由(a)、(b)有,团问题?NPC。证毕。
单源最短路径问题
(1)数值随机化算法 ?求解数值问题,得到近似解
(2)Monte Carlo算法? 问题准确性,但却无法确定解正确性
(3)Las Vegas算法?获得正确解,但存在找不到解的可能性
(4)Sherwood算法?保证能获得正确解
旅行售货员问题优先队列式分支限界法
Type Travding (int v[])
{ MinHeapNode H(1000);
Type Minout[N+1];
//计算 Minout[i]=顶点 i的最小出边费用
Type Minsurn=0;//最小出边费用和
for(i=1;i<=n;i++){
Min=NoEdge;
for( j=1;j<=n;j++)
if(a[i][j]!=NoEdge&&(a[i][j]Min || Min==NoEdge) Mi
显示全部