算法设计读后感
关于算法设计的思考(1):算法
有点像简介,没有实现算法的代码。学了一些知识后,书中会有一些例题和习题,适合想对计算机算法有全面深入了解的人。这本书包含了很多算法,很完整也很深入(对于我这种菜鸡来说)。书中的图文非常清晰,读起来很舒服。整本书还是比较大比较厚,不方便携带,适合pad展示。
关于算法设计的思考(2):算法设计
先看作者。乔恩·克莱因伯格是美国国家科学院(NAS)、美国国家工程院(NAE)和美国人文科学院(AAAS)的院士,是计算机科学领域的传奇人物。而且,他还获得了国际数学家大会颁发的奈旺林纳奖(Naiwanglinna Award),该奖项是数学家大会为表彰在信息科学领域的重要数学贡献而设立的。英文版看了一遍,终于出了新的中文版,令人期待。
《算法设计》反思(三):最全面的解题思路。
这本书不仅内容详实,而且每章后面附有解答的习题更是点睛之笔。一般书上习题的答案要么是终解,要么是简单分析。这本书里的建议解决方案几乎把书中的每一点都写了出来,更容易让人理解其含义。
带入本书的算法研究是从各种计算应用中的问题开始,以对算法设计技术的理解为基础,最终得到这些问题的有效解决方案。
关于算法设计的思考(四):作者是一位具有丰富算法经验的科学家,算法设计已经成为华盛顿大学等多所大学的课程教材。
算法设计畅销15年。
算法书籍数量众多,如何选择?异步君今天推荐的算法书,在美亚获得了4.5星的高分,获得了读者的认可。更值得一提的是,这本书也是国外多所知名大学选择的算法教材。这本书是算法设计。不能说所有程序员都看过这本书,但作为大学的算法教材,绝对是一本适合初学者的经典书籍。从书名来看,似乎是算法和“设计”合二为一,所以很多人认为这可能不是一本入门级的算法书。但其实这本书的知识非常丰富,既可以作为初学者的第一本算法书,也可以作为编程大师巩固的基础教材。为什么和“设计”结合在一起?还需要从这本书两位作者关于算法的想法说起。
1,科学家眼中的算法设计技术
《算法设计》的作者是来自美国的乔恩。克莱恩伯格(以下简称乔恩)和匈牙利伊娃?Sdl trados studio(以下简称Eva)。在算法的问题上,他们提出了“算法问题构成了计算机科学的核心,但却很少以整洁准确的数学问题的形式出现”的观点。相反,它们往往有许多杂乱的、特定于应用程序的细节,这些细节被一些至关重要的和一些无关紧要的事情交织在一起。“因此,他们认为算法问题由两个基本部分组成:一是得到问题数学上整齐的核心,二是根据问题结构确定合适的算法设计技术。这两个部分相互作用:你越能自由地使用所有可能的设计技术,你就越能认识到世界上混乱问题的整洁的形式描述。在最有效的情况下,算法思想不仅可以为适当的问题提供解决方案,还可以形成一种语言,让学习算法的程序员能够清晰地表达基本问题。于是乔恩和伊娃决定将设计计算带入算法研究。他们非常清楚,设计过程一般是从各种计算应用中的问题开始,基于对算法设计技术的理解,最终得到这些问题的有效解决方案。因此,他们试图探索算法思想在计算机科学中的作用,并将这些思想与一些精确的问题联系起来。他们为这些“问题”设计算法并进行分析。基于这样的研究,《算法设计》这本书应运而生。Jon和Eva将这本书的目标定为:如何在不同计算领域的复杂问题中识别出算法问题的清晰描述形式,并针对由此产生的问题给出如何设计有效算法的建议。为此,他们重新整理了研究成果,从最简单的初始方法到最终的解决方案,帮助大家更好地理解复杂的算法。读过这本书的读者会觉得,这本书并不是从问题陈述到算法最直接的路径,但却能直接反映程序员真正思考这些问题的方式。
2.经典作品背后的科学家
乔恩?乔恩·克莱因伯格。
乔恩是美国计算机科学家。1996在麻省理工学院获得博士学位,目前是康奈尔大学计算机科学教授。从1995开始,Jon开始了他在IBM研究院的研究,主要研究网络和信息组合结构的数学分析和建模。乔恩获得了帕卡德基金会和斯隆基金会的研究基金。他的研究重点是算法,尤其是与网络结构和信息相关的算法,及其在信息科学、优化、数据挖掘和计算生物学中的应用。他利用信息中心和权威信息进行网络分析,对形成最新一代互联网搜索引擎的基础起了很大作用。在计算机领域,乔恩获得了无数奖项。美国国家科学基金会事业奖、海军研究局青年研究员奖、IBM杰出创新奖等知名奖项都是他获得的。另一位作者伊娃也是康奈尔大学的计算机科学教授和数学家。
伊娃?Sdl trados studio(?va Tardos)
1981年,伊娃在导师安德拉什·弗兰克的指导下,在匈牙利罗兰大学攻读博士学位。2006年,伊娃成为康奈尔大学计算机科学系的系主任。2007年,伊娃当选为美国国家工程院、文理学院和美国哲学学会的院士。同时,她也是ACM院士。伊娃是富尔克森奖、乔治·b·丹齐格奖、哥德尔奖和EATCS奖的获得者。2019年,伊娃被授予IEEE约翰·冯·诺依曼奖章。Eva的研究兴趣主要集中在图和网络问题的算法设计和分析上。她以在网络流算法和网络问题近似算法方面的工作而闻名。它包括算法博弈论,这是一个新的领域,专注于为自私的用户设计系统和算法。
3.不同的算法书
这本书是一本关于算法设计与分析的经典教材。两位作者围绕算法设计展开,将算法的理论与实际问题相结合,用几个典型的例子分析每一种算法技术,极具启发性。书中有很多篇幅专门用于算法问题的形式化描述,以及针对这个问题的算法设计和分析。这种写法的好处是可以采用适当的设计技术来开发算法,证明算法的性质,分析算法的效率。除了内容广泛,这本书最大的特点就是有200多个精彩的习题,还有PSPACE问题,参数复杂度等等。
这是算法设计和其他算法书最大的区别。这是乔恩和伊娃在康奈尔大学教学课程的一部分。几乎所有的问题都是在作业中开发的,或者在课堂测试中测试的。他们将问题视为书的重要部分,并保持问题集的结构与他们对内容的整体方法一致。大多包含一些问题的详细文字描述,出现在计算机科学的应用领域或者其他地方。有些问题也是他们在课本上讨论的问题的实践:建立必要的符号和形式化,设计算法,然后分析算法,证明算法是正确的。为了帮助解决这些问题,他们在每章中添加了一个名为“带解决方案的练习”的部分,讨论一个或多个问题,并描述如何形式化解决方案。因此,与简单地写一个完整正确的解决方案相比,用一个解决方案来讨论每个练习要花费长得多的时间。事实上,与本书的其余部分一样,这些部分的讨论应该被视为试图使人们理解一个更大的过程,通过这个过程可以考虑这种类型的问题,并最终形成精确解的详细解释。值得一提的是,由于这本书在国外大学广泛使用,乔恩和伊娃对学习的建议更偏向于大学生。他们建议初学者在阅读本书之前,先学习以编程为基础的计算机科学基础课程,并已编写程序实现基本算法,操作离散结构(树和图),应用基本数据结构(如数组、列表、队列和堆栈)。
根据上述思路,他们利用计算机科学及相关领域的许多问题,开发了基本的算法设计技术。包括系统和网络应用(缓存、交换、互联网上的域间路由)、人工智能(规划、博弈、Hopfield网络)、计算机视觉(图像分割)、数据挖掘(变化点检测、聚类)、运筹学(路由调度)、计算生物学(序列比对、RNA二级结构)。
Jon和Eva合著的《算法设计》,围绕算法设计展开,解构分析了算法技术的几个典型例子,将算法与实际问题相结合。可以说,这的确是一本不可多得的经典算法书!