首先我们需要对蚁群算法有个大概的了解,你可以先前往蚁群算法
有了大概了解后,在根据大概的流程图阅读下面代码,一步步自己动手实现。以下代码附带注释无需过多说明。
import time
import numpy as np
import random
class MMAS(object):
def __init__(self):
super(MMAS, self).__init__()
self.a = 1 # 信息素的幂
self.b = 6 # 启发式的幂
self.p = 0.1 # 挥发系数
self.m = 3 # 蚂蚁的个数
self.n = 5 # 城市个数
self.N_max = 10
self.dis = np.loadtxt('seleman.txt') # numpy直接读取邻接矩阵
self.tao = np.ones((self.n, self.n)) * 0.1 # 初始化tao,根据实验证明取 1/(n*L) n是城市数量,L是较小的正实数,这里随意取,原文初始的值记作tao_0
self.info