序列排序算法的实现。

seriate的Python项目详细描述


系列化

给定距离矩阵的集合中元素的最优排序。

Travis build statusCode coveragePyPi package statusstability: stableApache 2.0 license

example

OverviewHow To UseContributionsLicense

概述

这是Seriation的python实现 算法。系列化是对集合中的元素排序的一种方法,以便 序列成对距离之和最小。我们陈述这个任务 作为旅行商问题(tsp)并利用强大的Google's or-tools 做重担。由于tsp是np难的,因此无法计算 大量元素的精确解。但是,或工具 启发式方法在实践中非常有效,并在google地图中得到了应用。

任何^{}-ed 结果是相等的。

如何使用

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, 1]
  2. [2, 2, 2]
  3. [3, 3, 3]
  4. [4, 4, 4]
  5. [5, 5, 5]

pdist来自^{} 默认情况下使用欧几里德(L2)度量,因此 [x, x, x][x + 1, x + 1, x + 1]是常数:√3。任何其他距离 是更大的,所以最佳顺序是在 正常秩序。

贡献

我们非常欢迎和期待您的贡献!请按照code of conduct进行操作 阅读contribution guidelines

许可证

apache-2.0,请参见LICENSE.md

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java为什么每次Listview都会出现线性布局?   java如何下次显示文件选择器选择的下一个图像   多线程在Java中线程死亡时ThreadPoolExecutor会发生什么   列表的java筛选器<List<String>>   从TreeViewer(SWT/Mac 10.6.8)拖动时未传递java MouseMove事件   NetBeans Java代码的完成太过迫切了   java无法打开Generated。xlsx由Apache POI提供,我将其发送到前端并从浏览器下载(消息:文件已损坏,无法打开)?   在Java中生成2d Json数组   java ClassNotFoundException:org。postgresql。作为jar文件运行项目时的驱动程序   java使用未完全初始化的“this”作为参数实例化对象   Java/Android:字面上比较两个日历对象的日期   java“x”是一个过程,当我已经在使用call时,请使用“call”   java Spring安全Google登录会话Rest服务