Questions tagged «reference-request»

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

3
类型系统的分类(强/弱,动态/静态)
简而言之:如何在学术环境中对类型系统进行分类;尤其是在哪里可以找到使不同类型的类型系统之间的区别清晰的信誉良好的来源? 从某种意义上说,这个问题的难点不是我找不到答案,而是我可以找到太多答案,而且没有一个能脱颖而出。背景是我正在尝试改进Has​​kell Wiki上有关输入的文章,该文章目前具有以下区别: 没有类型:语言没有类型的概念,或者从类型的角度来看:语言中只有一种类型。汇编语言只有“位模式”类型,Rexx和Tk只有“文本”类型,核心MatLab只有“复杂值矩阵”类型。 弱类型输入:只有很少的可分辨类型,可能还有几种类型的类型同义词。例如,C使用整数表示布尔值,整数,字符,位集和枚举。 强类型:细粒度的类型集,例如Ada,Wirthian语言(Pascal,Modula-2),Eiffel 这完全与我的个人看法相反,后者更像是: 弱类型输入:对象具有类型,但是在上下文需要时会隐式转换为其他类型。例如,Perl,PHP和JavaScript都是"1"可以在或多或少可以使用的任何上下文中使用的语言1。 强类型化:对象具有类型,并且没有隐式转换(尽管可以使用重载来模拟它们),因此在错误的上下文中使用对象是错误的。在Python中,用字符串或浮点数索引数组会引发TypeError异常;在Haskell中,它将在编译时失败。 我从其他比我更富有经验的人那里征求意见,有人对此进行了描述: 弱类型输入:对数据执行无效操作不会受到控制或拒绝,而只会产生无效/任意结果。 强类型:仅当数据与操作兼容时才允许对数据进行操作。 据我了解,第一个和最后一个特征将称为C弱类型,第二个将其称为强类型。第一个和第二个将Perl和PHP称为弱类型,第三个将它们称为强类型。这三个都将Python描述为强类型。 我认为大多数人会告诉我“嗯,没有共识,没有公认的条款含义”。如果这些人都错了,我很高兴听到这个消息,但如果他们是对的,那么如何做 CS的研究人员描述和比较类型的系统?我可以使用哪种问题较少的术语? 作为一个相关的问题,我觉得动态/静态区别通常是用“编译时间”和“运行时间”来表示的,考虑到是否编译语言并不是该语言的本质,我发现这并不令人满意。作为其实现。我觉得应该对动态类型和静态类型进行纯粹的语义描述。类似于“静态语言是可以在其中键入每个子表达式的语言”。我希望您能提出任何使这种概念更加清楚的想法,特别是参考文献。

2
分而治之的理论基础
在算法设计方面,通常采用以下技术: 动态编程 贪婪策略 分而治之 尽管对于前两种方法,有著名的理论基础,即Bellman最优性原理和拟阵理论(分别是Greedoid),但我找不到基于D&C的算法通用框架。 首先,我知道我们(或更确切地说,教授)在函数式编程类中引入的某种东西,称为“算法框架”,它是在组合器的上下文中产生的。作为示例,我们为D&C算法提供了如下框架: 定义:令为非空集。我们称解的元素,而的元素(即的子集)称为问题。然后,D&C骨架为4元组,其中:A,SA,SA,SSSS P:=P(A)P:=P(A)P:=\mathfrak{P}(A)AAA(Pβ,β,D,C)(Pβ,β,D,C)(P_\beta, \beta, \mathcal{D}, \mathcal{C}) PβPβP_\beta是在一系列问题的谓词和我们说一个问题是基本的当且仅当成立。pppPβ(p)Pβ(p)P_\beta(p) ββ\beta是映射,为每个基本问题分配解决方案。Pβ→SPβ→SP_\beta \rightarrow S DD\mathcal{D}是一个映射 ,它将每个问题分为一组子问题。P→P(P)P→P(P)P \rightarrow \mathfrak{P}(P) CC\mathcal{C}是一个映射,它将子问题的解决方案(取决于“枢轴问题”的类型)连接起来以产生一个解决方案。P×P(S)→SP×P(S)→SP\times \mathfrak{P}(S) \rightarrow S 然后,对于给定的骨架和问题,以下泛型函数计算一个解(在形式上义)为:s=(Pβ,β,D,C)s=(Pβ,β,D,C)s=(P_\beta, \beta, \mathcal{D}, \mathcal{C})pppfs:P→Sfs:P→Sf_s: P\rightarrow Sppp fs(p)={β(p)C(p,f(D(p)))if p is basicotherwisefs(p)={β(p)if p is basicC(p,f(D(p)))otherwisef_s(p)= \left\{ \begin{array}{l l} \beta(p) & \quad \text{if $p$ is basic}\\ \mathcal{C}(p,f(\mathcal{D}(p))) & \quad \text{otherwise} …

4
预订Cormen以外的算法
我已经完成了Cormen的《算法入门》一书中的大部分内容,并且正在寻找一本涵盖Corman本书以外的内容的算法书。有什么建议吗? 注意:我在stackoverflow上询问了此问题,但对答案并不满意。 注意:在我看来,通过阅读大多数评论,我很理想地希望在本课程说明中找到一本涵盖787课程材料的书。

7
年轻人的计算机科学书
此问题是从理论计算机科学堆栈交换迁移而来的,因为可以在计算机科学堆栈交换上回答。 迁移 7年前。 对于15岁的年轻人来说,什么是一本好的初学者计算机科学书籍?我想开始使用CS,但是不知道从哪里开始。我在编程方面的经验有限。

3
如何严格制定一个计算问题?
我经常与想问一个关于计算问题(或其复杂性)的算法的人互动,但是他们并没有以一种严格的方式来表达我们(计算机科学家)可以理解的方式。 用CLRS之类的书来引用它们是没有帮助的,因为那里的示例通常有一种非常直接的方式来严格地陈述,例如,给定一个图的邻接列表,并且图中的两个顶点计算出这些顶点之间的最短路径。 是否有任何一本好书(或其他资源),使对CS知识最少的人可以学习如何以计算机科学家可以理解的严格方式来表述和陈述计算问题? 最好,这本书应该有许多示例,这些示例如何从各个领域和现实世界的示例中严格地阐述计算问题。 澄清度 为了使问题更具体,让我们假设他们了解1/2年级本科CS学生的基本数学/ CS术语,例如集合,函数,图形,列表等(我所拥有的人就是这种情况)心神)。例如,他们阅读了一些入门性教科书,例如Aho和Ullman(尽管他们可能还没有完全理解它)。 Al Aho和Jeff Ullman,计算机科学基金会,1992年。

1
无锁,恒定的更新时间并发树数据结构?
我最近阅读了一些文献,并且发现了一些相当有趣的数据结构。 我研究了各种不同的方法来将更新时间降低到最坏情况下的更新时间[1-7]。O(1)O(1)\mathcal{O}(1) 最近,我开始研究无锁数据结构,以支持有效的并发访问。 在无锁数据结构的实现中是否使用了这些最坏情况下的更新时间技术?O(1)O(1)\mathcal{O}(1) 我问是因为 在我看来,它们似乎是这种“理论上的增强”的明显实践扩展。 Tarjan,Robert Endre。“以O(1)循环更新平衡的搜索树。”《信息处理快报》,第16号,否。5(1983):253 – 257。 Driscoll,JR,N Sarnak,DD Sleator和RE Tarjan。“使数据结构持久化”。在第18届ACM计算理论年度学术会议论文集中,109-121。STOC '86。美国纽约州:ACM,1986年。 Levcopoulos,C。和Mark H. Overmars。“具有O(1)最坏情况更新时间的平衡搜索树。” Acta Inf。26号 3(1988年11月):269-277。 鲁道夫·弗莱舍。具有O(1)最坏情况更新时间的简单平衡搜索树 Dietz,Paul F和Rajeev Raman。“一个恒定的更新时间手指搜索树。”信息处理,第52号信。3(1994):147 – 154。 Lagogiannis,George,Christos Makris,Yannis Panagis,Spyros Sioutas和Kostas Tsichlas。“具有最坏情况下恒定更新时间的新动态平衡搜索树。” J. Autom。郎 梳子。8号 4(2003年7月):607-632。 Brodal,GerthStølting,George Lagogiannis,Christos Makris,Athanasios Tsakalidis和Kostas Tsichlas。“指针机器中的最佳手指搜索树。” J. Comput。Syst。科学 67号 2(2003年9月):381-418。

1
难解决/难解决的满意度变量的分类
最近,我在论文[1]中发现了SAT的一种特殊对称形式,称为2/2 / 4-SAT。但是那里有许多变体,例如:MONOTONE NAE-3SAT,MONOTONE 1-IN-3-SAT,...NPNP\text{NP} 其他一些变体是容易处理: -,平面NAE-,...SAT SAT222SAT考试SAT\text{SAT}SAT考试SAT\text{SAT} 是否有调查文件(或网页)对所有已证明是 -complete(或在)的(奇怪的)变体进行分类?NP PSAT考试SAT\text{SAT}NPNP\text{NP}PP\text{P} NñNNNNND. Ratner和M. Warmuth(1986)很难找到15-Puzzle 的 x扩展的最短解决方案。

4
使用人类作为构建计算机的组成部分?
好的,在开始之前,我意识到这只是主题问题(我已经阅读了本网站的“问题”帮助),特别是因为这不是一个实际问题。然而: 我在Google上找不到任何相关内容 从纯粹的观点来看,它肯定一定属于计算机科学范畴吗? 无论如何,如果我超越了界限,那么我道歉并欢迎关闭,因为我是其他SE网站的狂热用户,因此我理解这些问题。 除了警告之外,这里是:我很想知道是否有可能构建一个以人为离散逻辑组件的功能性计算系统,以解决个人在实际时间尺度上无法解决的问题。例如,假设许多人被困在一个没有任何机器的岛上,而他们需要处理一些复杂的数字才能逃脱。 我想象安排人员,以便他们从系统中其他组接收输入,做出简单的决策(也许不是二进制决策),然后将输出传递给其他组。 然后,我想象可以开发某种编程语言来控制数据和计算流程,并且该语言可以用于解决复杂的问题而无需个人理解整体问题。 因此,我想以上内容不是一个可以回答的问题,但是任何人都不会知道任何研究,书籍,论文或任何有关实现目标,可以解决和潜在解决的问题,什么样的控制语言的知识。部署以及如何扩展该体系结构以处理更复杂的问题? 我想从本质上讲,我正在寻找可以“随意”排列的“理想化”原子(如自包含)和标准计算单元上的任何内容,我只是在以人类的眼光思考。 我觉得这个主意引人入胜。我希望有一天能尝试一下,看看能达到什么效果!抱歉,我使用过的标签,当我在这里搜索标签时,我很快意识到我不知道我在想什么正确的术语,尽管我确信它存在于该领域中...

2
我们知道,上下文无关的语言不会在补充条件下封闭。 据我了解,上下文无关的语言是某些字母的的子集,在complement(!?)下关闭 a ,b一种∗b∗a∗b∗a^*b^*一,ba,ba,b 这是我的论点。每个CF语言都有一个半线性的Parikh图像。半线性集在补码下是封闭的。代表半线性集的向量集可以轻松地转换为线性语法。π (大号)= { (米,Ñ )| 一米b Ñ ∈ 大号}大号LLπ(L )= { (m ,n )∣ a米bñ∈ 大号}π(L)={(m,n)∣ambn∈L}\pi(L) = \{ (m,n) \mid a^mb^n \in L \} 题。是否有对此事实的易于访问的参考? 从技术上讲,这些语言称为有界语言,即的某些单词。 w 1,… ,w kw∗1个… w∗ķw1∗…wk∗w_1^* \dots w_k^*w1个,… ,wķw1,…,wkw_1,\dots,w_k 我对此问题的动机来自于最近一个关于的上下文无关性的问题。在补码似乎更易于处理。a ∗ b ∗{ añb米| ñ2≠ m }{anbm∣n2≠m}\{ a^nb^m \mid n^2 \neq …

3
在运行时边界中是否出现比逆Ackermann增长慢的函数?
一些复杂的算法(联合查找)具有渐近时间复杂度中出现的近似恒定的逆阿克曼函数,如果忽略近似恒定的逆阿克曼项,则它们是最坏情况下的时间最优。 是否有已知算法的运行时间有任何示例,这些算法的运行时间从根本上比逆阿克曼倒数慢(例如,在多项式或指数等变换下不等同于阿克曼的函数倒数)给出了最著名的最坏情况时间解决根本问题的复杂性?

1
基于分区细化的算法比对数线性时间运行更快的问题
分区优化是一种从有限的对象集开始并逐步拆分对象集的技术。使用分区细化可以非常有效地解决某些问题(例如DFA最小化)。除了Wikipedia页面上列出的问题之外,我不知道通常可以使用分区优化来解决任何其他问题。在所有这些问题中,维基百科页面提到了两个基于线性分区优化的算法。有按字典顺序排序的拓扑排序[1]和按字典广度优先搜索的算法[2]。 是否还有其他示例或对可以使用分区细化有效解决的问题的引用,这在时间上比对数线性好? [1] Sethi,Ravi,“在两个处理器上调度图形”,SIAM计算杂志5(1):73-82,1976年。 [2] Rose,DJ,Tarjan,RE,Lueker,GS,“图上顶点消除的算法方面”,SIAM计算杂志5(2):266-283,1976。

2
如何将并行复杂性结果缩小到不断增加的多个内核?
我在接受类NC给出的“通过并行算法有效解决”的复杂性理论视图时遇到了问题: NC是可以通过并行算法在具有处理器上的时间上通过并行算法解决的问题。p (Ñ )∈ ø (Ñ ķ)Ç ,ķ ∈ ÑO (对数Cn )O(logc⁡n)O(\log^cn)p (Ñ )∈ Ô (Ñķ)p(n)∈O(nk)p(n) \in O(n^k)Ç ,ķ ∈ Ñc,k∈Nc,k \in \mathbb{N} 我们可以假设一个PRAM。 我的问题是,这对于“真实”机器似乎没有多说,即具有有限数量处理器的机器。现在,我被告知“众所周知”,我们可以在处理器上“有效地”模拟处理器算法。p ∈ ÑØ (ñķ)O(nk)O(n^k)p ∈ Ñp∈Np \in \mathbb{N} “有效”在这里是什么意思?这是民间传说还是有严格的定理来量化模拟所引起的开销? 我担心发生的事情是我遇到了一个问题,该问题有一个顺序算法和一个“高效”并行算法,当在处理器上进行仿真时,也需要时间(如果顺序算法是渐近最优的,那么在这种粒度的分析上就可以预期到所有这些)。在这种情况下,据我们所知,并没有加速。实际上,模拟并行算法可能比顺序算法慢。那就是我真正在寻找比 bounds 更精确的声明(或声明没有这种结果的声明)。p O (n k)Ø (ñķ)O(nk)O(n^k)pppØ (ñķ)O(nk)O(n^k)ØOO

2
实际中是否已将链接剪切树用于最大流量计算或其他应用程序?
通过使用动态树(也称为链接剪切树),我通常会看到许多实现的最大流算法,狄尼克算法,推入重贴标签以及其他算法可以改善其渐近时间成本。 推重贴标签通常在或或,但带有动态树Ø (V2Ë)Ø(V2Ë)O(V^2E)Ø (V3)Ø(V3)O(V^3)Ø (V2Ë--√)Ø(V2Ë)O(V^2\sqrt{E})Ø (VË日志(五2/ E))Ø(VË日志⁡(V2/Ë))O(VE \log(V^2/E)) Dinic的算法在,但具有动态树Ø (V2Ë)Ø(V2Ë)O(V^2E)Ø (VË日志(五))Ø(VË日志⁡(V))O(VE\log(V)) 但是,大多数库中的最大流算法的实际实现似乎并未利用此数据结构。在实践中是否曾使用动态树进行最大流量计算?还是它们承担了过多的开销以至于无法解决现实世界中的问题规模? 是否还有其他使用链接剪切树的问题域? 这个问题与我在cstheory上提出的一个问题有关:现有技术中的最大流量算法是否可行?


1
谁创造了“机器学习”一词?
我试图找出谁创造了“机器学习”一词。一个辅助问题是从1959年引用亚瑟·塞缪尔(Arthur Samuel)在哪里定义“机器学习”的领域为: 使计算机无需明确编程即可学习的研究领域 ? 在Internet上可以找到很多对此定义的引用,但是我一直无法找到源。有人将其作为他在1959年发表的关于棋子的论文,但我在那里没有找到任何这样的定义。

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.