Questions tagged «online-algorithms»

1
多项式大小的DFA识别的语言
对于一个固定的有限字母表,正式语言超过是规则,如果存在一个确定性有限自动机(DFA)超过它接受准确。大号ΣΣ\SigmaLLLΣΣ\SigmaΣΣ\SigmaLLL 我对“几乎”规则的语言感兴趣,因为它们可以被大小自动增长的自动机系列识别,自动机系列的大小随词长的增长呈多项式增长。 形式上来说,如果对于每个单词,则DFA 家族可以识别形式语言,令,在如果接受(无论其他接受),然后让我将p常规语言定义为多项式大小的PTIME可计算 DFA系列识别的语言,即是多项式,使得全部LLL 瓦特∈ Σ * Ñ = | w | 瓦特大号甲Ñ瓦特甲我(An)(An)(A_n)w∈Σ∗w∈Σ∗w \in \Sigma^*n=|w|n=|w|n = |w|wwwLLLAnAnA_nwwwAiAiA_iP | A n | ≤ P (Ñ )ñ(An)(An)(A_n)PPP|An|≤P(n)|An|≤P(n)|A_n| \leq P(n)nnn。(这个名称是“ p-regular”,这是我编写的,我的问题是要知道是否存在另一个名称。请注意,就排列自动机而言,这与p-regular语言并不相同。) 这类p常规语言当然包括常规语言(对于所有都取,其中是一些识别常规语言的DFA);但这是它的严格超集:例如,众所周知,是上下文无关的,但不是常规的,但是它是p-常规(只需要计数次出现的和次出现的)。但是,由于我要求自动机必须是多项式大小的DFA,因此某些形式语言(实际上是一些无上下文语言)不是Ñ 甲{ 一个Ñ b Ñ | Ñ ∈ Ñ } 甲Ñ Ñ 一个Ñ bAn=AAn=AA_n = AnnnAAA{anbn∣n∈N}{anbn∣n∈N}\{a^n b^n \mid n \in \mathbb{N}\}AnAnA_nnnnaaannnbbbp-regular:例如,回文的语言不是p-regular,因为从直观上讲,当您阅读单词的前半部分时,您需要具有尽可能多的不同状态,因为您需要准确地将前半部分与后半部分匹配 …

2
保持增长的无向图的平衡生成树
我正在寻找方法来维护图的相对平衡的生成树,因为我向图添加了新的节点/边。 我有一个无向图,该图以单个节点“根”开始。 在每个步骤中,我都会在图上添加一个新节点和将其连接到图的边,或者仅添加一个新的边来连接两个旧节点。随着图形的增长,我会维护一棵生成树。大多数情况下,这意味着当我添加新节点和边时,会将新节点设置为它所连接的旧节点的子节点。 我无法控制新节点的添加顺序,因此上述树构建算法显然会导致生成树不平衡。 有谁知道在线启发式技术可以使生成树“相对平衡”,同时最大程度地减少重新树的工作量?我对树结构有完全控制。我无法控制的是图形连接性,或者添加新节点的顺序。 请注意,标准的Google对诸如“平衡”,“生成”和“树”之类的术语的响应似乎是二叉树和B树,两者均不适用。我的图节点可以具有任意数量的邻居,因此树节点可以具有任意数量的子代,而不是像二叉树那样的2个子代。B树通过更改其邻接表来保持平衡,而我无法更改图的连接性。

2
'k'最频繁出现的数字的算法
我一直在寻找最有效的(streaming ??)算法,该算法可以告诉我在任何时间点数据流中最常出现的“ k”个元素。这篇文章:“分而治之”的数据流算法使我对此感兴趣。 例如,假设有数字:(4,3,5,1,6,2,4,3,3,8,9,1)并且我查询了3个最频繁出现的数字(例如),那么我应该得到(3,4,1)作为答案。 我尝试在线搜索,但找不到任何可以提供方法的地方,并说那是最好的。一个简单的解决方案是使用堆或平衡的二叉树,但是我认为有更好的方法,我想知道它是否在某处记录了。 编辑:我正在寻找一种始终能给出正确答案的算法,而不是依赖某种或其他方式依赖数据分布的混合算法(其中很多出现在搜索结果中)

2
是否存在一种算法,可以在插入/删除的情况下有效维护DAG的连接信息?
给定有向无环图,是否有可能有效地支持以下操作?G(V,E)G(V,E)G(V,E) :确定 G中是否存在从节点 a到节点 b的路径isConnected(G,a,b)isConnected(G,a,b)isConnected(G,a,b)GGGaaabbb :在图形 G中从 a到 b添加一条边link(G,a,b)link(G,a,b)link(G,a,b)aaabbbGGG :删除从边缘一至 b在 ģunlink(G,a,b)unlink(G,a,b)unlink(G,a,b)aaabbbGGG :向G添加一个顶点add(G,a)add(G,a)add(G,a) :从G删除一个顶点remove(G,a)remove(G,a)remove(G,a) 一些注意事项: 如果我们不允许,现在看来,这将是很容易保持连通性信息,使用不相交集类型的数据结构。unlinkunlinkunlink 显然,可以使用深度或广度优先搜索,使用曲线图的幼稚基于指针的表示来实现。但这效率低下。isConnectedisConnectedisConnected 我希望所有这三个操作的摊销常数或对数时间。这可能吗?

3
有二维矩形着色问题的常数因子近似算法吗?
我们在这里考虑的问题是众所周知的间隔着色问题的扩展。代替间隔,我们考虑具有与轴平行的边的矩形。目的是使用最少数量的颜色为矩形着色,以便为任意两个重叠的矩形分配不同的颜色。 已知此问题是NP难题。Xin Han,Iwama Kazuo,Rolf Klein和Andrezej Lingas(在箱图上逼近最大独立集和最小顶点着色)给出了O(log n)逼近。有更好的近似算法吗? 我们知道,间隔着色问题是在多项式时间内通过首先拟合算法根据其左端点考虑间隔而解决的。但是,当间隔以任意顺序出现时,首次拟合在线算法具有8竞争性。 矩形着色问题的首选算法的性能如何?当矩形根据其左(垂直)边出现时,首次拟合算法会怎样? 在此先感谢您的任何帮助。

1
线性程序约束满足期望是否足够?
在针对在线二分匹配的RANKING的随机原始对偶分析中,证明RANKING算法具有竞争性,同时证明对偶可行于期望值(请参阅第5页的引理3)。我的问题是:(1−1e)(1−1e)\left(1 - \frac{1}{e}\right) 线性程序约束满足期望是否足够? 证明目标函数的期望值是一回事。但是,如果在期望中满足了可行性约束条件,则不能保证一定会满足给定的运行条件。而且,存在许多这样的约束。那么,在给定的运行中保证所有这些参数都得到满足的保证是什么?

2
在线算法书籍
最近有关于在线算法的书吗?我只知道两本书。 Allan Borodin和Ran El-Yaniv进行的在线计算和竞争分析:这是一本经典但古老的书,没有包含该领域的许多最新进展。 Niv Buchbinder和Joseph(Seffi)Naor 通过原始对偶方法设计竞争性在线算法:这是一本新书,包含许多最新成果。但是,它的范围仅限于基于LP的原始对偶算法。 请在此处列出您可能知道的所有有关在线算法的书籍。如果网络上有任何免费书籍,那就太好了。

3
是否存在在线算法来跟踪变化的无向图中的组件?
问题 我有一个无向图(带有多边),它会随着时间而变化,可能会插入和删除节点和边。在对图进行每次修改时,我都必须更新该图的连接组件。 物产 其他特性是,不会再有两个组件被重新连接。显然,该图可以具有任意数量的循环(否则该解决方案将是微不足道的)。如果边缘不包含节点n,则它将永远不会采用该节点。但是,如果Ñ ∈ Ë,它可以改变ñ ∉ Ë。eeennnn∈en∈en \in en∉en∉en \notin e 方法 到目前为止,我有两种可能的方法,但是如您所见,它们很可怕: 慢无状态 我可以每次从修改后的元素开始搜索(dfs / bfs)图形。这样可以节省空间,但速度很慢,因为每次修改的O(n + m)为。 有状态快速(-er)(?)方法 我可以存储每个节点到所有可能节点的所有可能路径,但是如果我正确看到它,则会占用O(n ^ 4)内存。但是我不确定运行时的改进如何(如果有的话,因为我必须使同一组件中每个节点的信息都保持最新)。 题 您是否有任何指点,如何了解有关该问题的更多信息,或者可以建立一些算法? 注意 如果运行时/内存有了很大的改进,我可以使用非最佳解决方案,该解决方案有时会说两个组件是一个组件,但是我当然更喜欢一个最佳解决方案。

4
连续聚类
因此,在与实时连续流数据进行群集方面,我面临一个问题。由于我拥有不断增长的数据集,因此我不确定哪种是运行高效集群的最佳方法。我提出了一些可能的解决方案,包括: 设置允许的数据点数限制,这样就可以在最早的数据点到达另一个数据点时就达到限制。从本质上讲,这表明较旧的数据与我们之间的关联性不再足够,无法通过丢弃这些数据来照顾我们丢失的内容。 一旦有足够的数据来进行良好的聚类,请考虑这种“设置”,并随着新点的出现,而不是重新聚类所有数据,而只是找出新点最靠近哪个聚类中心并将其添加到该聚类中心。这样做的好处是,您可以不必在每个新点上重新进行聚类,并且不必考虑聚类“足够好”而只存储聚类中心的所有其他点。不利的一面是从头开始使用所有数据点重新运行该算法可能会更准确。 虽然这些是我脑力激荡的一些潜在解决方案,但我想知道是否有更好的已知技术来解决此问题。我认为像Google这样的网站必须以某种方式处理它(我希望“添加更多的ram,服务器和处理器”或“不断扩展数据中心”不是唯一可用的答案)。
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.