java - 获得两组点之间最近对的最佳组合

标签 java algorithm closest-points

我必须要点集,比如说集 A 和 B

  • A 和 B 大小相等
  • A的每个元素都耦合到B的一个元素

A的所有点都必须'移动'到B的一个点,但是B的一个点不能耦合到A的多个点。

我需要找到最佳组合,其中总(步行)距离(从每对之间的距离加起来)是最小的。

为了演示目的,我在 Java 中做了一个例子(目前暴力破解所有可能的组合并检查哪个具有最小的总距离)

示例 1

Example img 1

示例 2

Example img 2

绿色矩形代表集合A中的一个点,青色矩形代表集合B中的一个点,忽略橙色方 block

我该如何处理?

最佳答案

这是一个 assignment problem , 这可以通过 Hungarian algorithmO(n³) 时间内解决.找到源代码或自己实现应该不会太难。

关于java - 获得两组点之间最近对的最佳组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33264176/

相关文章:

php - PHP 中的大型静态数组

c - 将相同的函数应用于C中数组中的每个元素

c++ - 尝试查找数组中点之间的最小距离时随机垃圾输出

c# - 砖 block 在墙上的排列方式总共有多少种?

根据行驶巴士的路段确定午夜何时发生的算法

python - 最近邻搜索 : Python

java - 线程没有控制台输出。线程不起作用?

java - 使用 ISO 字符集压缩文件时,线程 "main"java.util.zip.ZipException : Not in GZIP format. 中出现异常

java - 如果用户向左或向右按​​太多,则应用程序为 FC

java - 如何在 Play 2.5.4 中使用 Guice 注入(inject)实用程序类