贪婪算法的基本思想:通过一系列步骤来构造问题的解,每一步都是对已构造的部分解的一个扩展,直到获得问题的完整解。贪婪算法中,每一步“贪婪地” 选择最好的部分解,但不顾及这样选择对整体的影响(局部最优),因此得到的全局解不一定最好的解,但对许多问题它能产生整体最优解。具体算法描述:public stat...
分类:
编程语言 时间:
2015-02-24 23:19:27
阅读次数:
267
贪心算法,从局部最优推广成全局最优。
这里介绍O(n)时间 O(n)和O(1)空间的两种实现方法。...
分类:
其他好文 时间:
2015-02-17 00:50:26
阅读次数:
174
一、基本概念:所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。贪心算法没有固定的算法框架,算法设计的关键是贪心策略的选择。必须注意的是,贪心算法不是对所有问题都能得到整体最优解,选择的贪心策略必须具备无后效性...
分类:
编程语言 时间:
2015-02-05 12:49:21
阅读次数:
255
HDU2037:链接:http://acm.hdu.edu.cn/showproblem.php?pid=2037题解: 贪心算法:在对问题求解时,总是作出在当前看来是最好的选择。也就是说,不从整体上加以考虑,它所作出的仅仅是在某种意义上的局部最优解(是否是全局最优,需要证明)。若要用贪心算法求解某...
分类:
其他好文 时间:
2015-02-05 00:41:55
阅读次数:
241
贪心算法的设计思想 贪心算法在解决这个问题的策略上目光短浅,仅仅依据当前已有的信息就做出选择,并且一旦做出了选择,无论将来有什么结果,这个选择都不会改变。换言之,贪心法并非从总体最优考虑,它所做出的选择仅仅是在某种意义上的局部最优。贪心算法对于大部分的优化问题都能产生最优解,但不能总获得总体最...
分类:
编程语言 时间:
2015-01-22 17:44:51
阅读次数:
189
模拟退火算法
一. 爬山算法 ( Hill Climbing )
介绍模拟退火前,先介绍爬山算法。爬山算法是一种简单的贪心搜索算法,该算法每次从当前解的临近解空间中选择一个最优解作为当前解,直到达到一个局部最优解。
爬山算法实现很简单,其主要缺点是会陷入局部最优解,而不一定能搜索到全局最优解。如图1所示:假设C点为当前解,爬山算法搜索到A点这个局部最优解就会停...
分类:
编程语言 时间:
2015-01-20 10:28:43
阅读次数:
218
模拟退火 一:概括 1.爬山算法 所谓的爬山算法实际上就是简单的贪心算法,贪心算法通过从当前解的临近空间选择一个最优的解作为新的当前解,因此这个解很有可能是局部最优解,而不是全局最优的。因为A的领域周围没有比他更优的解了。 2.模拟算法 模拟退火算法可以有效的解决这个陷入局部最优解的...
分类:
其他好文 时间:
2015-01-17 20:52:45
阅读次数:
271
题目:
Given an array of non-negative integers, you are initially positioned at the first index of the array.
Each element in the array represents your maximum jump length at that position.
Your...
分类:
编程语言 时间:
2015-01-17 18:12:27
阅读次数:
239
题目:
Given an array of non-negative integers, you are initially positioned at the first index of the array.
Each element in the array represents your maximum jump length at that position.
Dete...
分类:
编程语言 时间:
2015-01-17 13:59:48
阅读次数:
200
贪心算法的基本思路1.建立数学模型来描述问题。 2.把求解的问题分成若干个子问题。 3.对每一子问题求解,得到子问题的局部最优解。 4.把子问题的解局部最优解合成原来解问题的一个解。 实现该算法的过程: 从问题的某一初始解出发; while 能朝给定总目标前进一步 do 求出可行解的一...
分类:
编程语言 时间:
2014-12-31 15:50:48
阅读次数:
184