首页 > 编程语言 >好书推荐 | 启发式算法的入门书籍

好书推荐 | 启发式算法的入门书籍

时间:2022-12-25 10:02:54浏览次数:48  
标签:本书 入门 求解 .% 算法 好书 启发式 书籍



最近有很多新的小伙伴关注我们公众号,并且在后台私信我们说想学习智能优化算法,让我们推荐一本不那么枯燥的书籍,今天它来了-英文原版是《How to solve it. Modern heuristics》,中文版是《如何求解问题 现代启发式方法》。



这本书深入浅出地阐述了如何利用计算机来求解问题的一些启发式方法。同时,这本书在豆瓣的评分高达8.7分,是一本较好的入门书籍。

好书推荐 | 启发式算法的入门书籍_公众号


这本书的目录如下:

好书推荐 | 启发式算法的入门书籍_公众号_02


书中有很多通俗易懂的讲解,比如说:


帮助你迈出第一步的方法是理解搜索空间:有哪些变量?他们的可能值是什么?有什么约束?最重要的是:不要偏离原题。


解空间是搜索空间(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代码。



标签:本书,入门,求解,.%,算法,好书,启发式,书籍
From: https://blog.51cto.com/u_15810430/5967880

相关文章

  • 好书推荐 | 近似算法的设计与分析
    前一段时间我们在​​好书推荐|启发式算法的入门书籍​​这篇推文中推荐了一本启发式算法的入门书籍,但后台有很多不同觉得这本书有些简单,想让我们推荐一些高阶的算法设计......
  • Linux系统入门-信息命令
    top命令监视进程活动与系统负载top第一行的系统负载,数值越小越好pidof 命令查看某个服务进程的PID值pidofsshdkill用于终止某个指定PID的服务进程kill2122killall终止某......
  • Go 快速入门指南 - 自增/自减 和 goto 语句
    自增和主流编程语言的自增语法不同,Go只支持 ​​i++​​​ 方式,不支持 ​​++i​​ 方式。正确packagemainfuncmain(){i:=1i++println(i)//输出2}......
  • Go 快速入门指南 - range 遍历
    概述Go特有的一种的遍历结构。它可以遍历任何一个 ​​集合(字符串、数组、切片、Map、通道等)​​​。语法上类似主流编程语言中的 ​​foreach​​ 语句,但可以获得每次......
  • Go 快速入门指南 - 可见性和作用域
    可见性包通过 ​​导出​​ 机制控制 变量、结构体、函数 等数据可见性。只有1个简单的规则: 首字母大写,可导出,首字母小写,不可导出。 也就是说,Go的访问控制只有两......
  • Go 快速入门指南 - 数组
    概述​​数组​​​ 是具有相同数据类型的一组长度固定的数据项序列,分配在连续的内存地址上。其中数据类型可以是整型、布尔型等基础数据类型,也可以是自定义数据类型。 ​......
  • Go 快速入门指南 - 切片
    概述阅读本小节之前,建议先阅读 数组 小节。​​切片​​ 是对数组的一个连续片段的引用。片段可以是整个数组,也可以是数组的一部分(例如数组的第3个元素到第8个元素......
  • Go 快速入门指南 - 字符切片
    概述建议先阅读 ​​字符串​​, 切片 两个小节。由于字符串不可变,如果每次以 ​​重新赋值​​​ 的方式改变字符串,效率会非常低,这时应该使用 ​​[]byte​​ 类型,[......
  • Go 快速入门指南 - Map
    概述​​Map​​​ 是一种键值对的无序集合,在其他编程语言中也被称为 ​​字典​​​, ​​Hash​​​, ​​关联数组​​。重要的一点是: ​​Map键​​ 的数据类型......
  • Go 快速入门指南 - 有序 Map
    概述​​Map​​​ 的遍历是无序的,这意味着不能依赖遍历的键值顺序。如果想实现Map遍历时顺序永远一致,一个折中的方案时预先给Map的 ​​键​​ 排序,然后根据排序后......