Questions tagged «ds.algorithms»

有关完成任务的明确指令的问题,以及有关时间/内存/等方面的相关分析。

6
“分而治之”数据流算法
存在哪些对大型数据流起作用的有用算法,而且它们的结果还很小,并且可以通过某种方式合并它们的结果来计算两个流的混合结果? 我可以列举几个: 很明显的东西,例如总和,最小值,最大值,计数,top-K等。 近似的所谓“基于草图”的流算法,用于直方图,计数不同的项目或计算分位数 还有什么呢? (我很感兴趣,因为我正在编写一个业余项目来监视分布式系统,其有效性直接取决于此类算法的有效性)

3
流式去随机化
流算法在大多数情况下要求随机化以完成不平凡的事情,并且由于空间限制,需要使用空间少的PRG。到目前为止,我知道被引用用于流算法的两种方法: -wise独立PRGS像原来使用的阿龙/马蒂亚斯/ Szegedy 4-明智独立的家族 ˚F 2估计问题,和概括为(比方说)2-稳定性为基础的方法 ℓ 2素描kkkF2F2F_2ℓ2ℓ2\ell_2 Nisan的PRG通常可用于任何类型的小空间问题。 我对可以实现的方法特别感兴趣。从表面上看,上述两种方法似乎都相对易于实现,但是我很好奇是否还有其他方法。

1
使用图拉普拉斯(逆)协方差从多元高斯抽样
我们从例如Koutis-Miller-Peng(基于Spielman&Teng的工作)知道,我们可以非常快速地求解矩阵A的线性系统Ax=bAx=bA x = b,这是一些具有非负边权重的稀疏图的图拉普拉斯矩阵。AAA 现在(第一个问题)考虑使用这些图拉普拉斯矩阵AAA中的一个作为零均值多元正态分布或的协方差或(第二个问题)逆协方差矩阵。。对于每种情况,我有两个问题:N(0,A)N(0,A)\mathcal{N}(\boldsymbol{0}, A)N(0,A−1)N(0,A−1)\mathcal{N}(\boldsymbol{0}, A^{-1}) 答:我们如何有效地从这种分布中抽取样本?(通常为绘制样本,我们计算Cholesky分解,绘制标准法线,然后将样本计算为)。A=LLTA=LLTA = LL^Ty∼N(0,I)y∼N(0,I)y \sim \mathcal{N}(\boldsymbol{0}, I)x=L−1yx=L−1yx = L^{-1} y B.我们如何有效地计算的行列式?AAA 请注意,通过Cholesky分解可以很容易地解决这两个问题,但是我没有立即看到如何比仅使用标准稀疏Cholesky算法更有效地提取,该算法不会使用上述参考文献中介绍的技术工作,并且对于稀疏但高树宽图将具有三次复杂度。LLL

3
计算读两次相对CNF式的奇偶的复杂性(
在两次相反的CNF公式中,每个变量出现两次,一次为正,一次为负。 我感兴趣的的问题,其中包括在计算读两次相对CNF式满足指配的数量的奇偶性。⊕Rtw-Opp-CNF⊕Rtw-Opp-CNF\oplus\text{Rtw-Opp-CNF} 我找不到有关此类问题的复杂性的任何参考。我能找到最接近的是,计数版本是#P -complete(参见6.3节本文)。#Rtw-Opp-CNF#Rtw-Opp-CNF\#\text{Rtw-Opp-CNF}#P#P\#\text{P} 在此先感谢您的帮助。 2016年4月10日更新 在本文中,问题证明是⊕ P -complete,但是通过减少从制造的式3 SAT是不是在CNF,并且只要你尝试将其转换回CNF你得到一个三次读取公式。⊕ RTW-OPP-SAT⊕Rtw-Opp-SAT\oplus\text{Rtw-Opp-SAT}⊕ P⊕P\oplus\text{P}3 SAT3SAT3\text{SAT} 单调版本被示出为⊕ P -complete在本文。在这样的纸,⊕ RTW-OPP-CNF迅速在部分4的端部中提到:勇士说,这是简并的。对我来说不清楚变质的确切含义,也不意味着硬度。⊕ RTW-MON-CNF⊕Rtw-Mon-CNF\oplus\text{Rtw-Mon-CNF}⊕ P⊕P\oplus\text{P}⊕ RTW-OPP-CNF⊕Rtw-Opp-CNF\oplus\text{Rtw-Opp-CNF} 2016年4月12日更新 这将是也很有趣知道是否有人曾经研究过的复杂问题。给定两倍于CNF公式的对数,该问题要求计算变量的奇数设置为true的满意分配数与变量的偶数设置为true的满意分配数之间的差。我还没有找到关于它的文献。Δ RTW-OPP-CNFΔRtw-Opp-CNF\Delta\text{Rtw-Opp-CNF} 2016年5月29日更新 正如在他的评论中指出埃米尔耶扎贝克,这是不正确的,勇敢的说,这个问题是退化。他只说,这样的问题更受限制的版本,⊕ PL-RTW-OPP-3CNF,是堕落。同时,我仍然不知道退化的确切含义,但至少现在看来,这显然是缺乏表达能力的代名词。⊕ RTW-OPP-CNF⊕Rtw-Opp-CNF\oplus\text{Rtw-Opp-CNF}⊕ PL-RTW-OPP-3CNF⊕Pl-Rtw-Opp-3CNF\oplus\text{Pl-Rtw-Opp-3CNF}

2
逆阿克曼的乐趣
分析算法时,经常会发生Ackermann逆函数。它的一个很好的展示在这里:http : //www.gabrielnivasch.org/fun/inverse-ackermann。 α1(n)=[n/2]α1(n)=[n/2]\alpha_1(n) = [n/2] α2(n)=[log2n]α2(n)=[log2⁡n]\alpha_2(n) = [\log_2 n] α3(n)=log∗nα3(n)=log∗⁡n\alpha_3(n) = \log^* n ......... αk(n)=1+αk(αk−1(n))αk(n)=1+αk(αk−1(n))\alpha_k(n) = 1 + \alpha_k(\alpha_{k−1}(n)) 和 α(n)=min{k:αk(n)≤3}α(n)=min{k:αk(n)≤3}\alpha(n) = \min\{k: \alpha_k(n)\leq 3\} [符号:[X]意味着我们舍入x到最接近的整数,而日志*是迭代数函数在这里讨论:http://en.wikipedia.org/wiki/Iterated_logarithm] 我的问题是:什么是功能 k(n)=min{k:αk(n)≤k}k(n)=min{k:αk(n)≤k}k(n) = \min \{k: \alpha_k(n) \leq k\} 显然1≪k(n)≤α(n)1≪k(n)≤α(n)1\ll k(n) \leq \alpha(n)。一个人对可以给出更严格的界限k(n)k(n)k(n)吗?被k(n)≤logα(n)k(n)≤log⁡α(n)k(n) \leq \log\alpha(n)?

1
找出最短路径的无用边缘
考虑图(该问题对于有向图和无向图都有意义)。呼叫的距离的矩阵:为顶点的最短路径距离到顶点在GGGMGMGM_GGGGMG[i,j]MG[i,j]M_G[i, j]iiijjjGGG+++maxmax\max 我说如果M_G = M_ {G'},则G的子图G'(具有相同的顶点集)与G 等效。换句话说,去掉从G到G'的边不会改变最短路径的长度。对于任何最短路径,都不需要去除边缘。G′G′G'GGGGGGMG=MG′MG=MG′M_G = M_{G'}GGGG′G′G' 通常,没有单个G的 sp等效子图GGG包含的最小值。例如,如果GGG是无向和所有边缘具有重量000中任生成树GGG是最小的SP-等效子图(事实上,在一个周期内的任何边缘可以被移除,但断开顶点对明显变化的距离)。不过,我仍然可以调用的边缘GGG 无用的,如果他们在没有最小的SP-相当于子,必要的,如果他们在所有最小的SP-相当于子图(即,在它们的交点),以及可选的,如果他们在其中一些(即)。 我的第一个问题是:这些概念是否具有标准名称? 我的第二个问题是:根据G是无向还是有向以及聚合函数,以这种方式对G的边缘进行分类的复杂度是多少?GGGGGG (例如,对于GGG无向和maxmax\max,最小sp等效子图是具有最小权重的生成树,因此至少如果所有边缘权重不同,则可以通过计算唯一的最小生成树轻松地计算分类,但是通常我不知道事情如何运作。)

2
如何计算结数?
有记录的计算结的方法吗?(嵌入在3维欧几里得空间中的圆周)。 我的意思是,代表它们的数据类型,以及确定该数据类型的两个实例是否代表相同结的算法。 如果答案是肯定的,那么这个问题的复杂性如何?

7
高级算法手册
我正在寻找有关算法高级主题的资源(最好是手册)(主题超出了CLRS和DPV等算法教科书的范围)。 可用于在算法课程中教授主题的材料类型,例如Erik Demaine和David Karger的Advanced Algorithms课程。 最好提供能够概述该领域的资源(例如手册),但是更集中的资源(例如Vijay Vazirani的“近似算法”书)也可以。

2
寻找位移最大值的线性时间算法
假设给定一个数组其中包含非负整数(不一定是唯一的)。A[1..n]A[1..n]A[1..n] 令为升序排列。我们要计算 BBBAAAm=maxi∈[n]B[i]+i.m=maxi∈[n]B[i]+i.m = \max_{i\in [n]} B[i]+i. 显而易见的解决方案是对A进行排序AAA,然后计算mmm。这给出了在最坏情况下在时间O(n \ lg n)上运行的算法O(nlgn)O(nlg⁡n)O(n \lg n)。 有可能做得更好吗?我们可以计算mmm的线性时间? 我的主要问题是上述问题。但是,了解该问题的以下概括将很有趣。 令BBB为AAA根据oracle \ leq的比较排序≤≤\leq ,fff为oracle提供的函数。给定\ leq和f的AAA和oracles,对于计算m = \ max_ {i \ in [n]} f(B [i],i)所需的时间,我们能说什么?≤≤\leqfffm=maxi∈[n]f(B[i],i)m=maxi∈[n]f(B[i],i)m = \max_{i \in [n]} f(B[i],i) 我们仍然可以在O(n \ lg n)时间中计算m。但是我们可以证明这种广义情况下的超线性下界吗?mmmO(nlgn)O(nlg⁡n)O(n \lg n) 如果答案是肯定的,那么如果我们假设≤≤\leq是整数的通常顺序并且fff是“ nice”函数(单调,多项式,线性等),那么下界是否成立?


3
我们可以根据时间中的位计算吗?
我正在寻找一个有效的算法来解决这个问题: 输入:某个整数的正整数(存储为位)。3n3n3^nn≥0n≥0n \geq 0 输出:数字。nnn 问题:我们可以根据时间中的位计算吗?nnn3n3n3^nO(n)O(n)O(n) 这是一个理论问题,是由我对数学的回答引起的。SE问题如何找到该双射的公式?。在这个问题中,作者想从和自然数找到一个双射。我提出了作为解决方案。那里的另一个答案是“没有简单的公式”,这使我想知道我提出的解决方案有多简单(计算上)。{2n3m:n≥0 and m≥0}{2n3m:n≥0 and m≥0}\{2^n 3^m: n \geq 0 \text{ and } m \geq 0\}N={1,2,…}N={1,2,…}\mathbb{N}=\{1,2,\ldots\}2m3n↦2m(2n+1)2m3n↦2m(2n+1)2^m 3^n \mapsto 2^m(2n+1) 使用我提出的解决方案,如果我们知道和,我们可以轻松地计算(写出的二进制数字,后跟后跟零)。这需要时间。nnnmmm2m(2n+1)2m(2n+1)2^m(2n+1)nnn111mmmO(n+m)O(n+m)O(n+m) 从的位中找到等于找到最低有效位(可以通过计算右移来计算,将留在内存中)。这需要时间。2 m 3 n 3 n O (m )mmm2m3n2m3n2^m 3^n3n3n3^nO(m)O(m)O(m) 但是,我们还需要找到,这可能会更困难。通过重复除以可以找到,但这似乎很浪费。它需要除法运算,每个除法运算都需要时间,因此总共是时间。[实际上,在每次迭代之后,位数将线性减少,但这仍然会导致时间。]n 3 n O (n )O (n 2)O (n 2)nnnnnn333nnnO(n)O(n)O(n)O(n2)O(n2)O(n^2)O(n2)O(n2)O(n^2) 知道输入为的幂,似乎我们应该可以利用。333

2
难以理解阿贝尔隐藏子组问题的量子算法
我很难理解AHSP算法的最后步骤。令GGG为阿贝尔群,FFf为隐藏子群的函数HHH。让G∗G∗G^*代表双组GGG。 这是算法的步骤 首先准备状态 一世= 1| G |∑G∈ g ^| G⟩ | 0 ⟩一世=1个|G|∑G∈G|G⟩|0⟩\qquad \displaystyle I=\frac{1}{|G|} \sum_{g \in G} |g\rangle|0\rangle。 然后应用量子预言,其评价FFf上一世一世I,我们得到 一世′= ∑G∈ g ^| G⟩ | F(克)⟩一世′=∑G∈G|G⟩|F(G)⟩\qquad \displaystyle I'=\sum_{g \in G} |g\rangle|f(g)\rangle。 现在衡量的第二个量子比特一世′一世′I',我们得到 一世′= (1| H|ΣG∈ ^ h| [R^ h⟩)⊗ | F(- [R ħ )⟩一世′=(1个|H|ΣG∈H|[RH⟩)⊗|F([RH)⟩\qquad\displaystyle I'= \left(\frac{1}{|H|}\Sigma_{g \in H} |rh\rangle\right) …

2
查找在汉明距离下接近的所有值对
我有几百万个32位值。对于每个值,我想查找汉明距离为5的所有其他值。在幼稚的方法中,这需要比较,这是我想避免的。O(N2)O(N2)O(N^2) 我意识到,如果我只是将这些32位值视为整数,并对列表进行一次排序,那么只有最低有效位不同的值最终会非常接近。这使我可以使用较短的“窗口”或数字范围,在其中可以对确切的汉明距离执行实际的成对比较。但是,当2个值仅在高阶位中发生变化时,它们最终将在此“窗口”之外并出现在已排序列表的相对两端。例如 11010010101001110001111001010110 01010010101001110001111001010110 即使它们的汉明距离为1,也将相距甚远。由于两个值之间的汉明距离都在旋转时得以保留,因此我认为通过进行32次左旋转然后每次对列表进行排序,很可能两个值在至少其中之一的排序列表中将足够接近结束。 尽管这种方法给我带来了良好的效果,但我仍在努力正式确定这种方法的正确性。 假设我正在寻找汉明距离为或更小的匹配值,是否真的需要进行所有32位旋转?例如,如果k = 1并且我的窗口大小是1000,则我需要以最大24位旋转角度进行操作,因为即使杂散位出现在8个低阶位中的任何一个中,所得到的数字相差也不会超过1000。kkkk=1k=1k=1

4
我想知道是否存在以下问题的下限(就样本复杂性而言): 给定示例oracle访问{ 1 ,… ,n }上的两个未知分布D1D1D_1,,测试(whp)是否D2D2D_2{1,…,n}{1,…,n}\{1,\dots,n\} D1=D2D1=D2D_1=D_2 或d2(D1,D2)=∥D1−D2∥2=∑ni=1(D1(i)−D2(i))2−−−−−−−−−−−−−−−−−−√≥ϵd2⁡(D1,D2)=‖D1−D2‖2=∑i=1n(D1(i)−D2(i))2≥ϵ\operatorname{d_2}(D_1,D_2)=\lVert D_1-D_2\rVert_2 = \sqrt{\sum_{i=1}^n\left(D_1(i)-D_2(i)\right)^2} \geq \epsilon Batu等。[BFR + 00]显示O(1ϵ4)O(1ϵ4)O\left(\frac{1}{\epsilon^4}\right)样本足够,但是我还没有发现下界的任何提法吗? 我认为总可以显示Ω(1ϵ2)Ω(1ϵ2)\Omega(\frac{1}{\epsilon^2})通过减少区分此问题的公平与ϵϵ\epsilon偏向硬币的任务(模拟仅支持两点的分布,并根据iid抛硬币来回答测试者的问题)来降低下限,但这仍然留下二次缺口... (我要关注的另一点是估计(最大为累加ϵϵ\epsilon)此L2L2L_2距离的下限-再次,我在文献中未发现此类结果的参考) 谢谢你的帮助,

2
如何生成具有已知最佳顶点覆盖的图形
我正在寻找一种生成图的方法,以便知道最佳的顶点覆盖率。节点或边的数量没有限制,只有图形已完全连接。 想法是生成一个不容易找到最佳顶点覆盖的图形,以便能够测试其上的不同启发式方法 我发现了论文《Arthur,J.&Frendeway,J.用已知的最优行程生成旅行商问题》,《运筹学学会杂志》,第1卷。39,第2号(1988年2月),第153-159页,用于生成具有已知最优值的TSP,可惜我无法访问它。 有已知的算法吗?

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.