蚁群算法_Python实现

import numpy as np

class AntColony:
    def __init__(self, distances, n_ants, n_best, n_iterations, decay, alpha=1, beta=1):
        # 初始化蚁群算法的参数
        self.distances = distances  # 城市间的距离矩阵
        # 初始化信息素矩阵, 行列为输入的distances的行列, 每个信息素的初始值为1/distances的行数, 也就是说每行信息素的和都=1
        self.pheromone = np.ones(self.distances.shape) / len(distances)
        self.all_inds = range(len(distances))  # 城市索引, 列表=[0,1,2,3...len(distances)]
        self.n_ants = n_ants  # 蚂蚁数量
        self.n_best = n_best  # 选择的最佳路径数量, b_best=1
        self.n_iterations = n_iterations  # 迭代次数
        self.decay = decay  # 信息素衰减率
        self.alpha = alpha  # 信息素重要性因子
        self.beta = beta  # 启发式信息重要性因子

    def run(self):
        shortest_path = None  # 当前迭代中的最短路径
        all_time_shortest_path = ("placeholder", np.inf)  # 全局最短路径, np.inf代表无穷大
        for i in range(self.n_iterations):
            all_paths = self.gen_all_paths()  # 生成所有蚂蚁的路径
            self.spread_pheronome(al
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值