Questions tagged «ds.algorithms»

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

2
如何洗彩球?
我有400个球,其中100个是红色,40个是黄色,50个是绿色,60个是蓝色,70个是紫色,80个是黑色。(相同颜色的球是相同的) 我需要一种有效的改组算法,以便在改组后,球在列表中,并且 任何连续的3个球的颜色都不相同。例如,我不能有“红色,红色,红色,黄色...” 并且,所有排列都可能“相等地”发生。(好吧,如果效率与无偏之间的权衡足够好,那么我不介意比无偏有更多的效率)。 我试图改编Fisher-Yates-Knuth,但结果并不理想。 为什么Fisher-Yates不够好?FY采用蒙特卡洛逆变换。输出分配对相同的色球的处理方式有所不同,即它会为我的需求产生偏差的结果。 而且,天真的想法是从整个空间过滤/回溯所有不良排列。例如,当限制非常严格时,如果我们只有300个球,而其中100个是红色的,那么在获得适当的排列之前,将存在太多的反向跟踪/失败。 因此,最终,我希望能够迭代所有好的排列。但是,由于有效排列的数量太大,因此我只能随机抽样其中的一些。我想让其中“一些”的统计特征尽可能类似于人口。

1
找到一个将多面体均匀分裂的切割平面
假设我们有一个标准形式的多面体: 甲X = bX ≥ 0一个X=bX≥0\begin{equation*} \begin{array}{rl} \mathbf{A}\mathbf{x} = \mathbf{b} \\\\ \mathbf{x} \ge 0 \end{array} \end{equation*} 有什么已知的方法可以找到一个超平面来分裂多面体,使得超平面每一侧的顶点数量大致相同?(即最小化分割两侧顶点基数绝对差的算法)。d x + d0= 0dX+d0=0\mathbf{d} \mathbf{x} +d_0= 0 另外,关于此问题的复杂性是否有任何已知结果? 附录:限制裁员类型: 这是原始问题的一种变体,希望它比原始问题更容易解决: 有没有一种方法可以有效地计算或估计形式的超平面会为哪个坐标产生分裂两边的顶点基数的最小绝对差?“有效”是指所有可能的拆分都比穷举顶点基数更有效。一世一世id一世X一世+ d0= 0d一世X一世+d0=0d_ix_i + d_0 = 0 注意:经过几天的小改进,我也在MathOverflow上发布了此问题。

2
晶格问题
关于部分订单的计算问题(例如,识别,跳转数,可比性图识别等),已经进行了大量工作。 我很好奇格子的具体工作已经完成。我四处搜寻,但没有找到很多类似的格子工作。 我尤其对是否已研究以下晶格问题感兴趣: 格点识别:给定DAG或部分顺序,实际上是格点吗? 格可比性图识别:给定无向图G,G的边是否可以定向为使得最终的定向为晶格? 确定/计算晶格的连接不可约元素 确定给定的晶格是否为分布/模

4
执行成本 跳过四叉树中的最近邻居搜索
注意:在我的回答中已经重提了这个问题:假设现在我们可以找到O (1 )O(1)O(1)时间中最低的同级祖先,那么可以在真正执行ANN O (对数n )O(log⁡n)O(\log n)吗? 四叉树是有效的空间索引。我对[2]中所述的压缩四叉树结构中最近邻居搜索的实现感到困惑。(不赘述,搜索将沿着所谓的等距正方形自上而下进行,以等距路径的尾节点结束。在所附的图像中,该搜索可能是东南部充满点的任何节点。) 为使算法有效,必须为每个节点(一个至少包含两个非空象限的正方形)维护一个指针,该指针指向四个方向(北,西,南)中每个最低(祖先最靠近)的祖先节点, 东)。这些由节点向西的祖先的绿色箭头指示(箭头指向祖先广场的中心)。 本文声称这些指针可以在点插入和删除期间在O(1)中更新。但是,当查看绿点的插入时,似乎我需要更新任意数量的指针,在这种情况下,其中六个。 我希望有一个技巧可以在恒定时间内更新此指针。也许存在一种可以利用的间接形式? 编辑: 本文的相关部分为6.3,其中的内容为:“如果路径具有弯曲,则除了的最低祖先,我们还应该考虑方向中的每个最低祖先的该伴随朝向该方向[...]查找从这些正方形可在完成每平方的时间,如果我们关联附加指针在每个正方形指向其最接近的祖先为每个方向在插入或删除点的过程中,也可以在时间内更新这些指针。”升Ò 克(c / ε)log(c/ε)log(c/ε)2 d q q O (1 )2 d Q 0 O (1 )qqq2d2d2^dqqqqqqO (1 )O(1)O(1)2d2d2^d问0Q0Q_0O (1 )O(1)O(1) [2]:Eppstein,D.和Goodrich,MT和Sun,JZ,“跳过四叉树:多维数据的简单动态数据结构”,在“计算几何学”第二十一届年度研讨会论文集中,第296-305页。 ,2005年。


1
全息算法-基数的等价
我正在阅读Les Valiant的开创性论文,但在论文第10页上的提案4.3时遇到了困难。 我不能看到为什么它,如果有与一定值的发电机的情况下与基础{ (一个1,b 1)... (一- [R ,b [R )},则存在一些发生器与相同任何基础的v a l G值{ (x a 1,y b 1)… (x a r,y b r)v 一个升ģvalGvalG{ (一1个,b1个)… (一个[R,b[R)}{(a1,b1)…(ar,br)}\{(a_1,b_1) \ldots (a_r,b_r)\}v 一个升ģvalGvalG( 1 小号吨 ķ 我Ñ d)或 { (X b 1,ÿ 一1)... (X b - [R ,ÿ 一- [R )}( 2 Ñ ð …

1
是否存在多项式时间算法来求解(有限)六角形方格图的Delaunay图的图同构性?
给定一个有限的平面,我用固定大小的正六边形对该平面进行六边形细分。然后,我为镶嵌细分计算Delaunay图G。给定这样一个图G,我删除了该图中的特定节点集,以生成G的多个子图。我需要确定这些子图是否同构(彼此同构)。 是否存在这样做的多项式时间算法? 我知道在一般情况下还没有解决图形同构的多重时间算法。但是我不确定这种特定的Delaunay图是否仍然如此。

1
在优化中放宽约束
我有一个可行性问题,可以如下所述。我在维向量空间中得到了一个点,我想找到最接近点,它满足以下形式的一组“约束”d q p ℓ 0pppdddqqqpppℓ0ℓ0\ell_0 给定集合,最多可以为非零。{ q Ĵ,Ĵ ∈ 小号}小号∈ [ 1 … d]S∈[1…d]S \in [1\ldots d]{ qĴ,Ĵ ∈ 小号}{qj,j∈S}\{q_j, j \in S\} 紧密度的概念各不相同,但是现在假设这样的方便距离就足够了。ℓ22ℓ22\ell_2^2 在提供“足够接近”的多边形以近似原始约束的意义上,是否存在对线性约束的任何已知松弛,即“好”,在这里我对“足够接近”的定义也相当灵活

1
在解决事务/读写锁时,您会建议哪种算法/读物?
简化的经典数据库事务可以视为: 阅读M件 根据这些读数执行一些计算 根据这些计算写出N个结果,其中可能包括最初读取的元素。 (同时)执行这些事务时,需要保留ACID属性。 在其他非DBMS并发系统中确实存在相同的要求(基于M个事务读取的N个更新)。 我感兴趣的是找出存在哪些算法来执行/解决这些事务,以及这些算法的相对优势和劣势是什么。你能推荐一些阅读吗?这可能是书籍或在线参考资料/教程。 澄清: 因此,例如,一个幼稚的算法可能是每个事务都获得单个全局锁,实际上是强制执行单个线程并删除并发。稍微复杂一点的算法将是单个项目的读/写锁定,并带有避免死锁的顺序。等等。是否有大量文献记录了解决该问题的各种算法。即使仅指出具有其优点和缺点的单一算法的答案也将是有用的。

1
修剪紧密连接的有向图
给定一个具有加权边的强连通有向图G,我想确定证明不属于G的任何最小强连通子图(MSCS)的边缘。 查找此类边缘的一种方法是改良的Floyd-Warshall算法。使用Floyd-Warshall算法,可以识别出哪些边永远不是从顶点i到j的最佳选择。这些节点不能成为MSCS的一部分,因为最好将它们替换为两个或更多其他边缘。 当边缘权重变化很大时,Floyd-Warshall修剪技术效果很好,但是当边缘权重相似但幅度较大时,效果很差。 您知道任何适用于较大的相似边缘权重的有效修剪方法吗?这个问题等于我不认识的更常见的问题吗?以前是否在文献中研究过这种修剪?

1
寻找捷径
动机:在标准的增强路径最大流算法中,内部循环需要在有向加权图中找到从源到汇的路径。从理论上讲,众所周知,为了使算法在边缘容量不合理时甚至终止,我们需要对找到的路径进行限制。例如,Edmonds-Karp算法告诉我们找到最短路径。 根据经验,已经观察到我们可能还想找到脂肪(是否有更好的术语?)。例如,当使用容量缩放时,我们发现可以承受至少流量的最短路径。路径的长度没有限制。当我们找不到任何路径时,我们减小并重复。εϵϵ\epsilonϵϵ\epsilon 我对针对最大流的非常特定的应用优化扩充路径的选择感兴趣,并且我想探讨短路径与胖路径之间的这种权衡。(注意:我不必总是解决问题。我最感兴趣的是在最短的挂墙时间内找到最大的流量下限。) 问题:在最短路径方法和容量扩展方法之间是否存在标准的插值方法?也就是说,是否有一种算法可以找到短而胖的路径,理想情况下,某个参数可以控制我们愿意为胖而权衡的路径长度?在极端情况下,我希望能够在一端恢复最短路径,而在另一端恢复容量缩放样式的路径。

2
紧凑地表示SAT实例的解决方案集
在阅读了安德拉斯·萨拉蒙(AndrásSalamon)和科林·麦奎兰(Colin McQuillan)对我以前的问题“单调2CNF公式的计数解决方案”的贡献后,我想到了这个问题。 编辑,2011年3月30 日, 添加了第2个问题。 编辑,2010年10月29 日,该 问题在安德拉斯提出通过很好地表示解决方案集的概念将其形式化的提议后改写(我对他的观点做了一些修改)。 令为具有变量的通用CNF公式。设为其解集。显然,在可以是指数。让n S | S | n R S RFFFñnn小号SS| 小号||S||S|ñnn[RRR是的表示。当且仅当以下事实全部成立时,才被认为是很好的:小号SS[RRR ñ[RRR多项式大小为。ñnn 小号[RRR允许以多项式延迟枚举的解。小号SS | S |[RRR允许确定在多项式时间内(即不列举所有解)。 | 小号||S||S| 如果有可能在多项式时间内为每个公式建立这样的,那将是很好的。[RRR 问题: 有没有人证明了存在一个家庭式的针对这样一个很好的表现就不能存在? 有人研究过的表示形式与显示的对称性之间的关系吗?直觉上,对称性应该有助于紧凑地表示因为当实际归结为一个解时,对称性避免了显式表示解决方案子集(即,从每个您可以恢复其他所有通过应用适当的对称性,因此每个本身都代表整个)˚F 小号小号' ⊂ 小号小号“ 小号我 ∈ 小号” 小号Ĵ ∈ 小号“ 小号我 ∈ 小号” 小号“小号SSFFF小号SS小号′⊂ 小号S′⊂SS' \subset S小号′S′S's一世∈ 小号′si∈S′s_i \in S'sĴ∈ 小号′sj∈S′s_j \in …

3
纳什均衡计算算法。
我在论坛上搜索了是否曾经问过这个问题,并且在讨论算法博弈论时,我找不到解决的特定问题。我正在尝试找出最有限的n人游戏中用于计算近似(混合策略)纳什均衡的算法。当然,该算法将是PPAD。我对速度/效率比算法的完美准确性更感兴趣。 谢谢菲利普

4
图上有趣的函数可以有效地最大化。
假设我有一个加权图,使得是加权函数-请注意,允许负加权。瓦特:È → [ - 1 ,1 ]G = (V,E,w )G=(V,E,w)G = (V,E,w)w :E→ [ - 1 ,1 ]w:E→[−1,1]w:E\rightarrow [-1,1] 假设定义了顶点的任何子集的属性。小号⊂ VF:2V→ Rf:2V→Rf:2^V\rightarrow \mathbb{R}小号⊂ VS⊂VS \subset V 问题:哪些有趣的示例 可以解决多项式最大化问题:?ARG 最大小号⊆ V ˚F (小号)Fff精氨酸最大值小号⊆ VF(S)arg⁡maxS⊆Vf(S)\arg\max_{S \subseteq V}f(S) 例如,图割函数 F(S)= ∑(ü ,v )∈ Ë:ü ∈ 小号,v ∉ 小号w ((u ,v ))f(S)=∑(u,v)∈E:u∈S,v∉Sw((u,v))f(S) = \sum_{(u,v) …

2
散列整数集以进行包含测试
我正在寻找一组H(。)和关系R(。,。)的哈希函数,以便如果A包含在B中,则R(H(A),H(B))。当然,R(。,。)必须易于验证(恒定时间),而H(A)应该以线性时间计算。 H和R的一个示例是: H(A)=⋁x∈A1&lt;&lt;(h(x)modk)H(A)=⋁x∈A1&lt;&lt;(h(x)modk)H(A) = \bigvee_{x\in A} 1 << (h(x) \mod k),其中k是固定整数,h(x)是整数上的哈希函数。 R(H(A),H(B))=((H(A)&H(B))== H(A)) 还有其他好的例子吗?(很难定义好,但是从直觉上来说,如果R(H(A),H(B)),那么b中会包含whp A)。 以后编辑: 我正在寻找一系列哈希函数。我有很多套;每组3-8个元素;其中90%具有3或4个元素。在这种情况下,我给出的示例哈希函数分布不佳。 H(。)(在我的示例中为k)的位数应较小(即H(。)必须为整数或长整数)。 R的一个不错的特性是,如果H(。)具有k位,则对于(3 ^ k-2 ^ k)/ 4 ^ k对,即R(。,。)为true。几双。 布隆过滤器特别适合大型设备。我尝试使用BF解决此问题,但最佳结果只有一个功能。 (来自stackoverflow的交叉报道,我没有收到足够好的答案)

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.