Questions tagged «time-complexity»

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

1
派系问题的受限版本?
考虑下面的Clique问题版本,其中输入的大小为,我们被要求找到大小为k的小集团。限制在于,决策过程无法将输入图更改为任何其他表示形式,并且不能使用任何其他表示形式来计算其答案,除了超出输入图的log (n k)个额外位之外。例如,可以在蛮力算法中使用这些额外的位来跟踪穷举搜索团的状态,但是欢迎决策程序以仍然可以确定问题的任何其他方式使用它们。ñnnķkk日志(nķ)log⁡(nk)\log(n^k) 关于这一点的复杂性,目前是否知道?是否对Clique的其他限制做了任何工作,如果可以,您能否指导我进行此类工作?


4
当输入为一元编码时,强NP难或完全问题的复杂性是否会改变?
是否强NP-硬或NP完全问题的难度(如如定义在这里)的变化时,其输入是一元的,而不是二进制编码? 如果对强NP难问题的输入进行一元编码,会有什么区别?我的意思是,例如,以弱NP完全背包问题为例,二进制编码时是NP完全问题,而一进制编码时可以通过动态编程在多项式时间内求解。可能对多项式时间层次结构的较高级别的硬度有某些影响? 强...硬的概念是否也适用于其他复杂度类别,例如多项式时间层次结构的更高类别? 我之前在stackoverflow.com上问过这个问题,但有人指出,这里更合适。

3
为什么更大的输入量意味着更难的实例?
在下面,假设我们正在使用无限磁带的图灵机。 在向某人解释时间复杂性的概念以及为什么要相对于实例的输入大小对其进行度量时,我偶然发现了以下说法: [..]例如,很自然,与将两个整数与3位相乘相比,您需要更多的步骤来将两个整数与100000位相乘。 这项主张令人信服,但不知何故。在我遇到的所有算法中,输入大小越大,您需要的步骤就越多。换句话说,时间复杂度是输入大小的单调递增函数。 时间复杂度始终是输入大小增加的函数吗?如果是这样,为什么会这样呢?除了挥舞手外,还有其他证据吗?

3
我们能快找到所有总和为N的四平方组合吗?
在Stack Overflow(此处)提出了一个问题: 给定一个整数,打印出的整数值的所有可能的组合和其中求解方程式。A ,B ,C D A 2 + B 2 + C 2 + D 2 = NñNNA ,B ,CA,B,CA,B,CdDD一个2+ B2+ C2+ D2= NA2+B2+C2+D2=NA^2+B^2+C^2+D^2 = N 这个问题当然与Bachet的数论猜想有关(由于他的证明,有时也称为Lagrange的四平方定理)。有一些论文讨论了如何找到一个解决方案,但是我一直找不到任何关于我们能够以多快的速度找到特定所有解决方案的信息(即所有组合,而不是全部排列)。ñNN 我已经考虑了很多,在我看来,它可以在时空中求解,其中是所需的总和。但是,由于缺乏有关该主题的任何先验信息,我不确定这是否对我而言是重要的主张,还是仅是微不足道的,显而易见的或已知的结果。Nø (Ñ)O(N)O(N)ñNN 因此,问题是,对于给定的,我们能快找到所有四平方和?ñNN 好的,这是我正在考虑的(几乎)O(N)算法。前两个支持函数,最近的整数平方根函数: // the nearest integer whose square is less than or equal to N public int SquRt(int N) { …

3
计算第个斐波那契数的高效算法
可以使用以下递归在线性时间中计算第个斐波那契数:nnn def fib(n): i, j = 1, 1 for k in {1...n-1}: i, j = j, i+j return i 第个斐波那契数也可以计算为。但是,这对于甚至较小的都有舍入问题。可能有一些解决方法,但我宁愿不这样做。[ φ Ñ / √nnnn[φn/5–√][φn/5]\left[\varphi^n / \sqrt{5}\right]nnn 是否有一种有效的算法(值为或更好的对数)来计算不依赖浮点算术的第个斐波那契数?假定整数运算(,,,)可在恒定的时间来执行。n + - × /nnnnnn+++−−-××\times///

1
推断优化类型
在工作中,我的任务是推断一些有关动态语言的类型信息。我将语句序列重写为嵌套let表达式,如下所示: return x; Z => x var x; Z => let x = undefined in Z x = y; Z => let x = y in Z if x then T else F; Z => if x then { T; Z } else { F; Z } 由于我从一般类型信息开始,并试图推断出更具体的类型,因此自然的选择是精简类型。例如,条件运算符返回其真假分支类型的并集。在简单的情况下,它效果很好。 但是,在尝试推断以下类型时遇到了障碍: function …
11 programming-languages  logic  type-theory  type-inference  machine-learning  data-mining  clustering  order-theory  reference-request  information-theory  entropy  algorithms  algorithm-analysis  space-complexity  lower-bounds  formal-languages  computability  formal-grammars  context-free  parsing  complexity-theory  time-complexity  terminology  turing-machines  nondeterminism  programming-languages  semantics  operational-semantics  complexity-theory  time-complexity  complexity-theory  reference-request  turing-machines  machine-models  simulation  graphs  probability-theory  data-structures  terminology  distributed-systems  hash-tables  history  terminology  programming-languages  meta-programming  terminology  formal-grammars  compilers  algorithms  search-algorithms  formal-languages  regular-languages  complexity-theory  satisfiability  sat-solvers  factoring  algorithms  randomized-algorithms  streaming-algorithm  in-place  algorithms  numerical-analysis  regular-languages  automata  finite-automata  regular-expressions  algorithms  data-structures  efficiency  coding-theory  algorithms  graph-theory  reference-request  education  books  formal-languages  context-free  proof-techniques  algorithms  graph-theory  greedy-algorithms  matroids  complexity-theory  graph-theory  np-complete  intuition  complexity-theory  np-complete  traveling-salesman  algorithms  graphs  probabilistic-algorithms  weighted-graphs  data-structures  time-complexity  priority-queues  computability  turing-machines  automata  pushdown-automata  algorithms  graphs  binary-trees  algorithms  algorithm-analysis  spanning-trees  terminology  asymptotics  landau-notation  algorithms  graph-theory  network-flow  terminology  computability  undecidability  rice-theorem  algorithms  data-structures  computational-geometry 


4
评估给定Bubblesort算法的平均时间复杂度。
考虑冒泡的伪代码: FOR i := 0 TO arraylength(list) STEP 1 switched := false FOR j := 0 TO arraylength(list)-(i+1) STEP 1 IF list[j] > list[j + 1] THEN switch(list,j,j+1) switched := true ENDIF NEXT IF switched = false THEN break ENDIF NEXT 在评估平均时间复杂度时,我必须牢记的基本思想是什么?我已经完成了最坏情况和最佳情况的计算,但是我一直在认真思考如何评估内循环的平均复杂度,以形成方程。 最坏的情况是: ∑我= 0ñ(∑j = 0n − (i + …

1
对于以下问题,是否存在亚三次算法?
给定对称实矩阵,有一种算法可计算总和在所有1 \ leq i &lt;j &lt;k \ leq n上,时间复杂度优于O(n ^ 3)?n×nn×nn \times nA=(aij)A=(aij)A=(a_{ij})∑i,j,kmax(aij,aik,ajk)∑i,j,kmax(aij,aik,ajk)\sum_{i,j,k}\max(a_{ij},a_{ik},a_{jk})1≤i&lt;j&lt;k≤n1≤i&lt;j&lt;k≤n1\leq i<j<k\leq nO(n3)O(n3)O(n^3)

1
收集APX难题
每个人都知道“ Garey&Johnson”,当我需要一个问题来解决NP硬度证明时,这就是我的首选。但是,我最近发现自己需要APX硬度证明,并且我想知道是否存在类似(且最新的..?)问题集,这些问题被证明是APX困难的。 有人知道这样的事吗?我发现很难相信没有系统地收集此类问题的网站,但是我的Google技能似乎不足。

2
LIN中是否有HORN-SAT,如果是,那为什么不表示P = LIN?
复杂性动物园将定义为可由确定性图灵机在线性时间内解决的一类决策问题。大号我ñ大号一世ñLIN 大号我ñ⊆ P大号一世ñ⊆PLIN \subseteq P 由于HORN-SAT在可解(如用于测试命题号角公式的可满足性的线性时间算法中所述(1984年))O (n )Ø(ñ)O(n) 提出了确定(命题)Horn公式是否可满足的新算法。如果Horn公式包含不同的命题字母,并且假定它们正好是,则本文介绍的两种算法在时间上运行,其中是文字出现的总数在。K P 1,… ,P K O (N )N A一个一个AķķKP1个,… ,PķP1个,…,PķP_1,…, P_Kø (Ñ)Ø(ñ)O(N)ññN一个一个A 我想知道为什么我们不能得出这样的结论 大号我ñ= P大号一世ñ=PLIN = P 鉴于在对数空间缩减下,HORN-SAT也被证明是?我肯定错过了什么。还是那是众所周知的事实?PPP (我还没有仔细阅读1984年的论文,所以我不太了解线性时间求解HORN-SAT的算法,因此我可能会误解其含义。)

1
Big-Oh时间复杂度可以包含多个变量吗?
例如,让我们说我正在做字符串处理,需要对两个字符串进行一些分析。我没有给出关于它们的长度可能最终是多少的信息,因此它们来自两个不同的家庭。将算法的复杂度称为或(取决于我们使用的是朴素算法还是优化算法)是否可以接受?O (n * m )Ø(ñ∗米)O(n * m)O (n + m )O(n+m)O(n + m) 同样,让我们​​假设我们选择的算法实际上需要两个阶段-第一个字符串的设置阶段,这使我们能够处理任意数量的其他字符串而不会产生初始成本。说它具有构造,再进行任意数量的计算,是否被认为合适?O (m )O (n )Ø(ñ)O(n)O (米)Ø(米)O(m) 因为两个计算都是线性的,所以仅将它们称为是否合适?O (n )Ø(ñ)O(n)

2
P和NP不等式的矛盾证明?
我试图用层次定理证明N不等于NP。这是我的观点,但是当我向老师展示并扣除后,他说这是个问题,因为我找不到令人信服的理由接受。 我们首先假设。然后,它产生,然后跟随。按照立场,我们能够将每种语言都简化为。因此,。相反,时间层次定理指出,应该有一种语言,而不是在。这将导致我们得出以下结论:在,而不在,这与我们的第一个假设相矛盾。因此,我们得出的结论是。P=NPP=NPP=NPSAT∈PSAT∈P\mathit{SAT} \in PSAT∈TIME(nk)SAT∈TIME(nk)\mathit{SAT} \in TIME(n^k)NPNPNP小号一个牛逼SAT\mathit{SAT}ñP⊆ Ť一世中号Ë(nķ)NP⊆TIME(nk)NP \subseteq TIME(n^k)一∈ Ť一世中号Ë(nk + 1)A∈TIME(nk+1)A \in TIME(n^{k+1})Ť一世中号Ë(nķ)TIME(nk)TIME(n^k)一个AAPPPñPNPNPP≠ NPP≠NPP \neq NP 我的证明有问题吗?

1
难道这是一个NP完全问题?
考虑以下问题陈述: 给定一个初始数字,您和您的朋友轮流从中减去一个完美的平方。第一个获得零胜利的人。例如: 初始状态:37 玩家1减去16。状态:21 玩家2减去8。状态:13 玩家1减去4。状态:9 玩家2减去9。状态:0 Player2获胜! 编写一个程序,该程序给出一个初始状态,并返回最佳动作,即可以确保赢得比赛的动作。如果没有任何可能的举动会导致您进入获胜状态,请返回-1。 使用动态规划可以在伪多项式时间内解决此问题。这个想法只是用最佳移动从下往上填充长度为n(其中n是初始状态)的数组,如果没有移动导致获胜,则为-1。这将花费O(n * sqrt(n)),因为对于每个数字,我们都需要考虑减去每个可能的小于它的理想平方(其中有〜sqrt(n)个)。但是,这是伪多项式运行时复杂性,因为运行时实际上相对于二进制(用于表示数字的位数)的大小与输入大小成比例关系。 谁能想到解决这个问题的多项式算法?如果没有,那么它可以是NP-Complete吗?为什么?

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.