计算机科学

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


4
是否可以使用加密创建“时间胶囊”?
我想创建一个数字时间胶囊,它将在一段时间内保持不可读状态,然后变得可读。我不想依靠任何外部服务,例如,将密钥保密,然后在需要的时间将其公开。这可能吗?如果不是,是否有某种可能的证明? 一种策略将基于对未来计算能力的预测,但这是不可靠的,并且会假设将多少资源应用于任务。

1
我们知道Immerman–Szelepcsényi定理由性位于,并且由于是因此,性可以简化为的一个对数空间。但是,是否存在中没有通过图灵机配置图的直接/组合简化?N Lst-non-connectivityst-non-connectivityst\text{-}non\text{-}connectivityNLNL\mathsf{NL}Ñ 大号- ħ 一个[R d小号吨- ñ ö ñ - Ç ö Ñ Ñ Ê Ç 吨我v 我Ť ý 小号吨- Ç ö Ñ Ñ Ë Ç Ť 我v 我吨ÿ ñ 大号st-connectivityst-connectivityst\text{-}connectivityNL-hardNL-hard\mathsf{NL\text{-}hard}st-non-connectivityst-non-connectivityst\text{-}non\text{-}connectivityst-connectivityst-connectivityst\text{-}connectivityNLNL\mathsf{NL} stConnectivitystConnectivity\mathsf{stConnectivity}(又称):stPATHstPATHstPATH 给定有向图以及顶点和,GGGsssttt 是否存在从顶点sss到顶点的定向路径ttt? 说明: 您可以假定图是由其邻接矩阵给出的(但是,这并不是必需的,因为图的标准表示形式可以在日志空间之间相互转换。) 是可能的解压的证明的岬小号吨- Ç ö Ñ Ñ Ê Ç 吨我v 我Ť ÿ并将其移动到证明,以便证明不使用它该定理为引理。然而,这本质上仍然是相同的构造。我要寻找的不是这个,我要从概念上直接减少。让我比照N P案。我们可以减少各种N P - c …

1
有效地选择中位数及其左侧和右侧的元素
假设我们有一个组的Ñ编码器。S={a1,a2,a3,…,aN}S={a1,a2,a3,…,aN}S = \{ a_1,a_2,a_3,\ldots , a_N \}NNN 到目前为止,每个编码员都具有等级和金牌数量E i。RiRiR_iEiEiE_i 一家软件公司希望恰好雇用三个编码员来开发应用程序。 为了聘请三位编码员,他们制定了以下策略: 他们首先以等级升序和金牌降序排列编码器。 他们从这个排列好的列表中选择三个中间编码器。例如,如果排列的列表是它们选择(a 2,a 3,a 1)编码器。(a5,a2,a3,a1,a4)(a5,a2,a3,a1,a4)(a_5,a_2,a_3,a_1,a_4)(a2,a3,a1)(a2,a3,a1)(a_2,a_3,a_1) 现在,我们必须通过为此任务编写程序来帮助公司。 输入: 第一行包含,即编码器的数量。NNN 然后,第二行包含收视的我个编码器。RiRiR_iiii 第三行包含 iii个编码器。 输出: 仅显示一行,其中包含公司将选择的三个编码器获得的金牌总数。

1
在多项式时间内找到五角星
我想确定这是我目前正在学习的课程的家庭作业的一部分。我正在寻求一些协助,而不是答案。 这是有问题的问题: 无向图中的五角星是五角星。显示5-POINTED-STAR,其中5-POINTED-STAR =包含一个5点星形作为子图。∈ P∈P\in P{ < G >{<G>\{ :G:G: G}}\} 其中一个集团是CLIQUE =是一个无向图与 -clique。{ (G ,k ):G{(G,ķ):G\{(G, k) : GGGGķķk}}\} 现在我的问题是,这似乎正在解决CLIQUE问题,确定一个图形是否包含一个集团,并具有其他额外的约束条件,即必须确定CLIQUE形成一个五角星。这似乎涉及基于五角星知识的一些几何计算。但是,在迈克尔·西普塞(Michael Sipser)的“计算理论”(第268页)中,有证据表明CLIQUE位于,第270页指出:ñPñPNP 我们已经介绍了NP成员但不知道在PPP的语言示例,例如HAMPATH和CLIQUE 。[重点添加] 如果CLIQUE不在,为什么五个尖星在?有没有我看不到的东西吗? 请记住,这是一个家庭作业问题,不会直接回答。 谢谢!PPPPPP

1
随机选择
随机选择算法如下: 输入:一个数组,其中包含(为简单起见,是不同的)数字和一个Ñ ķ ∈ [ Ñ ]AAAnnnk∈[n]k∈[n]k\in [n] 输出:该“等级的元素”(即,一个在位置如果进行了排序)甲ķ 甲kkkAAAkkkAAA 方法: 如果有一个元素,则将其返回AAA 随机均匀地选择一个元素(“枢轴”)ppp 计算集合和- [R = { 一个∈ 甲:一&gt; p }L={a∈A:a&lt;p}L={a∈A:a&lt;p}L = \{a\in A : a < p\}R={a∈A:a&gt;p}R={a∈A:a&gt;p}R = \{a\in A : a > p\} 如果,返回的等级元素。ķ 大号|L|≥k|L|≥k|L| \ge kkkkLLL 否则,返回等级元素[Rk−|L|k−|L|k - |L|RRR 我被问到以下问题: 假设,那么您正在寻找中位数,并将 设为常数。在第一次递归调用中,包含中位数的集合的大小最大为的概率是多少?α &Element; (1 / 2 ,1 …

2
玩四的机器学习算法连接
我目前正在阅读有关机器学习的文章,并想知道如何将其应用于玩Connect Four。 我目前的尝试是使用S型函数模型和“一对多”方法的简单多类分类器。 在我看来,输入要素必须是7x6 = 42网格字段的状态(播放器1的光盘,播放器2的光盘为空)。 输出将是放入光盘的行数。因为这是1到7之间的离散数字,所以我认为可以将其视为多类分类问题。 但是,如何生成可用于监督学习的培训示例? 主要目标是赢得比赛,但是除了最后一回合,每次比赛的结局显然都不为人所知。如果我只让两个随机决定做什么的玩家互相对抗数千次,那么简单地将每一轮胜利者的所有回合作为训练示例就足够了吗?还是我必须以完全不同的方式来做到这一点? 编辑:根据评论中的建议,我读了一些关于强化学习的知识。 据我所知,Q-Learning应该可以解决问题,即我必须近似当前状态的函数Q,并采取行动使其成为从该状态开始的最大累积奖励。然后,每个步骤将是选择导致Q最大值的动作。但是,此游戏有太多状态要执行此操作,例如作为查找表。那么,对这个Q函数建模的有效方法是什么?

2
计算矩阵幂的复杂性
我对计算n × n矩阵A的次幂感兴趣。假设我们有一个在O(M (n ))时间内运行的矩阵乘法算法。然后,可以轻松地以O(M (n )log (n ))时间计算A n。是否可以用更少的时间来解决这个问题?nnnn×nn×nn\times nAAAO(M(n))O(M(n))\mathcal{O}(M(n))AnAnA^nO(M(n)log(n))O(M(n)log⁡(n))\mathcal{O}(M(n)\log(n)) 通常,矩阵条目可以来自半环,但如果有帮助,则可以采用其他结构。 注意:我了解在一般情况下,以o (M (n )log (m ))时间计算会得到o (log m )求幂的算法。但是,许多有趣的问题都归结为矩阵求幂的特殊情况,其中m = O(n ),而我无法证明这个简单问题也是如此。AmAmA^mo(M(n)log(m))o(M(n)log⁡(m))o(M(n)\log(m))o(logm)o(log⁡m)o(\log m)O(n)O(n)\mathcal O(n)


1
在实践中评估缓存遗忘性能的研究
Frigo等人介绍了忽略缓存的算法和数据结构是一个相当新的事物。在Cache-oblivious算法,1999年。普罗科普(Prokop)同年的论文也介绍了早期的想法。 Frigo等人的论文。目前的一些实验结果表明了该理论以及忽略高速缓存的算法和数据结构的潜力。许多可忽略缓存的数据结构都是基于静态搜索树的。存储和导航这些树的方法已经发展了很多,也许是Bender等人最著名的。以及Brodal等人的著作。Demaine给出了一个很好的概述。 至少由Ladner等人完成了研究缓存行为的实验工作。使用程序工具,2002年在“缓存感知和缓存遗忘的静态搜索树”的比较中取得成功。Ladner等。使用经典算法,忽略缓存的算法和了解缓存的算法,对解决二进制搜索问题的算法的缓存行为进行了基准测试。每种算法都使用隐式和显式导航方法进行基准测试。除此之外,Rønn,2003年的论文对相同的算法进行了非常详细的分析,并对Ladner等人的相同算法进行了更彻底的测试。 我的问题是 从那以后,在实践中是否有任何新的研究对基准缓存不了解算法的缓存行为进行基准测试?我对静态搜索树的性能特别感兴趣,但我也对其他任何忽略缓存的算法和数据结构感到满意。

1
易于陈述可计算性理论中的开放性问题
我一直在寻找有趣且易于陈述的可计算性开放问题(本科生可以学习可计算性的第一门课程),以举例说明开放性问题(很显然,我希望学生能够在不需要太多新知识的情况下理解问题定义,并且对他们也很有趣)。 我找到了这份清单,但是其中的问题对于大学生来说似乎太复杂了,在陈述问题之前,需要花费大量时间给出定义。到目前为止,我发现的唯一问题是 Diophantine问题是否可以判定有理数? 您是否知道可计算性理论中还有其他有趣且易于陈述的开放问题?

2
融合证明,可实现简单的重写系统
假设我们有一种简单的语言,其中包含以下术语: truetrue\mathtt{true} falsefalse\mathtt{false} 如果t1,t2,t3t1,t2,t3t_1,t_2,t_3是项,则ift1thent2elset3ift1thent2elset3\mathtt{if}\: t_1 \:\mathtt{then}\: t_2 \:\mathtt{else}\: t_3 现在假设以下逻辑评估规则: iftruethent2elset3→t2[E-IfTrue]iffalsethent2elset3→t3[E-IfFalse]t1→t′1ift1thent2elset3→ift′1thent2elset3[E-If]iftruethent2elset3→t2[E-IfTrue]iffalsethent2elset3→t3[E-IfFalse]t1→t1′ift1thent2elset3→ift1′thent2elset3[E-If] \begin{gather*} \dfrac{} {\mathtt{if}\: \mathtt{true} \:\mathtt{then}\: t_2 \:\mathtt{else}\: t_3 \to t_2} \text{[E-IfTrue]} \quad \dfrac{} {\mathtt{if}\: \mathtt{false} \:\mathtt{then}\: t_2 \:\mathtt{else}\: t_3 \to t_3} \text{[E-IfFalse]} \\ \dfrac{t_1 \to t_1'} {\mathtt{if}\: t_1 \:\mathtt{then}\: t_2 \:\mathtt{else}\: t_3 \to \mathtt{if}\: t_1' \:\mathtt{then}\: t_2 \:\mathtt{else}\: t_3} …

2
与上下文无关的语法的前后集是否始终与上下文无关?
令GGG为上下文无关的语法。如果您可以通过将次数乘以零或多次到的开始符号上来获得的一串和的句子,则可以说它是一种句法形式。让是该组中的句型。摹摹GGGGGGGGGSSSSF(G)SF⁡(G)\operatorname{SF}(G)GGG 让,并让是的一个子 -我们称之为一个片段的。现在让α∈SF(G)α∈SF⁡(G)\alpha \in \operatorname{SF}(G)ββ\betaαα\alphaββ\betaSF(G)SF⁡(G)\operatorname{SF}(G) Before(β)={γ | ∃δ.γβδ∈SF(G)}Before⁡(β)={γ | ∃δ.γβδ∈SF⁡(G)}\operatorname{Before}(\beta) = \{ \gamma \ |\ \exists \delta . \gamma \beta \delta \in \operatorname{SF}(G) \} 和 After(β)={δ | ∃γ.γβδ∈SF(G)}After⁡(β)={δ | ∃γ.γβδ∈SF⁡(G)}\operatorname{After}(\beta) = \{ \delta \ |\ \exists \gamma . \gamma \beta \delta \in \operatorname{SF}(G) \}。 是和上下文无关语言?如果不含歧义怎么办?如果明确,是否也可以使用明确的上下文无关语言来描述和吗?Before(β)Before⁡(β)\operatorname{Before}(\beta)After(β)After⁡(β)\operatorname{After}(\beta)GGGGGGBefore(β)Before⁡(β)\operatorname{Before}(\beta)After(β)After⁡(β)\operatorname{After}(\beta) 这是一个后续到我先前的问题,后一个较早的尝试,使我的问题比较容易回答失败。否定的答案将使我正在研究的总体问题很难回答。

1
二叉树上最小带宽的近似值
最小带宽问题是在整数线上找到图节点的排序,以使任何两个相邻节点之间的最大距离最小。 即使对于二叉树,决策问题也是NP完全的。带宽最小化的复杂度结果。Garey,Graham,Johnson和Knuth,SIAM J. Appl。数学卷 1978年3月34日。 在二叉树上计算最小带宽的最有效有效逼近结果是什么?什么是最著名的条件硬度近似结果?

6
复杂递归算法的示例
我正在向一个朋友解释著名的确定性线性时间选择算法(中值算法的中位数)。 该算法的递归(非常简单)非常复杂。有两个递归调用,每个递归调用具有不同的参数。 我试图找到这种有趣的递归算法的其他示例,但找不到任何示例。我可以提出的所有递归算法要么是简单的尾部递归,要么是简单的分而治之(两个调用是“相同的”)。 您能否举一些复杂的递归示例?

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.