4 为什么用P进行线性编程而用NP进行整数编程很难? 线性编程(LP)在P中,而整数编程(IP)在NP中。但是由于计算机只能以有限的精度操作数字,因此实际上计算机正在使用整数进行线性编程。因此,LP和IP难道不属于同一复杂度等级吗? 35 complexity-theory polynomial-time
2 为什么C的void类型不同于Empty / Bottom类型? 维基百科以及我发现的其他来源都将C的void类型列为单位类型,而不是空类型。我觉得这很混乱,因为在我看来,它void更适合于空/底类型的定义。 void据我所知,没有价值观存在。 返回类型为void的函数指定该函数不返回任何内容,因此只能执行某些副作用。 类型的指针void*是所有其他指针类型的子类型。同样,void*在C中进行来回转换是隐式的。 我不确定最后一点是否可以作为void空类型的参数,void*或多或少是与无关的特例void。 另一方面,void它本身不是所有其他类型的子类型,据我所知,这是将类型作为底部类型的要求。 28 type-theory c logic modal-logic coq equality coinduction artificial-intelligence computer-architecture compilers asymptotics formal-languages asymptotics landau-notation asymptotics turing-machines optimization decision-problem rice-theorem algorithms arithmetic floating-point automata finite-automata data-structures search-trees balanced-search-trees complexity-theory asymptotics amortized-analysis complexity-theory graphs np-complete reductions np-hard algorithms string-metrics computability artificial-intelligence halting-problem turing-machines computation-models graph-theory terminology complexity-theory decision-problem polynomial-time algorithms algorithm-analysis optimization runtime-analysis loops turing-machines computation-models recurrence-relation master-theorem complexity-theory asymptotics parallel-computing landau-notation terminology optimization decision-problem complexity-theory polynomial-time counting coding-theory permutations encoding-scheme error-correcting-codes machine-learning natural-language-processing algorithms graphs social-networks network-analysis relational-algebra constraint-satisfaction polymorphisms algorithms graphs trees
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=lognx = \log nn=2xn=2xn = 2^x2x2x2^x 我的问题是,如果我们考虑输入的一元表示形式,则始终为,则伪多项式时间将等于多项式时间复杂度。那么为什么我们从不这样做呢?x = nnnnx=nx=nx=n 此外,由于存在背包的伪多项式时间算法,因此通过取,背包将成为多项式,结果P = NPx=nx=nx=n 15 complexity-theory algorithm-analysis time-complexity polynomial-time pseudo-polynomial
2 在DAG中找到两个顶点之间的最短和最长路径 给定一个未加权的DAG(有向无环图)以及两个顶点和,是否有可能找到多项式时间内从到的最短和最长路径?路径长度由边的数量测量。s t s tD=(V,A)D=(V,A)D = (V,A)ssstttsssttt 我对寻找多项式时间内可能的路径长度的范围感兴趣。 附言:此问题与StackOverflow问题DAG中最长路径的重复。 14 algorithms graphs shortest-path polynomial-time
1 如果不是多项式或指数式,那么该函数叫什么? 我刚刚在Garey和Johnson的“计算机与难处理性”的第6页上找到了这句话。 时间复杂度函数不能如此有限的任何算法都称为指数时间算法(尽管应注意,此定义包括某些非多项式时间复杂度函数,例如,通常不将其视为指数函数)功能)。nlognnlognn^{\log n} 我的问题如下 如果不是多项式也不是指数式,那么该函数叫什么?是否有名称或特殊情况?nlognnlognn^{\log n} 谢谢。 13 algorithms terminology polynomial-time
1 是否确定已知间隔中是否存在素数? 我从关于stackoverflow的帖子中看到,有一些相对较快的算法可以筛分一个数字区间,以查看该区间是否存在质数。但是,这是否意味着以下各项的总体决策问题((在区间中是否存在质数?)在P中。(该帖子有很多答案我没有看过,因此如果这个问题是一个问题,我深表歉意。重复或不必要)。 一方面,如果间隔足够大(例如),则适用Bertrand's Postulate之类的东西,并且此间隔中肯定有一个素数。但是,我也知道两个质数之间有任意大的距离(例如。 [N,2N][N,2N][N,2N][N!,N!+N][N!,N!+N][N!,N!+ N] 即使决策问题在PI中,也看不到相应的搜索问题也很容易解决,因为那样执行二进制搜索时,我们可能无法利用素数已知分布的相同属性。 13 complexity-theory np polynomial-time primes
2 感觉指数级但为P的问题 我正在尝试建立一个“异常有用”的算法/问题列表,例如,解决“似乎”本质上非常指数化的问题,但是有一些最终可以解决这些问题的特别聪明的算法。我的意思示例: 线性编程(单纯形算法是指数时间;找到多项式时间解花了很长时间!) 更一般而言,半定规划 原始性测试 2-SAT和HORNSAT 计算行列式(如果这听起来并不困难,请考虑永久变量) 寻找完美的搭配 使用有限简单组的分类可以解决各种硬组理论问题 可以使用复杂的禁止次要特征(可嵌入性在任意表面上;树宽和分支宽度的边界; Delta-Wye可约化图)来解决各种硬图问题 计算有界组中的指数(即以步骤计算,通过重复平方来完成)abmodkabmodka^b \mod klogblogb\log b 计算依赖于LLL算法。(作为特殊情况:Euclidean算法。作为更一般的情况:PSLQ或HJLS算法。) 没有泰勒术语(?)的约束问题。我承认我还没有完全理解这一点,但是听起来它可能包含了上面的2-SAT / HORNSAT情况以及有限域上的任何线性代数。在这里看到更长的帖子 可通过全息缩小计算的问题。 值得一提的是,我还要提到图同构,因为它仍然非常简单(),它等效于许多其他同构问题:nlog2nnlog2nn^{\log^2 n} 有向图/多重图/超级图(一种“较难”的问题) 有限自动机/ CFG 显然,这些方面存在一定的困难,但是所有人都会给至少某些人带来某种“惊奇”的感觉,因为这个问题听起来很困难,但事实证明这很容易解决。LP听起来可能相对简单,但是人们花了相当长的时间来建立一个实际的解决方案。反复平方或求解2-SAT是大学生可能会自己想到的事情,但是如果您只看过NP-Complete问题而没有看过HORNSAT,则听起来像是NP-Completeness的自然人选。解决CFSG或采用多项式方法来检查Delta-Wye可还原性并不是一件容易的事。 我希望这是有道理的; 这里显然有很多主观属性,但是我很想知道其他人发现什么是解决“显然很困难”问题的有效解决方案。 12 complexity-theory polynomial-time efficiency
3 猜想的问题,但事实证明并非易事 我们有很多问题,例如因式分解,这些问题被强烈推测但未被证明在P之外。是否有相反性质的问题,即它们被强烈推测但未被证明在 P 里面? 12 complexity-theory polynomial-time
1 线性规划是否接受强多项式时间算法? 线性规划问题:找到一个强多项式时间算法,该算法针对给定矩阵A∈Rm×n和b∈Rm来确定是否存在x∈Rn且Ax≥b。 我知道史蒂夫·斯梅尔(Steve Smale)列出了一些数学上尚未解决的问题。但是,这样的线性编程问题到现在还不能解决吗? 12 algorithms polynomial-time linear-programming