Questions tagged «ds.algorithms»

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

1
看似正确但不正确的算法和证明示例
在我的编程入门课程中,我们正在学习初始化-维护-终止方法,该方法证明算法可以达到预期的效果。但是我们只需要证明已知正确的算法是正确的即可。我们从未被要求证明算法不正确。 有没有看起来正确的经典算法示例,但不是吗?我正在寻找“初始化-维护-终止”方法捕获了第一眼直觉无法理解的情况的情况。


2
密集线性算子的或电路复杂度
考虑以下简单的单调电路模型:每个门只是一个二进制OR。函数的复杂度是多少,其中是 0的布尔矩阵?可以通过线性或电路计算吗?f (x )= A x A n × n O (n )f(x)=Axf(x)=AxAAn×nn \times nO(n)O(n) 更正式地,是从到位的函数。第个输出是(即,由第行给出的输入位的子集的或。˚F Ñ Ñ 我˚F ⋁ Ñ Ĵ = 1(甲我Ĵ ∧ X Ĵ)我甲ffnnnniiff⋁nj=1(Aij∧xj)\bigvee_{j=1}^{n}(A_{ij} \land x_j)iiAA 请注意, 0将的行划分为范围(由的连续元素组成的子集)。这使得可以采用已知的范围查询数据结构。例如,稀疏表数据结构可以变成大小为的OR电路。Yao的范围半组算子查询算法可以变成几乎线性的电路(大小为,其中是逆阿克曼倒数)O (n )A O (n )[ n ] O (n log n )O(n)O(n)AAO(n)O(n)[n][n]O(nlogn)O(n\log n)ø (α (Ñ )⋅ Ñ )α (Ñ …

3
可以在恒定时间内解决的非平凡问题?
恒定时间是时间复杂度的绝对下限。也许有人会想:在恒定时间内可以计算出任何平凡的东西吗?如果我们坚持使用图灵机模型,那么将无能为力,因为答案只能取决于输入的恒定长度的初始部分,因为输入的其他部分甚至无法在恒定时间内到达。 另一方面,如果我们采用功能更强大(更现实)的单位成本RAM模型,其中对位数字的基本运算被计为单个步骤,那么我们也许能够解决非平凡的问题任务,即使是在恒定的时间。这是一个例子:O(logn)O(log⁡n)O(\log n) 实例:整数,每个整数以O (log n )位的二进制格式给出。n,k,l,dn,k,l,dn, k, l, dO(logn)O(log⁡n)O(\log n) 问题:是否存在一个顶点图,其顶点连通性为k,其边缘连通性为l,其最小度为d?nnnkkklllddd 请注意,从定义来看,问题甚至不在于NP。原因是自然见证人(图形)可能需要位长的描述,而输入仅由O (log n )位给出。另一方面,以下定理(请参阅B. Bollobas的《极值图论》)得到了拯救。Ω(n2)Ω(n2)\Omega(n^2)O(logn)O(log⁡n)O(\log n) 定理:令为整数。当且仅当满足以下条件之一时,存在一个具有顶点连通性k,边缘连通性l和最小度 d的n顶点图:n,k,l,dn,k,l,dn, k, l, dnnnkkklllddd , 0≤k≤l≤d&lt;⌊n/2⌋0≤k≤l≤d&lt;⌊n/2⌋0\leq k\leq l \leq d <\lfloor n/2 \rfloor 1≤2d+2−n≤k≤l=d&lt;n−11≤2d+2−n≤k≤l=d&lt;n−11\leq 2d+2-n\leq k\leq l = d< n-1 k=l=d=n−1.k=l=d=n−1.k=l=d=n-1. 由于可以在恒定时间内检查这些条件(在单价RAM模型中),因此在该模型中,定理导致了恒定时间算法。 问:恒定时间算法还有哪些其他重要的例子?

2
使用只读堆栈排序
请考虑以下设置: 我们给出一个堆栈包含ñ项目。sssnñn 我们可以使用常数的额外堆栈。O(1)Ø(1个)O(1) 我们可以在这些堆栈上应用以下操作: 检查堆栈是否为空, 比较两个堆栈的顶部项, 删除堆栈中的第一项, 打印堆栈中的顶部项目, 将堆栈的顶层项目复制到另一个堆栈中, 将一个堆栈的内容复制到另一个堆栈。 请注意,这些是唯一允许的操作。我们不能交换项目,也不允许将任何项目推入任何堆栈中,除非将最上面的项目复制到堆栈中(之后,目标堆栈的先前内容将被丢弃,并且仅包含复制的项目) 。 这是一种使用比较对堆栈进行排序的算法:O(n2)Ø(ñ2)O(n^2) last := empty for i from 1 to n min := empty w := s while w is not empty if w.top &gt; last and w.top &lt; min min := w.top delete w.top print min last := …

4
函数的eta等效性是否可以与Haskell的seq操作兼容?
引理:假设等式我们有(\x -&gt; ⊥) = ⊥ :: A -&gt; B。 证明:⊥ = (\x -&gt; ⊥ x)通过η等价,并(\x -&gt; ⊥ x) = (\x -&gt; ⊥)通过λ下的减少。 Haskell 2010报告第6.2节seq通过两个方程式指定了该函数: 序列:: a-&gt; b-&gt; b seq⊥b =⊥ seq ab = b,如果a≠⊥ 然后声明“因此,⊥与\ x-&gt; not不同,因为seq可用于区分它们。” 我的问题是,这真的是定义的结果seq吗? 隐含的说法似乎是seq将不可计算如果seq (\x -&gt; ⊥) b = ⊥。但是我还不能证明这样的seq说法是没有争议的。在我看来,seq这既是单调的,又是连续的,这使它处于可计算的领域。 诸如seq之类的算法可能会通过枚举以starting开头的域来尝试搜索某些x位置f x ≠ ⊥而工作f。尽管这样的实现,即使有可能,一旦我们想要使seq多态成为现实,也会变得非常麻烦。 是否有证据证明不存在可计算seq的是标识(\x …

1
空间近似权衡
在他们的论文大约距离甲骨文,Thorup和兹维克表明,对于任何加权无向图,因此能够构建体大小的数据结构,可以返回一个(2 ķ - 1 ) -approximate图中任意一对顶点之间的距离。ø (ķ Ñ1 + 1 / ķ)Ø(ķñ1个+1个/ķ)O(k n^{1+1/k})(2 k − 1 )(2ķ-1个)(2k-1) 从根本上讲,这种结构实现了空间近似的权衡-以降低解决方案“质量”为代价可以减少空间需求。 还有哪些图问题在空间和逼近之间表现出这种折衷? 我对静态和动态图,加权图和未加权图,无向图和有向图都感兴趣。 谢谢。

2
最小集合不包含在集合集合中
给定一个整数nnn和的元素集合作为输入,找到的元素集合的复杂度是多少使得具有最小的基数,并且不包含在?的集合中。{ 1 ,。。。,Ñ } Ť { 1 ,。。。,n } T T SSSS{1,...,n}{1,...,n}\{1, ..., n\}TTT{1,...,n}{1,...,n}\{1, ..., n\}TTTTTTSSS



2
可能与树宽有关的图形参数
我对可以通过以下过程生成的个顶点上的图形感兴趣。nnn 开始与任意图上ķ ≤ Ñ顶点。将G中的所有顶点标记为未使用。GGGk≤nk≤nk\le nGGG 通过添加一个新的顶点v来生成一个新的图,该顶点连接到G中的一个或多个 未使用的顶点,而不连接到G中的任何已使用的顶点。将v标记为未使用。G′G′G'vvvGGGGGGvvv 在顶点的标签一个到v作为连接使用。G′G′G'vvv 将设置为G ',然后从步骤2开始重复,直到G包含n个顶点。GGGG′G′G'GGGnnn 称此类图为“复杂度图 ”(模糊术语的道歉)。例如,如果G是复杂度1的图,则G是一条路径。kkkGGGGGG 我想知道是否曾经研究过此过程。特别地,对于任意,确定图是否具有复杂度k是否为NP完全?kkkkkk 这个问题似乎有点类似于是否是部分k树,即树宽k的问题。已知确定G是否具有树宽k是NP完全的。但是,某些图形(例如,星形)的树宽可能比此处讨论的复杂程度小得多。GGGkkk kkkGGGkkk 2012年10月4日:一个星期后没有确定的答案后,问题交叉发布到MathOverflow(尽管感谢有关因果关系的信息)。

1
零积分差距是否意味着某些问题的对偶差距为零?
我们知道,如果整数程序的值与其对偶之间的差(“对偶间隙”)为零,则整数程序的线性编程弛豫和弛豫的对偶均接受积分解(零“积分”间隙”)。我想知道,至少在某些情况下,这种情况是否成立。 P:max{1Tx:Ax≤1,x∈{0,1}n}P:max{1Tx:Ax≤1,x∈{0,1}n}P: \max\{1^Tx: Ax \leq 1, x\in \{0,1\}^n\}AAA0−10−10-1P′P′P'PPPP′P′P' 我将不胜感激任何反例或指针。

1
DAG中边缘标记问题的精确算法
我正在实现某些系统部分,需要一些帮助。因此,我将其定义为图问题以使其独立于域。 问题:我们得到有向无环图。在不失一般性的前提下,假设恰好具有一个源顶点和恰好一个宿顶点t;让P表示集合来自所有定向通道的小号到吨在ģ。我们也给出了一组顶点r \ subseteq V。问题是将非负整数权重分配给G的边缘,因此,当且仅当它们包含R中相同的顶点子集时,P中的任何两个路径才具有相同的权重G=(V,E)G=(V,E)G=(V,E)GGGssstttPPPssstttGGGR⊆VR⊆VR \subseteq VGGGPPPRRR。(路径的权重是其边缘的权重之和。)中路径的权重范围应尽可能小。PPP 目前,我的方法似乎无效。我只是在寻找一些参考文献或一些好的见解。否则,任何其他事情都将受到赞赏。 编辑:这个问题有硬度证明吗?紧凑编号是否始终存在?

3
预处理多面体和平面的分离
我很难理解Dobkin和Kirkpatrick在论文中关于多面体分离的第一步。我正在尝试了解此版本:http : //www.cs.princeton.edu/~dpd/Papers/SCG-09-invited/old%20papers/DPD+Kirk.pdf 它认为,在我们知道由和s_i实现的和的最佳分离之后,我们可以在O(1)步骤中找到P_ {i-1}和S的最佳分离。这是通过以下方式完成的。我们通过r_i取平行于S的平面,并将P_ {i-1}切成两部分。一方面,最接近S的点是r_i,另一方面,我们有一个``基本''多面体,我们可以在O(1)时间中进行检查。我的问题是-我们如何找到该基本多面体?注意r_i的度小号[RPiPiP_{i}SSSririr_isisis_iPi−1Pi−1P_{i-1}SSSO(1)O(1)O(1)SSSririr_iPi−1Pi−1P_{i-1}SSSririr_iO(1)O(1)O(1)ririr_i在可能不受限制。Pi−1Pi−1P_{i-1} 在pdf中以证明第9页的Thm 5.1,他们使用第4页的Thm 3.1,这使整个过程变得很难理解。

4
坐标下降法的理论研究
我正在准备一些启发式的课程材料以进行优化,并且一直在研究协调下降方法。这里的设置是您要优化的多元函数。f具有限制为任何单个变量的属性,因此很容易优化。因此,坐标下降是通过循环遍历坐标,固定除选定坐标之外的所有坐标并沿该坐标最小化而进行的。最终,改进缓慢而停止,您就终止了。ffffff 我的问题是:是否有任何关于坐标下降法的理论研究都涉及收敛速度,以及使该方法运行良好的性质,等等?显然,我不希望得到完全通用的答案,但是可以阐明启发式方法很好的情况的答案会有所帮助。fff 另外:用于均值的交替优化技术可以看作是坐标下降的一个示例,而Frank-Wolfe算法似乎是相关的(但不是框架的直接示例)kkk

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.