christofides算法在python中的实现。

python-christofides的Python项目详细描述


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

用法

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

from pyChristofides import christofides
TSP = 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安装
或:
pip安装python christofides

附加套餐

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

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

推荐PyPI第三方库


热门话题
java Hibernate会话。save()不返回值吗?   java JMS应用程序发布订阅   java使用字符串创建一个长度为n,高度为n的正方形   java如何在MySQL的SQL查询中传递ArrayList<>如IN子句   安卓 java。lang.IllegalArgumentException:指定为非null的参数为null:方法kotlin。jvm。内部的内在的。检查参数不完整   如何用Java绘制交互式图形/线条?   java Blackberry移动Web应用快捷方式   java Json LocalDateTIme问题   java更改密钥的颜色   java在过滤条件之后在流上迭代时如何获取上一个对象   Java:按位和创建无符号字节   java在JavaScript中检索Velocity循环变量   java JButton不会出现在GUI上   java Cell API json转换到POJO   java在模拟中初始化静态最终变量