算法分类
1.元启发式算法
元启发式算法通俗来讲就是具有交叉和变异操作的算法,该类算法不探讨如何求解的过程,而只在乎问题的结果,这类算法不关心到底如何去求解的,并且其解的好坏也是不确定的。例如:GA、pso、退火、爬山等。启发式的算法针对的大多是NP难问题(NP问题后面会有解释)
1.1 元启发——进化算法
进化算法的关键步骤就是选择,这也式其不同于其它元启发式算法的一个重要特征。而满足进化算法步骤的,我们都可以称其为进化算法(EA),例如遗传算法(GA)等。计算机领域我们也通常叫GA为EA了,目前不单独提GA。
1.2 元启发——群智能算法
这类算法的典型特征就是:群智能强调个体间信息交互,主要是交叉变异等。PSO就是其代表作。
1.n 元启发——。。。(不在列举)
2.确定性算法
确定性算法:算法中的每一步每一条规则都是确定的,不允许模棱两可和多义性存在(如PCA——组成分析等)
确定性算法一般求解很快,适用于研究得比较彻底的优化问题
启发式的算法针对的大多是NP难问题。
NP
P问题:多项式式时间算法,算得很快的问题。
NP问题:一个问题的解可以在多项式(O(n^k))的时间内被验证。换句话说:算起来不确定快不快的问题,但是我们验证这个问题会很快。
NP难问题:比NP问题都要难的问题
NP完全难问题:属于NP问题,也属于NP难问题。