求解tsp的christofides算法。

Christofides的Python项目详细描述


这个包(christofides)提供了一种实现christofides算法的方法 求解旅行商问题(TSP)以获得近似解 在无向图(距离矩阵)上作为上三角矩阵提供。 假设节点到自身的距离为0。

用法

使用compute()函数,该函数将距离矩阵作为输入,并返回christofides解,如下所示:

from Christofides import christofides
TSP = christofides.compute(distance_matrix)

或:

import Christofides
TSP = Christofides.christofides.compute(distance_matrix)

距离矩阵是一个上三角矩阵,从节点到自身的距离为0,因为christofides算法 只能应用于无向图。同时,节点到自身的距离实际上是0。 距离矩阵的示例如下: 距离矩阵=

[[0,45,65,15],
 [0,0,56,12],
 [0,0,0,89],
 [0,0,0,0]]

当我们要计算 距离=

[[0,45,65,15],
[45,0,56,12],
[65,56,0,89],
[15,12,89,0]]
christofides.compute(距离矩阵)返回带以下键的字典:
christofides_解决方案, 旅行费用, MST公司, 奇数顶点 索引, 多重图, 欧拉之旅
  • dt> ChistoFieSex解:一个由TSP近似旅行组成的列表。< /dt >
    使用:tsp['chistofides_solution']
  • 差旅成本:生成的TSP差旅成本。
    使用:tsp[“差旅费用”]
  • mst:在christofides算法中生成的最小生成树。
    使用:tsp['mst']
  • 奇数顶点:最小生成树的奇数顶点列表。
    使用:tsp[“奇数顶点”]
  • 索引:奇数顶点的最小代价完美匹配的边列表。
    使用:tsp[“索引”]
  • dt>多重图:索引后形成的多图边. < /dt>
    使用:tsp['multigraph']
  • 欧拉旅行:多重图的欧拉旅行。
    使用:tsp['euler_tour']

christofides中的支持函数

  • CSR生成三倍(CSR矩阵)
  • mst的奇数顶点(距离矩阵,节点数)
  • 最小munkres(距离矩阵,二部图)
  • munkres_cost(索引,二部图)
  • 二部图(距离矩阵、二部集、奇数顶点)
  • 创建多图(距离矩阵、mst、索引、奇数顶点)
  • Euler_Tour(多重图)
  • 快捷方式游览(游览)
  • 费用(Christofides_Tour,Distance_Matrix)

安装

python setup.py安装

附加套餐

神经病,神经病,神经病,口吃

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

推荐PyPI第三方库


热门话题
多线程重新构造使用线程池和BlockingQueue的I/O密集型Java web服务   java SWT CTabFolder检查CTAB是否存在   java如何防止具体类的实例化?   java如何将子域定向到正确的JBoss应用程序?   java Android外部文件出现不一致   java FileSystemNotFoundException:未安装提供程序“jndi”   显示jframe上的java隐藏单选按钮   java CXF客户端TCP连接在每个请求之间关闭   Hadoop查询、日期、循环、BASH或Java   java从长类型到十进制类型对象的转换类型错误   java为什么不在用户消息中提供用户提供的数据?有可能的威胁/攻击吗?   使用作用域存储MediaStore的应用程序中的java共享意图问题   java我可以通过将成员指针传递给方法并在方法中分配来初始化它吗?   java如何在一个包含正负值的数组中找到最大的负值?   java有比较二叉树路径的简单方法吗?   java Swagger(ui)不显示操作   java KairosDB缺失值的线性插值   用于此特定求和的java循环