Questions tagged «ds.algorithms»

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

1
打奇周期
关于以下问题有什么已知的吗?真的有道理吗?这叫什么?它等同于其他问题吗?时间复杂度是多少? 给定无向图(一般/平面/边界度等),G =(V,E),找到边E'的最大子集,使得G'=(V,E-E')被连通,并且对于E'中的每个边e在G中都有一个奇数长的周期,包含e,而E'中没有其他边。(我只考虑简单的循环,即没有顶点出现两次) 这似乎与二等分相似,但是我看到的结果是需要删除的顶点/边的最小数量,而我希望可以删除的边的最大数量。 例如,下图: * - * - * / \ * - * - * - * \ / * - * - * 我们可以在中间的路径上剪切一条边,从而删除所有奇数循环。但是,我们可以通过删除两条边缘(一条在顶部分支中,一条在下部分支中)来做得更好。


2
平面距离保持器的存在吗?
设G是n节点无向图,和设T为V(G)称为的节点子集的终端。甲距离保护者(G,T)的是满足特性的曲线图ħ dH(u ,v )= dG(u ,v )dH(ü,v)=dG(ü,v)d_H(u,v) = d_G(u,v) 对于T中的所有节点u,v。(请注意,H不一定是G的子图。) 例如,令G为下图(a),T为外表面上的节点。则图(b)是(G,T)的距离保持器。 已知存在具有各种参数的距离保持器。我对具有以下属性的一个特别感兴趣: G是平面且未加权(即G的所有边的权重为1), T的大小为,并且Ø (ñ0.5)Ø(ñ0.5)O(n^{0.5}) H的大小(节点和边的数量)为。(如果我们有O (no (n )Ø(ñ)o(n)。)Ø (ñ日志日志ñ)Ø(ñ日志⁡日志⁡ñ)O(\frac{n}{\log\log n}) 是否存在这样的距离保持器? 如果不能满足以上条件,则可以放松。 参考文献: 稀疏的按源和按对距离保存器,Don Coppersmith和Michael Elkin,SIDMA,2006年。 稀疏距离保存器和加法扳手,BélaBollobás,Don Coppersmith和Michael Elkin,SIDMA,2005年。 具有亚线性距离误差的扳手和仿真器,Mikkel Thorup和Uri Zwick,SODA,2006年。 添加剂,仿真器等的下界,FOCS的David P. Woodruff,2006年。 距离保持器也被称为模拟器 ; 通过搜索术语spanner可以在互联网上找到许多相关的工作,这需要H成为G的子图。但是在我的应用程序中,只要H保留G中T之间的距离,我们也可以使用其他图。

2
对数字进行排序的算法
我已经在stackoverflow上问过这个问题,但也许它更适合此站点。 问题是: 我有N对无符号整数。我需要对它们进行排序。成对的结束向量应按每对中的第一个数字递增地排序,而按对中的第二个按递增顺序排序。每对可以随时交换第一和第二元素。有时没有解决方案,因此我需要抛出一个异常。 例: in pairs: 1 5 7 1 3 8 5 6 out pairs: 1 7 <-- swapped 1 5 6 5 <-- swapped 8 3 <-- swapped ^^如果不交换对,就不可能构建解决方案。因此,我们交换对(7,1),(3,8)和(5,6)并构建结果。要么 in pairs: 1 5 6 9 out: not possible 谢谢 编辑: Tom Sirgedas在SO上提出了最佳解决方案。它真的很容易实现,并且可以在O(log(n)* n)中工作。谢谢大家的回答和关注。我真的很喜欢mjqxxxx分析。

2
时空权衡和最佳算法
考虑某种语言LLL: L∈DTIME(O(f(n)))∩DSPACE(O(g(n)))L∈DTIME(O(f(n)))∩DSPACE(O(g(n)))L \in DTIME(O(f(n))) \cap DSPACE(O(g(n))) 这样 L∉DTIME(o(f(n)))∪DSPACE(o(g(n)))L∉DTIME(o(f(n)))∪DSPACE(o(g(n)))L \not\in DTIME(o(f(n))) \cup DSPACE(o(g(n))) 换言之,最快的机器计算在时间和空间效率最高的机器计算而利用空间。MMMLLLO(f(n))O(f(n))O(f(n))M′M′M'LLLO(g(n))O(g(n))O(g(n)) 关于M的空间效率或M'的时间效率,该怎么说呢?更确切地说,如果是所有在中计算机器的集合,那么对于最节省空间的机器,我们能说什么呢?对于明显的空格版本,同一件事呢:。MTMT\mathbb{M}_TLLLO(f(n))O(f(n))O(f(n))MTMT\mathbb{M}_TMSMS\mathbb{M}_S 或者,可以使用和g (n )定义一些良好的时空权衡吗?在什么条件下Ť 小号∈ ø (˚F (Ñ )克(Ñ ))或更一般地用于某些空间-时间的折衷ħ (Ť ,小号)什么条件下是。f(n)f(n)f(n)g(n)g(n)g(n)TS∈o(f(n)g(n))TS∈o(f(n)g(n))TS \in o(f(n)g(n))h(T,S)h(T,S)h(T,S)h(T,S)∈h(o(f(n)),o(g(n)))h(T,S)∈h(o(f(n)),o(g(n)))h(T,S) \in h(o(f(n)),o(g(n)))

2
匈牙利方法的正当性(Kuhn-Munkres)
我根据在网上随处可见的讲义编写了Kuhn-Munkres算法的实现,以解决最小二分法完美匹配问题。即使在数千个顶点上,它也能很好地工作。我同意其背后的理论确实很美。但是我仍然想知道为什么我必须花这么长时间。我发现这些讲义并不能解释为什么我们不能简单地采用原始线性程序并将其传递给单纯形方法。当然,我怀疑这是可预测性能的问题,但是由于我没有看到它的明确说明,因此我不太确定。事实证明,多原点的原始极值位于0-1,因此似乎我们可以直接将其馈送到单纯形实现中,而无需制定对偶。还是我很简单?

2
查找稀疏图的周长的最佳算法?
我想知道如何找到一个稀疏无向图的周长。稀疏是指。最佳的意思是最低的时间复杂度。|E|=O(|V|)|E|=O(|V|)|E|=O(|V|) 我考虑过对Tarjan的无向图算法进行一些修改,但没有找到好的结果。实际上,我以为,如果我可以在找到2个相连的组件,那么可以通过某种归纳法找到周长,这可以从第一部分中实现。不过,我可能走错了路。渐近优于Θ (| V | 2)(即o (| V | 2))的任何算法都可以使用。O(|V|)O(|V|)O(|V|)Θ(|V|2)Θ(|V|2)\Theta(|V|^2)o(|V|2)o(|V|2)o(|V|^2)

2
不使用Karger算法的图的最小切数
我们知道,可以使用Karger的mincut算法(以非建设性的方式)证明图可以具有的最大mincut数量为。(n2)(n2)n \choose 2 我想知道我们是否可以通过从一组mincut到另一组基数n \ choose 2给出双射的(而不是单射的)证明来证明这一身份(n2)(n2)n \choose 2。没有具体原因,这只是出于好奇。我尝试自己做,但到目前为止还没有成功。我不想让任何人浪费时间在上面,因此,如果问题似乎毫无意义,我将要求主持人采取相应行动。 最佳-阿卡什

1
经典Paxos和Fast Paxos的正确性证明
我正在阅读Leslie Lamport 撰写的“ Fast Paxos”论文,并被经典Paxos和Fast Paxos的正确性证明所困扰。 为了保持一致性,协调人在第i轮第2a阶段选择的值应该满足2 一个我vvv2a2a2aiii CP(v,i):CP(v,i):CP(v,i):对于任何圆形j&lt;ij&lt;ij < i,不大于其他值vvv已经或可能还没有被在轮选择jjj。 对于经典Paxos,证明(第8页)分为三种情况:k&lt;j&lt;ik&lt;j&lt;ik < j < i,j=kj=kj = k和j&lt;kj&lt;kj < k,其中kkk是最大舍入数,其中某些接受者已通过阶段1b1b1b消息向协调者报告。我无法理解第三种情况的论点: 情况j&lt;kj&lt;kj < k。我们可以归纳为假设,在接受者a_0在第k轮中投票给v时,财产CP成立。这意味着在第j轮中除v之外没有其他值可能被选择。CPCPCPa0a0a_0vvvkkkvvvjjj 我的问题是: 为什么我们可以假定在接受者在第轮中对投票时拥有财产?a 0 v kCPCPCPa0a0a_0vvvkkk 似乎我们正在使用数学归纳法,因此,基础,归纳假设和归纳步骤是什么? 对于Fast Paxos,将继续使用相同的参数(页18)。它说, 情况。对于任何在,并不比其他值已经或可能尚未被在第二轮选择。v V v jj&lt;kj&lt;kj < kvvvVVVvvvjjj 我的问题是: 如何获得?特别是,为什么“对于任何在 ”在这里?VvvvVVV 在我看来,情况的正确性证明(递归)取决于和。 k &lt; j &lt; i j = kj&lt;kj&lt;kj < …

1
DAG子集总和可近似吗?
我们给出一个向无环图与每个顶点相关联的号码(克:V → Ñ)和目标数Ť ∈ Ñ。G=(V,E)G=(V,E)G=(V,E)g:V→Ng:V→Ng:V\to \mathbb{N}T∈NT∈NT\in \mathbb{N} 该DAG子集和问题(可能以不同的名称存在,参考值将是巨大的)询问是否有顶点,使得Σ v 我克(v 我)= Ť,和v 1 → 。。→ v k是G中的路径。v1,v2,...,vkv1,v2,...,vkv_1,v_2,...,v_kΣvig(vi)=TΣvig(vi)=T\Sigma_{v_i}g(v_i) = Tv1→..→vkv1→..→vkv_1\to..\to v_kGGG 这个问题通常是NP-完全的,因为完整的传递图会产生经典的子集和问题。 DAG子集和问题的近似算法是具有以下属性的算法: 如果存在总和为T的路径,则算法返回TRUE。 如果没有路径总结到之间的数字和Ť一些Ç ∈ (0 ,1 ),则该算法返回FALSE。(1−c)T(1−c)T(1 − c)TTTTc∈(0,1)c∈(0,1)c\in (0,1) 如果存在一个总和为和T之间的数字的路径,则该算法可以输出任何答案。(1−c)T(1−c)T(1 − c)TTTT 对于所有子集总和在多项式时间内都是近似的。c&gt;0c&gt;0c>0 DAG-Subset-Sum是否相同?

2
通过移动操作编辑距离
动机:合著者编辑手稿,我希望看到这些编辑的清晰摘要。如果您同时移动文本(例如,重新组织结构)并进行本地编辑,则所有类似于“ diff”的工具都将无用。真的很难做到正确吗? 定义:我想找到最小的编辑距离,其中允许的操作是: “便宜”操作:添加/更改/删除单个字符(通常的Levenshtein操作), “昂贵”:操作:将子字符串移动到新位置(任何字符串,,,)。一b Ç dabcd↦acbdabcd↦acbdabcd \mapsto acbdaaabbbcccddd 给定两个字符串和以及整数和,我想解决以下问题:ÿ ķ ķxxxyyykkkKKK 您最多可以使用廉价操作和最多昂贵操作将转换为吗?ÿ ķ ķxxxyyykkkKKK 问题: 这个问题有名字吗?(在序列比对的背景下,这听起来像是一个非常标准的问题。) 难吗? 如果比较困难,是否可以使用作为参数来处理固定参数?KKK 有高效的近似算法吗?(例如,如果存在具有廉价操作和昂贵操作的解决方案,则找到一个最多具有便宜和昂贵操作的解决方案。)2 K k K2k2k2k2K2K2KkkkKKK 我试图看一下Wikipedia中列出的字符串指标,但是没有一个看起来正确。

1
非凸二次规划的精确算法
这个问题是关于具有框约束(box-QP)的二次编程问题,即形式的优化问题 最小化受X ∈ [ 0 ,1 ] Ñ。F(x)= xŤ甲X + C ^ŤXf(x)=xTAx+cTxf(\mathbf{x}) = \mathbf{x}^T A \mathbf{x} + \mathbf{c}^T \mathbf{x}X ∈[0,1 ]ñx∈[0,1]n\mathbf{x} \in [0,1]^n 如果是正半定的,那么一切都会变得很好,很容易且凸且容易,并且我们可以在多项式时间内解决问题。一种AA 在另一方面,如果我们有完整性约束,我们可以很容易地解决在时间问题Ô (2 Ñ ⋅ p ø 升ý(Ñ ))通过强力。出于这个问题的目的,这相当快。X ∈{0,1 }ñx∈{0,1}n\mathbf{x} \in \{0,1\}^nO (2ñ⋅ p ø 升ý(Ñ ))O(2n⋅poly(n))O(2^n \cdot \mathrm{poly}(n)) 但是非凸连续情况呢?通用盒式QP最快的已知算法是什么? 例如,可以在我们适度指数时间解决这些,例如,,或者说是最有名的算法东西最坏情况的复杂性差多少?O (3ñ⋅ p ø 升ý(Ñ ))O(3n⋅poly(n))O(3^n …

1
独特可解决难题(USP)的容量
Cohn,Kleinberg,Szegedy和Umans 在其关于矩阵乘法的群论算法的开创性论文中,引入了独特可解决难题(定义如下)和USP能力的概念。他们声称,Coppersmith和Winograd在他们自己的开创性论文《通过算术级数的矩阵乘法》中,“暗中”证明了USP容量为。在其他几个地方(包括cstheory上的其他地方)都重申了这一主张,但找不到任何解释。以下是我自己对Coppersmith和Winograd所能证明的事实以及为什么还不够的理解。3/22/33/22/33/2^{2/3} USP容量是否为是真的吗?如果是这样,是否有证明的参考?3/22/33/22/33/2^{2/3} 可独特解决的难题 长度为且宽度为的唯一可解决难题(USP)由大小为的的子集组成,我们也将其视为 “件”的三个集合(对应于向量为的位置,它们为的位置以及它们为),满足以下属性。假设我们将所有装在行中。然后,必须有一种独特的方式来放置其他部分,即每行中的每种类型之一,以便它们“适合”。ķ { 1 ,2 ,3 } ķ Ñ Ñ 1 2 3 1 Ñnnnkkk{1,2,3}k{1,2,3}k\{1,2,3\}^knnnnnn111222333111nnn 令为宽度为的USP的最大长度。该USP容量是 在USP中,每个部分都必须是唯一的-这意味着没有两行在完全相同的位置\ {1,2,3 \}中包含符号c \ in \ {1,2,3 \}。这表明(经过简短的论证) N(k)\ leq \ sum_ {a + b + c = k} \ min \ left \ {\ binom {k} {a},\ binom {k} …

2
加强亚模量
一组功能是单调的子模如果对所有甲,乙, ˚F (甲)+ ˚F (乙)≥ ˚F (甲∪ 乙)+ ˚F (甲∩ 乙)。FffA ,BA,BA,BF(A )+ f(乙)≥ ˚F(甲∪ 乙)+ ˚F(甲∩ 乙)。f(A)+f(B)≥f(A∪B)+f(A∩B). f(A) + f(B) \geq f(A \cup B) + f(A \cap B). 更强的属性是 取C = AF(A )+ f(B )+ f(C)+ f(甲∪ 乙∪ Ç)≥F(甲∪ 乙)+ ˚F(乙∪ Ç)+ f(甲∪ Ç)+ f(甲∩ 乙∩ Ç)。f(A)+f(B)+f(C)+f(A∪B∪C)≥f(A∪B)+f(B∪C)+f(A∪C)+f(A∩B∩C). \begin{multline*} f(A) …

4
术语“有效”和“可行”的计算/算法的由来
我想了解这两个术语的历史:“ 有效 ”,“ 可行 ”。 谁是第一次将它们用于计算/算法?(以这些术语的现代意义,即20世纪)。他们如何成为主流?这两个术语是如何开始用作同义词的? 我知道科巴姆在其论文的陈述中使用了“可行”一词,该术语与多项式时间可计算性相关。但是,有较早的参考资料吗?在戈德尔写给冯·诺伊曼的信中,似乎没有明确提及这些术语。我找不到1960年之前的任何相关文章(使用Google Scholar)。 另一个有趣的观点是,1965年的Cobham论文的标题是“函数的固有计算难度 ”。“计算复杂性”何时取代“计算难度”?

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.