[心得]算法与数据结构学习笔记

引言

想来算法与数据结构方面的书我读了好几本了。是时候真正动手写功能了,因此关于算法和数据结构系列博客也算是收个尾巴。

干货

Kurt Mehlhorn和Peter Sanders这本书200来页,涵盖那么宏大的两个主题,因此必然是泛泛而谈的。我简单观其大略。

里面讨论了自适应和遗传算法,这个是当时我买这本书的唯一原因。因为其他的书对这个算法讨论较少。

自适应是指在通信信号处理中,根据处理数据的特征,自动调整处理方法,处理顺序,处理参数,边界条件或者约束条件,使其与所处理的数据的统计分布特征,结构特征相适应,从而取得最佳效果。

自适应是以数学模型不断逼近目标,这种模型称为自适应算法,通常基于梯度,其中最小均分差LMS最常用。自适应算法根据某个最优准则来设计。

LMS运算量小,但收敛慢
RLS递归最小二乘法运算量大,但收敛快
介于二者之间的,仿射投影AP,共轭梯度CG,快速牛顿FN

启发式算法(探索)是相对于最优化算法提出来的,它定义为一个直观或基于经验构造的算法,在可接受花费下,给出待解决组合优化问题的每一个实例的一个可行解。该可行解与最优解的偏离程度一般不能被预计。
有一类通用启发式策略称为元启发策略,通常用随机数搜寻。

LEDA: library of Efficient Data Types and Algoriths

断言和不变量描述程序状态的属性,即描述单个变量属性和一系列变量值之间的关系。

随机算法主要分为Las Vegas和Monte Carlo。前者计算正确结果,但运行时间随机,后者运行时间确定,但计算结果有一个低概率出错。

java中对象引用的本质就是指针。

最小生成树minial spanning tree,MST是一个网络连通问题。

遗传方法用期望解,可行解,目标函数来描述优化问题。

以下7种都是遗传方法:
线性规划
整数线性规划
贪心算法
动态规划
系统搜索
局部搜索(全局思考,局部行动:模拟退火,禁忌搜索避开局部最优解,在图着色问题应用)
进化算法
在商业环境中,开发算法有以下经验:
与解决过的问题联系,举一反三
找相近问题解决方法参考
系统或者动态规划求解
贪心或者启发式原型求解
局部搜索

下一步,泛读算法导论和计算机The Art Of Computer Programming!

你可能感兴趣的:(技术笔记)