scipy.optimize.linear_sum_assignment 相当于 Java

scipy.optimize.linear_sum_assignment equivalent in Java

出于某些需要,我正在尝试将 python 算法重写为 Java。

在python算法中我有以下代码:

row_ind, col_ind = linear_sum_assignment(cost)

linear_sum_assignment 是一个 scipy function

你们知道 java 中那个函数的等价物吗?我找到了 this one 但我没有在这个中得到行索引和列索引。

我终于用这个 HungarianAlgorithms 和下面的代码做到了:

// Using Hungarian Algorithm assign the correct detected measurements
// to predicted tracks
int[] assigmentL = new HungarianAlgorithm(cost).execute();
List<Integer> assigment = Lists.newArrayList(Ints.asList(assigmentL));

我在 kotlin 中分享了一个答案,如果有人感兴趣,基于相同的 Hungarian Algorithm:

val costMat = arrayOf(
    doubleArrayOf(0.5, 0.8, 0.6),
    doubleArrayOf(0.3, 0.2, 0.5),
    doubleArrayOf(0.1, 0.3, 0.7)
)
val assignmentL = HungarianAlgorithm(costMat).execute()
val assignment = listOf(costMat.indices.toList(), assignmentL.toList())