给定一组点,找到最大三角形数

时间:2013-05-31 03:54:34

标签: java algorithm graph-algorithm

是否有算法可以告诉您在给定一组点的情况下连接哪些点以形成三角形?没有连接线可以相交,但三角形可以在其他三角形内。

3 个答案:

答案 0 :(得分:1)

鉴于R^d中的一般点集,Delaunay triangulation通常是曲面细分的最佳选择。

具体来说,Delaunay三角剖分将把点集的凸包镶嵌成一组非重叠元素,确保最大周边的半径最小化 - 这意味着三角测量在其&#方面是最优的。 34;紧凑性",或换句话说,生成具有良好纵横比的元素。

构建Delaunay三角剖分的高效算法并非易事,但有很多好的库 - 我可以推荐TriangleCGALQhull(对于高维问题) JDT显然是Java中的一个实现,尽管我从未使用它。

答案 1 :(得分:0)

我不确定这正是您所寻找的,但它可能会有所帮助:Graph Theory

答案 2 :(得分:0)

我也试图解决这个问题。 This是指向Ingress游戏的人员的github分支的链接,这就是我对该解决方案感兴趣的原因。然而,据我所知,最佳解决方案是通过蛮力(我可能在这方面可能是错误的)找到的,并且还有其他因素可以最大化和最小化。此外,我认为有一些东西,如采用E6纬度/经度和投影到Gnomonic投影,以确定最短的路线,但我认为这可以通过代码时打折。我不认为这个代码中有你的解决方案,但对于你,我和其他任何研究这个问题的人来说,这可能是一个很好的起点。