Questions tagged «ds.algorithms»

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

2
发现,在至少物品
考虑个值集(表示为无重复且具有已知大小的排序数组(即,大小可以在O(1)中获得)。可以在O(1)时间内测试值的相等性。以获得中至少不同集合中存在的一组值。ķ Ññnnķkkñnn 显而易见的算法是遍历所有集合,对每个值的出现次数进行计数,然后返回计数值大于。但是,在某些情况下,您可以做得更好:例如,当且一个集合比另一个集合小得多时,查看所有项并执行二进制搜索会更有效。对于每个对象:二进制搜索方法的成本为而朴素的方法的成本为,当时更糟。n = k = 2 S 1 S 2 S 1 S 2 O (| S 1 | log (| S 2 |))O (| S 1 | + | S 2 |)| S 1 | < < | S 2 |ķkkn = k = 2n=k=2n = k = …


1
在一般位置构造向量
让真正的 (ķ ≤ ñ)矩阵一个具有这样的特性的任何集合ķ列满秩。k × nk×nk\times nķ ≤ Ñk≤nk\le n一种A{\bf A}ķkk 问:是否有一种有效的方法来确定性地找到向量,使得增广矩阵A ' = [ A一种a{\bf a}保留与 A相同的属性:任何 k列均是完整列。A′=[Aa]A′=[Aa]{\bf A}' = [{\bf A}\;{\bf a}]AA{\bf A}kkk 相关说明:具有此属性的矩阵是 Reed-Solomon代码的生成器:添加保留其Vandermonde结构的列将保留rank属性。(n,k)(n,k)(n,k)

5
是否存在任何基于梯度下降的技术来搜索多维空间中函数的绝对最小值(最大值)?
我熟悉梯度下降算法,该算法可以找到给定函数的局部最小值(最大值)。 在函数具有多个局部极值的情况下,是否可以对梯度下降进行任何修改以找到绝对最小值(最大值)? 是否有通用的技术,如何增强可以找到局部极值的算法来找到绝对极值?

3
近似频率矩的界限
让是一个整数序列,其中每个一Ĵ ∈ { 1 ,2 ,... ,Ñ }。对于我∈ { 1 ,2 ,... ,Ñ },让米我 = | { j :a j = i } | 。第k个频率矩定义为a1,a2,…,ama1,a2,…,ama_1, a_2,\dotsc, a_maj∈{1,2,…,n}aj∈{1,2,…,n}a_j \in \{1,2,\dotsc,n\}i∈{1,2,…,n}i∈{1,2,…,n}i \in \{1,2,\dotsc,n\}mi=|{j:aj=i}|mi=|{j:aj=i}|m_i = |\{j : a_j = i\}|kkk Fk=∑i=1nmki.Fk=∑i=1nmik.\displaystyle F_k = \sum_{i=1}^n m_i^k. 在他们著名的论文《近似频率矩的空间复杂性》中,Alon等人。得到流算法近似于使用大致ø (Ñ 1 - 1FkFkF_k空间。他们还使用通信复杂性技术来获得Ω(n1−5O(n1−1k(logn+logm))O(n1−1k(log⁡n+log⁡m))O(n^{1-\frac{1}{k}}(\log n + \log …

3
在一般图中计算距离小于2的距离?
给定具有边的加权无向图,我想计算任意给定顶点对之间的近似距离小于2。当然,我想使用二次空间和次线性查询时间。m = o (n2)m=o(n2)m = o(n^2) 我知道Zwick使用矩阵乘法的结果,但是我很好奇是否有任何组合算法可解决此问题?

3
梅林可以说服亚瑟多少钱吗?
梅林,谁拥有无限的计算资源,希望说服亚瑟 m|∑p≤N, p primepkm|∑p≤N, p primepkm|\sum_{p\le N,\ p\text{ prime}}p^k 为(N,m,k)(N,m,k)(N,m,k)与k=O(logN)k=O(log⁡N)k=O(\log N)和m=O(N).m=O(N).m=O(N). 以直接方式(模取幂和加法)计算此总和需要时间N(loglogN)2+o(1)N(log⁡log⁡N)2+o(1)N(\log\log N)^{2+o(1)}基于FFT的乘法。*但是Arthur只能执行O(N)O(N)O(N)运算。 (符号,与早期版本的这个问题的兼容性:让总和等于mαmαm\alpha ;然后,问题是是否αα\alpha是整数。) 梅林可以用长度为的字符串说服亚瑟O(N)O(N)O(N)吗?如果不是,他是否可以用交互式证明说服亚瑟(总交流,当然必须是O(N)O(N)O(N))?如果是这样,Merlin可以使用长度为的字符串o(N)o(N)o(N)吗?亚瑟可以利用o(N)o(N)o(N)时间吗? Arthur无法使用不确定性或其他特殊工具(量子方法,Merlin以外的Oracle等),但是如果需要,可以使用O(N)O(N)O(N)空间。当然,亚瑟不必直接计算总和,他只需要确信给定的三元组(N,m,k)会使方程为真或为假。 注意,与k=0k=0k=0它可以计算在时间的总和O(N1/2+ε)O(N1/2+ε)O(N^{1/2+\varepsilon})使用Lagarias-奥德里兹科方法。对于k>0k>0k>0该和是超线性的,因此无法直接存储(没有(例如,模块归约)),但是尚不清楚是否存在快速算法。 除了通过直接加电和加法运算之外,我还将对计算总和(模数或其他形式)的任何算法感兴趣。 * 要计算的数字,每次计算的时间为lg k log N (log log N )1 + o (1 ) = log N (log log N )2 + o (1 )。N/logNN/log⁡NN/\log NlgklogN(loglogN)1+o(1)=logN(loglogN)2+o(1)lg⁡klog⁡N(log⁡log⁡N)1+o(1)=log⁡N(log⁡log⁡N)2+o(1)\lg k\log N(\log\log N)^{1+o(1)}=\log N(\log\log N)^{2+o(1)}

1
通过专用算法使SAT解算器具有竞争力
在使SAT解算器与专用图算法竞争方面有哪些障碍?换句话说,期望SAT求解器可以代替算法设计者的角色是否可行-即能够自动识别问题结构,然后像专用算法一样快速地解决问题? 在这里,我认为一些示例对于当今的SAT解算器具有挑战性: 计算大小为独立集合。编码“ x是大小为k的独立集”可得出一个大公式,很难解决。理想的SAT解算器会认识到,在有边界的树宽图上添加一个额外的“ count”变量可轻松解决此问题。kkk 寻找最小的斯坦纳树。同样,“ Steiner树”具有全局约束,但是,通过添加额外的变量,专用算法(如此处)使任务变得更容易 任何减少到平面完美匹配的问题。

1
是否存在“自反”哈希算法?
是否存在一类哈希算法,无论是理论上的还是实用的,因此根据以下给出的定义,该类中的算法可以被认为是“自反的”: hash1 = algo1(“输入文字1”) hash1 = algo1(“输入文字1” + hash1) +运算符可以是串联或任何其他指定的操作,以将输出(hash1)组合回输入(“输入文本1”),以便算法(algo1)将产生完全相同的结果。即输入和输入+输出冲突。+运算符必须合并两个输入的全部,并且算法不得舍弃部分输入。 该算法必须在输出中产生高熵。在密码上很难将输出反转回一个或两个可能的输入,但不一定如此。 我不是数学家,但是一个很好的答案可能包括为什么这样一类算法不存在的证明。但是,这不是一个抽象的问题。我真的有兴趣在系统中使用这种算法(如果确实存在)。 这是一个问题的重复副本,该问题最初发布于/programming/4823680/reflexive-hash


1
扩展欧几里得算法中的“溢出”
抱歉,如果我误会问这个问题的地方(也许我应该去stackoverflow.com/mathoverflow.net?)。 我想知道是否有证据证明在评估扩展的欧几里得算法时,Bézout的系数(即s和t的身份为 + bt = gcd(a,b))不会超过一些合理的值(取决于a,b,我猜)。特别是在某些通用编程语言上的实现,我对程序的溢出正确性感兴趣。 确切地说,我可以提到我使用Victor Shoup对算法的描述(可从他的主页上免费获得他的书中的“ 4.2 数论和代数的计算导论 ”中的4.2 )。


2
“随机方程”系统
考虑具有个顶点和m个边的图。顶点用实变量x i标记,其中x 1 = 0是固定的。每个边缘表示“测量”:用于边缘(Û ,v ),我获得测量Ž ≈ X Ü - X v。更准确地说,z是(x u − x v)± 1中的真正随机量,均匀分布且独立于所有其他测量值(边缘)。ññn米米mX一世X一世x_iX1个= 0X1个=0x_1=0(u ,v )(ü,v)(u,v)ž≈ Xü− xvž≈Xü-Xvz \approx x_u - x_vžžz(xü− xv)± 1(Xü-Xv)±1个(x_u - x_v) \pm 1 我得到了图形和测量值,以及上面的分配承诺。我想“解决”系统并获得的向量。是否有一些针对此类问题的工作?X一世X一世x_i 实际上,我想解决一个更简单的问题:有人将我指向顶点和t,并且我必须计算x s - x t。有许多尝试可以尝试,例如找到一条最短路径,或者找到尽可能多的不相交路径并将它们平均(由长度的平方根的倒数加权)。有“最佳”答案吗?sssŤŤtXs− xŤXs-XŤx_s - x_t 计算的问题本身并未完全定义(例如,我是否应该假设变量先验?)Xs− xŤXs-XŤx_s - x_t

2
有效地获取N位!?
给定和,就有可能获得的第个位(或任何小基数的位)在时间/空间中,其中是和y中的多项式函数?M M N !O (p (l n (N ),l n (M )))p (x ,y )xññN中号中号M中号中号Mñ!ñ!N!O(p(ln(N),ln(M)))Ø(p(升ñ(ñ),升ñ(中号)))O( p( ln(N), ln(M) ) )p(x,y)p(X,ÿ)p(x, y)xXxyÿy 即鉴于,中号= 2 μ(与Ñ,中号∈ Ž),发现位2 μ的(2 η)!以O (p (η ,μ ))为单位。N=2ηñ=2ηN = 2^\etaM=2μ中号=2μM = 2^\muNñNM∈Z中号∈žM \in \mathbb{Z}2μ2μ2^\mu(2η)!(2η)!(2^\eta)!O(p(η,μ))O(p(η,μ))O( p(\eta, \mu) ) 注意:我已经在此处的 mathoverflow.net上询问了此信息,但尚未得到任何答案,因此我已交叉发布。 从另一站点的评论中,吉恩·科普(Gene Kopp)指出,人们可以通过使用斯特林近似进行模算术和高阶位来有效地计算低阶位,所以这个问题的确是“一个人如何有效地计算中阶位?” 。

3
扩展至稳定婚姻问题?
这听起来似乎比TCS问题更像是一门社会科学问题,但事实并非如此。阅读描述稳定婚姻问题的“ 随机算法 ”时,可以阅读以下内容(p54) “可以证明,对于每一种选择的偏好列表,至少都有一个稳定的婚姻。(很奇怪的是,在同性恋者一夫一妻制的社会中,居民人数是偶发的)。” 稳定婚姻问题是否有任何非常简单的扩展,允许某种类型的稳定状态,包括同性恋一夫一妻制社会,或者其中某些人口子群遵循的规则不同于大套规则的社会? 肯定的是,有执行这种匹配的算法吗?

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.