Questions tagged «computational-geometry»

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

6
从一组对中生成组合而无需重复元素
我有一对。每对都具有(x,y)的形式,使得x,y属于范围内的整数[0,n)。 因此,如果n为4,那么我有以下几对: (0,1) (0,2) (0,3) (1,2) (1,3) (2,3) 我已经有一对了。现在,我必须使用n/2对构建一个组合,这样就不会重复任何整数(换句话说,每个整数在最终组合中至少出现一次)。以下是正确和不正确组合以更好地理解的示例 1. (0,1)(1,2) [Invalid as 3 does not occur anywhere] 2. (0,2)(1,3) [Correct] 3. (1,3)(0,2) [Same as 2] 一旦我有了配对,有人可以建议我一种生成所有可能组合的方法。

1
如何在另一个多边形内打包多边形?
我订购了几张皮革,我希望通过将边缘缝合在一起来制造杂耍球。我将柏拉图式固体用于球的形状。 我可以扫描皮革板并生成一个近似于皮革板形状的多边形(如您所知,它是动物皮肤,并且不是矩形的)。 所以现在,我想将杂耍球的尺寸最大化。 在我的示例中,多边形是常规的多边形,但是我正在寻找使用简单多边形的解决方案。 我可以将多边形应用到图纸中的最大比例因子是多少? 我试图通过使用尽可能多的材料来减少浪费。 显然,将多面体网切成单个多边形会增加可能组合的空间,但也会降低最终几何图形的质量,因为这会涉及更多的缝制和累积的误差。但是,这个问题不是关于枚举展开多面体的不同方法。它们可以独立考虑。因此,多边形是简单的多边形。 正式地: 输入: :一个简单的多边形(目标)PPP :我要放置的一组多边形SSS : n个简单多边形的图-每个节点代表 S中的一个简单多边形,并且每对多边形之间有一个共享公共边的边 GGGnnnSSS (材料和连接性的使用)α>=0,β>=0α>=0,β>=0\alpha >= 0, \beta >= 0 输出: 比例因子fff , G的子图HHHGGG : V (G )中每个多边形的位置和角度大号Ô Ç大号ØCLocV(G )V(G)V(G) 解决方案的质量的度量:m = α 。˚F + β 。| E (高)|米米mm = α 。F+ β。| Ë(高)|| Ë(G )|米=α。F+β。|Ë(H)||Ë(G)| m = \alpha.f …

2
如何设计一种算法来在屏幕上排列(可调整大小的)窗口以覆盖尽可能多的空间?
我想编写一个简单的程序,该程序接受一组窗口(宽度+高度)和屏幕分辨率,并在屏幕上输出这些窗口的排列,以使窗口占用最大的空间。因此,可以在保持output size >= initial size纵横比的同时调整窗口的大小 。所以对于窗口iii,我希望该算法返回一个元组(x ,y,w ^ 我d吨ħ ,ħ È 我克ħ 吨)(x,y,width,height)(x, y, width, height)。 我相信这可能是2D背包的变形。我曾尝试遍历整个网络的结果,但是它们大多数都有很多背景(并且没有实现),这使我难以理解。 我对最快的算法不太感兴趣,但对满足我的特定需求的实用工具却更感兴趣。

3
Cookie框中有多少个Cookie?—平铺星星
随着假期临近,我决定做一些肉桂星。那很有趣(而且结果很好吃),但是当我把第一盘星星放在盒子里时,我的内心书呆子就有些畏缩了,它们不能合在一起了: 几乎!他们有办法适应吗?无论如何,我们如何才能平铺星星?假定这些是规则的六点星,我们当然可以使用众所周知的六边形平铺作为近似,如下所示: 弄乱了右上角的那个,哎呀。 但这是最佳选择吗?提示之间有足够的空间。 考虑到这一点,让我们将自己限制为矩形框和六点规则的恒星,即,每个尖端与其相邻的角之间存在三十度(或)。恒星的特征在于内半径和外半径: - [R我řöπ6π6\frac{\pi}{6}[R一世rir_i[RØror_o [ 来源 ] 请注意,对于,我们有六角形;对于,我们有六边形。我认为考虑这些极端情况(对于Cookie)并将自己限制在两者之间的范围内是合理的,即。- [R我=1[R一世= 3√2⋅ [RØ[R一世=32⋅[RØr_i = \frac{\sqrt{3}}{2} \cdot r_oř我[R一世= 13√⋅ [RØ[R一世=1个3⋅[RØr_i = \frac{1}{\sqrt{3}} \cdot r_o[R一世[R0∈ [ 13√,3√2][R一世[R0∈[1个3,32]\frac{r_i}{r_0} \in \Bigl[\frac{1}{\sqrt{3}}, \frac{\sqrt{3}}{2}\Bigr] 我的cookie的和忽略了缺陷-我只是想品尝,而不是一次成型!- [R ö ≈ 25 米米[R一世≈ 17 米米[R一世≈17米米r_i \approx 17\mathrm{mm}[RØ约25 m m[RØ≈25米米r_o \approx 25\mathrm{mm} 如上所述,最佳的恒星平铺是什么?如果没有静态的最佳平铺,是否有一种算法可以有效地找到良好的平铺?

1
是否有O(n log n)算法可简化4D线?
用于简化行的Ramer-Douglas-Peucker算法具有最坏情况的运行时间。对于适当分布的随机输入,它具有期望的运行时复杂度。在2D模式下,还有其他算法的运行时复杂度为最差,其计算结果与Ramer-Douglas-Peucker算法完全相同。由于这些算法基于“路径(凸)壳”数据结构,因此是否可以将其推广到4D线尚不清楚。O (n log n )O (n log n )Ø (ñ2)O(n2)O(n^2)Ø (ñ 日志n )O(nlog⁡n)O(n \log n)Ø (ñ 日志n )O(nlog⁡n)O(n \log n) 对于4D线,是否有一个(随机的)算法具有(预期的)运行时间(与输入无关)?您可以假设欧几里得距离和整体绝对公差。Ø (ñ 日志n )O(nlog⁡n)O(n \log n)

3
线分隔两组点
是否有办法确定两条点是否可以用一条线分开? 我们有两套分的和是否有分开的线路和,使得所有的点,只有上线的一侧,所有的点,只有在另一边。B A B A A B B一种AA乙BB一种AA乙BB一种AA一种AA乙BB乙BB 我想到的最幼稚的算法是为和构建凸多边形,并测试它们的交集。看起来时间像构造凸多边形一样,其时间复杂度应为。实际上,我不希望时间复杂度有任何改善,我不确定它是否可以改善。但是,至少应该有一种更漂亮的方法来确定是否有这样一条线。B O (n log h )一种AA乙BBØ (ñ 日志h )O(nlog⁡h)O(n\log h)

3
给定半径的最大封闭圆
我尝试找到解决以下问题的方法: 给定点和半径的集合,找到圆的中心点,以使圆包含该集中的最大点数。运行时间应为。ř ø (Ñ 2)小号SS[RrrO (ñ2)O(n2)O(n^2) 起初,这似乎类似于最小的封闭圆问题,可以轻松地在。这个想法是要设定一个任意的中心并环绕所有点。接下来,逐步替换圆以触摸最左/最右的点,然后将圆缩小到给定的半径,这显然是行不通的。SO (ñ2)O(n2)O(n^2)小号SS

2
垂直能见度问题的高效算法
在思考一个问题时,我意识到我需要创建一种有效的算法来解决以下任务: 问题:我们给了nnn边的二维方盒,其边与轴平行。我们可以从顶部进行调查。但是,也有mmm水平段。每段具有的整数yyy -协调(0≤y≤n0≤y≤n0 \le y \le n)和xxx坐标- (0≤x1&lt;x2≤n0≤x1&lt;x2≤n0 \le x_1 < x_2 \le n)并连接点(x1,y)(x1,y)(x_1,y)和(x2,y)(x2,y)(x_2,y)(看下图)。 我们想知道,对于框顶部的每个单元段,如果我们仔细观察该段,可以在框内垂直看到多深。 x∈{0,…,n−1}x∈{0,…,n−1}x \in \{0,\dots,n-1\}maxi: [x,x+1]⊆[x1,i,x2,i]yimaxi: [x,x+1]⊆[x1,i,x2,i]yi\max_{i:\ [x,x+1]\subseteq[x_{1,i},x_{2,i}]} y_i 示例:给定和分段,如下图所示,结果为。看看有多深的光线可以进入盒子。米= 7 (5 ,5 ,5 ,3 ,8 ,3 ,7 ,8 ,7 )n=9n=9n=9m=7m=7m=7(5,5,5,3,8,3,7,8,7)(5,5,5,3,8,3,7,8,7)(5, 5, 5, 3, 8, 3, 7, 8, 7) 对我们来说幸运的是,和都非常小,我们可以离线进行计算。米nnnmmm 解决此问题的最简单算法是蛮力:对于每个段,遍历整个数组并在必要时进行更新。然而,它给我们不是很可观。O(mn)O(mn)O(mn) 很大的改进是使用了一个片段树,该树能够在查询过程中最大化片段上的值并读取最终值。我不会进一步描述它,但是我们看到时间复杂度是。O((m+n)logn)O((m+n)log⁡n)O((m+n) \log n) 但是,我想出了一个更快的算法: 大纲: 按坐标的降序对段进行排序(线性时间使用计数排序的变化)。现在注意,如果以前任何段都被任何段覆盖,则随后的任何段都不能再束缚通过该段的光束。然后,我们将从框的顶部到底部进行扫线。yyyxxxxxx …

1
断头台削减与一般削减
切割问题是将某个大物体切割成几个小物体的问题。例如,假设你有一个工厂,与大的片材宽度的原始玻璃,作品和长度。有几个买家,每个买家都想要无限数量的小玻璃板。买方想要长为且宽度为纸张。您的目标是从大张纸上切下小张纸,以使总使用量最大化,浪费最小化(还有其他类型的切割和包装问题)。w ^w ^W大号大号L一世一世i升一世升一世l_iw一世w一世w_i 切割问题的一个普遍限制是,切割必须是断头台切割,即每个现有的矩形只能切割成两个较小的矩形;显然,具有断头台切割的最大使用面积可能小于没有限制的最大使用面积。 我的问题是:最佳断头台切割与最佳普通切割之间的比率是否有上限和下限? 相关工作:Song等。(2009年)描述了一种使用限制型断头台切刀的算法- 两次断头台切刀。他们使用几何约束证明,最大两次断头台切工与最大断头台切工之间的比率受。我正在寻找关于最大断头台切割量与最大常规切割量之间的比率的可比结果。6767\frac{6}{7}

1
蛮力Delaunay三角剖分算法的复杂度
在马克·德·伯格等人的“计算几何:算法和应用”一书中,有一种非常简单的蛮力算法,用于计算Delaunay三角剖分。该算法使用了非法边的概念-可能不会出现在有效Delaunay三角剖分中的边,必须用其他一些边替换。在每个步骤中,该算法仅查找这些非法边缘并执行所需的位移(称为“ 边缘翻转”),直到没有非法边缘为止。 算法LegalTriangulation(TTT) 输入。一些三角TTT点集的PPP。 输出。的合法三角剖分PPP。 而 TTT包含非法边缘pipjpipjp_ip_j do \quad让pipjpkpipjpkp_i p_j p_k和pipjplpipjplp_i p_j p_l邻近于两个三角形pipjpipjp_ip_j。 \quad从T删除,然后添加p k p l。返回牛逼。pipjpipjp_ip_jTTTpkplpkplp_kp_l TTT 我听说这种算法在最坏的情况下会在时间内运行;但是,我不清楚这句话是否正确。如果是,如何证明这一上限?O(n2)O(n2)O(n^2)

1
如何测试多边形相对于任意线是否为单调?
定义:多边形的平面被称为相对于直线单调,如果每线正交相交最多两次。大号大号PPPPLLLLLLPPP 给定多边形,是否可以确定是否存在任何线,使得多边形相对于是单调的?如果是,怎么办?大号P 大号PPPLLLPPP大号大号L 以前,我问了一个相关的问题(在那里,我问如何确定多边形是单调相对于一个特定的行),但现在我感兴趣的情况下,当是不提供或预先规定。大号大号L

2
聚类问题的最优贪婪
| P| =n|P|=n|P| = nķkkķkkñnnC= { c1个,c2,… ,cķ}C={c1,c2,…,ck}C = \{ c_1,c_2,\ldots,c_k\}ķkkD p i c j成本(C ^)= 最大值一世分Ĵd (p一世,cĴ)cost(C)=maximinjD(pi,cj)\text{cost}(C) = \max_i \min_j D(p_i, c_j)dDD表示输入点和中心点之间的欧几里得距离。每个点将自己分配给最近的聚类中心,将顶点分为k个不同的聚类。p一世pip_iCĴcjc_jķkk 该问题称为(离散)聚类问题,它是NP困难的。从NP完全控制集问题的简化可以看出,如果存在ρ &lt; 2的问题的ρ-近似算法,则P = NP。ķkkNPNP\text{NP}NPNP\text{NP}ρρ\rhoρ &lt; 2ρ&lt;2\rho < 2P = NPP=NP\text{P} = \text{NP} 最佳逼近算法非常简单直观。一个第一纬点p ∈ P任意,并把它在该组Ç聚类中心。然后,选择一个下一个群集中心,使其距离所有其他群集中心尽可能远。因此,当| C | &lt; ķ,我们发现反复的点Ĵ ∈ P的量,距离d (Ĵ ,Ç )最大化,并且将其添加到Ç。一次| C | …

2
点图定义一个空间分区的数据结构/概念是什么
我遇到了一个解决现实世界问题的算法,并且记得在上一堂课时,我为一些家庭作业问题做了一些非常相似的事情。 基本上,这是点的图,并且绘制的线在两个点之间是等距的。它形成了一个完美的分区,其中围绕该点的线形成了最接近该点的区域形状。这会给任何人敲钟吗?我度过了艰难的时光,谷歌搜索描述并获得结果。而且我不知道该怎么形容。希望图片有帮助。

1
测试四面体是否位于多面体中
我有一个四面体 和一个多面体。受限制,使其始终与共享所有顶点。我想,以确定是否的谎言里面。Ťtt 吨p 吨pppŤttpppŤtt ppp 我想在问题上添加一个细节,以防可能对解决方案有所帮助:是Delaunay四面体,面是三角形,并且相对于顶点都是Delaunay。四面体是德劳内如果外接球的顶点包含在它里面没有其他的顶点。A面是强烈德洛奈如果存在其表面上含有该面的顶点,但没有其他顶点一个外接球上或内部的。Ťttpppppp 下图显示了空间中的相同问题: 2 d2D2D 原始多边形ppp: 的顶点的Delaunay三角剖分ppp: 对三角形进行内部/外部测试的结果Ťtt(阴影三角形位于 ,其余三角形位于外部):ppp 所需结果(在三角形外部修剪): 我最初的问题是在3D空间中,因此上图中的三角形转换为四面体,多边形转换为任意多面体。我已经弄清楚了这个问题的一些表述:pŤttpppppp 公式1 的唯一可以在之外的部分是它的边缘和三角形面,但通常可能存在一个,其表面上所有的外部都具有边,因此,也可以将此问题公式化为:测试四面体是否存在位于之外的面?p p t t pŤttpppppp ŤttŤtt ppp 公式2 对于这个问题,我还有另一种可能的观点,但是缺乏任何正式的想法:从 几何学上讲,如果在外部,那么它将始终粘附在的外表面上。因此,如果我们可以计算等高线(非正式地是外边界) 和使得和是的顶点集,则如果位于。 ŤttC ^ V Ç V p V = V 吨 ∪ V p V 吨,V p吨,p C ^ V = C ^ V …

2
具有扫描线算法的圆交集
不幸的是,我对扫描线算法的理解还不是很强。关于该主题的所有论文和教科书均已阅读,但理解距离还很远。为了更清楚一点,我尝试解决尽可能多的练习。但是,真正有趣和重要的任务仍然对我构成挑战。 我在万能杰夫·埃里克森(Jeff Erickson)的《线段相交》的讲义中发现了以下练习。 练习2。描述并分析扫掠线算法,以在给定平面中的圆的情况下确定在时间内是否有两个相交。每个圆都由其中心和半径指定,因此输入由三个数组和。注意正确实现低级原语。ññnØ (ñ 日志n )Ø(ñ日志⁡ñ)O(n \log n)X[ 1 .. n ] ,Y[ 1 .. n ]X[1 ..ñ],ÿ[1 ..ñ]X[1.. n], Y [1.. n]R [ 1 .. n ][R[1 ..ñ]R[1.. n] 让我们尝试使复杂的事情变得容易。我们对圆的交点了解多少?用线的交点可以找到什么类似物。如果两条线相邻,两条线可能会相交,两条圆应该具有哪个属性才能相交?令为圆心,和圆心之间的距离。考虑几种情况:ddd[R0[R0r_{0}[R1[R1r_{1} 情况1:如果,则没有解,圆是分开的。d&gt; r0+ r1d&gt;[R0+[R1d > r_{0} + r_{1} 情况2:如果那么就没有解决方案,因为一个圆包含在另一个圆内。d&lt; |[R0- - [R1|d&lt;|[R0-[R1|d < |r_{0} - r_{1}| 情况3:如果且则圆是重合的,并且解的数量是无限的。d= 0d=0d = …

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.