Questions tagged «ds.algorithms»

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

1
决定一个家庭是否是Sperner家庭的复杂性
我们为{1,...,n} 的个子集提供了一个家庭是否有可能在确定是否为Sperner家族的复杂性上找到一个重要的下限?微小的下限是,我强烈怀疑它不紧密。FF\mathcal{F}F O (n m )米米mFF\mathcal{F}O (n 米)Ø(ñ米)O(n m) 回想一下,一组是一个Sperner家庭如果和在 ; 意味着和Y \ nsubseteq X。小号小号\mathcal{S}XXXÿÿY小号小号\mathcal{S}X≠ YX≠ÿX \ne YX⊈ ÿX⊈ÿX \nsubseteq Yÿ⊈ Xÿ⊈XY \nsubseteq X

2
设置置换矩阵的封面
给定一组S个n×n个置换矩阵(仅占n!个可能置换矩阵的一小部分),我们如何才能找到S的最小大小子集T,使得在每个位置加T的矩阵至少有1个? 我对这个问题感兴趣,其中S是S_n的一小部分。我想知道是否有可能找到(并实现!)比贪婪算法快得多的近似算法(运行多次直到它变得“幸运”,这是一个非常缓慢的过程,但是它却给出了一些接近最佳的界限(在较小的情况下),还是无法逼近性保证了我不能。 有关此问题的一些简单事实:长度为n的置换矩阵循环组当然可以最佳地解决此问题。(至少需要n个矩阵,因为每个置换矩阵都有n个矩阵,并且需要n ^ 2个矩阵。) 我感兴趣的集合S中没有n环基团。 这个问题是机套的非常特殊的情况。实际上,如果我们将X设为具有n ^ 2个元素的集合(1,2,... n)*(1,2,... n),则每个置换矩阵对应于一个大小为n的子集,而I我正在寻找覆盖X的这些子集的最小子集合。集合覆盖本身并不是解决此问题的好方法,因为近似于一般集合覆盖问题。 使用贪婪方法使此问题不会变得太慢的唯一原因是,置换组中的对称性有助于消除大量冗余。特别是,如果S是一个子组,并且T是一个小的子集,它是一个最小覆盖集合,则集合sT(将T乘以该组s的任何元素)仍在S中,并且仍然是覆盖集合(当然如果您想知道,成功的案例有n〜30和| S |〜1000,幸运的贪婪结果有| T |。〜37。n〜50的情况的边界很差,需要很长时间才能获得。 综上所述,我想知道是否存在对此问题的近似方法,或者它是否仍然足够通用以适合某些不可近似性定理,就像一般集合覆盖问题一样。在实践中使用什么算法来近似相关问题?由于子集的大小都相同,并且每个元素以相同的小频率1 / n出现,因此似乎存在某种可能性。 -B

1
我们可以决定一个永久物是否具有唯一的期限?
假设我们得到一个n×n矩阵M,其中有整数项。我们可以决定在P是否有一个置换使得对所有排列π ≠ σ我们有Π 中号我σ (我) ≠ Π 中号我π (我)?σσ\sigmaπ≠ σπ≠σ\pi\ne\sigmaΠ 中号我σ(我)≠ Π 中号我π(我)Π中号一世σ(一世)≠Π中号一世π(一世)\Pi M_{i\sigma(i)}\ne \Pi M_{i\pi(i)} 备注。当然可以用总和替换产品,问题仍然存在。 如果矩阵只能有0/1个条目,那么我们将得出Bipartite-UPM问题,甚至在NC中也是如此。 编辑:如果我们允许随机归约,则确定最小项是否唯一是NP-hard。实际上,我最初想提出这个问题,因为它可以帮助解决这个问题。现在事实证明这是NP完全的,所以让我为我们的问题画出简化。假设输入是一个零一矩阵(我们可以假设),然后用2到2 + 1 / n之间的随机实数替换零项。现在,在此新矩阵中,当且仅当原始矩阵可置换为上三角形式时,最小项才是唯一的。 编辑:类似问题: 在边缘加权图中,是否存在具有唯一权重的哈密顿环? 如果我们有一个将权重分配给每个变量/令人满意的分配器的CNF,是否有一个唯一的权重满足分配条件? 这些当然至少是NP难的。这些问题与原始问题是否相等或更难?


2
查找小整数集,其中每个元素都是另外两个元素的和
这是此关于math.stackexchange的问题的跟进。 让我们说,一个非空集S⊆ℤ是自我支撑,若对所有一 ∈S,存在着不同的元素B,C ∈S,从而使一 = b + C。对于正整数n,简单的示例包括理想S = n or,或(对于n > 3)整数间隔[ -n, n ]。 我们会说S是强自支撑,如果S是从-S不相交的:那就是,如果一个 ∈S,那么- 一个 ∉S.无论是上述的例子是强自支撑,因为它们实际上是关闭在否定下。存在强烈支持自立的有限集:例如,集{−22,−20,−18,−16,−14,−12,−10,−2、1、3、7、8、15 ,23}和{-10,-8,-6,-2、1、3、4、5}。 问题#1。对于一个正整数N > 0,是否存在一个poly(N)-time [或polylog(N)-time]算法来(i) 产生一个最大绝对值为N的强自支撑集合,或者(ii ) 确定不存在这样的集合?[ 编辑:作为上最古老的答案+我的评论所指出的,总是存在这样一组ň ≥10] 问题2。对于N > 0,您可以构造具有最大绝对值N且具有最少可能元素的强烈自支撑集吗?

2
图同构测试的硬实例
对于GI测试,强正则图是最难的一种吗? 可以说,“最难的”在某种意义上是“常识”或“平均”的。 Wolfram MathWorld提到了一些“病理上的硬图”。这些是什么? 我的25组图表示例集:http : //funkybee.narod.ru/graphs.htm我测试了许多其他图表,但都是相同的-来自http://www.maths.gla.ac的 SRG或RG 。 .UK /〜ES / srgraphs.html或genreg.exe的。如果我生成1000张图,那么我将测试所有1000 *(1000-1)/ 2对。当然,我不会测试明显(“愚蠢”)的情况,例如具有不同排序的度数向量的图形等。但是该过程似乎是无止境的,并且在某种程度上闻起来是徒劳的。我应该选择哪种测试策略?还是这个问题几乎等于地理标志问题本身? 我什至在纸上重新绘制了一个来自thesis_pascal_schweitzer.pdf的图表 (建议@ 5501)。它很好的图片:http : //funkybee.narod.ru/misc/furer.jpg 我不确定,但似乎正是这种图形“ k维 Weisfeiler-Lehman算法无法区分”。 但是,先生们,要从电子书中将图形复制到纸上,即使对于我来说也太过分了。 25 0100000000000000000000000 1010000000000000000000000 0101000000000000000000100 0010100000000010000000000 0001010000001000000000000 0000101000000000000000000 0000010100000000000000000 0000001010000000000000000 0000000101000000000000000 0000000010100000000000000 0000000001010000000000000 0000000000101000000000100 0000100000010000000000010 0000000000000010000001010 0001000000000101000000000 0000000000000010100000000 0000000000000001010000000 0000000000000000101000000 0000000000000000010100000 0000000000000000001010000 0000000000000000000101000 0000000000000100000010100 0010000000010000000001000 0000000000001100000000001 0000000000000000000000010 …

1
k-Clique的2FA状态复杂度?
简单形式: 双向有限自动机可以识别包含状态的三角形的顶点图吗?vvvo (v 3)o(v3)o(v^3) 细节 这里有趣的是使用一系列边编码的顶点图,每个边是一对来自的不同顶点。v { 0 ,1 ,... ,v - 1 }vv{0,1,…,v−1}\{0,1,\dots,v-1\} 假设是双向的有限自动机的一个序列(确定性或不确定性),使得识别 -Clique上 -点输入的图形和具有状态。问题的一般形式是:吗?(M v)M v k v s (v )s (v )= Ω (v k)(Mv)(M_v)MvM_vkkvvs(v)s(v)s(v)=Ω(vk)s(v) = \Omega(v^k) 如果对于无限多个,且,则NL≠NP。因此,我不太那么雄心勃勃地规定是固定的,并且情况是第一个平凡的情况。ķ = ķ (v )= ω (1 )小号(v )≥ v ķ (v ) v ķ ķ = 3k=k(v)=ω(1)k = …

2
关于此TSP变体有什么了解?
该问题先前已发布到此处的 Computer Science Stack Exchange 。 假设您是一位非常成功的旅行推销员,客户遍布全国。为了加快运输速度,您已经开发出了一支可抛弃式无人驾驶飞机,每架有效航程为50公里。借助这种创新,您无需前往每个城市运送货物,而只需要在50公里范围内驾驶直升机并让无人机完成工作即可。 问题:应该如何驾驶直升机以最小化行驶距离? 更精确地讲,给定实数并在欧几里得平面中有N个不同的点{ p 1,p 2,… ,p N },在每个点上与半径R的闭合圆盘相交的哪条路径会最小化总弧长?该路径不需要关闭,并且可以以任何顺序与磁盘相交。R > 0[R>0R>0ññN{ p1个,p2,… ,pñ}{p1个,p2,…,pñ}\{p_1, p_2, \ldots, p_N\}[R[RR 显然,当,此问题减少到TSP ,因此我不希望找到有效的精确算法。我很高兴知道在文献中这个问题是什么,以及如果知道有效的近似算法。[R → 0[R→0R \to 0

1
线性系统可行性检查和优化的等效项
一种证明不等式线性系统的可行性与线性规划一样困难的方法是通过椭圆法给出的简化。一种更简单的方法是猜测最佳解决方案,并将其作为约束通过二进制搜索引入。 这两种减少都是多项式,但不是强多项式(即,它们取决于不等式系数中的位数)。 从LP优化到LP可行性是否有很多项式的简化?

2
外部存储器的指数加速
背景 外部存储器或DAM模型通过其执行的I / O数量(本质上是高速缓存未命中的数量)来定义算法的成本。这些运行时间通常以(内存大小)和(一次可以传输到内存的字数)的形式给出。有时和用于和分别。 M中号MB乙BL大号LZžZB乙BM中号M 例如,排序需要的成本,而朴素矩阵乘法则需要。 Θ(N/BlogM/BN/B)Θ(ñ/乙日志中号/乙⁡ñ/乙)\Theta(N/B\log_{M/B} N/B)Θ(n3/BM−−√)Θ(ñ3/乙中号)\Theta(n^3/B\sqrt{M}) 该模型被用来分析“缓存遗忘算法”,它不具备的知识,或。通常,目标是使不受缓存影响的算法在外部存储器模型中达到最佳性能。这并非总是可能的,例如在置换问题中(如Brodal,Faderberg所示,2003年)。请参阅Erik Demaine撰写的这篇文章,以进一步了解对缓存不了解的算法,包括有关排序和矩阵乘法的讨论。B乙BM中号M 我们可以看到,更改会导致排序的对数加速和矩阵乘法的多项式加速。(此结果最初来自Hong,Kung 1981,实际上早于缓存遗忘和外部存储器模型的形式化)。MMM 我的问题是这样的: 在任何情况下,提速都以为指数吗?运行时间将类似于。我对符合此描述但对缓存不了解的算法或数据结构特别感兴趣,但对缓存感知的算法/数据结构甚至是最著名的下限感到满意。MMMf(N,B)/2O(M)f(N,B)/2O(M)f(N,B)/2^{O(M)} 在大多数模型中,通常假设如果为输入大小并且显然,则单词大小。然后的加速比给出的多项式加速比。这使我相信,如果我要查找的问题存在,那不是多项式。(否则,我们可以通过更改常量的大小来获得恒定数量的I / O,这似乎不太可能)。w=Ω(logN)w=Ω(log⁡N)w = \Omega(\log N)NNNM>wM>wM > w2M2M2^MNNN

4
在波塞上学习单调谓词所需的最坏问题数量
考虑的有限偏序超过项,并且在一个未知的单调谓词(即,对于任何,,如果和然后)。我可以通过提供一个节点并确定成立来评估我的目标是使用最少的值来确定确切的节点的集合,从而使成立。(X,≤)(X,≤)(X, \leq)nnnPPPXXXxxxy∈Xy∈Xy \in XP(x)P(x)P(x)x≤yx≤yx \leq yP(y)P(y)P(y)PPPx∈Xx∈Xx \in XP(x)P(x)P(x)x∈Xx∈Xx \in XP(x)P(x)P(x)PPP尽可能。(我可以根据之前所有查询的答案选择查询,而无需提前计划所有查询。) 策略 over是一个函数,该函数根据我到目前为止所进行的查询以及它们的答案,告诉我要查询的节点以及通过遵循该策略来确保在任何谓词上告诉我,我将达到一种状态,在该状态下我知道所有节点上的值。运行时间的上的谓词是需要查询的数量就知道了值所有节点上。的最差运行时间是。最优策略使得。SSS(X,≤)(X,≤)(X, \leq)PPPPPPr(S,P)r(S,P)r(S, P)SSSPPPPPPSSSwr(S)=maxPr(S,P)wr(S)=maxPr(S,P)wr(S) = \max_P r(S, P)S′S′S'wr(S′)=minSwr(S)wr(S′)=minSwr(S)wr(S') = \min_S wr(S) 我的问题如下:作为输入的poset (X,≤)(X,≤)(X, \leq),如何确定最佳策略的最差运行时间? [很明显,对于一个空的poset,将需要nnn查询(我们需要询问每个单个节点),并且对于\ lceil \ log_2 n个\ rceil的总顺序⌈log2n⌉⌈log2⁡n⌉\lceil \log_2 n \rceil将是必需的(进行二进制搜索以查找边境)。一个更一般的结果是以下信息理论下限:谓词P的可能选择PPP数是(X,\ leq)的反链数N_X(因为单调谓词与A之间的一对一映射)反链解释为P的最大元素,因此,由于每个查询给我们提供了一点信息,因此我们至少需要\ lceil \ log_2 N_X \ rceilNXNXN_X(X,≤)(X,≤)(X, \leq)PPP⌈log2NX⌉⌈log2⁡NX⌉\lceil \log_2 N_X \rceil查询,并包含前两种情况。是束缚很紧吗,还是它们是一些结构使得学习可能比反链数量渐近地需要更多查询的姿势?]

3
线性时间原位浅滩混洗算法
是否存在线性时间就地浅滩混洗算法?这是一些特别灵巧的手能够执行的算法:均匀划分偶数大小的输入数组,然后交织两半的元素。 Mathworld上有一个关于浅滩混洗的简短页面。特别是,我对混洗类型感兴趣,该混洗类型将输入数组1 2 3 4 5 6转换为1 4 2 5 3 6。请注意,在其定义中,输入长度为2n2n2n。 如果我们有第二个大小为nnn或更大的数组,则可以在线性时间内直接执行此操作。首先将最后nnn元素复制到数组中。然后,假设为基础的0索引,复制所述第一nnn元件从索引[0,1,2,...,n−1][0,1,2,...,n−1][0,1,2,...,n-1]至[0,2,4,...,2n−2][0,2,4,...,2n−2][0, 2, 4,...,2n-2]。然后复制nnn从第二阵列回输入数组元素,映射索引[0,1,2,...,n−1][0,1,2,...,n−1][0,1,2,...,n-1]到[1,3,5,...,2n−1][1,3,5,...,2n−1][1,3,5,...,2n-1]。(我们可以做的工作比这少一点,因为输入中的第一个和最后一个元素不会移动。) 一种尝试就地执行此操作的方法包括将置换分解为不相交的循环,然后根据每个循环重新排列元素。同样,假设基于0的索引,则6元素情况下涉及的置换为 σ=(001224314355)=(0)(5)(1243).σ=(012345024135)=(0)(5)(1243). \sigma=\begin{pmatrix} 0 & 1 & 2 & 3 & 4 & 5 \\ 0 & 2 & 4 & 1 & 3 & 5\end{pmatrix}=\begin{pmatrix}0 \end{pmatrix} \begin{pmatrix}5 \end{pmatrix} \begin{pmatrix}1 & 2 & 4 &3 …

5
TCS中的修脚示例
拉里·瓦瑟曼(Larry Wasserman)在最近的帖子中谈到“ p值警察”。他提出了一个有趣的观点(全部强调我的观点)(我添加的斜体字前提及其下的回应): 最常见的抱怨是物理学家和新闻工作者错误地解释了p值的含义。例如,如果p值为0.000001,则我们将看到诸如“信号真实存在99.9999%的置信度”之类的陈述。然后,我们被迫纠正这一陈述:如果没有影响,那么就有机会或更高的是0.000001。 很公平。但这真的重要吗?总体情况是:影响的证据是压倒性的。措辞是否有误导性真的重要吗?如果我们对此抱怨,我认为我们会强化我们作为学徒的形象。 这让我开始思考- 在TCS中,有没有很好的例子?这样的例子包括 大众媒体普遍提出的主张 人们坚持要进行的标准更正 索赔即使不精确也可以捕获正确的“大图景”。 索赔在数学上是错误的,但在道德上是“正确的”,并且更正在技术上是正确的,但不会改变直觉上的理解。 为了使事情顺利进行,我的例子是: 索赔-NP完全问题需要花费大量时间才能解决 校正-实际上,我们只是不知道它们是否可以在多项式时间内求解 大图-NP完全问题很困难 警告:我知道这个论坛上有很多人会为错误但“道德上正确”的主张的想法所震惊:)。请记住,这些是针对公众的声明(可以允许一定程度的许可),而不是研究论文中的声明。

1
不完善的子图同构
考虑以下问题:给定一个查询图G=(V,E)G=(V,E)G = (V, E)和参考图,我们要找到内射映射,它使边使得。这是子图同构问题的一般化,其中我们允许子图同构直到几个缺失边,并希望找到最小化缺失边数的方法。˚F :V → V '(v 1,v 2)∈ È (˚F (v 1),˚F (v 2))∉ È 'G′=(V′,E′)G′=(V′,E′)G' = (V', E')f:V→V′f:V→V′f : V \rightarrow V'(v1,v2)∈E(v1,v2)∈E(v_1, v_2) \in E(f(v1),f(v2))∉E′(f(v1),f(v2))∉E′(f(v_1), f(v_2)) \notin E' 瓦特(v 1,v 2)(v 1,v 2)∉ ë )ģ ' Σ v 1,v 2(最大(0 ,瓦特(v 1,v 2)- w (f (v 1),f …

2
复杂度分析中平方根概念的著名示例
有许多算法和数据结构利用了在k = \ sqrt n处获得最小值的想法。常见的例子包括max{k,n/k}max{k,n/k}\max \left\{k, n/k\right\}k=n−−√k=nk=\sqrt n 婴儿步长巨步算法,用于计算O(\ sqrt n)中的离散对数O(n−−√)O(n)O(\sqrt n), O(n−−√)O(n)O(\sqrt n)时间和O(n)O(n)O(n)内存中的静态2D正交范围计数, 在O(\ sqrt [k] n)中具有EXTRACT-MIN O(n−−√k)O(nk)O(\sqrt[k] n)并且在O(1)中具有 DECREASE-KEY的优先级队列O(1)O(1)O(1), 在多项式时间内使用O(n−−√)O(n)O(\sqrt n)颜色为3色图着色, 仅举几个。 尽管此类算法通常不是最佳算法,但它们易于为学生所理解,并且可以快速证明幼稚的边界不是最佳算法。同样,由于缓存友好性(不考虑缓存无关紧要的技术),有时平方根思想数据结构比其基于二叉树的数据结构更实用。这就是为什么我在教学时会对此话题给予极大关注的原因。 我对这种更独特的示例感兴趣。因此,我正在寻找任何分析都基于平方根概念的(最好是优雅的)算法,数据结构,通信协议等。它们的渐近性不一定是最佳的。

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.