Questions tagged «ds.algorithms»

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

2
解决跳数迷宫
我8岁的孩子已经厌倦了创建常规迷宫的工作,并开始创建如下所示的变体: 这个想法是从x开始并通过常规规则到达o。另外,您可以从任何整数跳到任何其他整数b,但是您必须支付| a − b | 美元的特权。目标是以最低的成本解决迷宫问题。在上面的示例中,我们可以以成本5通过x-14-18-27-28-o从x转到o,但仅花费x-13-11-9-8-29-28-o便宜4。一种aabbb| a−b ||a−b||a-b| 所以这是我的问题:解决该问题的最佳解决方案(就渐近运行时间而言)是什么?您可以对输入格式做出任何合理的假设。 注意:我在这里使用“ puzzles”标签是因为我想到的是答案,但是我不确定它是否是最佳选择,并且想看看是否有人可以改善我的解决方案。(这里n是迷宫中的整数数。)Ø (ñ2)O(n2)O(n^2)ñnn

1
1979年,Freivalds表明,可以在随机时间内完成任何领域的矩阵乘积的验证。更正式地说,给定三个矩阵A,B和C,其中包含来自字段F的条目,检查AB = C是否具有随机O (n 2)时间算法的问题。O(n2)O(n2)O(n^2)O(n2)O(n2)O(n^2) 这很有趣,因为已知的最快的矩阵乘法算法比这慢,因此检查AB = C是否比计算C快。 我想知道什么是最通用的代数结构,在该结构上矩阵乘积验证仍然具有时间(随机)算法。由于原始算法适用于所有领域,因此我想它也适用于所有整数域。O(n2)O(n2)O(n^2) 对于这个问题,我能找到的最佳答案是在路径,矩阵和三角形问题之间的亚三次等效性,他们说:“环上的矩阵乘积验证可以在随机时间[BK95]中完成。” ([BK95]:M。Blum和S. Kannan。设计检查其工作的程序。J。ACM ,42(1):269-291,1995年。)O(n2)O(n2)O(n^2) 首先,环是这个问题具有随机算法的最一般的结构吗?其次,我看不到[BK95]的结果如何显示所有环上的O (n 2)时间算法。有人可以解释它是如何工作的吗?O(n2)O(n2)O(n^2)O(n2)O(n2)O(n^2)

2
查找长方体联合中包含的最大立方体
我在3D空间中有很多长方体,每个长方体的起点都是(x,y,z),大小为(Lx,Ly,Lz)。我想知道如何在这个3D空间中找到长方体联合中包含的最大立方体。是否有一种有效的算法? 例如,如果我有以下长方体: 以(0,0,0)开始且大小为(10,10,10)的长方体, 长为(10,0,0)且大小为(12,13,15)的长方体, 大小为(10,10,10)的(0,10,0)的长方体, 大小为(10,10,10)的(0,0,10)的长方体,以及 大小为(9,9,9)的(10,10,10)长方体。 然后,这些长方体并集中包含的最大立方体将是一个以(0,0,0)开始且大小为(19,19,19)的立方体。 这个问题的更一般的版本: 给定R d中盒子的集合,找到盒子并 集内包含的最大超立方体。ñnnRdRd\mathbb{R}^d

3
积分差距和近似率
当我们考虑一个最小化问题的近似算法时,针对该问题的IP公式的完整性差距为某些类算法(例如舍入或原始对偶算法)给出了近似比率的下限。实际上,存在许多问题,它们的最佳逼近率与完整性差距相匹配。 对于某些问题,某些算法的逼近率可能比完整性差距好,但我不知道是否存在这样的例子。如果答案是肯定的,您能举一些例子吗? 我知道有些问题允许使用多种数学公式。在这种情况下,请考虑具有最小积分间隙的数学公式,只要可以在多项式时间内求解即可(也许某些公式可能使用分隔符号)。 这个问题与[问题:完整性差距的重要性]有关。

3
计算O(n log n)时间平方的稀疏多项式之和?
假设我们最多有阶数的多项式,,使得非零系数的总数为(即,多项式是稀疏的)。我对用于计算多项式的高效算法感兴趣: n n &gt; m np1个,。。。,p米p1,...,pmp_1,...,p_mñnnn &gt; 米n&gt;mn>mñnn ∑一世p一世(x)2∑ipi(x)2\sum_i p_i(x)^2 由于此多项式的次数最多,因此输入和输出大小均为。在的情况下,我们可以在时间使用FFT计算结果。可以对任何进行此操作吗?如果有什么不同,我对系数为0和1的特殊情况感兴趣,应该对整数进行计算。O (n )m = 1 O (n log n )m &lt; n2 n2n2nO (n )O(n)O(n)m = 1m=1m=1O ( ñ 日志n )O(nlog⁡n)O(n \log n)m &lt; nm&lt;nm<n 更新。我意识到,针对上述问题的快速解决方案将意味着快速矩阵乘法的发展。特别是,如果那么我们可以读取作为系数在。因此,计算对应于计算两个向量的外积,并且计算和对应于计算矩阵乘积。如果存在使用时间来计算的解决方案那么我们可以在时间中将两个 -n矩阵相乘 a i k b k j x i + n j p k(x …

5
简单实用的确定性算法,运行时间复杂
很多时候,如果算法的运行时间是一个复杂的表达式,那么算法本身也是复杂且不切实际的。渐近运行时间中的每个立方根和因子都趋向于增加算法的复杂性,并且也为运行时间增加隐藏的常数因子。日志日志ñlog⁡log⁡n\log \log n 我们是否有惊人的例子证明了这一经验法则失败了? 当然,即使碰巧具有非常简单的最坏情况运行时间,也很容易找到很难实现的算法示例。但是相反呢? 我们有非常简单实用的例子确定性算法,很容易实现,但碰巧有一个非常复杂的表达式作为其最坏情况渐近运行时间? 请注意关键字“确定性”和“最坏情况”;简单随机算法的分析很容易导致表达式复杂。 当然,“复杂”的问题取决于品味。无论如何,我宁愿看到一个过于丑陋的表达式,无法放入论文标题。而且我更喜欢一个自然参数(输入大小,节点数等)的复杂函数。 PS。我以为我不会把它当作“大问题”,而不是CW。我想找到一个出色的例子(如果有的话)。因此,仅当您认为它比到目前为止的任何答案“都更好”时,才发布另一个答案。

2
中位数选择的存储要求(两次通过算法)
在一篇经典论文中,Munro和Paterson研究了算法在随机排序的数组中查找中位数需要多少存储量的问题。他们特别关注以下模型: 输入从左到右被读取P次。 证明存储单元就足够了,但是只有P = 1才知道相应的下界。对于P&gt; 1,我没有看到任何结果。有人知道这样的下限吗? Ø (ñ1个2 P)Ø(ñ1个2P)O(n^{\frac{1}{2P}}) 注意这里的主要困难是在第二遍输入不再是随机排序的。

2
装箱算法
对于某些NP-Hard问题,在开发快速指数时间精确算法方面似乎有很多工作(即形式的结果:算法A 以O(c ^ n)时间解决问题,而c很小)。对于某些NP难题(例如测量和征服:一种简单的O (2 0.288 n)独立设置算法。SODA'06),在这些方面似乎有大量工作要做,但我一直无法找到设定包装问题的类似工作。关于装箱问题的某些限制似乎也有类似的工作(例如,A O *(3.523 k)xxxO(20.288n)O(20.288n)O(2^{0.288n})O∗(3.523k)O∗(3.523k)O^{*}(3.523^{k}) 用于3套装的参数化算法),但我还没有发现有关一般套装问题的任何算法。 所以我的问题是:从n个元素的宇宙中抽取集合时,准确解决加权集合打包问题的最佳时间复杂度是多少?mmmnnn 我也对套数与宇宙大小之间的关系感兴趣。例如,在与n相比相对较大(即接近2 n)的情况下,是否进行过算法研究?mmmñnn2ñ2ñ2^n

2
最小累积设置和
考虑以下问题:给定有限集列表,找到最小化的顺序。s1,s2,s3,…s1,s2,s3,…s_1, s_2, s_3, \ldots|s1|+|s1∪s2|+|s1∪s2∪s3|+…|s1|+|s1∪s2|+|s1∪s2∪s3|+…|s_1| + |s_1 \cup s_2| + |s_1 \cup s_2 \cup s_3| + \ldots 是否有已知的算法?它的复杂性是什么?我还没有想到一种有效的最佳算法,但是在NP-Hard中也不是很明显。

2
比较整数3SUM问题的两种算法
Ilya Baran,Erik D. Demaine和Mihai Patrascu撰写的论文“ 3SUM的二次方程式算法”具有以下复杂性: 3SUM问题: 给定一个列表LLL的nnn整数如果有x,y,z∈Lx,y,z∈Lx,y,z \in L使得x+y=z.x+y=z.x+y=z. w−w−w-A C 0 O (n 2 / w 2 log w )O (n 2 /(M B ))O (n 2 / M B log M )O(n2/max{wlogw,logn(loglogn)2})O(n2/max{wlog⁡w,log⁡n(log⁡log⁡n)2})O(n^2/ \max\{w \log w, \log n (\log \log n)^2 \})AC0AC0AC0O(n2/w2logw)O(n2/w2log⁡w)O(n^2/ w^2 \log w)O(n2/(MB))O(n2/(MB))O(n^2/(MB))O(n2/MBlogM)O(n2/MBlog⁡M)O(n^2/ MB \log M …

2
Strassen算法中选择矩阵的背后有更大的图景
在Strassen算法中,要计算两个矩阵和B的乘积,将矩阵A和B划分为2 × 2块矩阵,并且该算法以递归方式计算7个块矩阵矩阵乘积,而不是朴素的8块矩阵-基质的产品,即,如果我们想ç = 甲乙,其中 甲 = [ 阿1 ] , 乙 = [ 乙1 ,1个乙1 ,2 乙一种一种\mathbf{A}乙乙\mathbf{B}一种一种\mathbf{A}乙乙\mathbf{B}2 × 22×22 \times 2777888C = A BC=一种乙\mathbf{C}=\mathbf{A} \mathbf{B} 然后,我们有 Ç1,1=阿1,1个乙1,1+阿1A = [ A1 ,1一种2 ,1一种1 ,2一种2 ,2] , B = [ B1 ,1乙2 ,1乙1 ,2乙2 ,2] , C = [ C1 ,1C2,1C1 …


2
温和介绍有价图的图同构
我正在阅读有关图同构(GIGIGI)在。一种这样的情况下是有界价(最大在每个顶点的程度)的曲线图所说明这里。但是我发现它太抽象了。如果有人可以向我建议一些说明性的内容,我将不胜感激。我在小组理论方面没有很强的背景,所以我更喜欢以柔和的方式使用小组理论的论文(我的背景是CS)。PPP

1
计算DFA的最小NFA
许多年前,我听说从DFA(确定性)计算最小NFA(不确定性有限自动机)是一个悬而未决的问题,而反之亦然,数十年来已知的方向相反,并且对有效算法。有没有人想出一种算法?Ø(ñ LGñ)Ø(ñlg⁡ñ)O(n \lg n) 快速搜索后给了我这篇论文,证明这绝对是一个难题。显然,没有给出算法。 [1] 最小的NFA问题很难解决/陶江和B. Ravikumar CS.SE网站上的以下问题使我想起了这个问题,该问题与DFA-&gt; NFA最小化算法密切相关。在我看来,以下问题是研究水平。我建议将其迁移到TCS,并写了一个答案,建议进行统计/经验攻击。 [2] 对于NFA,其等效DFA达到最大尺寸的条件是什么?

3
合并两个二叉搜索树
我正在寻找一种算法来合并两个任意大小和范围的二进制搜索树。我实现此目标的明显方法是找到整个子树,其范围可以适合另一棵树中的任意外部节点。然而,运行时间对于这类算法的最坏情况似乎是数量级的O(n+m)地方n,并m分别为每棵树的大小。 但是,有人告诉我可以在中完成此操作O(h),其中h的树的高度更大。我完全不知道这是怎么可能的。我尝试过先旋转一棵树,但是将一棵树旋转成脊柱已经是O(h)了。

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.