上QQ阅读APP看书,第一时间看更新
本书中的问题种类
第1章介绍多数读者大概都熟悉的问题解决技术,诸如递归、结果缓存(memoization)和位操作之类的后续章节探讨的其他技术所需的基本构件。
第2章的重点是搜索问题。搜索是一个庞大的议题,可以说本书中的大部分问题都能归属于它。这一章介绍了最重要的搜索算法,包括二分搜索、深度优先搜索、广度优先搜索和A*搜索。本书的其余部分都会反复用到这些算法。
第3章将搭建一个用于解决多类问题的框架,这些问题可以由带约束的有限域变量进行抽象化定义,包括八皇后问题、澳大利亚地图着色问题和算式谜题“SEND+MORE=MONEY”等经典问题。
第4章探讨图的算法,外行人将对这些图算法的应用范围之广表示惊叹。本章将构建图的数据结构,然后用它来解决几个经典的优化问题。
第5章探讨遗传算法,它的确定性尚不如本书的其他大部分算法,但有时可以用它解决那些用传统算法在合理时间内无法找到解的问题。
第6章介绍k均值聚类算法,这可能是本书最专注于某一算法的章节了。这种聚类技术易于实现、简单易懂且应用广泛。
第7章旨在解释什么是神经网络,让读者见识一个十分简单的神经网络。这一章的目标并非要全面介绍这一激动人心且不断发展的领域。本章将遵循第一性原理从头开始搭建神经网络,不用任何外部库,因此读者可以真正了解神经网络的工作原理。
第8章介绍双人全信息对奕游戏中的对抗搜索算法。本章将介绍一种极小化极大搜索算法,可用于开发一个会玩国际象棋、跳棋和四子棋等游戏的仿真棋手。
最后是第9章,介绍几个有趣好玩儿的问题,这些问题放在本书的其他地方都不太合适。