一个计算最短距离的问题想请教大家

2019-12-14 00:03:47 +08:00
 IanHo

有一个送货点 A 和三个仓库甲乙丙,四个点的坐标都是已知道的,那自然就能算出 A 到甲乙丙哪个仓库距离最近了。

那么现在有 N 个不同的送货点和 M 个仓库,怎么为这一批送货点选出各自最近的仓库呢?

目前我的方案比较蠢,一个一个地计算距离。所以想问下各位大佬,有没有这方面的算法或者优化方案之类的,可以减少计算量,提高效率。小弟在此谢过大家了!🙏🙏🙏

3639 次点击
所在节点    算法
10 条回复
opengps
2019-12-14 00:07:43 +08:00
首先经纬度一定的值进行网格分类,粗略归类虽然有不足,但是起码都是小误差
IanHo
2019-12-14 00:09:48 +08:00
@opengps 你好,假设经纬度都是有的话,能具体说说怎么进行网格分类吗?感谢
HuLiY
2019-12-14 00:30:02 +08:00
R 树可以快速求最近邻
zhzy
2019-12-14 00:31:58 +08:00
有点像最近点对问题 跳过同类型的点只计算不同类型点对 但不清楚这是不是最优解法
zhzy
2019-12-14 00:41:28 +08:00
@zhzy @zhzy 看错了,以为只需要找到一个最近的。应该更像是运输问题,把运费和产量设成一个比较大的数字就可以了
min
2019-12-14 01:08:38 +08:00
供应链优化问题
em70
2019-12-14 01:23:00 +08:00
把一个城市画格子,6 格或者 9 格,每个格子里的送货点只由格子内的货仓送货,无需遍历全部货仓。比如[1,2,3,4]送货点由[a,b,c,d]负责送货,[4,5,6,7]送货点由[e,f,g,h]负责送货,这样计算量就大大下降了
eason1874
2019-12-14 01:30:41 +08:00
用 空间查询 Spatial query,好像很多数据库本身就支持这个功能。
shiny
2019-12-14 02:48:47 +08:00
最简单的办法:Geohash
sengxian
2019-12-14 09:26:11 +08:00
kd 树

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/628912

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX