Questions tagged «ds.algorithms»

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

9
简要介绍数学家算法
我正在寻找有关算法的简明介绍性文章,其中涉及高比率它应该从一开始就开始,然后迅速发展,而不必花费太多时间在现实世界的例子,基本证明技术等上。作为研究数学家,我在数学方面拥有扎实的背景,因此我很乐意用来理解形式主义和简明证明。 。理论涵盖总页数。theory coveredtotal number of pages.\frac{\mbox{theory covered}}{\mbox{total number of pages}}. 是否存在这样的文本?有什么建议吗?

1
生成塔防迷宫,也就是在未加权的网格图中找到K个最重要的节点(“逐层拦截”)
在塔防游戏中,您具有一个带有起点,终点和许多墙的NxM网格。 敌人从头到尾都经过最短的路径而没有穿过任何墙壁(它们通常不局限于网格,但为简单起见,假设它们是栅格。在两种情况下,它们都不能穿过对角的“孔”) 问题(至少对于这个问题而言)是放置多达 K个额外的墙,以最大化敌人必须走的路,而不会完全阻碍从终点开始。例如,对于K = 14 我确定这与“ k个最重要的节点”问题相同: 给定一个无向图G =(V,E)和两个节点s,t∈V,k个最重要的节点是k个节点,其删除使从s到t的最短路径最大化。 Khachiyan等人1表明,即使该图未加权和二部图,即使将最大最短路径的长度近似为2也是NP-Hard (给定k,s,t)。 然而,一切并没有丢失:后来,L。Cai等人2表明,对于“二分置换图”,可以使用“相交模型”在伪多项式时间内解决此问题。 我还无法在未加权的网格图上找到任何东西,也无法确定“二分置换图”之间的关系。 是否有任何有关我的问题的研究发表 -也许我正在寻找完全错误的地方?即使是体面的伪多项式逼近算法也能很好地工作。谢谢! 1 L. Khachiyan,E。Boros,K。Borys,K。Elbassioni,V。Gurvich,G。Rudolf和J. Zhao,“关于短路径拦截问题:完全和节点明智的有限拦截,”计算机系统理论43( 2008),2004-233。 链接。 2 L. Cai和J. Mark Keil,“在间隔图中找到k个最重要的节点”。 链接。 注意:这个问题是我在此处发现的stackoverflow问题的后续问题。

1
近似真实3LIN的置信度传播?
在2002年发表的《科学》杂志论文中,Mezard,Parali和Zecchina提出了随机3SAT 的信念传播启发式算法。实验表明,启发式方法对于可能存在令人满意的分配的每个变量约束的比率非常有效。 我的问题是: (1)如果您考虑使用随机3LIN而不是随机3SAT怎么办?(每个约束都是GF(2)上的随机线性方程) (2)如果您考虑随机近似实数3LIN怎么办?在这种情况下,是否可以想象(经过适当调整的)信念传播启发式算法的性能会更易于分析? Subhash Khot最近的工作中定义的近似版本如下:变量可以采用实数值,而不仅仅是二进制数值。我们仅考虑范数1的赋值。每个方程的形式为,其中是正态分布的,并且从变量集中统一选择。如果,并且不仅是存在完全相等的等式,也满足一个方程。C1个X1个+ c2X2+ c3X3= 0C1个X1个+C2X2+C3X3=0c_1 x_1 + c_2 x_2 + c_3 x_3 = 0C1个,ç2,ç3C1个,C2,C3c_1,c_2,c_3X1个,X2,X3X1个,X2,X3x_1,x_2,x_3| C1个X1个+ c2X2+ c3X3| ≤ε|C1个X1个+C2X2+C3X3|≤ϵ|c_1 x_1 + c_2 x_2 + c_3 x_3|\leq \epsilon 直觉是,在近似版本中,对信念(应该是变量的分配)的更改可以连续/递增的方式发生。

3
无限域上张量秩的复杂度
甲张量是向量和矩阵更高的尺寸和的一般化秩张量的还概括的矩阵的秩。即,张量的秩是求和于T的一阶张量的最小数目。向量和矩阵分别是1度和2度的张量。ŤTTŤTT 中的元素来自现场˚F。如果F是有限的,那么Håstad 证明了确定3度张量的秩是否至多r是NP完全的,但是当F是像有理Q一样的无限字段时,他没有给出(或引用)上限。ŤTTFF\mathbb{F}FF\mathbb{F}rrrFF\mathbb{F}QQ\mathbb{Q} 问题:确定3次张量对于Q的秩最多是否为r的复杂度,最著名的上限是什么?TTTQQ\mathbb{Q}rrr

3
编写算法的良好做法
这是关于我们如何有效地表达手头的算法。我的本科教学需要这个。 我了解没有编写伪代码的标准方法。不同的作者遵循不同的约定。 如果这里的人们指出他们遵循和思考最佳方法的方式,那将是有帮助的。 是否有任何书籍对此进行了详细介绍?

2
检测两种几乎简单的多边形
我感兴趣的决定给定的非简单的多边形是否是复杂性几乎简单,在任何两个不同的正式感官:弱简单或者非自交。由于这些术语尚未广为人知,因此让我从一些定义开始。 甲多边形 是线段的闭合循环连接一些有限序列在平面上的点的。点称为多边形的顶点,线段称为多边形的边。我们可以通过仅按顺序列出其顶点来指定任何多边形。PPPp0,p1,p2,…,pn−1p0,p1,p2,…,pn−1p_0, p_1, p_2, \dots, p_{n-1}pipip_ipipi+1modnpipi+1modnp_i p_{i+1\bmod n} 如果所有n个顶点都不同并且边仅在其端点处相交,则多边形很简单。等效地,如果多边形对圆是同胚的,并且每个边的长度都为正,则该多边形是简单的。但是,通常,多边形的顶点和边缘可以任意相交,甚至重合。1个nnn 考虑两条多边形路径AAA和BBB,它们的交点是两者的共同子路径(可能是一个点)。我们说,如果AAA和B的端点A(0),B(0),A(1),B(1)在公共子路径A \ cap B的邻域边界上交替,则A BBB 交叉。如果多边形具有两个交叉子路径,则该多边形是自交叉的,否则具有 非自交叉的。2A(0),B(0),A(1),B(1)A(0),B(0),A(1),B(1)A(0), B(0), A(1), B(1)A∩BA∩BA\cap B 如果多边形是一连串简单多边形的极限,则多边形是弱简单的;或者等效地,如果顶点的任意小扰动使多边形简单,则多边形是弱简单的。每个弱简单多边形都是非自相交的。但是,一些非自相交的多边形并不是那么简单。 例如,考虑以下所示的六个点a,b,p,q,x,ya,b,p,q,x,ya,b,p,q,x,y。 多边形abpqyzabpqyzabpqyz很简单;见左图。 多边形papbpqyqzqpapbpqyqzqpapbpqyqzq很弱;中间的图显示了附近的简单多边形。但是,此多边形并不简单,因为它访问了ppp三次。 多边形是自交的,因为子路径和交叉。见右图以获得一些直觉。b p q z y q p apapbpqzqyqpapbpqzqyqpapbpqzqyqbpqzbpqzbpqzyqpayqpayqpa 最后,多边形(绕中间多边形缠绕两次)是非自交叉的,但并不是那么简单。直观地,此多边形的转弯数为,而任何简单多边形的转弯数必须为。(形式上的证明需要进行一些案例分析,部分原因是实际上对于角为多边形,转数实际上没有很好地定义!)± 2 ± 1 0 ∘papbpqyqzqpapbpqyqzqpapbpqyqzqpapbpqyqzqpapbpqyqzqpapbpqyqzq±2±2\pm 2±1±1\pm 10∘0∘0^\circ 更新(9月13日):在下图中,多边形是非自交叉的,并且具有转弯数字1,但是并不是那么简单。多边形可以说有几个交叉的非简单子路径,但没有交叉的简单子路径。(我之所以说“可以说”,是因为目前尚不清楚如何定义两个非简单步行的时间!)abcabcxyzxpqrxzyxabcabcxyzxpqrxzyxabcabcxyzxpqrxzyx 最后,这是我的实际问题: 我们能多快确定给定的多边形是否非自交叉? 我们多快可以确定给定的多边形是否是弱简单的? 可以在时间内解决第一个问题,如下所示。由于存在个顶点,因此存在个顶点到顶点子路径;我们可以测试任何特定的子路径在时间内是否简单(通过蛮力)。对于每对简单的顶点到顶点子路径,我们可以测试它们是否在时间内交叉。但这不可能是最好的算法。n O (n 2)O (n …

5
现实世界中的Vertex Cover应用程序
顶点覆盖问题在现实世界中有什么应用? 哪个行业或研究项目使用了基于Vertex Cover问题理论结果而实际实施的软件?特别是,是否在二手软件中实现了以下任何理论结果? 顶点覆盖的近似算法 顶点覆盖的指数时间算法 顶点覆盖的固定参数可处理算法 顶点覆盖的内核化算法

1
使用Ford-Fulkerson和DFS的最大流量
这个问题是关于使用DFS查找增强路径时Ford-Fulkerson最大流量算法的时间复杂度的。 有一个众所周知的示例,显示使用DFS可能需要最大流中线性的迭代次数,例如,参见上面链接的Wikipedia页面。 但是,我对这个示例并没有真正的信服:标准DFS实现不会表现出B和C作为路径的第一个节点(使用Wikipedia页面的顶点名称)之间交替的行为。 因此,让我们施加一个非常自然的条件,即每当DFS访问节点 ,它总是以相同的顺序检查u的邻居。仍然有使用DFS的FF使用大量迭代的示例吗?uuuuuu 作为变体,假设我们具有附加的属性,即邻居的不同顺序与某些任意但固定的全局顶点顺序一致。这有什么区别吗? 在我看来,这是一个非常基本的问题;如果答案众所周知,我会事先道歉,但我不是流量专家,有些谷歌搜索没有发现任何问题。 编辑: 答案是肯定的,仍然有示例。看到的图2 本文。在这些示例中,具有DFS的FF进行了指数级(按顶点数计)迭代。似乎很容易证明这是紧密的,即迭代次数始终以为界(与容量的值无关)。2O(n)2O(n)2^{O(n)}


3
半定式程序分析的教育资源还是调查?
在设计近似算法时,有时会求解一个半定程序,然后进行舍入步骤。一个经常使用的示例来说明这一点。(例如,参见Vijay Vazirani的近似算法。) 是否有超越Max-Cut问题的良好教育资源或调查资料来解释更复杂的舍入算法和用于其分析的技术?我正在考虑以下情况:SDP解决方案的向量在超球体上分布不均匀,长度不同或具有其他属性,使得分析变得更加困难。

1
计算具有多边形障碍物的平面中最短路径的复杂性
假设我们在平面中得到了几个不相交的简单多边形,并且在每个多边形之外有两个点和t。欧几里德最短路径问题是计算从s到t不与任何多边形内部相交的欧几里德最短路径。为了具体起见,让我们假设s和t的坐标以及每个多边形顶点的坐标是整数。ssstttssstttsssttt 这个问题可以在多项式时间内解决吗? 当然,大多数计算几何体会立即回答是:John Hershberger和Subhash Suri描述了一种算法,该算法可在时间内计算欧几里得最短路径,并且此时间范围在代数计算树模型中是最佳的。不幸的是,Hershberger和Suri的算法(以及此之前和之后的几乎所有相关算法)似乎都需要从严格的意义上讲精确的实数算法。O(nlogn)O(nlog⁡n)O(n\log n) 如果所有内部顶点都是障碍顶点,则将其称为有效多边形路径;每条欧几里德最短路径均有效。任何有效路径的长度都是整数的平方根之和。因此,比较两个有效路径的长度需要比较两个平方根之和,我们不知道如何在多项式时间内进行。 此外,将平方根和问题的任意实例简化为等效的欧几里德最短路径问题似乎是完全合理的。 那么:是否有多项式时间算法来计算欧几里得最短路径?还是NP问题很难?或平方根总和很难?或者是其他东西? 一些注意事项: 使用标准漏斗算法,至少在给定多边形三角剖分的情况下,可以在时间内计算一个多边形内部(或外部)的最短路径,而不会出现任何奇怪的数值问题。O(n)O(n)O(n) 实际上,浮点算术足以计算最短至浮点精度的路径。我只对确切问题的复杂性感兴趣。 约翰·坎尼(John Canny)和约翰·里夫(John Reif)证明了3维空间中的相应问题是NP困难的(道德上是因为最短路径的数量可能成倍增加)。 崔俊,、尤根·塞伦和叶建庚描述了多项式时间近似方案。 Simon Kahan和Jack Snoeyink考虑了有关简单多边形中最小链接路径的相关问题的类似问题。

1
二进制乘法和奇偶卷积
这个问题是关于二进制数的正态乘法与多项式乘法mod 2之间的关系。为了使这个问题具体化,我希望从Knuth vol。知道是否对该问题有更好的解决方案。2,第3版,比书中给出的第420页。 “如果将系数打包到计算机字中,可以通过使用二进制计算机上的普通算术运算来简化模2的多项式乘法。” Knuth给出了一个相当简单的减少量,在最坏的情况下,它通过对数乘数来扩展输入中的位数。可以减少这个对数因子吗?

7
在图形中查找双顶点
令G=(V,E)G=(V,E)G=(V,E)为图。对于的顶点,将定义为中的(开放)邻域。也就是说,。定义两个顶点在是双胞胎如果和具有相同的组的邻居的,即,如果。x∈Vx∈Vx\in VN(x)N(x)N(x)xxxGGGN(x)={y∈V|{x,y}∈E}N(x)={y∈V|{x,y}∈E}N(x)=\{y\in V \,\vert\, \{x,y\}\in E\}u,vu,vu,vGGGuuuvvvN(u)=N(v)N(u)=N(v)N(u)=N(v) 给定一个在个顶点上有边的图作为输入,如果存在这样的一对孪生,我们可以在多快的时间内找到的一对孪生?GGGnnnmmmGGG 通过比较两个邻域的邻域,可以检查两个给定的顶点在时间是否为双胞胎。一个简单的算法是找到双胞胎,因此要为每对顶点检查它们是否为双胞胎。这需要时间(并且还会找到所有双胞胎对)。在图中找到(如果存在)一对双胞胎是否有明显更快的方法?文献中是否有解决此问题的已知工作?O(n)O(n)O(n)O(n3)O(n3)O(n^{3})

2
3-SUM的乘法版本
关于以下问题的时间复杂度(我们称为3-MUL)的知识是什么? 给定整数的集合,中是否有元素使得?小号SSñnn一个,b ,c ^ ∈ 小号a,b,c∈Sa,b,c\in Sa b = cab=cab=c 此问题类似于3-SUM问题,该问题询问是否存在三个元素使得(或等效地)。推测3-SUM大约需要二次时间。3-MUL是否有类似的猜想?具体来说,是否知道3-MUL是3-SUM硬的?一个,b ,c ^ ∈ 小号a,b,c∈Sa,b,c\in Sa + b + c = 0a+b+c=0a+b+c=0a + b = ca+b=ca+b=cñnn 注意,时间复杂度应适用于“合理的”计算模型。例如,我们可以从集上的3-SUM减少到集上的3-MUL ,其中 。然后,当且仅当,存在3-MUL的解。但是,数字的这种指数级膨胀在各种模型(例如RAM模型)中非常严重。小号SS小号′S′S'小号′= { 2X| X ∈ 小号}S′={2x∣x∈S}S'=\{2^x\mid x\in S\}2一种⋅ 2b= 2C2a⋅2b=2c2^a\cdot 2^b=2^ca + b = ca+b=ca+b=c

8
除了最坏情况,平均情况等之外,还有其他类型的运行时间分析吗?
以下是分析算法运行时间的一些方法: 1)最坏情况分析:最坏情况下的运行时间。 2)平均情况分析:随机实例上的预期运行时间。 3)摊销分析:最坏实例序列的平均运行时间。 4)平滑分析:在最坏的随机扰动实例上的预期运行时间。 5)通用案例分析:运行时间在所有实例中只有一小部分是最差的。 我的问题:这是完整的清单吗?

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.