【发布时间】:2013-07-22 10:30:03
【问题描述】:
我有一个项目数组(约 5000 个项目,每个项目都是一个英文单词)和一对项目之间的距离函数。我想在数组中找到一组项目,其中组内的所有项目都满足距离标准(例如,每对项目的距离小于 2)。组通常应尽可能大,但对此没有正式定义或硬性要求。
我的实现语言是 PHP,但我正在寻找有关可以有效处理此问题的算法的一般建议。
更新:我想我可以通过构建一个图来解决这个问题,其中顶点是项目,并且项目之间存在满足距离约束的边。一旦我构建了图,我就可以运行像 Bron-Kerbosch 这样的算法来列出所有最大派系。如果这可行,我会更新,但在此期间随时添加您的想法。
【问题讨论】:
-
我们称距离函数为“Levenshtein”? PHP 几乎是你能找到的最糟糕的选择。说真的,除了网络应用程序之外,它对任何东西都没有好处。如果您想要更详细的答案,请更准确地定义“组”。 DBSCAN 是否适合您?
标签: php algorithm cluster-analysis array-algorithms