序列排序算法的实现。
seriate的Python项目详细描述
系列化
给定距离矩阵的集合中元素的最优排序。
Overview•How To Use•Contributions•License
概述
这是Seriation的python实现 算法。系列化是对集合中的元素排序的一种方法,以便 序列成对距离之和最小。我们陈述这个任务 作为旅行商问题(tsp)并利用强大的Google's or-tools 做重担。由于tsp是np难的,因此无法计算 大量元素的精确解。但是,或工具 启发式方法在实践中非常有效,并在google地图中得到了应用。
任何^{
如何使用
importnumpyfromscipy.spatial.distanceimportpdistfromseriateimportseriateelements=numpy.array([[3,3,3],[5,5,5],[4,4,4],[2,2,2],[1,1,1]])print(seriate(pdist(elements)))# Output: [4, 3, 0, 2, 1]
上面的例子显示了我们如何排序5个元素:[3, 3, 3]
,
[5, 5, 5]
、[4, 4, 4]
、[2, 2, 2]
和[1, 1, 1]
。结果
应为:
[1, 1, 1]
[2, 2, 2]
[3, 3, 3]
[4, 4, 4]
[5, 5, 5]
pdist
来自^{[x, x, x]
和[x + 1, x + 1, x + 1]
是常数:√3。任何其他距离
是更大的,所以最佳顺序是在
正常秩序。
贡献
我们非常欢迎和期待您的贡献!请按照code of conduct进行操作 阅读contribution guidelines。
许可证
apache-2.0,请参见LICENSE.md。