最近有很多新的小伙伴关注我们公众号,并且在后台私信我们说想学习智能优化算法,让我们推荐一本不那么枯燥的书籍,今天它来了-英文原版是《How to solve it. Modern heuristics》,中文版是《如何求解问题 现代启发式方法》。
这本书深入浅出地阐述了如何利用计算机来求解问题的一些启发式方法。同时,这本书在豆瓣的评分高达8.7分,是一本较好的入门书籍。
这本书的目录如下:
书中有很多通俗易懂的讲解,比如说:
帮助你迈出第一步的方法是理解搜索空间:有哪些变量?他们的可能值是什么?有什么约束?最重要的是:不要偏离原题。
解空间是搜索空间(search space)S的一个子集,我们要找的可行解,是那些满足约束条件的解。
求解这个问题,重要的是要记住减小搜索区间的方法。解答这个题目使我们了解了这类问题的特征,并且开拓了只考虑部分可能解的新思路。再次强调,关键是不要放弃!不是万不得已的话不要放弃追求完美解的做法。
贪婪算法(greedy algorithm)通过一系列步骤构造完整解来解决问题。这个算法之所以流行的原因很明显:简单!贪婪法的基本思想出奇的简单:一个一个地为所有变量赋值,在每一步做出最佳的决定。当然,这个过程假定了一种决策的启发式思想,即在每一步做最好的移动,以获得最大的“好处”,这就是“贪婪”这个名字的来由。但是这种方法也是目光短浅的,因为每一步做出最佳决定并不一定最终能得到全局最优解。
动态规划法(dynamic programming)的原理是:在求解问题的过程中,通过处理位于当前位置和所达目标之间的中间点来找到整个问题的解。整个过程是递归的,每下一个中间点都是已访问过的点的一个函数。
这本书的下载链接如下(也可在公众号后台回复:【启发式算法书籍】,即可下载本书):
https://cloudflare-ipfs.com/ipfs/bafykbzacebnash4xtz3kncrdzpwpve2ut3fgd2vzbybnpcblzb7jqnwwkfbp4?filename=Dr.%20Zbigniew%20Michalewicz%2C%20Dr.%20David%20B.%20Fogel%20%28auth.%29%20-%20How%20to%20Solve%20It_%20Modern%20Heuristics-Springer-Verlag%20Berlin%20Heidelberg%20%282004%29.pdf
OK,老规矩,在公众号“优化算法交流地”里回复关键词【代码】,就能获取一整套高质量智能优化算法的MATLAB代码。