计算机科学

为学生,研究人员和计算机科学从业者提供的问答

1
TCS专业数学
我正在寻找理论计算机科学专业;特别是,我对复杂性理论和概率自动机理论感兴趣。在我即将毕业的一年中,您认为接下来的两个学期中,哪些数学高级课程(例如伽罗瓦理论或谐波分析)对您有用?为什么?


1
统一与SAT解算器
我在Wikipedia上读到,统一是解决可满足性问题的过程。 同时,我知道这类求解器称为“ SAT求解器”或“ SMT求解器”。那么,对于同一件事,它们是否具有不同的名称? 如果您说他们不同,请指出我的治疗有缺陷。


3
CLRS的D元堆问题
解决以下问题时我感到困惑(问题1-3)。 题 甲d进制堆就像是一个二进制堆,但(带有一个可能的例外)非叶节点具有d孩子而2个孩子。 您将如何在数组中表示d -ary堆? n个元素的d元堆的高度分别是n和d? 在d -max-heap中给出EXTRACT-MAX的有效实现。根据d和n分析其运行时间。 在d-最大堆中给出INSERT的有效实现。根据d和n分析其运行时间。 给出INCREASE-KEY(A,i,k)的有效实现,如果k <A [i] = k,则标记一个错误,然后适当地更新d -ary矩阵堆结构。根据d和n分析其运行时间。 我的解决方案 给一个数组A [ a1个。。一个ñ]一个[一个1个。。一个ñ]A[a_1 .. a_n] 根1级2级等级k:一个1个:一个2… 一个2 + d− 1:一个2 + d… 一个2 + d+ d2− 1⋮:一个2 + ∑我= 1k − 1d一世… 一个2 + ∑我= 1ķd一世− 1根:一个1个1级:一个2…一个2+d-1个2级:一个2+d…一个2+d+d2-1个⋮等级k:一个2+∑一世=1个ķ-1个d一世…一个2+∑一世=1个ķd一世-1个\qquad \begin{align} \text{root} &: a_1\\ \text{level 1} &: …

1
用于编辑距离计算的微优化:有效吗?
在Wikipedia上,给出了自下而上的用于编辑距离的动态编程方案的实现。它没有完全遵循定义。内部单元的计算如下: if s[i] = t[j] then d[i, j] := d[i-1, j-1] // no operation required else d[i, j] := minimum ( d[i-1, j] + 1, // a deletion d[i, j-1] + 1, // an insertion d[i-1, j-1] + 1 // a substitution ) } 如您所见,如果存在匹配项,该算法始终从左上角的邻居中选择值,从而节省了一些内存访问,ALU操作和比较。 但是,删除(或插入)可能会导致较小的值,因此该算法在局部上是不正确的,即,它违反了最佳标准。但是也许错误不会改变最终结果-可能会消除它。 这种微优化有效吗?为什么不呢?


1
不同子句的不同变量
在解析定理证明中,通常假设不同子句中的变量是不同的。这不是自动发生的事情。它需要大量额外的代码和计算才能实现。鉴于此,我正在寻找一个测试用例。 问题是,到目前为止,在我已经尝试过的所有测试用例中,它没有区别。大概只有在异常情况下才重要。正如Wikipedia所说,“不同子句中的变量是不同的...现在,将第一子句中的Q(X)与第二子句中的Q(Y)统一意味着X和Y始终成为相同的变量。” 如果不同的子句使用相同的变量,是否有任何已知的测试用例会给出错误的答案?


2
确定时间和空间中的特定数字(最坏的情况)
\newcommand\ldotd{\mathinner{..}}假定A[1..n]A[1..n]A[1\ldotd n]是整数,则对于所有1 \ le k \ le n均为0 \ le A [k] \ le m,并且每个出现除A [1 \ l点缀n]中的特定数字以外的数字是奇数。尝试查找出现为偶数的数字。0≤A[k]≤m0≤A[k]≤m0\le A[k]\le m1≤k≤n1≤k≤n1\le k\le nA[1..n]A[1..n]A[1\ldotd n] 有一个Θ(nlogn)Θ(nlog⁡n)\Theta(n\log n)算法:我们将A [1 \ ldotd n]排序A[1..n]A[1..n]A[1\ldotd n]为B[1..n]B[1..n]B[1\ldotd n],然后将B[1..n]B[1..n]B[1\ldotd n]分解成许多块,其元素值为相同,因此我们可以计算每个元素的出现。 我想找到最坏的情况O(n)O(n)O(n) -时间和O(n)O(n)O(n) -空间算法。 假设m=Ω(n1+ϵ)m=Ω(n1+ϵ)m=\Omega(n^{1+\epsilon})和ϵ>0ϵ>0\epsilon>0,那么基数排序是不可接受的。 \DeclareMathOperator{\xor}{xor} 二进制按位运算是可接受的,例如A[1]xorA[2]A[1]xor⁡A[2]A[1]\xor A[2]。

1
确定给定字符串与字符串集合的相似程度
我不确定这个问题是否属于这里,如果没有,我深表歉意。我要做的是开发一种编程方式,通过该方式我可以概率确定给定的字符串是否“属于”一袋字符串。例如,如果我有10,000个美国城市名称,然后有字符串“费城”,我想根据我已经知道的美国城市名称,用某种定量方法来衡量“费城”是美国城市名称的可能性。虽然我知道在这种情况下我无法将真实的城市名称与假的城市名称区分开,但我至少会希望排除诸如“ 123.75”和“快速的红狐狸跳过懒惰的棕色狗”之类的字符串一些门槛。 首先,我研究了Levenshtein距离,并探讨了如何将其应用于至少与我要解决的问题类似的问题。我发现的一个有趣的应用是窃检测,其中一篇论文描述了如何使用Levenshtein距离和改进的Smith-Waterman算法对纸张进行打分,并根据它们是给定原纸的抄袭版本的可能性进行评分。我的问题是,是否有人可以用其他可能对我有帮助的既定算法或方法为我指明正确的方向。我感觉这可能是过去有人试图解决的问题,但到目前为止,我的Google-fu无法使我成功。

1
证明RAM机可在T(n)中计算的布尔函数在DTIME(T(n)^ 2)中
问题是Arora-Barak的书《计算复杂性-一种现代方法》中的练习1.9 : 将RAM Turing计算机定义为具有随机访问内存的Turing计算机。我们将其形式化如下:机器具有一个初始化为所有空格的无限数组A。它按如下方式访问此数组。机器的工作磁带之一被指定为地址磁带。机器还具有两个用R和W表示的特殊字母符号,以及一个用q_access表示的附加状态。每当机器进入q_access时,如果其地址带包含“ i” R(其中“ i”表示i的二进制表示形式),那么值A [i]就会写入R符号旁边的单元格中。如果其磁带包含“ i” Wa(其中a是机器字母中的某些符号),则将A [i]设置为值a。 证明如果布尔函数可在RAM TM的时间(对于某个时间可构造的)内计算,则它在。fffT(n)T(n)T(n)TTTDTIME(T(n)2)DTIME(T(n)2)\mathrm{DTIME}(T(n)^2) 使用附加的磁带记录对(地址,值)的简单解决方案结果是,因为该磁带的大小可以为用对,而每对中的地址可以是尺寸的。DTIME(T(n)3)DTIME(T(n)3)\mathrm{DTIME}(T(n)^3)O(T(n)2)O(T(n)2)O(T(n)^2)O(T(n))O(T(n))O(T(n))O(T(n))O(T(n))O(T(n))

2
难忘的IPv6地址的哈希功能很弱
862A:7373:3386:BF1F:8D77:D3D2:220F:D7E0与IPv4的4个八位位组相比,形式的IPv6地址更难记甚至抄写。 目前已 被尝试以减轻这一点,使IPv6地址在某种程度上更令人难忘。 是否存在一个故意弱的散列函数,可以将其反转以发现短语“如果短语被弯曲以使其不值得支付,则这是相对良性且容易发现的”会散列到目标IPv6地址吗?当然,散列将有许多冲突的输入可供选择,并且可能会自动提供一个可能更令人难忘的句子,例如此示例短语。 我猜有两个部分:首先是在两个方向上都具有良好分布的弱哈希。其次是一种算法,用于从许多冲突中选择难忘的短语(简短的单词,由来自特定语言的单词组成,甚至可能遵循简化的语法)。 尽管散列函数需要很弱,但我毫不怀疑这种努力仍然很重要-但是,一旦知道了该短语,对目标地址的散列的计算就会非常快。 编辑 我发现了与之相关的想法文字学,用于记忆π的一些数字: 在涉及量子力学的大量演讲之后,我多么希望自己能喝一杯,当然是酒精!

2
神经网络的计算能力是否与激活函数有关
证明了具有合理权重的神经网络具有通用图灵机神经网络的图灵可计算性的计算能力。从我得到的结果来看,使用实值权重似乎可以产生更大的计算能力,尽管我不确定这一点。 但是,神经网络的计算能力与其激活函数之间是否存在任何关联?例如,如果激活函数将输入与Specker序列的限制进行比较(这是常规Turing机器无法做到的,对吗?),这是否会使神经网络在计算上“更强”?有人可以指出我在这个方向上的参考吗?

2
二叉树的平均高度是多少?
关于二叉树的平均高度是否有正式定义? 我有一个有关使用以下两种方法查找二叉树的平均高度的教程问题: 自然的解决方案可能是取从根到叶的所有可能路径的平均长度,即 Avh1个(T)= 1#叶 ŧ·&ΣT的v 叶 深度(v )Avh1个⁡(Ť)=1个#留在 Ť⋅∑v 的叶 Ť深度⁡(v)\qquad \displaystyle \operatorname{avh}_1(T) = \frac{1}{\text{# leaves in } T} \cdot \sum_{v \text{ leaf of } T} \operatorname{depth}(v)。 另一种选择是递归定义它,即节点的平均高度是子树的平均高度加一的平均值,即 Avh2(N(l ,r ))= avh2(l )+ avh2(r )2+ 1Avh2⁡(ñ(升,[R))=Avh2⁡(升)+Avh2⁡([R)2+1个\qquad \displaystyle \operatorname{avh}_2(N(l,r)) = \frac{\operatorname{avh}_2(l) + \operatorname{avh}_2(r)}{2} + 1 与对于叶子和为空时隙。l avh 2(_ )= 0Avh2(l …

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.