痛定思痛,开启算法之路(九)

11.2.3 旅行商问题

其优化思想同上,构造状态空间树的过程中尽量消减成本大的分支,其计算下界的方法如下:

痛定思痛,开启算法之路(九)_第1张图片
痛定思痛,开启算法之路(九)_第2张图片
11.3 NP困难问题的近似解法

对于NP完全问题,我们没有已知的多项式时间的算法,这样的算法是不存在的;对于较小规模的实例,可以使用穷举法或者动态规划等;
而分支界限技术有可能在可接受的时间内,对组合最优难题的某些较大实例求解,可是其优良的性能无法保证;
还可以用快速的算法对他们的近似求解,只要是较优的解就可以了,其中许多算法都是基于特定问题的基于经验的直观推断贪婪算法;

痛定思痛,开启算法之路(九)_第3张图片

11.3.1 旅行商问题的近似解法

痛定思痛,开启算法之路(九)_第4张图片
痛定思痛,开启算法之路(九)_第5张图片
痛定思痛,开启算法之路(九)_第6张图片
痛定思痛,开启算法之路(九)_第7张图片

11.3.2 背包问题的近似解法

痛定思痛,开启算法之路(九)_第8张图片
痛定思痛,开启算法之路(九)_第9张图片
痛定思痛,开启算法之路(九)_第10张图片

11.4 解非线性方程的算法

对于多项式的次数为2、3、4时,虽然其根公式是存在的,但对于大多数的正数来说只能求其近似解且复杂缺少实用价值;
对于次数大于4的,就没有只包含多项式系数、算术操作以及开根号操作的通用求根公式了;此时我们可以把根解释成函数f(x)的图像和x轴的交点(或找出包含根的区间)

11.4.1 平分法

平分法类似于折半查找,对于两边异号的端点区间取其中点再次判断函数值符号,根据中点符号再次向两边取值其中点;
收敛较慢且不易扩展但易检验;

痛定思痛,开启算法之路(九)_第11张图片
11.4.2 试位法
痛定思痛,开启算法之路(九)_第12张图片
在很多实例下,其收敛速度会更快速;

11.4.3 牛顿法

牛顿法在选择了适当的初始近似值之后它能够快速收敛,而且能够应用于更一般类型的方程和方程组,是最重要的解方程的通用算法之一;

该方法的近似序列的下一个元素,是根据函数f(x)的图像在Xn点切线的x轴截距求出的:

痛定思痛,开启算法之路(九)_第13张图片
痛定思痛,开启算法之路(九)_第14张图片

跋(前序后跋)

**科学只不过是经过整理和组织的常识而已。**

本书讨论了九种通用设计技术:蛮力法、分治法、减治法、变治法、时空权衡、贪婪技术、动态规划、回溯法、分支界限;
把运行时间作为输入规模的函数,然后用函数的增长次数对算法进行分类;

痛定思痛,开启算法之路(九)_第15张图片

    走到这里这本书也算是初步完成了,因为里面的经典习题还没有做,所以还不算是完美实现;当然里面同时还有许多问题和算法不论是了解还是学习都不够仔细和深化,走一遍其实是远远不够的,也算是一个良好的开端吧;
    与预期读完的时间也是有差距的(12.28号开始记录到今天1.22号),其中拥有许多不可预料的因素(比如今天心情不悦等等,哈哈给懒惰找理由);学习重在温故而知新,对于这些精妙绝伦、千锤百炼的算法,
    可不是一两遍学习就可以掌握的,需要时常再拿出来分析研究以尽可能的转化为自己的知识而举一反三;希望与大家共同讨论、学习、相互监督进步!
(对于之前的文章,不论是问题的预留还是新的研究体会,在不是大规模改动的情况下将继续在原文章的基础上进行更改添加)

你可能感兴趣的:(algorithm)