1. 目前计算机中的搜索算法有哪些?

    深度优先,广度优先(源自于数据结构)

    穷举法(列出所有可能),回溯法(深度优先思想加上返回式搜索)源自于算法设计与分析

    爬山法,模拟退火,遗传算法(智能化算法)都是一些自适应的随机搜索算法,(有点类似于不确定性算法,也是一些启发式算法(另外蚁群算法也是启发式算法)

    梯度下降算法(源自于最优化理论)

  2. 前期补充材料:请参考http://blog.csdn.net/emiyasstar__/article/details/6938608

  3. 遗传算法该如何理解

    从启发式的角度去理解更容易:

     遗传算法参照达尔文的进化论,认为物种都是向好的方向去发展(适者生存),因此可以认为到足够的代数之后,得到的最值可实际的最值很接近。

    遗传算法主要包括了三种自然进化操作(各种书籍不尽统一)选择,交叉,变异。

    选择(复制):从前代种群中不断选择2个较优个体,让这些较优个体(父母)将它们的基因传递到下一代。

    交叉:两个待交叉的不同的染色体(父母)根据交叉概率(cross_rate)按某种方式交换其部分基因。(体现了自然界中群体内个体个体之间的信息交换)

    变异:染色体按照变异概率进行染色体的变异。(在群体中引入新的变种确保群体中信息的多样性)

  4. 遗传算法步骤流程

        (1) 用固定长度的染色体表示问题变量域,选择染色体种群数量为N,交叉概率为C,突变概率为M 
    (2) 定义适应性函数来衡量问题域上单个染色体的性能或适应性。适应性函数是在繁殖过程中选择配对染色体的基础。 
    (3) 随机产生一个大小为N的染色体的种群。 
    (4) 计算每个染色体的适应性。 
    (5) 在当前种群中选择一对染色体。双亲染色体被选择的概率和其适应性有关。适应性高的染色体被选中的概率高于适应性低的染色体。 
    (6) 通过执行遗传操作——交叉和突变产生一对后代染色体。 
    (7) 将后代染色体放入新种群中。 
    (8) 重复步骤5,直到新染色体种群的大小等于初始种群的大小N为止。 
    (9) 用新(后代)染色体种群取代初始(双亲)染色体种群。 
    (10) 回到步骤4,重复这个过程直到满足终止条件为止。

  5. 爬山法该如何理解

    就是找到一个山坡,就不在寻找了,它觉得左边和右边都比较小,它认为这就是最高峰,所以可能进入局部最优。

     

     

  6. 模拟退火算法的理解

  7. 通过一定的概率跳过局部最优,最终可能会进入最高峰,必须多次试验,程序多次运行。