算法-智能算法/传统算法-多种算法介绍及异同点
目录
一:描述分治法,贪心算法,动态规划算法,回溯算法,分支限界的基本思想,适用范围和应用
二:请介绍蚁群算法,遗传算法,离子群算法的思想,给出其中一个算法的计算流程图。请描述单层感知层结构,请描述BP神经网络误差反向传播原理
一:描述分治法,贪心算法,动态规划算法,回溯算法,分支限界的基本思想,适用范围和应用
1.1分治法
1.1.1 基本思想
将规模为n的问题分解为k个规模较小的子问题,使这些子问题相互独立可分别求解,再将k个子问题的解合并成原问题的解.如子问题的规模仍很大,则反复分解直到问题小到可直接求解为止.在分治法中,子问题的解法通常与原问题相同,从而导致递归过程.
1.1.2 适用范围
该问题的规模缩小到一定的程度就可以容易地解决;该问题可以分解为若干个规模较小的相同问题;分解出的子问题的解可以合并为原问题的解;分解出的各个子问题是相互独立的。
1.1.3 典型的应用问题
二分搜索,快速排序,归并排序,选择最大数/最小数,芯片测试问题
1.2 贪心算法
1.2.1 基本思想
将问题的求解过程看作一系列选择(每次选择确定一个输入值),每次选择都是当前状态下的最好选择(局部最优解).每作一次选择后,所求问题会简化为一个规模更小的子问题.从而通过每一步的最优解逐步达到整体最优解
1.2.2 适用问题
具备贪心选择和最优子结构性质的最优化问题。贪心选择是指:整体的最优解可通过一系列局部最优解达到.每次的选择可以依赖以前作出的选择,但不能依赖于后面的选择。最优子结构是指:问题的整体最优解中包含着它的子问题的最优解.
1.2.3 常见应用
背包问题,最小生成树,最短路径,作业调度等等
算法优点:求解速度快,时间复杂性有较低的阶.
算法缺点:需证明是最优解.
1.3 回溯算法
1.3.1基本思想
回溯法的基本思想是在一棵含有问题全部可能解的状态空间树上进行深度优先搜索,解为叶子结点。搜索过程中,每到达一个结点时,则判断该结点为根的子树是否含有问题的解,如果可以确定该子树中不含有问题的解,则放弃对该子树的搜索,退回到上层父结点,继续下一步深度优先搜索过程。在回溯法中,并不是先构造出整棵状态空间树,再进行搜索,而是在搜索过程,逐步构造出状态空间树,即边搜索,边构造。
求解过程可表示为在一棵解空间树作深度优先搜索.
搜索过程:搜索按深度优先策略从根开始,当搜索到任一结点时,判断该点是否满足约束条件D(剪枝函数),满足则继续向下深度优先搜索,否则跳过该结点以下的子树(剪枝), 向上逐级回溯
1.3.2适用问题
它适用于解一些组合数较大的问题。找出满足约束条件的所有解. 回溯算法适应求解组合搜索和组合优化问题
解题步骤:1).针对所给问题,定义问题的解空间 2).确定约束条件. 3).以深度优先方式搜索解空间.
1.3.3 常见应用
子集和问题,装载问题,批处理作业调度,n后问题,最大团问题,图的着色问题
1.4 分支限界法
1.4.1基本思想
在问题的边带权解空间树中进行广度优先搜索. 找一个回答结点使对应路权最小。当搜索到一个扩展结点时,一次性扩展它的所有儿子,将满足约束条件且最小耗费函数£目标函数限界的儿子,插入活动结点表中, 再从活动结点表中取下一结点同样扩展. 直到找到所需的解或活动结点表为空.
1.4.2 适用问题
适用于求解最优化问题。找出满足约束条件的一个解或者特定意义下的最优解。
1)开始求解时无法估计解是否存在。2)已知有解,对解的要求较高。3)有些问题在列出全部解以后,就可以求的最佳解。
1.4.3 常见应用
0-1背包,n皇后问题,着色问题,批处理作业调度问题,装载问题。
1.5.动态规划
1.5.1基本思想
将问题的求解过程化为多步选择,在每一步选择上,列出各种可能的结果(各子问题的可行解),舍去那些肯定不能成为最优解的局部解.最后一步得到的解必是最优解.[与贪心算法比较]都是将求解过程化为多步决策.区别是:贪心法:每采用一次贪心策略便做出唯一决策,求解过程只产生一个决策序列;求解过程自顶向下,不一定有最优解.
动态规划:求解过程多为自底向上,求解过程产生多个选择序列, 下一步的选择依赖上一步的结果..总能得到最优解
1.5.2 适用问题
具备最优子结构性质和子问题重叠性的最优化问题.
最优子结构:问题的整体的最优解中包含着它的子问题的最优解
子问题重叠性:第i+1步问题的求解中包含第i步子问题的最优解,形成递归求解.
[算法步骤]1).分析最优解的结构. 2).给出计算局部最优解值的递归关系. 3).自底向上计算局部最优解的值. 4).根据最优解的值构造最优解.
1.5.3 常见应用
0-1背包问题,图像压缩,最短路径,矩阵连乘,作业调度等等