关于算法的好数学书[关闭]


11

我很喜欢数学的优雅和严谨,现在正在寻找有关算法和算法分析的文献。现在,涵盖什么算法对我来说并没有多大关系,但是如何呈现和对待它们就非常重要。¹我最看重一种非常清晰准确的语言,该语言以严格抽象的方式定义了所有使用的概念。

我发现由Cormen,Leiserson,Rivest和Stein撰写的经典算法简介非常整洁,但是对数学的处理不够好,并且其证明和定义非常非正式。在这方面,Sipser的《计算理论导论》似乎更好,但是仍然没有提供从数学到算法的无缝过渡。

谁能推荐一些东西?


¹:算法至少应使用经典的非平凡抽象数据结构(例如图形,数组,集合,列表,树等)来调用其所需数据的管理,最好也对此类数据结构进行操作。如果完全忽略数据结构的使用和管理问题,我不会太感兴趣。不过,我不太关心用它们解决的问题。


2
这是主观的;定义“好”。此外,尽管我们对列表问题没有严格的政策,但 普遍存在不喜欢的问题。请注意这个这个讨论;您可能需要改善您的问题,以避免在那里解释的问题。如果您不确定如何改善问题,也许我们可以在计算机科学聊天中为您提供帮助?
拉斐尔


@Raphael谢谢。我仅在标题中使用“好”一词,在我的问题中,我指定了我想要的。尽管我故意没有太具体,但至少应该清楚地表明,我的重点是(如所暗示的)数学上的优雅和严谨。我认为此答案不会激起一本书的清单,因为不应有太多书籍属于该类别,即使是这样,我也不相信“保留一个严格问题的纯度”答案结构”在这里的几个stackexchange网站上发生-但我想不是我的电话。我不确定是否可以改善这个问题。
k.stm 2015年

另外,我认为“参考请求”不适用于该问题。至少没有按照它的描述:我既不在寻找论文,也不对一个具体而狭窄的问题感兴趣。实际上,我对所涵盖的内容相当开放,请参阅第二句话。再次移除标签可以吗?也许我可以并且应该缩小对自己满意的算法的范围?
k.stm 2015年

2
也许您应该研究指称语义和程序验证。
Yuval Filmus 2015年

Answers:


7

亨德里克·伦斯特拉 Hendrik Lenstra )在1992年写道

从严格的数学观点来看,尽管我希望定义算法及其运行时间的含义是可取​​的,但我不会这样做。我的主要借口是我自己不知道这些定义。更糟糕的是,我从未见过对正确,优雅且易于使用的适当理论的处理。填补文献中的这一明显空白将是值得称赞的事业。

我不知道自那时以来是否取得了任何进展,或者共识是否甚至认为这是“差距”。但问题仍然在于,至少有一些著名的数学家对算法推导的数学严格性不满意。因此,可能没有一本书具有OP所期望的形式主义水平。

由于Knuth,Gries,Stepanov和其他人而产生的实际观点的聚宝盆,其目的是为程序员提供更多的帮助,而不是数学方面的帮助,因此不可避免地缺乏严格性和主观性。

尽管如此,Stepanov的工作还是在硅谷广受赞誉的科学尝试的最佳尝试之一。

《编程元素》中,亚历山大·斯蒂芬诺夫(Alexander Stepanov)和保罗·麦克琼斯(Paul McJones)试图奠定算法的抽象代数基础。本书以对实体,值及其属性的非正式公理式定义开头,但在288页中,通过一系列引理在标准模板库的基础上演绎性地发展。

该TOC,前言和样章变换和轨道可以发现这里和介绍讲座在这里

Stepanov的最新著作《从数学到泛型编程》更为宽松,其结构更多地是通过数学历史路线图来进行的,从埃及的乘法运算到monoid,半群和拉格朗日定理,最终开发出了现代数据结构,其迭代器和算法用于STL。


?!?“目前还没有精确,优雅,便捷的算法概念数学推导……” 图灵机
vzn

1
Lenstra确实在链接的论文中提到了图灵机,但是我认为这种想法并不提供完整的代数分析。如果您想自己阅读,引号几乎是逐字的,包括“空白”部分。我将编辑该帖子以删除建议的“共识”,以防它被认为值得商bat。

ofc am /知道您在引用Lenstra,但您可以添加引号或更长的报价,以引用他的引人注目的/有争议的/可疑的断言
vzn 2015年

认为图灵机无法导出,相反,它们形成了计算系统的公理(例如,Church-Turing论文)。Lenstras分析和CS一般都是从TM存在公理推导出来的。
vzn

1
@Raphael,如果妈妈说正确打扫我的房间将是“值得称赞的工作”,那么她讲话的要旨是“不要打扰您打扫房间”。是我误解了您,还是您误解了我?

7

我认为您描述的书有名字。它分为七卷,只有三分之二已出版。它被称为计算机编程艺术(TAOCP),由Donald Knuth撰写。

尽管他有时可能会描述应用程序。但是您总是可以跳过它,并且我怀疑它是否包含很多内容。您不应对数学感到失望。


我担心这个答案可能会出现。我曾经看过它,但它不适合我。“您不应该对数学感到失望。” –也许,但是Knuth似乎也没有定义内容,而是他非正式地介绍了它,并对其进行了解释。很好的理解了这个想法,但是不是我对数学的期望。
k.stm

也许您可以通过发布他的数学上模糊的版本来为该领域做出贡献。但是,如果您感兴趣的是“从数学到算法的无缝过渡”,那么类型理论将是您更好的选择。数学与算法之间的关系仍然是一个研究主题。
2015年

1
PS:如果您“担心会出现这个答案”,那么您应该在问题中这样说,因为它是主要的参考书之一。完整且记录在案的问题可获得更好的答案。
babou 2015年

当我问了问题之后,才离开我的电脑。我对Knuth的书的评论不应贬低(我认为这是您为“出版数学混淆的版本”所发表的评论)的方式-可能像是在亵渎他人。他的方式也不是我要找的。也许那里没有我想像的东西……
k.stm 2015年

2
@ k.stm好吧,忘记混淆本身就是一个完整的话题。关键是,我认为算法学还不是数学。可能可以得到形式化,但是它们很可能是简单的编码,失去了实质,却没有什么好处。这取决于主题。对于自动机理论来说,它可能不那么真实,因为自动机理论确实具有重要的算法。关键是要充分识别结构的抽象数学性质并不明显。这是一个了解的问题,而不是形式化的问题,并且需要花费很多年。认为它像物理学一样
babou
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.