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代码中的类型冲突   谷歌应用引擎Java还是Python?   如何将java bean传递到jsp页面,以便jqQrid使用json显示?   在编译kotlin代码时,kotlin编译器如何处理java代码?   java不准确地更改JTextPane中的文本颜色   反应式编程AWS SDK v2 SdkAsyncHttpClient使用Java 11 Java实现。网http HttpClient sendAsync   在Spring AMQP中,java根据队列的消费者计数来消费队列   java在ArrayList的add()方法中创建新对象会导致内存泄漏。我能做什么不同的事?   未将java BufferedReader特定行追加到字符串   用于聊天程序格式化的java JavaFX 2文本区   java如何从netbeans项目生成exexutable文件?   swing如何在Java中使用JButton操作调整JWindow的宽度和高度?   java有没有办法在spring boot中使用jasypt aes加密和解密?   java通过使用泛型如何将映射作为集合传递给方法?   java如何替换不推荐使用的构造函数DynamoDBMapperFieldModel