我需要一些输入来解决以下问题:
给定一组无序 (X,Y) 点,我需要减少/简化这些点并最终得到一个连通图表示。
下图显示了一个实际数据集的示例和相应的所需输出(我在 MSPaint 中手绘,对于糟糕的绘图感到抱歉,但基本思想应该足够清楚)。
其他一些事情:
- 输入大小将在 1000-20000 点之间
- 该算法将由用户运行,用户可以直观地查看输入/输出,调整输入参数等。因此不需要自动找到解决方案,但用户应该能够在相当有限的重试次数内实现(和参数调整)。这也意味着结果图上节点之间的距离可以是一个参数,不需要从数据中推导出来。
- 算法的时间/空间复杂度并不重要,但实际上它应该可以在标准台式机上几秒钟内完成运行。
我认为这归结为两个明显的问题:
1)运行一个过滤通道,减少点数(包括一些用于去除杂散点的噪声过滤)
2)之后的某种连接点图问题。在示例数据的底部/中心部分可以看到一个非常有问题的区域。很容易最终连接图表的错误部分。
谁能指出我解决这个问题的正确方向?干杯。