欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

启发式算法与机器学习的区别 启发式算法的特点

最编程 2024-03-22 15:28:45
...


什么是启发式算法?

启发式算法(Heuristics Algorithm)是一种技术,这种技术使得在可接受的计算成本内去搜寻最好的解,但不一定能保证所得的可行解和最优解,甚至在多数情况下,无法阐述所得解同最优解的近似程度。

Heuristics可以等同于:实际经验估计(rule of thumb)、有依据的猜测(educated guess, a guess beased on a certain amount of information, and therefore likely to be right)和常识(由经验得来的判断力)。

一个容易理解的解释:

人在解决问题时所采取的一种根据经验规则进行发现的方法。其特点是在解决问题时,利用过去的经验,选择已经行之有效的方法,而不是系统地、以确定的步骤去寻求答案。

启发式解决问题的方法是与算法相对立的。

算法是把各种可能性都一一进行尝试,最终能找到问题的答案,但它是在很大的问题空间内,花费大量的时间和精力才能求得答案。

启发式方法则是在有限的搜索空间内,大大减少尝试的数量,能迅速地达到问题的解决。但由于这种方法具有尝试错误的特点,所以也有失败的可能性。科学家的许多重大发现,常常是利用极为简单的启发式规则。

启发式算法一般用于解决NP-hard问题,其中NP是指非确定性多项式。

例如:

著名的推销员旅行问题(Travel Saleman Problem or TSP):假设一个推销员需要从南京出发,经过广州,北京,上海,…,等 n 个城市, 最后返回香港。 任意两个城市之间都有飞机直达,但票价不等。假设公司只给报销 C 元钱,问是否存在一个行程安排,使得他能遍历所有城市,而且总的路费小于 C?

推销员旅行问题显然是 NP 的。

因为如果你任意给出一个行程安排,可以很容易算出旅行总开销。

但是,要想知道一条总路费小于 C 的行程是否存在,在最坏情况下,必须检查所有可能的旅行安排。

启发式算法是相对于最优化算法提出的,是基于直观或者经验构造的算法,在可接受的开销(时间和空间)内给出待解决组合优化问题的一个可行解。

目前通用的启发式算法
近几年比较活跃的算法如下:

启发式算法和机器学习的区别 启发式算法特点_启发式算法和机器学习的区别


启发式算法和机器学习的区别 启发式算法特点_启发式算法_02


启发式算法和机器学习的区别 启发式算法特点_启发式算法和机器学习的区别_03