Questions tagged «computational-geometry»

有关几何问题的算法解的问题,或其他利用几何的算法。

2
哪种方法更适合在四叉树中存储大型几何对象?
在四叉树(或八叉树)中放置几何对象时,可以通过以下几种方式放置比单个节点大的对象: 将对象的引用放置在包含该对象的每个叶子中 将对象的引用放置在完全包含对象的最深节点中 #1和#2 例如: 在此图像中,您可以将圆放置在所有四个叶节点(方法1)中,或者仅放置在根节点(方法2)中,或同时放置在两个节点中(方法3)。 为了查询四叉树,哪种方法更常见?为什么?

6
在一个间隔中找到两个数字的最大异或:我们能做得比二次更好吗?
lllrrrmax(i⊕j)max(i⊕j)\max{(i\oplus j)}l≤i,j≤rl≤i,j≤rl\le i,\,j\le r 天真的算法只检查所有可能的对。例如在红宝石中,我们有: def max_xor(l, r) max = 0 (l..r).each do |i| (i..r).each do |j| if (i ^ j > max) max = i ^ j end end end max end 我感觉到,我们可以做得比二次。是否有针对此问题的更好算法?

1
覆盖问题(发送方和接收方)
我尝试解决以下覆盖问题。 有发射器,覆盖范围为1km,接收器。在确定所有接收器都被任何发送器覆盖。所有接收器和发送器均由其和坐标表示。nnnnnnO(nlogn)O(nlog⁡n)O(n\log n)xxxyyy 我可以使用的最先进的解决方案采用。对于每个接收器,请按与当前接收器的距离对所有发送器进行排序,然后选择距离最短的发送器,并且该最短距离应在0.5 km之内。O(n2logn)O(n2log⁡n)O(n^2\log n) 但是天真的方法看起来在时间复杂度要好得多。只需计算所有成对的发射器和接收器之间的所有距离。O(n2)O(n2)O(n^2) 我不确定是否可以在此问题中应用范围搜索算法。例如,kd-trees使我们能够找到这样的范围,但是我从未见过示例,并且不确定是否存在用于圆的范围搜索。 给定的复杂度假设解决方案应在某种程度上类似于排序。O(nlogn)O(nlog⁡n)O(n\log n)


2
用正方形平铺正交多边形
给定一个正交多边形(一个边与轴平行的多边形),我想找到最小的一组内部不相交的正方形,其并集等于该多边形。 我发现了一些对稍有不同的问题的引用,例如: 用正方形覆盖正交多边形-与我的问题类似,但是允许覆盖正方形重叠。这个问题具有多项式解(Aupperle,Conn,Keil和O'Rourke,1988; Bar-Yehuda和Ben-Hanoch,1996)。 将正交多边形平铺/分解/分割为矩形。这个问题具有多项式解(Keil,2000;Eppstein,2009)。 用矩形覆盖一个正交多边形-这个问题被称为是NP完全的(Culberson和Reckhow,1988)。 我找了最小的算法平铺与广场。

2
两组之间最接近的点对,以2D表示
我在二维平面上有两组点。我想找到最接近的双点小号,吨使得小号∈ 小号,吨∈ Ť,并且欧几里德距离之间小号,吨是尽可能小。如何有效地做到这一点?可以在O (n log n )时间内完成吗,其中n = | S | + | T | ?小号,ŤS,TS,T小号,Ťs,ts,t小号∈ 小号s∈Ss \in S吨∈ Ťt∈Tt \in T小号,Ťs,ts,tØ (ñ 日志n )O(nlog⁡n)O(n \log n)n = | 小号| + | Ť|n=|S|+|T|n = |S|+|T| 我知道,如果我给一组,那么就可以找到最接近的一对点小号,小号' ∈ 小号在Ø (ñ 日志ñ )使用的时间标准分而治之算法。但是,该算法似乎不能推广到两个集合的情况,因为S或T中两个最接近点之间的距离与这两个集合中两个最接近点之间的距离之间没有联系。小号SSs,s′∈Ss,s′∈Ss,s' \in SO(nlogn)O(nlog⁡n)O(n \log n)SSSTTT 我以为存储设置的在ķ -d树,然后为每个小号∈ 小号,使用最近邻查询找到的最近点牛逼到小号。但是,最坏情况下的运行时间可能与O (n 2)时间一样糟糕。结果表明,如果T的点是随机分布的,则每个查询的预期运行时间为O …

1
推断优化类型
在工作中,我的任务是推断一些有关动态语言的类型信息。我将语句序列重写为嵌套let表达式,如下所示: return x; Z => x var x; Z => let x = undefined in Z x = y; Z => let x = y in Z if x then T else F; Z => if x then { T; Z } else { F; Z } 由于我从一般类型信息开始,并试图推断出更具体的类型,因此自然的选择是精简类型。例如,条件运算符返回其真假分支类型的并集。在简单的情况下,它效果很好。 但是,在尝试推断以下类型时遇到了障碍: function …
11 programming-languages  logic  type-theory  type-inference  machine-learning  data-mining  clustering  order-theory  reference-request  information-theory  entropy  algorithms  algorithm-analysis  space-complexity  lower-bounds  formal-languages  computability  formal-grammars  context-free  parsing  complexity-theory  time-complexity  terminology  turing-machines  nondeterminism  programming-languages  semantics  operational-semantics  complexity-theory  time-complexity  complexity-theory  reference-request  turing-machines  machine-models  simulation  graphs  probability-theory  data-structures  terminology  distributed-systems  hash-tables  history  terminology  programming-languages  meta-programming  terminology  formal-grammars  compilers  algorithms  search-algorithms  formal-languages  regular-languages  complexity-theory  satisfiability  sat-solvers  factoring  algorithms  randomized-algorithms  streaming-algorithm  in-place  algorithms  numerical-analysis  regular-languages  automata  finite-automata  regular-expressions  algorithms  data-structures  efficiency  coding-theory  algorithms  graph-theory  reference-request  education  books  formal-languages  context-free  proof-techniques  algorithms  graph-theory  greedy-algorithms  matroids  complexity-theory  graph-theory  np-complete  intuition  complexity-theory  np-complete  traveling-salesman  algorithms  graphs  probabilistic-algorithms  weighted-graphs  data-structures  time-complexity  priority-queues  computability  turing-machines  automata  pushdown-automata  algorithms  graphs  binary-trees  algorithms  algorithm-analysis  spanning-trees  terminology  asymptotics  landau-notation  algorithms  graph-theory  network-flow  terminology  computability  undecidability  rice-theorem  algorithms  data-structures  computational-geometry 

1
将对象分布在多维数据集中,以使它们之间具有最大距离
我正在尝试使用彩色相机来跟踪空间中的多个对象。每个对象将具有不同的颜色,为了能够在每个对象之间很好地区分,我正在尝试确保分配给对象的每种颜色与其他任何对象上的任何颜色都尽可能不同。 在RGB空间中,我们有三个平面,所有平面的值都在0到255之间。在这个立方体,我想分布种颜色,以便它们之间的距离与其他尽可能。另外一个限制是,在种颜色中应包含和(或尽可能接近),因为我想确保我的所有对象采用任何一种颜色,因为背景可能是这些颜色之一。Ñ (0 ,0 ,0 )(255 ,255 ,255 )Ñ (ñ - 2 )(0 ,0 ,0 )/(255 ,255 ,255 )(0,0,0)/(255,255,255)(0,0,0) / (255,255,255)ññn(0 ,0 ,0 )(0,0,0)(0, 0, 0)(255 ,255 ,255 )(255,255,255)(255, 255, 255)ññn(n − 2 )(ñ-2)(n-2) 也许,(包括黑色和时间)不会多14左右比。ññn 在此先感谢您获得这些颜色的任何指示。

2
寻找最大程度地躺在球上的球的复杂性
给定一组点和半径。在距离小于的地方找到数量更多的点的复杂性。例如最大化?x1,…,xn∈R2x1,…,xn∈R2x_1, \ldots, x_n \in \mathbb{R}^2rrrrrr∑ni=11∥x−xi∥≤r∑i=1n1‖x−xi‖≤r\sum_{i=1}^n \mathbb{1}_{\|x - x_i\| \leq r} 蛮力算法将遍历每个点并计算距离小于r的点的数量rrr。这将导致\ mathcal {O}(n ^ 2)的复杂性O(n2)O(n2)\mathcal{O}(n^2)。 有没有更好的方法?

4
从边按点距离加权的图形中恢复点嵌入
假设我给您一个带有加权边的无向图,并告诉您每个节点都对应于3d空间中的一个点。每当两个节点之间有一条边时,该边的权重即为点之间的距离。 您的目标是在仅提供可用距离(以边权重表示)的情况下重建点的相对位置。例如,如果我给您,那么您知道这些点是四面体的顶点。您不知道它相对于原点的位置,位置或方向,或者是否已被镜像,但是您可以知道它是四面体。d0 ,1=d0,2=d0,3=d1,2=d1,3=d2,3= 1d0,1个=d0,2=d0,3=d1个,2=d1个,3=d2,3=1个d_{0,1} = d_{0,2} = d_{0,3} = d_{1,2} = d_{1,3} = d_{2,3} = 1 通常,如果我给您所有的边长,问题很容易解决。只需任意选择一个点在,然后选择一个相邻点并将其放置在,然后将一个公共邻居三角剖分到XY上平面,然后将最终的公共邻居三角剖分到半空间并打破了其余的对称性(假设您没有选择退化点)。您可以使用这四个点对所有其余的点进行三角剖分。(0 ,0 ,0 )p 1(d 0 ,1,0 ,0 )p 2 p 3 ž > 0p0p0p_0(0,0,0)(0,0,0)(0,0,0)p1p1个p_1(d0,1,0,0)(d0,1个,0,0)(d_{0,1},0,0)p2p2p_2p3p3p_3ž> 0ž>0z > 0 另一方面,当缺少一些边缘长度时,可能无法恢复嵌入。例如,如果有一个顶点在切割时使图形断开连接,那么如果移除了该顶点,它将分离的两个组件可能会相对摆动。 这就提出了问题: 找到解决方案的价格是多少? 您如何确定解决方案是否唯一,直到平移/旋转/镜像?3连通性足够吗?必要? 什么样的条件使问题变得微不足道? 如果我不保证边缘权重实际上对应于点距sin 3d,那么确定是否完全可以嵌入的代价是多少?

2
如何测试多边形相对于线是否为单调?
众所周知,单调多边形在多边形三角剖分中起着至关重要的作用。 定义:多边形的平面被称为相对于直线单调,如果每线正交相交最多两次。大号大号PPPPLLLLLLPPP 给定直线和多边形,是否有一种有效的算法来确定多边形相对于是否为单调?P P LLLLPPPPPPLLL

1
如何为Appel的隐藏线去除算法找到轮廓线
为了好玩,我尝试为DCPU-16制作线框查看器。我了解如何做所有事情,除了如何隐藏线框中隐藏的线。因此,这里所有的问题都假设您可以使用OpenGL,但是不幸的是,我无法使用DCPU-16之类的东西(或任何类型的硬件加速)。 我在Google图书上找到了关于Appel算法的相当不错的描述。但是,有一个问题我很难弄清楚。 Appel将轮廓线定义为由正面和背面多边形共享的边,或不是封闭多面体一部分的正面多边形的未共享边。由两个正面多边形共享的边不会改变可见性,因此不是轮廓线。在图8.4中,边缘AB,EF,PC,GK和CH是轮廓线,而边缘ED,DC和GI不是轮廓线。 我了解算法的规则及其轮廓线后的工作方式,但是我不知道我该怎么做才能确定一条边是否被正面和背面多边形共享,或者从编码的角度来看,它不是封闭多面体的一部分的正面多边形的未共享边。我可以看一下形状,也可以知道脑海中的轮廓线是什么,但是我不知道如何将“理解”转换为编码算法。 更新资料 我在确定轮廓线方面取得了一些进展。我从布法罗大学计算机图形学课上找到了这 两个讲义。 考虑边缘。这些分为三类。 连接两个不可见面的边本身就是不可见的。这将从列表中删除并忽略。 连接两个潜在可见面的边缘称为“材料边缘”,需要进一步处理。 连接潜在可见面和不可见面的边缘是“材料边缘”的特殊情况,也称为“轮廓边缘”。 使用以上两条信息,我可以更接近将其编写为代码,但是还有很长的路要走。

1
给定一组线段,如何构造双向连接的边列表?
对于嵌入在平面中的给定平面图,由一组线段,每个线段均由其端点。为平面细分构造DCEL数据结构,描述算法,证明其正确性并显示复杂性。G(V,E)G(V,E)G(V,E)E={e1,...,em}E={e1,...,em}E= \left \{ e_1,...,e_m \right \} eieie_i{Li,Ri}{Li,Ri}\left \{ L_i,R_i \right \} 根据对DCEL数据结构的描述,DCEL的不同对象(即顶点,边和面)之间存在许多连接。因此,DCEL似乎很难构建和维护。 您知道可用于构造DCEL数据结构的任何有效算法吗?

1
简单多边形的独特三角剖分对偶
给定一个简单多边形的三角剖分(没有Steiner点),可以考虑此三角剖分的对偶,定义如下。我们为三角剖分中的每个三角形创建一个顶点,如果相应的三角形共享一条边,则我们将连接两个顶点。已知对偶图是最大度数为三的树。PPP 对于我的应用程序,我对以下内容感兴趣。给出一个在树最大度三,是总有一个简单的多边形使得双三角每一个(没有施泰纳点)的等于。在这里,的三角剖分可能不是唯一的,但是我要求对偶图是唯一的。TTTPPPPPPTTTPPP 当是路径时,这当然是正确的,但是当您具有3度的顶点时,这一点并不清楚。TTT

2
在度量空间点集中找到小于
我在度量空间中定义了一组个点,因此我可以测量点之间的“距离”,而没有别的。我想在此集合中找到最中心的点,将其定义为与所有其他点的距离总和最小的点。度量计算很慢,因此需要尽可能避免。nnn 查找该点的明显方法是使用公制距离计算,因为它简单地(a)为每个点计算到所有其他点的距离之和,然后(b)取最小点。n2n2n^2 有没有办法在少于距离比较中做到这一点?(可能以某种方式利用三角不等式,这应该适用于我的指标。)O(n2)O(n2)O(n^2) 如果不存在确切的方法,则一个良好的近似值可能就足够了。

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.