基于参数和约束匹配数据

Matching data based on parameters and constraints

我一直在研究 k 最近邻算法,因为我可能会在不久的将来开发一个匹配战士(拳击手)的应用程序。

我提出这个问题的原因是,根据规则集,根据多个参数和约束条件来确定approach/algorithm匹配战士时使用哪个最好。

每个战士的相关属性如下:

现在有一些关于匹配战士时允许的规则集:

现在显然是完美匹配,所有与会者都与符合规则集的另一名拳击手匹配。 并且最主要的优先事项是尽可能多地匹配彼此的战士。

K-nn 是可行的方法还是有更好的方法? 如果是哪个?

评论太长了。

为了使用 K-nn 获得最佳结果,我建议使用主成分。这些允许您使用更多的维度并通过 space 很好地传播数据以获得良好的邻域。

关于合并现有规则,您有两种选择。也许,最好的方法是将它构建到你的距离函数中。或者,您可以采用较大的邻域并将其构建到组合函数中。

我会选择 k 最近邻搜索。由于您的数据集是低维 space(即 3),我会使用 CGAL 来执行任务。

现在,您唯一需要做的就是像这样创建一个距离函数:

float boxers_dist(Boxer a, Boxer b) {
  if(abs(a.year - b.year) > 2 || abs(a.weight - b.weight) > e)
    return inf;
  // think how you should use the 3 dimensions you have, to compute distance
}

你已经完成了......现在去战斗吧!