Questions tagged «reference-request»

要求文献提供有关特定,狭窄问题的问题。

3
关于一系列主题的算法书籍
想要改善这篇文章吗?提供此问题的详细答案,包括引文和答案正确的解释。没有足够详细信息的答案可以被编辑或删除。 我的任务是为我们的小公司(约15人)建立有关算法的书籍库。预算超过5k,但肯定少于1万,所以我可以买很多书。这里的所有人都至少具有CS或紧密相关领域的学士学位,因此,尽管我会获得像Cormen这样的基本教科书,但我对高级主题的好书更感兴趣。(我将获得Knuth的4卷,顺便说一句。) 一些主题列表如下: 排序算法 图算法 字符串算法 随机算法 分布式算法 组合算法 等等 本质上,我在关于CS中与算法和数据结构相关的主要主题的书籍中寻找好的建议。尤其是超出一门好学校学士学位课程的算法和数据结构课程通常涵盖的内容。我知道这个问题很模糊,因为我正在寻找通用的有用材料。我们开发的软件主要是系统级的东西,处理大量数据。 理想的选择是找到可以涵盖大多数人可能尚未听说的相当新的酷数据结构和算法的任何内容。 编辑:这是我认为应该得到的一些初步书籍: Cormen等人的算法简介。 算法设计,克莱因伯格,塔多斯 Knuth的计算机编程艺术第1-4卷 Vazirani的近似算法 Williamson,Shmoys的近似算法设计 Moghani,Raghavan的随机算法 Sipser计算理论导论 Arora的计算复杂性,巴拉克 Garey和Johnson撰写的《计算机与难处理》 Schrijver的组合优化 我的同事希望与其他有关语言设计,编译器和形式方法的技术和算法的书籍包括: 皮尔斯的类型和编程语言 贝尔的模型检查原理,加藤 编译器:Aho,Lam,Sethi,Ullman编写的原理,技术和工具 编译器设计手册:优化和机器代码生成,第二版,Srikant,Shankar 垃圾收集手册:Jones,Hosking和Moss的自动内存管理技术

5
OOP中对象状态的定义
我需要在面向对象的编程中(针对论文)对“对象的状态”进行简洁的定义。 在大约半天的时间里,我搜索了一篇可以引用该主题的论文,但找不到。我发现的所有论文大部分都是有关面向对象程序设计的常规论文,它们没有定义对象的状态。 我不确定,但是我的最佳猜测是: 对象的状态由对象的实例变量的状态定义。 我正在搜索对象状态的定义和/或关于主题的引用。 (顺便说一句,我可以将这个概念称为“对象状态”吗?还是不常见?)


1
推断优化类型
在工作中,我的任务是推断一些有关动态语言的类型信息。我将语句序列重写为嵌套let表达式,如下所示: return x; Z => x var x; Z => let x = undefined in Z x = y; Z => let x = y in Z if x then T else F; Z => if x then { T; Z } else { F; Z } 由于我从一般类型信息开始,并试图推断出更具体的类型,因此自然的选择是精简类型。例如,条件运算符返回其真假分支类型的并集。在简单的情况下,它效果很好。 但是,在尝试推断以下类型时遇到了障碍: function …
11 programming-languages  logic  type-theory  type-inference  machine-learning  data-mining  clustering  order-theory  reference-request  information-theory  entropy  algorithms  algorithm-analysis  space-complexity  lower-bounds  formal-languages  computability  formal-grammars  context-free  parsing  complexity-theory  time-complexity  terminology  turing-machines  nondeterminism  programming-languages  semantics  operational-semantics  complexity-theory  time-complexity  complexity-theory  reference-request  turing-machines  machine-models  simulation  graphs  probability-theory  data-structures  terminology  distributed-systems  hash-tables  history  terminology  programming-languages  meta-programming  terminology  formal-grammars  compilers  algorithms  search-algorithms  formal-languages  regular-languages  complexity-theory  satisfiability  sat-solvers  factoring  algorithms  randomized-algorithms  streaming-algorithm  in-place  algorithms  numerical-analysis  regular-languages  automata  finite-automata  regular-expressions  algorithms  data-structures  efficiency  coding-theory  algorithms  graph-theory  reference-request  education  books  formal-languages  context-free  proof-techniques  algorithms  graph-theory  greedy-algorithms  matroids  complexity-theory  graph-theory  np-complete  intuition  complexity-theory  np-complete  traveling-salesman  algorithms  graphs  probabilistic-algorithms  weighted-graphs  data-structures  time-complexity  priority-queues  computability  turing-machines  automata  pushdown-automata  algorithms  graphs  binary-trees  algorithms  algorithm-analysis  spanning-trees  terminology  asymptotics  landau-notation  algorithms  graph-theory  network-flow  terminology  computability  undecidability  rice-theorem  algorithms  data-structures  computational-geometry 


1
收集APX难题
每个人都知道“ Garey&Johnson”,当我需要一个问题来解决NP硬度证明时,这就是我的首选。但是,我最近发现自己需要APX硬度证明,并且我想知道是否存在类似(且最新的..?)问题集,这些问题被证明是APX困难的。 有人知道这样的事吗?我发现很难相信没有系统地收集此类问题的网站,但是我的Google技能似乎不足。

2
关于算法的好数学书[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 我很喜欢数学的优雅和严谨,现在正在寻找有关算法和算法分析的文献。现在,涵盖什么算法对我来说并没有多大关系,但是如何呈现和对待它们就非常重要。¹我最看重一种非常清晰准确的语言,该语言以严格抽象的方式定义了所有使用的概念。 我发现由Cormen,Leiserson,Rivest和Stein撰写的经典算法简介非常整洁,但是对数学的处理不够好,并且其证明和定义非常非正式。在这方面,Sipser的《计算理论导论》似乎更好,但是仍然没有提供从数学到算法的无缝过渡。 谁能推荐一些东西? ¹:算法至少应使用经典的非平凡抽象数据结构(例如图形,数组,集合,列表,树等)来调用其所需数据的管理,最好也对此类数据结构进行操作。如果完全忽略数据结构的使用和管理问题,我不会太感兴趣。不过,我不太关心用它们解决的问题。


2
如何得出依赖类型的消除符?
在依赖类型的编程中,有两种主要的方法来分解数据并执行递归: 相关模式匹配:函数定义作为多个子句给出。统一可确保所有遗漏的情况都是不可能的,并且外部求解器可确保有充分的递归依据。 消除符:每个归纳数据类型都有一个关联的常数E D,它充当归纳原理,并充当分解类型D的值的递归函数。它们比较冗长,但是具有总计(所有情况都由E D覆盖)并通过构造终止的优点。ddDËdËdE_DddDËdËdE_D 我已经看到了常见数据类型的消除器,例如,其中消除器基本上是数学归纳法,或者L i s t,其中消除器基本上是折叠。ñ一个牛逼ñ一个ŤNat大号我小号吨大号一世sŤList 我已经阅读了几篇有关依存模式匹配的论文,并且许多论文都引用了类型理论,在其中可以定义数据类型,并且该理论提供了消除符。例如,消除相关模式匹配描述了UTT如何基于消除符,以及在存在公理的情况下如何将模式匹配转换为消除。我的理解是,一旦定义了数据类型,该理论便提供了消除器。ķķK 我没有发现(或者至少没有发现,如果我没看过的话)很好地描述了如何导出消除符,包括其类型和语义。 有人可以指出我的引用,该引用描述了如何从数据类型的定义中获得消除符吗?

2
是否有用于实验比较运行时的标准?
我的情况 我正在写一篇论文,介绍我开发的软件模块,并且想将其运行时间与同一任务的其他模块进行比较。我知道运行时实验的弊端,但请假设在我的情况下无法解决它。(我可以并且确实可以从理论上推论出某些属性,但是并不能满足所有要求。) 我想用于基准测试的特定方案有两个参数:问题的复杂度 和确定详细问题的随机种子 r。我主要想展示对n的依赖 。根据初步研究和理论,r对运行时的影响很小或可以忽略。单个任务最多需要十分钟才能完成。nnnrrrnnnrrr 实际问题 我正在寻找一些进行此类实验的公认或公开程序,或者至少要列出一些常见的陷阱(理想情况下已发布)。 我到目前为止发现的 没有。互联网搜索会产生各种各样无关的结果,但是我可能没有使用正确的术语。包括最低关键字(我知道这是一个很好的标准)(请参见下文)也没有帮助。 我会怎么做 尽可能在禁用了GUI等潜在干扰软件的情况下,在同一台计算机上运行所有实验。 使所有模块经受场景的相同选择,即,相同的和 r。nnnrrr 对于每种情况,请以随机顺序彼此直接直接测试不同的模块。换句话说,不同模块之间的循环是最里面的模块。这应避免由于机器性能的缓慢波动(例如,由于温度变化)而对不同模块造成偏差。随机顺序应避免由于诸如缓存之类的影响而产生偏差,或者避免一个模块总是在同一模块之后进行测试。 nnn

2
此重排/排序问题的名称?
给您一个长度为的数组。数组的每个元素都属于K类之一。你应该重新排列使用交换操作的最小数量,以使阵列的所有元素从相同类总是组合在一起,即它们形成连续的子阵列。 例如: nnnKKK 剩下三个有效的安排。[2,1,3,3,2,2]⟶[2,2,2,1,3,3], or[2,1,3,3,2,2]⟶[1,2,2,2,3,3], or[2,1,3,3,2,2]⟶[3,3,2,2,2,1].[2,1,3,3,2,2]⟶[2,2,2,1,3,3], or[2,1,3,3,2,2]⟶[1,2,2,2,3,3], or[2,1,3,3,2,2]⟶[3,3,2,2,2,1]. \begin{align*} &[2, 1, 3, 3, 2, 2] \longrightarrow [2, 2, 2, 1, 3, 3], \text{ or} \\ &[2, 1, 3, 3, 2, 2] \longrightarrow [1, 2, 2, 2, 3, 3], \text{ or} \\ &[2, 1, 3, 3, 2, 2] \longrightarrow [3, 3, …

1
有关通过检查邻接矩阵多项式来图同构的朴素方法的文献
我描述了一种可能有假阳性的图同构方法,并且我很好奇是否有文献表明它不起作用。 给定两个邻接矩阵,检查同构的一个公认的幼稚方法是检查是否对每行的,有一个行的其是行的置换,记为。稍微更严格的是问题,是否有一个“本地同构”为其中对于所有的行。可以通过建立一个具有的矩阵来在多项式时间内完成局部同构。然后是和G,HG,HG, HuuuGGGvvvGGGuuuG[u]∼H[v]G[u]∼H[v]G[u] \sim H[v]ππ\piG[u]∼H[π(u)]G[u]∼H[π(u)]G[u] \sim H[\pi(u)]n×nn×nn\times nAAAA[u,v]=(G[u]∼H[v])A[u,v]=(G[u]∼H[v])A[u,v] = (G[u]\sim H[v])GGGHHH如果具有循环覆盖,并且每个循环覆盖都是局部同构,则它们是局部同构的。AAA 显然,所有正则图都愚弄了此方法,因此,天真的方法要稍微少一点点,就是计算幂并检查它们的局部同构性,可以通过在发现任何使幂时设置来设置多个矩阵,并仅在最后检查循环覆盖。甚至更少幼稚的方法是找到一组多项式,确实一组算术电路,并且设置A [U,V] = 0时,我们发现任何多项式p与P(G)[U] \不\ SIM P( H)[v]。G2,H2,G3,H3,…G2,H2,G3,H3,…G^2, H^2, G^3, H^3,\ldotsA[u,v]=0A[u,v]=0A[u,v] = 0Gk[u]≁Hk[v]Gk[u]≁Hk[v]G^k[u]\not\sim H^k[v]A[u,v]=0A[u,v]=0A[u,v]=0pppp(G)[u]≁p(H)[v]p(G)[u]≁p(H)[v]p(G)[u]\not\sim p(H)[v] 在我看来,这似乎是一种非常幼稚的图同构方法,因此我确信有人已经对其进行了研究并证明了一个定理,例如 Thm对于无限多个nnn存在非同构n \ x n个n×nn×nn\times n矩阵G,HG,HG, H和一个置换ππ\pi,使得对于每个多项式ppp,p(G)p(G)p(G)和p(H)p(H)p(H)通过置换进行局部同构:p(G)∼πp(H)p(G)∼πp(H)p(G)\overset{\pi}{\sim}p(H)。 问题:有这样一个定理吗?我看过文献,找不到。 如果有一个键合上的程度即在多项式使得对于每两个非同构矩阵,本地同构是通过计算反驳,或者如果存在一个易于计算的多项式族,每个都有多项式边界长度,但可能是指数级,那么我们就有一个P算法用于图同构。如果这样的多项式(或算术电路)很容易猜到,那么我们有一个coRP算法。如果总是存在一个(家族)算术电路来见证非局部同构,那么就给出了一个coNP算法。kkknnnG1,H1,…,Gpoly(n),Hpoly(n)G1,H1,…,Gpoly(n),Hpoly(n)G^1, H^1, \ldots, G^{poly(n)}, H^{poly(n)}p1,…,pkp1,…,pkp_1, \ldots ,p_k 注意,我们可以通过在小场上计算多项式,例如通过对小素数进行模运算来避免高功率矩阵的项变得太大的问题。在coNP算法中,证明者可以提供这些素数。

4
证明功能代码正确的常见形式化技术有哪些?
我想为我作为论文一部分编写的Haskell程序的某些部分提供证明。但是到目前为止,我找不到很好的参考书。 格雷厄姆·赫顿(Graham Hutton)的入门书籍《编程在Haskell中编程》(《Google图书》)(我在学习Haskell时就读了)涉及一些推理程序的技巧,例如 方程式推理 使用非重叠模式 列表归纳 在第13章中,但不是很深入。 您是否可以推荐任何书籍或文章,以更详细地概述Haskell或其他功能代码的形式证明技术?

2
是否存在以纯数据流样式构成“增量更新”功能的范例?
我不知道问这个问题的正确术语,所以我会用很多单词来描述它,请耐心等待。 背景,正好在同一页上:程序通常包含缓存-时间/内存的权衡。程序员的一个常见错误是在更改其上游源/先例之一后忘记更新缓存的值。但是数据流或FRP编程范例可以避免此类错误。如果我们有许多纯函数,并在有向依存关系图中将它们连接在一起,则节点可以缓存并重用其输出值,直到任何函数的输入发生变化。该系统体系结构在《基于数据流的环境中的缓存》一文中进行了描述,并且使用命令式语言或多或少地类似于记忆。 问题:当函数的输入之一确实发生变化时,我们仍然必须整体执行该函数,丢弃其缓存的输出并从头开始重新计算。在许多情况下,这对我来说似乎是浪费。考虑一个简单的示例,该示例生成一个“前5名”列表。输入数据是任何内容的未排序列表。它作为输入传递给输出排序列表的函数。依次输入到仅接受前5个项目的功能。用伪代码: input = [5, 20, 7, 2, 4, 9, 6, 13, 1, 45] intermediate = sort(input) final_output = substring(intermediate, 0, 5) 排序函数的复杂度为O(N log N)。但是请考虑在应用程序中使用此流程,在该应用程序中,输入仅通过添加1个元素而仅稍有变化。与其每次都从头开始重新排序,不如使用O(N)函数,它通过在正确位置插入新元素来更新旧的缓存排序列表,将更快。这只是一个示例-许多“从头开始”功能都具有这种“增量更新”功能。另外,也许新添加的元素甚至不会出现在final_output中,因为它位于第5位之后。 我的直觉表明,有可能以某种方式将这样的“增量更新”功能与现有的“从头开始”功能并排添加到数据流系统中。当然,从头开始重新计算所有内容必须始终具有与进行一系列增量更新相同的结果。系统应具有这样的特性:如果每个单独的原始FromScratch增量对总是给出相同的结果,然后由他们建造的大型复合功能也应该会自动给出相同的结果。 问题:是否可能有一个系统/体系结构/范式/元算法既可以支持FromScratch函数也可以支持它们的增量对等函数,并为提高效率而合作并组成大量流程?如果没有,为什么?如果有人已经研究了该范式并发布了它,那么它被称为什么,我能否简要了解它的工作原理?


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.