我正在寻找合适的算法来解决以下问题:
对于向量v(Nx1,双精度,单精度),我需要查找满足以下条件的该向量(对)的项目组合:
每个项目仅分配一对
所有分配的对(违反)上的物品距离之和最小
该函数的输入是附加参数vio_max,它限制了对非赋值的违反
[pairs,dist,vio] = findpairs(v,vio_max)
ExampleA:
输入:v = [3.0 2.1 0.9 2.9 1.1],vio_max = 1.0
输出:对= [1 4; 3 5],dist = [0.1; 0.2],vio = sum(dist)= 0.3
第2.1项仍未分配(因为length(v)是奇数)
ExampleB:
输入:v = [3.0 2.1 0.9 2.9 1.1],vio_max = 0.15
输出:成对= [1 4],dist = [0.1],vio = sum(dist)= 0.1
注意: 问题已完全解决,请参阅:https://cs.stackexchange.com/questions/106214/find-separate-pairs-of-points-with-minimal-total-distance