4-2蚁群算法(ACO)代码

匿名 (未验证) 提交于 2019-12-03 00:41:02

# -*- coding: utf-8 -*- import numpy as np import matplotlib.pyplot as plt  coordinates = np.array([[565.0,575.0],[25.0,185.0],[345.0,750.0],[945.0,685.0],[845.0,655.0],                         [880.0,660.0],[25.0,230.0],[525.0,1000.0],[580.0,1175.0],[650.0,1130.0],                         [1605.0,620.0],[1220.0,580.0],[1465.0,200.0],[1530.0,  5.0],[845.0,680.0],                         [725.0,370.0],[145.0,665.0],[415.0,635.0],[510.0,875.0],[560.0,365.0],                         [300.0,465.0],[520.0,585.0],[480.0,415.0],[835.0,625.0],[975.0,580.0],                         [1215.0,245.0],[1320.0,315.0],[1250.0,400.0],[660.0,180.0],[410.0,250.0],                         [420.0,555.0],[575.0,665.0],[1150.0,1160.0],[700.0,580.0],[685.0,595.0],                         [685.0,610.0],[770.0,610.0],[795.0,645.0],[720.0,635.0],[760.0,650.0],                         [475.0,960.0],[95.0,260.0],[875.0,920.0],[700.0,500.0],[555.0,815.0],                         [830.0,485.0],[1170.0, 65.0],[830.0,610.0],[605.0,625.0],[595.0,360.0],                         [1340.0,725.0],[1740.0,245.0]])  def getdistmat(coordinates):     num = coordinates.shape[0]     distmat = np.zeros((52,52))     for i in range(num):         for j in range(i,num):             distmat[i][j] = distmat[j][i] = np.linalg.norm(coordinates[i] - coordinates[j])     return distmat  # 获得大于0的元素的索引 def find(cumsumprobtrans):     index = []     for i in range(0, len(cumsumprobtrans)):         if cumsumprobtrans[i] > 0:             index.append(i)     return index 
点击查看完整代码
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!