Questions tagged «ds.algorithms»

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


2
快速编码平衡向量
很容易看出,对于任何,存在从{0,1}到{0,1}的1-1映射,使得对于任何,向量是“平衡的”,即它具有相等的1和0。是否可以定义这样的以便在给定我们可以 有效地计算?F n n + O (log n ) x F (x )F x F (x )nnnFFFnn^nn+O(logn)n+O(log⁡n)^{n+O(\log n)}xxxF(x)F(x)F(x)FFFxxxF(x)F(x)F(x) 谢谢。

2
使用局部交换对图形上的令牌进行改组
令是度为有界的不规则连通图。假设每个节点都包含一个唯一的令牌。G=(V,E)G=(V,E)G= (V, E) 我想只使用局部交换(即在两个相邻节点之间交换令牌)在图之间均匀地拖曳令牌吗?是否存在针对此问题的下限? 我唯一的想法是使用随机游走结果,然后查看需要多少交换来“模拟”图形上代币的随机游走效果。

1
泛化FFT
FFT的除法征服性质是否可以自动推广到其他变换(z变换,线性调频等)? 是否有一种算法可以描述变换(我不知道需要什么信息)并且可以产生类似FFT的快速函数?

1
评估一批类似输入的布尔电路
假设我有一个布尔电路,它计算一些函数。假设电路由AND,OR和NOT门组成,扇入和扇出最多为2。CCCf:{0,1}n→{0,1}f:{0,1}n→{0,1}f:\{0,1\}^n \to \{0,1\} 令是给定的输入。给定和,我想在单个位位置上对不同于的输入求,即计算值,其中与相同,除了第位被翻转。x∈{0,1}nx∈{0,1}nx \in \{0,1\}^nCCCxxxCCCnnnxxxnnnC(x1),C(x2),…,C(xn)C(x1),C(x2),…,C(xn)C(x^1),C(x^2),\dots,C(x^n)xixix^ixxxiii 有没有办法比在不同的输入上独立评估次更有效?CCC nnnnnn 假设包含门。然后,对所有输入进行独立评估将花费时间。有没有一种方法可以在时间内计算?CCCmmmCCCnnnO(mn)O(mn)O(mn)C(x1),C(x2),…,C(xn)C(x1),C(x2),…,C(xn)C(x^1),C(x^2),\dots,C(x^n)o(mn)o(mn)o(mn) 可选上下文:如果我们在有一个算术电路(其门是乘法,加法和加法运算),则可以计算方向导数以时间表示。基本上,我们可以使用标准方法以计算梯度(反向传播/链式规则RR\mathbb{R}nnn∂f∂xi(x)∂f∂xi(x){\partial f \over \partial x_i}(x)O(m)O(m)O(m)O(m)O(m)O(m)时间。之所以有效,是因为相应的功能是连续且可微的。我想知道布尔电路是否可以做类似的事情。布尔电路不是连续的和可微的,所以您不能做同样的事情,但是也许还有其他一些聪明的技术可以使用?也许是某种傅立叶把戏,还是什么? (变体问题:如果我们有布尔扇门具有无限扇入和扇出扇形,那么您可以做渐近比评估次更好吗?)CCC nnn

1
为什么互补松弛很重要?
在谈论对偶性时,通常会教互补松弛(CS)。从数学的角度来看,它在原始约束和对偶约束/变量之间建立了良好的关系。 申请CS的两个主要原因(如研究生课程和教科书中所述): 检查LP的最优性 帮助解决双重问题 从实用的角度来看,考虑到当今解决LP的计算能力和多项式算法,CS仍然有意义吗?我们总是可以解决双重问题,并解决以上两点。我同意在CS的帮助下解决双重问题“效率更高”,是吗?还是CS不仅满足您的需求?除了以上两点,CS到底在哪里有用?在谈论近似算法时,我经常看到涉及CS概念的文章,但我不了解它在其中的作用。


1
算法复杂性中的隐藏常数
对于许多问题,渐近复杂度最佳的算法具有很大的常数因数,而该常数因O表示法而被隐藏。这发生在矩阵乘法,整数乘法(特别是最近的Harvey和van der Hoeven的O(n log n)整数乘法算法),低深度排序网络和查找图的次要情况中。这种算法有时称为银河算法。 注意,对于其他算法,例如常规排序和整数加法,已知算法具有最佳渐近复杂度和较小的常数因子。 从理论的角度,在将前一种算法与后一种算法分离方面进行了哪些研究? 我知道,隐藏常量经常被省略以隐藏不同计算模型之间的区别。但是,我有信心在各种不同的模型下,例如,对于10亿规模的输入,这些Galactic算法将比渐近差的算法更慢。在某些情况下,这种区分不是很细微的。做得严格吗? 例如,可以发明一种非常简单的计算模型,例如具有非常简单的ISA的von Neumann机器,然后实现这些算法,并用显式常量限制其运行时间。是否已针对多种算法完成了此操作?

2
具有不合理权重的最大流算法的反例?
众所周知,如果某些权重不合理,则具有胖管试探法(两种用于最大流量的算法)的福特-福克森或埃德蒙兹-卡尔普不需要停止。实际上,它们甚至可以收敛于错误的价值!但是,我可以在文献中找到的所有示例[以下参考文献以及其中的参考文献]仅使用一个非理性值:共轭黄金比率ϕ′= (5–√− 1 )/ 2ϕ′=(5-1个)/2\phi' = (\sqrt{5}-1)/2,以及其他为有理值或为的有理倍数的值 ϕ′ϕ′\phi'。我的主要问题是: 一般问题:其他非理性价值观会怎样? 例如((但不必觉得您必须回答所有这些问题-我会发现对任何一个问题或上述一般问题下的其他问题的回答都很有趣): 给予任何 α ∈ [Rα∈[R\alpha \in \mathbb{R},能否构造(甚至表明存在)这样的反例? 更弱:是否有实例已知的是,使用一种非理性的值本质上的不同,从ϕ′ϕ′\phi'?也就是说,有一些αα\alpha 这不是...的有理倍数 ϕ′ϕ′\phi' (或更强烈地说,不在 Q(ϕ′)问(ϕ′)\mathbb{Q}(\phi')),因此有一些福特(Ford-Fulkerson)和/或埃德蒙兹·卡普(Edmonds-Karp)的反例, Q(α)问(α)\mathbb{Q}(\alpha)? 另一方面,是否存在非理性 αα\alpha使得福特富尔克森(分别,埃德蒙斯-卡普)与正确的值暂停所有的图,其权重是从所有Q ∪{qα :q∈ Q }问∪{qα:q∈问}\mathbb{Q} \cup \{q\alpha : q \in \mathbb{Q}\}?(或更强烈地说,来自Q(α)问(α)\mathbb{Q}(\alpha)?) 在所有情况下,我都想假设像真实RAM模型那样,以便在恒定时间内完成实数的精确算术和精确比较。 (已知还有其他一些最大流量算法可以在强多项式时间内运行,甚至具有任意实数,这也许就是为什么这种类型的问题可能没有得到进一步探讨的原因。 ,我对此仍然感到好奇。) 参考文献 Zwick TCS 1999给出了Ford-Fulkerson的最小反例 Queyranne或Queyranne Math给出了Edmonds-Karp的反例。歌剧 Res。1980年,尽管我不知道那是最小的。 这些都可以在Jeff Erickson的讲义中找到,第一个在23.5节中,第二个在第23课的练习14中。

1
了解QFBV SMT求解器的性能
诸如Z3或Boolector之类的SMT求解器使用一组复杂的试探法来解决问题。但是,这也使得很难针对给定问题预测此类求解器的性能。因此,我的问题是: 题 有没有一种方法可以针对无量值比特向量(QFBV)理论中的特定内容理解或了解SMT求解器的性能? 这也包括任何有助于理解求解器“卡滞” /未取得进展的可视化工具。 应用领域 预先了解同一问题的不同编码如何影响求解器性能(此处的最新技术不能是“仅尝试几种不同的编码并希望一种编码足够快”,对吗?) 如果由于时间限制SMT求解器无法解决给定的问题,请找到一种不同的方式表达问题,以便可以解决。 避免将时间浪费在特定于域的问题简化上,这些问题根本不会影响求解器的性能,甚至不会对求解器的性能产生负面影响。 现有研究 我试图找到有关此主题的研究,但是却找不到很多。我在SAT / SMT求解器领域还没有太多经验,所以如果我错过了一些东西,我们深表歉意。 SATzilla:使用机器学习技术,根据从问题中提取的特征,预测性能最佳的求解器。 这仅适用于SAT而非SMT,并且不能解释求解器性能的原因。 Z3公理分析器 Z3实例图的可视化和匹配循环的分析 看起来这只专注于量化理论。

5
神经网络可以用来设计算法吗?
在玩棋盘游戏中神经网络获得越来越多的成功之后,人们感到我们设定的下一个目标可能比在Starcraft中击败人类更有用。更确切地说,我想知道是否 可以训练神经网络解决经典算法问题吗? 在这里,我的意思是,例如,网络将获得带有加权边的输入图,并指定了两个顶点和,我们要求它尽快找到最短的路径。然后我猜想神经网络会发现并训练自己使用Dijkstra或类似的东西。GGGssstttststst 一方面,我们知道神经网络TC0TC0TC^0的计算能力为。另一方面,我不知道这是否一定与我的问题有关。即使这样,对于大多数问题,我们仍然不知道是否可以在解决它们。看看神经网络是否可以训练自己,可能很好地指示了是否有快速的算法。例如,如果神经网络无法训练自己快速求解SAT,那么(甚至更多)可能。我想知道神经网络将如何处理图形化或工厂化。TC0TC0TC^0NP⊄TC0NP⊄TC0NP\not\subset TC^0 当然,提取算法是一个完全不同的问题。我怀疑专家们知道该怎么做,但是讨论不是这个问题的主题。 两天后添加:在看到答案后,让我指定如果您的答案是否定的,那么我想知道 为什么下棋比Dijkstra或Graphisomorphism更容易?



1
在Schönhage–Strassen算法中如何选择内环?
我一直在尝试实现Schönhage–Strassen整数乘法算法,但是在递归步骤中遇到了绊脚石。 我有一个位的值,我想计算。我最初以为是选择一个k,使4 ^ k \ geq 2n,将x分成2 ^ k个,每个具有2 ^ {k-1}位,在对2 ^ {2 ^ k}进行模运算时应用SSA的卷积+1,即每个值具有2 ^ k位容量的环,然后将碎片放回原处。但是,卷积的输出略大于2n位(即> 2 ^ kxXxnnnx2(mod2n+1)x2(mod2n+1)x^2 \pmod {2^n+1}kkk4k≥2n4k≥2n4^k \geq 2nxxx2k2k2^k2k−12k−12^{k-1}22k+122k+12^{2^k}+12k2k2^k2n2n2n>2ķ>2k>2^k每个输出值的位数大于环的容量,这是因为每个输出值是多个乘积之和),所以这是行不通的。我必须添加2的额外因素。 填充中的额外2因子破坏了复杂性。这使我的递归步骤太昂贵了。代替了F(n )= n lgn +ñ--√F(2ñ--√)= Θ (nlgñlglgn )F(n)=nlg⁡n+nF(2n)=Θ(nlg⁡nlg⁡lg⁡n)F(n) = n \lg n + \sqrt{n} F(2 \sqrt{n}) = \Theta(n \; \lg n \; \lg \lg n)算法用F(n )= …


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.