Questions tagged «time-complexity»

解决问题所需的时间资源(原子操作或机器步骤数)以输入大小表示。如果您的问题与算法分析有关,请改用[runtime-analysis]标记。如果您的问题是关于计算是否会*完成*,请改用[computability]标签。时间复杂性也许是复杂性理论中最重要的子主题。

3
为什么不采用数值算法中数字的一元表示形式呢?
伪多项式时间算法是对输入值(幅度)具有多项式运行时间,而对输入大小(位数)具有指数运行时间的算法。 例如,测试数字是否为质数,需要循环从2到数字,并检查 mod是否为零。如果mod花费O(1)时间,则总时间复杂度将为O(n)。n - 1 n innnn−1n−1n-1nnn iii 但是,如果让为写入输入所需的位数,则(二进制),因此,问题的运行时间将是指数的O()。x = 日志n n = 2 x 2 xxxxx=lognx=log⁡nx = \log nn=2xn=2xn = 2^x2x2x2^x 我的问题是,如果我们考虑输入的一元表示形式,则始终为,则伪多项式时间将等于多项式时间复杂度。那么为什么我们从不这样做呢?x = nnnnx=nx=nx=n 此外,由于存在背包的伪多项式时间算法,因此通过取,背包将成为多项式,结果P = NPx=nx=nx=n


2
是否有一种有效的表达式等效算法?
例如?xy+x+y=x+y(x+1)xy+x+y=x+y(x+1)xy+x+y=x+y(x+1) 这些表达式来自普通的高中代数,但仅限于算术加法和乘法(例如),没有逆,减法或除法运算。字母是变量。2+2=4;2.3=62+2=4;2.3=62+2=4; 2.3=6 如果有帮助,我们可以禁止使用非数字表示的任何表达式;即不是也不是也不是:x 2 3 x 4111x2x2x^23x3x3x444 multilinear,除了以外没有其他幂:可以,但是不能,并且没有任何可以这样表示的东西完全扩展为乘积之和,例如,不是; X + X ý ≡ X 1 + X 1 Ÿ 1 X 2 + X 3 Ý 4 X (X + Ý )≡ X 2 + ÿ111x+xy≡x1+x1y1x+xy≡x1+x1y1x+xy \equiv x^1+x^1y^1x2+x3y4x2+x3y4x^2+x^3y^4x(x+y)≡x2+yx(x+y)≡x2+yx(x+y) \equiv x^2+y 所有一个,除以外没有其他系数:可以,但,并且没有任何可以表示为的值,例如对乘积例如不是 ; 和 X + X ý ≡ 1 …

6
在一个间隔中找到两个数字的最大异或:我们能做得比二次更好吗?
lllrrrmax(i⊕j)max(i⊕j)\max{(i\oplus j)}l≤i,j≤rl≤i,j≤rl\le i,\,j\le r 天真的算法只检查所有可能的对。例如在红宝石中,我们有: def max_xor(l, r) max = 0 (l..r).each do |i| (i..r).each do |j| if (i ^ j > max) max = i ^ j end end end max end 我感觉到,我们可以做得比二次。是否有针对此问题的更好算法?

1
是否可以确定任何不平凡的运行时范围?
问题 给定图灵机相对于输入长度n已知运行时间O(g (n )),的运行时间是否是?中号中号MÔ(克(n ))Ø(G(ñ)){O}(g(n))ññn中号∈ Ô(˚F(n ))中号∈Ø(F(ñ))M \in {O}(f(n)) 对于和一些非平凡的对,可以确定上述问题吗?如果则解决方案是微不足道的。˚F 克(Ñ )∈ Ô (˚F (Ñ ))GGgFFfG(Ñ )∈ Ô (˚F(n ))G(ñ)∈Ø(F(ñ))g(n) \in O(f(n)) 这与以下问题有关:P中的运行时边界是否可确定?(答案:否)。可以从Viola的答案得出,如果和那么问题是确定的。˚F (Ñ )∉ Ô (克(Ñ ))F(Ñ )∉ Ô (Ñ )F(ñ)∉Ø(ñ)f(n)\not \in o(n)F(Ñ )∉ Ô (克(n ))F(ñ)∉Ø(G(ñ))f(n)\not \in O(g(n)) 的要求,即是由于中提琴的证明需要时间找到它的输入大小。因此,当f (n )= 1时,Viola的证明不起作用。中号' ø (Ñ )F(Ñ )∉ Ô (Ñ …

1
成对和的无FFT
假设我们给了nnn不同的整数,使得a1,a2,…,ana1,a2,…,ana_1, a_2, \dots, a_n0≤ai≤kn0≤ai≤kn0 \le a_i \le kn对于某一常数k>0k>0k \gt 0,和对于所有iii。 我们对找到所有可能的成对和的计数感兴趣。(允许i = j)。Sij=ai+ajSij=ai+ajS_{ij} = a_i + a_ji=ji=ji = j 一种算法是构造多项式度≤ ķ Ñ,并使用傅里叶变换方法和在所得的多项式读出与它们的系数的权力计算其平方。这是O (n log n )时间算法。P(x)=∑nj=1xajP(x)=∑j=1nxajP(x) = \sum_{j=1}^{n} x^{a_j}≤kn≤kn\le knO(nlogn)O(nlog⁡n)O(n \log n) 我有两个问题: 是否有不使用FFT 的算法?O(nlogn)O(nlog⁡n)O(n \log n) 是否知道更好的算法(即)?(允许FFT)。o(nlogn)o(nlog⁡n)o(n \log n)

2
设置相似度-计算Jaccard索引而没有二次复杂度
我有一组n个集合,需要为它们计算一种“唯一性”或“相似性”值。我已经将Jaccard索引确定为合适的指标。不幸的是,Jaccard索引一次只能操作两组。为了计算所有集合之间的相似度,将需要按n 2个 Jaccard计算的顺序。ññnñ2ñ2n^2 (如果有帮助,通常在10到10000之间,并且每个集合平均包含500个元素。而且,最后,我不在乎任何两个特定的集合有多相似-而是,我只在乎内部相似度是多少整个集合集的总和是(换句话说,该组中所有Jaccard索引的均值(或均值的至少足够准确的近似值))ññn 两个问题: 有没有办法在没有复杂度的情况下仍然使用Jaccard索引?ñ2ñ2n^2 有没有比我上面建议的方法更好的方法来计算一组集合之间的集合相似性/唯一性?

2
缺少元素问题的时空权衡
这是一个众所周知的问题。 给定正整数数组A[1…n]A[1…n]A[1\dots n],输出不在数组中的最小正整数。 该问题可以在空间和时间中解决:读取数组,在空间中跟踪是否发生,扫描最小的元素。O(n)O(n)O(n)O(n)O(n)O(n)1,2,…,n+11,2,…,n+11,2,\dots,n+1 我注意到您可以为时间交换空间。如果仅具有内存,则可以进行轮操作,并获得时间。在特殊情况下,显然存在恒定空间二次时间算法。O(nk)O(nk)O(\frac{n}{k})kkkO(kn)O(kn)O(k n) 我的问题是: 这是最佳的折衷方案,即吗?一般来说,如何证明这种界限?time⋅space=Ω(n2)time⋅space=Ω(n2)\operatorname{time} \cdot \operatorname{space} = \Omega(n^2) 假设RAM模型具有有限算法,并且可以随机访问O(1)中的数组。 这个问题的启示:在单带模型中回文的时空折衷(例如,请参见此处)。

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

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)

4
图形同构问题是否已解决?
维基百科的图形同构问题页面似乎表明,不,它尚未解决。但是,我的一个朋友指出了一种用于图同构的多项式时间算法。我没有足够的经验去理解本文的推理。 我确实在没有多项证明的情况下尝试了多项式时间算法,但是我想知道在继续之前是否已经成功解决了这个问题。 那么,图的同构问题解决了吗?

2
算法时间分析“输入大小”与“输入元素”
在分析和描述算法的无症状上限时,我仍然对术语“输入长度”和“输入大小”感到困惑 似乎算法的输入长度取决于您所讨论的数据和算法的种类。 一些作者将输入长度称为表示输入所需的字符大小,因此,如果在算法中用作输入集,则“ abcde”将具有6个字符的“输入长度”。 如果不是字符而是数字(例如整数),则有时使用二进制表示形式代替字符,因此“输入长度”被计算为(等于输入集中的最大数字L)。N∗log(L)N∗log(L)N*log(L) 还有其他问题,即使输入集是数字,它们也会将“输入长度”描述为“决策变量”,因此对于长度为N且数字范围为的输入集,输入长度为只是N(例如,子集和),甚至使陈述问题所用的二进制位值的数量更加复杂(我相信这与) N ∗ l o g (L )0−2320−2320-2^{32}N∗log(L)N∗log(L)N*log(L) 所以: 这取决于算法? 什么意思以及何时使用每个输入长度“版本” 我可以使用一些规则来决定使用哪个规则吗?

1
假设P≠NP的​​NP完整问题的算法的运行时范围
假设。P≠NPP≠NPP\neq NP 关于所有NP完全问题的运行时边界,我们能说什么? 即最紧密的函数是什么,我们可以保证对于任何 NP完全问题的最优算法至少在并且在长度为的输入上最多为。L,U:N→NL,U:N→NL,U:\mathbb{N}\to\mathbb{N}ω(L(n))ω(L(n))\omega(L(n))o(U(n))o(U(n))o(U(n))nnn 显然,。而且,。∀c:L(n)=Ω(nc)∀c:L(n)=Ω(nc)\forall c:L(n)=\Omega(n^c)U(n)=O(2nω(1))U(n)=O(2nω(1))U(n) = O(2^{n^{\omega(1)}}) 如果不假设,ETH或P \ neq NP没有暗示的任何其他假设,我们能否对L,U给出更好的界限?QP≠NPQP≠NPQP\neq NPETHETHETHP≠NPP≠NPP\neq NPL,UL,UL,U 编辑: 请注意,L,U中的至少一个L,UL,UL,U必须远离我在此处给出的范围,因为它们是NPC问题,所以这些问题彼此之间具有多重时间减少,这意味着,如果某些NPC问题具有最佳的时间算法f(n)f(n)f(n),那么所有问题都有运行时间O(f(n ^ {O(1)}))的算法(是否优化)O(f(nO(1)))O(f(nO(1)))O(f(n^{O(1)}))。


2
三重嵌套循环的时间复杂度
请考虑以下三重嵌套循环: for (int i = 1; i <= n; ++i) for (int j = i; j <= n; ++j) for (int k = j; k <= n; ++k) // statement 此处的语句正好执行n (n + 1 )(n + 2 )6n(n+1)(n+2)6n(n+1)(n+2)\over6次 有人可以解释一下该公式是如何获得的吗?谢谢。

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.