Questions tagged «algorithm»

一种用于通过一系列步骤解决问题的数学过程。算法通常被编码为一系列计算机命令。

13
凹形船体的定义,算法和实用解决方案是什么?[关闭]
凸包 形状的凸包定义为: 在数学中,实向量空间V中的一组点X的凸包或凸包络是包含X的最小凸集(Wikipedia) Wikipedia使用橡皮筋类比很好地形象化了它,并且有一些很好的算法可以对其进行计算。 凹面船体 下图中的红线显示了凹壳(蓝线显示了凸壳)。直观地讲,它是一个包含所有点的多边形,但是与凸包相比,其面积较小(最小?)。结果,多边形的边界长度更长。 凹面船体可能是解决某些实际问题(例如,找到城市的合理边界)的解决方案。 我没有为凹面船体的概念找到合适的定义,算法和实用解决方案。该草Wiki有一些说明和图片,并且在商业解决方案concavehull.com。 有什么想法,算法和链接吗?

5
将纬度/经度偏移一定量的米的算法
我正在寻找一种算法,当给定纬度和经度对以及在笛卡尔坐标(x,y)中以米为单位的向量平移时,它将给我一个新坐标。有点像反向的Haversine。我也可以进行距离和航向变换,但这可能会比较慢并且不那么精确。理想情况下,当我在嵌入式系统上工作时,算法应该很快。精度并不严格,在10米以内就可以了。

7
寻找给定点的最小面积矩形?
正如您在图中看到的,问题是: 如何找到在给定点上拟合的最小面积矩形(MAR)? 一个支持的问题是: 这个问题有解决方案吗? (问题的发展将是使一个盒子(3D)适合3D点云中的点簇。) 作为第一阶段,我建议为解决问题的点(通过除去解决方案中不涉及的那些点)找到凸包,以: 将MAR拟合到多边形。 所需的方法将提供X(矩形的中心),D(二维)和A(角度)。 我的解决方案建议: 查找多边形的质心(请参阅查找对象的几何中心?) [S]拟合一个简单拟合的矩形,即平行于X和Y轴 您可以minmax对给定点的X和Y 使用函数(例如,多边形的顶点) 存储拟合矩形的面积 将多边形绕质心旋转例如1度 从[S]开始重复,直到完成旋转为止 报告最小面积的角度作为结果 在我看来,这很有希望,但是存在以下问题: 选择合适的分辨率以应对角度变化可能会充满挑战, 计算成本高, 解决方案不是分析性的,而是实验性的。

2
在Postgis中获得类似于ArcGIS的速度
我已经使用3/4年的Postgis 2.0了,虽然我真的很喜欢使用它,但是查询处理时间过长,使得它基本上无法用于我的用例。 我倾向于对通常具有成千上万个多面体的市政数据集进行繁重的地理处理。这些多面体的形状有时会非常不规则,每个多面体的范围从4点到78,000点不等。 例如,当我将一个包含329,152个多边形的宗地数据集与包含525个多边形的管辖权数据集相交时,我得到了以下消耗总时间的统计信息: ArcGIS 10.0 (on same host with windows 7 OS): 3 minutes Postgis:56 minutes (not including geometry pre-processing queries) 换句话说,在Postgis中进行此相交所需的时间比在ArcGIS中多1500%,这是我更简单的查询之一! 据说ArcGIS运行速度更快的原因之一是由于索引更好。一些程序员最近弄清楚了这些索引是如何工作的,我想知道是否有人知道如何在Postgis中构建这些索引(或构建可以模拟索引的表)。也许这可以解决Postgis中的大多数速度问题。我只能希望一定有办法,尤其是因为ArcGIS只能使用4 GB的RAM,而我的postgis服务器最多可以使用4倍的内存! 当然,postgis运行缓慢的原因有很多,因此,我将提供系统规格的详细版本: Machine: Dell XPS 8300 Processor: i7-2600 CPU @ 3.40 GHz 3.40 GHz Memory: Total Memory 16.0 GB (10.0 GB on virtual machine) Platform: Ubuntu …

3
GIS数据库中是否有更新的路由算法(比Dijkstra,A *)?
诸如微软研究人员的Reach for A *和Sanders和Schtolz的Highway Hierarchies(如果我正确拼写名字的话)都来自Karlsruhe Uni。两者都大大减少了计算顺序,并在大型图形上加快了数千倍的速度(请参见链接文档中的结果)。后者的工作导致了开源路由机器,不幸的是,它不够流行,并且没有适应(尽管努力了,但我无法编译)。 同时,根据他们的文档,我尝试过的数据库Spatialite和PgRouting仅提供Dijkstra和A *算法。我什至都没有提到双向搜索,根据我的经验,它可以节省两次计算时间。 是否有针对数据库或其他应用程序的更好算法?

7
计算距点的纬度/经度X英里?
我想找到一个给定方位角,距离和起始纬度和经度的纬度和经度点。 这似乎与这个问题相反(纬度/经度之间的距离)。 我已经研究过haversine公式,并认为它与世界的近似值足够接近。 我假设我需要为未知的经/纬度求解haversine公式,这正确吗?有没有很好的网站谈论这种事情?看来这很常见,但是我的谷歌搜索只出现了与上述问题类似的问题。 我真正在寻找的只是一个公式。我想给它起一个纬度/经度,方位角和距离(英里或公里),我想从中得出一个纬度/经度对,代表如果他们沿途旅行,最终会去哪里那条路线。

2
简化公差参数的含义
Douglas-Peucker的简化算法的标准参数是几何形状和公差(例如PostGIS中的ST_Simplify)。公差参数的含义是什么?我知道值越大,几何形状就越粗糙。但是数字是否有任何单位还是仅仅是任意的?

13
地图匹配的链接和想法?[关闭]
我正在使用OpenStreetMap及其矢量道路网络,并且想实现地图匹配器算法。 目前,我能够针对每个GPS位置检索最近的路段,并计算该位置对该路段的投影,就像在此图像上一样(红色图钉是纯GPS位置,蓝色表示已映射的路段,绿色表示映射位置): 但是,由于GPS的准确性不足,有时映射位置会从一个片段跳到另一个片段,并且有时会提供一些不一致的映射位置。 我当前的算法非常基础:从纯GPS位置开始,我得到最近的路段,并确定映射的匹配位置在该位置。我知道这确实可以改善。 我可以想象考虑车辆方向会改善地图匹配,但是您知道其他方法可以使我改善地图匹配器吗? 我需要任何链接和/或开源软件吗?

3
在计算两个经度点之间的距离时,为什么余弦定律比正弦定律更可取?
实际上,当Sinnott发布Haversine公式时,计算精度受到了限制。如今,JavaScript(以及大多数现代计算机和语言)使用IEEE 754 64位浮点数,该数字提供15位有效精度。有了这样的精度,余弦公式(cos c = cos a cos b + sin a sin b cos C)的简单 球面定律就可以提供良好的条件结果,直到小到1米左右的距离。 有鉴于此,在大多数情况下,使用更简单的余弦定律或使用更精确的椭圆形Vincenty公式(而不是正己烷)可能是值得的!(请注意以下关于球形模型精度限制的注意事项)。 资料来源:http : //www.movable-type.co.uk/scripts/latlong.html 余弦定律更可取的原因是什么? 注:引用的文字已经被更新,它的作者提到以下。

1
寻找物体的几何中心?
给定一组2D或3D点: 如何找到物体的几何中心? 根据下图,如果以最简单的形式(即均匀的质量密度)计算几何中心,则其不同于质量中心。实际上,问题在于计算这些问题。通常,一种方法是分别平均X坐标和Y坐标,即找到给定点的平均位置(此处为2D)。这可以用作表示对象的一组点的质心。如图所示,由于沿底部边缘的额外顶点,对于一个简单的矩形得到的质心是(0.5,0.4) ,而正确的答案是(0.5,0.5) 。 请注意,给出的示例太简单了。但是,感兴趣的问题是2D中的复杂形状和3D中的对象,对于这些对象,只有顶点坐标可用。 顺便说一句,一种有效的计算方法很受关注。 只需提一下,我已经检查了诸如Wikipedia之类的某些Web链接,但是我目前的问题是希望找到一组2D和3D点来代表这些点。因此质心引起了人们的兴趣。给出的点没有任何拓扑信息。您可以将它们视为点云。此处提供的演示清楚地表明,众所周知的坐标平均值(例如,参见此Stack Overflow Q&A)可能不正确,如示例中所示。 以下是一些比较的实现: aa =下面接受的答案 chull =点的凸包,即金色多边形 cent =质心,在Wikipedia中提出,在aa中作为多边形质心讨论 centl =折线的质心,如aa中所述 在视觉上,centl与相比,看起来更能代表给定的几何形状cent。另外两个在这里看起来很有希望,但是如果点的分散是不均匀的(通常情况下),它们通常会过于偏见。 并且还要考虑,尽管凸包使问题变得相当简单,但是它可能会产生太长和太短的边缘而在空间中没有任何对称的定位,也就是说,如果您对这两种情况都进行简单的平均(即不加权),则必须意识到:整个点(绿色)或凸包多边形顶点(蓝色)。 在查找给定点的最小面积矩形中可以找到一个应用程序?。

6
使用3个纬度/经度点和3个距离进行三边测量?
我想找出一个未知的目标位置(纬度和经度坐标)。有3个已知点(纬度和经度坐标对),每个点到目标位置的距离(以千米为单位)。如何计算目标位置的坐标? 例如,说我有以下数据点 37.418436,-121.963477 0.265710701754km 37.417243,-121.961889 0.234592423446km 37.418692,-121.960194 0.0548954278262km 我想要的是一个函数的数学运算,该函数将其作为输入并返回37.417959,-121.961954作为输出。 我从http://www.movable-type.co.uk/scripts/latlong.html了解了如何计算两点之间的距离。我不知道的是使用此输入来计算该点所需的数学。

2
计算UTM区域外的面畸变?
我的一位同事正在处理分布在两个UTM区域中的数据。大部分数据位于一个区域中,而一些异常值位于另一个区域中。他想知道如果这些离群值位于主UTM区域中,那么它们的区域失真会是什么。 是否知道已知特征在另一个UTM区域内的距离,可以使用公式来计算面畸变?

3
使用ArcGIS Desktop将多边形划分为特定的尺寸?
我在shapefile中有数千个形状不规则的多边形。我希望能够将每个多边形划分为三个区域,并指定这些区域的大小(它们与先前的总面积之和)。子多边形的形状无关紧要,因为这是出于可视化目的。 我该怎么做呢?有没有可以使用的标准算法? 我考虑的一种方法是获取构成多边形的所有点。然后,我将使用一条直线将两个随机连接在一起,分割多边形,然后检查该区域是否在令人满意的公差范围内。如果太小,我会朝一个方向改变点;如果太大,我将改为相反的方向。

2
寻求算法来检测圆以及圆的起点和终点?
我从固定滑翔机飞行员那里获得了许多飞行数据,这些数据以固定间隔的gps修复的形式出现。我想分析飞行路径,并检测滑翔机飞行员在发现热量时将进行的“绕圈”的开始和结束。 理想情况下,一种算法将为我提供直线上的起点和终点,从而定义一个“圆”。这些点可以等于gps修复之一,不需要插值。 我只是可以沿着飞行路线行走,检查转弯速率,并有一些标准来确定滑翔机是否在盘旋。 当我使用带有PostGIS扩展名的PostgreSQL时,我很好奇是否有更好的方法可以解决此问题。我已经有一个过程来计算两个线段的角度: CREATE OR REPLACE FUNCTION angle_between( _p1 GEOMETRY(PointZ,4326), _p2 GEOMETRY(PointZ,4326), _p3 GEOMETRY(PointZ,4326) ) RETURNS DECIMAL AS $$ DECLARE az1 FLOAT; az3 FLOAT; BEGIN az1 = st_azimuth(_p2,_p1); az3 = st_azimuth(_p2,_p3); IF az3 > az1 THEN RETURN ( degrees(az3 - az1)::decimal - 180 ); ELSE RETURN ( degrees(az3 - …

1
随机2D线之间的空间填充
考虑一个随机填充线的区域(2D)(下图)。我们感兴趣的是以某种方式填充线之间的空白,包括四个边界边: 0-最大化包裹的大小; 1-填充包裹的形状为水平或垂直对齐的正方形; 2-填充包裹的形状为正方形,即宽松的对齐方式; 3- 填充包裹的形状是任何四边形。 我们最初的问题 因此,目前有三种不同的方案。 请注意,这些线是[x1,y1,x2,y2]点集形式的实数。 [* * *] 可能的解决方案/算法/代码段/等的想法非常受欢迎。 更新1:我们可以为第一种情况管理解决方案: 步骤是: 1-将线 2-将线栅格化为位图 3-使用目标函数在附近的单元中搜索所需颜色(即相同颜色)的每个单元,以使其最大化面积,即细胞数量。 它运作良好,但是仅涵盖第一种情况,而且速度较慢。 更新2: 我们假设读者熟悉空间填充-平铺的概念。您可以点击链接获取灵感。但是请注意,我们的问题有所不同。由于我们不会随机填充空白空间,因此不会随机选择尺寸。解决方案应该是迭代的。对于所有情况,安装的包裹数量没有限制。实际上,由用户来限制迭代次数,例如,通过选择包裹的最小面积。这在上面给出的示例中很明显,在该示例中,我们将行离散为具有指定大小的像素。即,该程序应一直运行到按照标准(例如包裹的最大面积)填满整个空白区域。 更新3: 摘要: 一种应用是找出严重断裂的“矿井”中可提取的完整“岩石”砖块的分布。这可能对许多方面都非常有帮助,包括钻孔设计,财务评估等。 描述: 对于装饰性岩石(石材)矿来说,产品是将完整的岩石块切成矩形立方体,其价格密切依赖于产品的尺寸。块。如果剩余部分的数量尽可能少,则需要从合适的区域(即没有大的裂缝)中提取块。通常,小块岩石相对没有经济价值,因此被视为浪费。 这篇文章中的问题探讨了此类问题的解决方案。 该问题的数学视图可以描述如下: 2D:找到可以从给定2D区域中提取的所有矩形,并使用一些针对最大矩形尺寸进行了优化的线。 3D:找到可以从给定3D区域中提取的所有矩形立方体,其中一些子平面(更好的是多边形)已针对可能的较大块尺寸进行了优化。 由于这是正在进行的研究的一部分,因此以下注释中提出的某些问题没有我们可以提供的某些答案。我们认为,到目前为止,此处提供的信息确实足以了解问题的整体情况。但是,我们会尽力提供一些细节,以获取社区利益。 您可能会对最终问题的解决方案设置一些限制,尽管我们认为以后总是可以添加更多内容。例如,遵循以下步骤:{2D情况} 在示例中给出了在 上述条件下要提取的块的最佳大小(经济上最佳的矩形)。这是基于经济价值定义的一个约束。切割等的最小可行尺寸1x1 m10x10 m0.15x0.15 m; 所以这是第二个大小限制。 上图显示了取决于块大小的经济价值函数。因此,对于这种特殊情况,每块比0.15x0.15 m不小的岩石都只是浪费。不会1.7x1.7 m由于操作限制而导致更大的块大小。

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.