我有一个20,000点的gps位置数组。
它们表示需要检查的林路径上的点。我需要弄清楚需要检查多少公里的森林路径。
我应该考虑哪种算法以及使用哪种算法。
我应该获得最短路径并将其分解为路线或获取路线,然后找到每条路线的短路径。
答案 0 :(得分:2)
此解决方案假设您只有点,并且不知道点在哪条森林路径上,以及以何种顺序等。
我会这样试试:
1通过链接将每个节点相互连接,并且链路权重使用距离(或者更好的节点之间以2km / h为单位的秒数:在木材中行走的速度较慢然后在existimg森林公路上)
2如果森林有扩散(山脉,河流,河流):
2a:上升/下降:提高链接重量,使用海拔高度差异,查看室外规划资源,上升多少米对行车时间有影响。 (300米可能是一个小时的粗略估计)2b:山谷,河流或其他限制:如果不能直接从一个点移动到另一个点,要么再次增加重量,要么移除链接。 (例如,将山谷绘制为多边形并移除所有穿过多边形的链接)
木材中是否已有路径/森林道路? 是的,将它们绘制为模式(图形)的链接,使用链接权重,e,.g 5km / h步行速度。
现在你有了一个包含节点的图表,以及与节点之间的行进速度相关的希望实际链接权重的链接。
现在使用Shortes路径(Dijkstras算法)和旅行推销员算法。
如果这一切都有很多工作(对于拥有计算机科学学位的人来说可能需要几个月),请手动计划:绘制一个1000 x 1000米的光栅并让人类智慧 做好自己的工作。
由于必须通过步行检查需要20,000点,因此需要付出很大的努力,因此评估自动计划与人类体验相比具有额外的价值。尝试两种变体,看看哪种更有效。
(我认为那些拥有户外经验的人,如果拥有一张带有计数线的优质地图及其上的检查点,将会做得更好,因为它可以通过点二象限和人员的象限来预先组织。)
答案 1 :(得分:0)
这个问题似乎与受约束的车辆路径问题类似。您可以尝试启发式算法,例如储蓄算法:http://neo.lcc.uma.es/vrp/solution-methods/heuristics/savings-algorithms/。
答案 2 :(得分:0)
我的另一个问题:
这假设您有更多尚未发布的信息:
您可能拥有的信息不仅仅是点的坐标。 谁创造了这一点?在你的图形中,它们看起来像是在路径上。 是否在驾驶该车道的路上记录?然后你有一个时间戳,因此是一个序列的顺序,并且之前已经与路径相关。
所以第一步是将点分配给路径。 (您还可以将所有称为矢量的森林路径绘制到数字地图中,并将点自动匹配到neareast路径)
当你无法直接到达每个节点的直线时,你需要这些路径(例如,当河流避开直线直线路径时,乘车或用木头行走)
然后,如果链接上有节点的图表,请使用最小的spaning树来计算以千克为单位的路径长度之和。
对于vists积分,你经常需要返回分支,因此旅行推销员算法将有助于给予访问所有节点所需的千克。