求解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第三方库


热门话题
java如何在数据库中插入行时自动发送电子邮件?   从进程输出读取的Java问题   java质疑StyledDocument和JTextPane之间的关系,以及接口的正确使用   java错误getPlayer(args[0]);   java如何使Spring引导在重新打包的WAR中包含清单文件?   Java中的除法与模   java使用2d数组和JfreeChart制作散点图   java扩展SonarQube FindBugs插件和自定义FindBugs插件   javaspring:hibernate+ehcache   具有不正确的equals和HashCode实现的java HashMap   java Jaspersoft报告网。旧金山。jasperreports。发动机例外:net。旧金山。jasperreports。发动机填满JRepressionEvalException:计算表达式时出错   java如果输入与其变量不匹配,如何添加错误   在java中使用简单数组[]实现队列   无法启动上下文路径/hsx上的java FAIL应用程序