算法设计及应用(高等学校教材·计算机科学与技术)

分类: 图书,计算机/网络,计算机理论,
作者: 吕国英,任瑞征 等编著
出 版 社: 清华大学出版社
出版时间: 2008-3-1字数: 460000版次: 1页数: 294印刷时间: 2008/03/01开本: 16开印次: 1纸张: 胶版纸I S B N : 9787302163367包装: 平装内容简介
本教材的内容遵循《中国计算机科学与技术学科教程2002》(China Computing Curricula 2002,CCC2002)的知识体系,介绍算法及其设计、分析的基础知识,并通过大量例题,讲解枚举法、递推法、分治法、贪婪算法、动态规划及与图搜索有关的算法策略。除此之外,还对算法设计基本工具的使用和算法设计中的技巧做了讲解。最后通过例题进行算法设计的实践。算法用了接近自然语言(英语)的符号,可读性强,适合于不同程序设计语言背景的读者学习。
本书可以作为高等院校计算机及其相关专业高年级本科生和研究生算法设计课程的教材,也可作为计算机工作者、广大程序设计爱好者和信息学爱好者的参考书。
目录
第1篇 引入篇
第1章 算法概述
1.1 用计算机求解问题与算法
1.2 算法描述
1.3 现代常用算法概览
第2章 算法分析基础
2.1 算法分析体系及计量
2.2 算法分析实例
第2篇 基础篇
第3章 算法基本工具和优化技巧
3.1 循环与递归
3.2 算法与数据结构
3.3 优化算法的基本技巧
3.4 优化算法的数学模型
习题
第3篇 核心篇
第4章 基本的算法策略
4.1 迭代算法
4.2 蛮力法
4.3 分而治之算法
4.4 贪婪算法
4.5 动态规划
4.6 算法策略间的比较
习题
第5章 图的搜索算法
5.1 图搜索概述
5.2 广度优先搜索
5.3 深度优先搜索
5.4 回溯法
5.5 分支限界法
5.6 图的搜索算法小结
习题
第4篇 应用篇
第6章 算法设计实践
6.1 循环赛日程表(4种)
6.2 求3个数的最小公倍数(4种)
6.3 猴子选大王(4种)
6.4 最大子段和问题(5种)
6.5 背包问题(11种)
附录 算法设计课程设计大纲
书摘插图
算法概述
1.1 用计算机求解问题与算法
问题求解(problem solving)是个大课题,它涉及归约、推断、决策、规划、常识推理、定理证明、相关过程等核心概念。人工智能是这个课题下的一个分支,人工智能的第一个大成就是进一步开发了能够求解难题的下棋(如围际象棋)程序。把在下棋程序中应用的某些技术,发展成为搜索和问题归约这样的人工智能基本算法。今天的计算机程序能够下锦标赛水平的各种方盘棋,如五子棋和国际象棋。有些软件甚至还能够用自动总结的经验来改善软件自身性能。由此可以理解“问题求解”的重点是要制造智能计算机,以便模拟人的智能去进行问题求解,属于尖端科技。而一般计算机面对现实问题是无能为力的,需要人类对问题抽象化、形式化
后才能机械地执行,学习算法设计的重点就是把人类找到的求解问题的方法、步骤以过程化、形式化、机械化的形式表示出来,以便让计算机执行(当然人工智能软件系统也离不开“算法设计”这个最基本的软件设计环节)。本书就把学习的目标定为“用计算机求解问题”。
1.1.1 用计算机求解问题的步骤
人类在解决一个问题时,根据不同的经验、不同的环境会采用不同的方法,用计算机解决现实中的问题,同样也有很多不同的方法,但解决问题的基本步骤是相同的。下面给出用计算机求解问题的一般步骤。
1.问题分析
准确、完整地理解和描述问题是解决问题的第一步。要做到这一点,必须注意以下一些问题:在未经加工的原始表达中,所用的术语是否都明白其准确定义?题目提供了哪些信息?这些信息有什么用?题目要求得到什么结果?题目中有哪些假定?是否有潜在的信息?判定求解结果所需要的中间结果有哪些?等等。针对每个具体的问题,必须认真审查问题描述,理解问题的真实要求。
……
