Questions tagged «ds.algorithms»

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

1
算法向量问题
我在GF(2)域中有一个与向量有关的代数问题。令v1,v2,…,vmv1,v2,…,vmv_1, v_2, \ldots, v_m为维度(0,1)-向量nnn,并且m=nO(1)m=nO(1)m=n^{O(1)}。查找一个多项式时间算法,该算法可以找到维数相同的(0,1)-向量uuu,使得uuu不是v 1,v 2,… ,v中的任何(logn)O(1)(log⁡n)O(1)(\log n)^{O(1)}向量的和。v1,v2,…,vmv1,v2,…,vmv_1,v_2, \ldots, v_m。向量的添加是在字段GF(2)上,该字段具有两个元素0和1(0+1=0+1=10+1=0+1=10+1=0+1=1和0+0=1+1=00+0=1+1=00+0=1+1=0)。 通过简单的计数参数很容易看到这样的向量u的存在。我们可以在多项式时间内找到uuu吗?在指数时间内找到是微不足道的uuu。对于第一个正确的解决方案,我将发送200美元的支票奖励。

2
概念上简单的线性时间后缀树构造
1973年,Weiner给出了后缀树的第一个线性时间构造。该算法在1976年由McCreight和1995年由Ukkonen简化。尽管如此,我发现Ukkonen的算法在概念上相对涉及。 自1995年以来,Ukkonen的算法是否已有简化?

3
是否在NP限制期限内对树木进行最佳旅行?
我的一个朋友问我以下关于树的调度问题。我发现它非常干净有趣。有参考吗? 问题: 有一棵树,每条边的对称旅行成本为1。对于每个顶点v i,都有一个任务需要在其截止日期d i之前完成。该任务也被表示为v 我。每个任务具有统一的值1。每个任务的处理时间为0,即在任务的最后期限等于完成任务之前访问该任务。在不失一般性的情况下,让v 0表示根,并假设在v 0处没有任务。v 0处有一辆车Ť(五,E)T(V,E)T(V,E)v一世viv_id一世did_iv一世viv_iv0v0v_0v0v0v_0v0v0v_0在时间0此外,我们假设对每个顶点d一世≥ dË p一世di≥depid_i \ge dep_i,代表深v 我。这是不言而喻的,期限小于其深度的顶点应被视为离群值。问题要求找到一个计划,该计划可以完成尽可能多的任务。dË p一世depidep_iv一世viv_i 进展: 如果树仅限于路径,则通过动态编程将其置于。PP\mathsf{P} 如果树被概括为一个图,则它是。NPNP\mathsf{NP} 我有一个非常简单的贪婪算法,该算法被认为是三因素近似。我还没有完全证明。现在,我对NP困难的结果更感兴趣。:-) 谢谢你的建议。

2
仅给出点之间的距离来确定结构最小尺寸的最佳方法
我在与计算机科学相距甚远的物理学领域中遇到了这个问题,但似乎就像CS中研究过的问题类型一样,所以我想我会很幸运地在这里提出问题。 想象一下,您得到了一组点以及点d i j之间的一些距离的列表。确定嵌入这些点的空间的最小尺寸的最有效方法是什么?换句话说,最小的k是多少,使得R k中存在满足距离约束d i j的一组点。我对C k的答案同样满意,但这似乎很难。{vi}ni=1{vi}i=1n\{v_i\}_{i=1}^ndijdijd_{ij}kkkRkRk\mathbb{R}^kdijdijd_{ij}CkCk\mathbb{C}^k 我很高兴地说,距离需要匹配只是在一定的恒定精度内ε和有限制的点上的点一定间隔的一些格子,以与实数计算的避免出现问题。dijdijd_{ij}ϵϵ\epsilon 事实上,我会用这个问题,在给定的判定型的解决方案很高兴和ķ你问过这样的设置是否顶点{ v 我 }存在。一般而言,问题出在NP上,因为给定R k中的一组点,可以很容易地检查它们是否满足距离要求,但是对于这个特定问题,感觉好像应该有次指数时间算法。dijdijd_{ij}kkk{vi}{vi}\{v_i\}RkRk\mathbb{R}^k 最明显的方法似乎是尝试通过一次添加一个额外的点并确定每次迭代是否需要添加新的空间维度来迭代地构建维结构。这样做的问题是,似乎您可能会遇到含糊不清的问题,其中不止一种方法可以向现有结构添加点,而且随着继续添加更多点,不清楚哪一种会导致更少的尺寸。kkk 最后,我要说的是,我知道很容易创建在任何数量的维度(即违反三角形不等式)中都无法满足的距离列表。但是,对于我关心的实例,总会存在一些最小的有限数量的维,在这些维中可以找到令人满意的点集。

2
确定社交网络中影响节点的分散算法
在Kempe-Kleinberg-Tardos的这篇论文中,作者提出了一种基于子模函数的贪心算法,用于确定图中的最具影响力的节点,并将其应用于社交网络。kkk 基本上,算法如下: S=empty setS=empty setS = {\rm empty~set} 选择个人影响力最高的节点,将其称为;v1v1v_1S=S∪v1S=S∪v1S = S\cup v_1 删除和连接所有边缘到网络的其余部分v1v1v_1v1v1v_1 重复直到有个顶点SSSkkk 关于社交网络中的影响节点,我有两个问题。 a)是否有任何算法可以找到解决方案,或者以分散方式对其进行近似? b)是否有人应用其他算法(例如Page-Rank和类似算法)来解决同一问题?

1
有向平面图中可达性的并行算法
Chong,Han和Lam表明,使用处理器可以在时间内在EREW PRAM上解决无方向性st-connectivity 。O (m + n )O (log n )O(logn)O({\log}n)O (m + n )O(m+n)O(m+n) 有向平面图中st- 连通性的最著名并行算法是什么? 请说明运行时间,确定性/随机算法以及所使用的PRAM模型(假设处理器数量是多项式)。 这个问题与我以前的问题之一有关。我之前的问题是关于不一定是平面的一般有向图。

1
给定一个图,确定其边缘连通性是否至少为n / 2
Alon和Spencer撰写的《概率方法》一书的第1章提到了以下问题: 给定图,确定其边缘连通性是否至少为。n / 2GGGn / 2n/2n/2 作者提到Matula 存在算法,并将其改进为。ø (Ñ 8 / 3日志Ñ )Ø (ñ3)O(n3)O(n^3)Ø (ñ8 / 3日志n )O(n8/3log⁡n)O(n^{8/3}\log n) 我的问题是,这个问题最著名的运行时间是多少? 让我描述改进的算法。 首先,确定的最小次数是否至少为。如果不是,则边缘连通性显然小于。n / 2 n / 2GGGn / 2n/2n/2n / 2n/2n/2 接下来,如果不是这种情况,则计算一个控制集的尺寸的。可以在时间,通过本书上一节中介绍的算法来完成。G O (log n )O (n 2)üUUGGGO(logn)O(log⁡n)O(\log n)O(n2)O(n2)O(n^2) 接下来,它使用以下不是很困难的事实来证明: 如果最小度为,则对于将划分为和最大大小的边切,任何主导的集都必须在和中都具有其顶点。δ V V 1 V 2 ģ V 1 V …

3
NP难题的分支定界方法的成功应用
分支定界法是一种有效的启发式搜索方法,维基百科列出了许多使用分支定界法的难题。但是,我无法找到引用来暗示它不仅仅是解决这些问题的“一种方法”。 有趣的是,我听说SAT和整数编程的一些最佳启发式方法来自分支定界,所以我的问题是: 有人可以指出任何参考资料,详细介绍对NP难题的有效使用branch and bound吗?

3
实施代码以计算路径宽度(=节点搜索号,顶点分离号,间隔厚度)
我正在寻找一种算法的实现来计算图的路径宽度。众所周知,计算路径宽度等效于计算图的节点搜索数,顶点分离数或间隔厚度。该算法不必很快。我想在最多20个顶点的图形上运行它。我确实需要算法来精确计算路径宽度,而不是给出近似值。 我知道有一些实现可以计算图的树宽(相关概念),但是还没有找到任何实现来计算路径宽。任何指针表示赞赏!

5
为什么霍夫曼编码可以消除Lempel-Ziv不能消除的熵?
流行的DEFLATE算法在Lempel-Ziv的顶部使用霍夫曼编码。 通常,如果我们有一个随机的数据源(= 1位熵/位),那么包括霍夫曼在内的任何编码都不可能平均地对其进行压缩。如果Lempel-Ziv是“完美的”(随着长度的增长,它对于大多数类型的信号源都接近无穷大),那么用霍夫曼进行后期编码将无济于事。当然,Lempel-Ziv 并不完美,至少长度有限,因此仍然存在一些冗余。 霍夫曼编码部分地消除了这种剩余的冗余,从而改善了压缩。 我的问题是:为什么通过Huffman编码而不是LZ成功消除了剩余的冗余?霍夫曼与LZ的哪些属性使这种情况发生?再次运行LZ(即第二次使用LZ编码LZ压缩数据)是否会实现类似的效果?如果没有,为什么不呢?同样,首先使用Huffman进行压缩,然后使用LZ进行压缩,如果不能,为什么? 更新: 很明显,即使在LZ之后,也会保留一些冗余。有几个人指出了这一点。尚不清楚的是:为什么霍夫曼要比LZ更好地解决剩余冗余问题?与原始的源冗余(LZ比Huffman更好)相比,它有什么独特之处?

2
Levin的最佳分解算法参考?
在曼努埃尔·布鲁姆(Manuel Blum)的“ 对初学者的建议 ”中: 莱昂尼德·莱文(LEONID LEVIN)相信,无论P = NP的答案是什么?问题,它不会像您认为的那样。他给出了一些很好的例子。首先,他给出了一个可乘的最优的乘积算法,直到一个乘法常数。他证明了,如果他的算法是指数的,那么每个用于FACTORING的算法都是指数的。等效地,如果任何分解因数的算法是多时间的,那么他的算法就是多时间的。但是我们不能说出他算法的运行时间,因为从很强的意义上说,它的运行时间是无法分析的。 Levin的出版物页面返回404,DBLP未显示与保理相关的任何内容,并且在Google Scholar中搜索“ leonid levin factoring”没有任何我感兴趣的东西。AFAIK广义筛是因数分解最快的算法。曼努埃尔·布鲁姆(Manuel Blum)在说什么?谁能将我链接到论文?

1
两个最大平面图的最大公共子图
考虑以下问题- 定的最大平面图和G ^ 2,找到图ģ与这样,有一个子图(不一定诱导的)在两个边缘的最大数目ģ 1和G ^ 2是同构ģ。G1G1G_1G2G2G_2GGGG1G1G_1G2G2G_2GGG 可以在多项式时间内完成吗?如果是,那怎么办? 众所周知,如果和G 2是一般图形,则问题是NP完全的(因为G 1可能是集团)。众所周知,如果G 1和G 2是树或有界度偏k树,那么问题可以在多项式时间内解决。那么最大平面情况呢?有人知道吗?两个最大平面图上的图同构是多项式。也许这有所帮助?G1G1G_1G2G2G_2G1G1G_1G1G1G_1G2G2G_2

2
与SAT解算器使用相关的转换调查
我开始研究依靠SAT解算器解决我感兴趣的优化问题的可能性,并且目前正在寻找一项调查,该调查的特征是将SAT的变体“聪明”转化(例如,产生的转化)在一个合理尺寸的问题上,因为我对证明硬度的结果并不感兴趣,但实际上没有解决这个问题),大致上是按照Greenlaw和Petreschi在立方图上进行调查所能发现的精神,如果可以进行比较的话两者之间。 是因为这样的调查不存在,还是因为我只是错过了而使我感到困惑?

1
硬币更换的渐近性
给定硬币面额,其中和是在范围内均匀分布的随机数。渐近地,贪婪算法使用这组面额对硬币的哪一部分产生最优找零?c 1 = 1 c 2 &lt; c 3 &lt; 。。&lt; c n [ 2 ,N ]ñnnC1个= 1c1=1c_1=1C2&lt; c3&lt; 。。&lt; cñc2&lt;c3&lt;..&lt;cnc_2<c_3<..<c_{n}[ 2 ,Ñ][2,N][2,N] 答案以3种面额闻名; 但是一般情况呢?

6
任何算法问题的时间复杂度都由计数决定吗?
我所说的计数是一个问题,其中包括寻找一个函数的解数。更精确地,给定的一个功能(不一定黑盒),近似 #{ X ∈ Ñ | ˚F (X )= 1 } = | f − 1(1 )| 。f:N→{0,1}f:N→{0,1}f:N\to \{0,1\}#{x∈N∣f(x)=1}=|f−1(1)|#{x∈N∣f(x)=1}=|f−1(1)|\#\{x\in N\mid f(x)= 1\}= |f^{-1}(1)| 我正在寻找涉及某种计数的算法问题,对于该算法而言,时间复杂度受此基础计数问题的影响很大。 当然,我正在寻找的问题本身并不能算是问题。如果您能提供这些问题的文档,将不胜感激。

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.