• 蚁群算法【2】 优化方法


    《混沌扰动模拟退火蚁群算法低碳物流路径优化》

    《基于模拟退火蚁群算法的机器人路径规划方法》

    《_混合蚁群算法在容量约束车辆路径问题中的应用研究》

     

    《_多车场多车型最快完成车辆路径问题的变异蚁群算法

    这里解释一下集中度:

    信息素的每一行其实代表了从 横坐标对应的点  到 纵坐标对应的点 的 概率,每行最大值 就是 最有可能选择的点,如果这个概率很大,说明该行信息素已经比较稳定了,这个叫信息集中度;

    然后所有行的  信息集中度 最小的已经很大了,说明 整个信息素已经比较稳定了;

    我试过这种方法,有一定的效果,需根据实际情况调节参数,主要是在算法后期微调新解;

    ### 入侵算子
    # 信息集中度
    pheromone_stand = pheromone / pheromone.sum(axis=1)[:, np.newaxis]
    focue_row = sorted(pheromone_stand.max(axis=1))
    # print(focue_row)
    focue_matrix_max = np.max(focue_row)        # 这里取的最大 信息集中度
    focue_matrix_min = focue_row[2]
    print(focue_matrix_min, focue_matrix_max)
    if focue_matrix_min > 0.25:
    # if focue_matrix_max > 0.97:
        if random.random() < 0.3:
            # 归一化 是 为了 和 随机矩阵 数值大小一致,否则加上的扰动效果微乎其微
            # 归一化 而 不是 标准化,因为标准化会产生负数
            # 归一化后 乘以 2,是为了 保持 之前信息素的 正反馈,否则 相当于从头训练,效果不好,且时间很长
            pheromone = ((pheromone - pheromone.min()) / (pheromone.max() - pheromone.min())) * 2 \
                        + np.random.rand(stat_num, stat_num)

    《_高速铁路乘务计划编制优化理论与方法研究》

    很简单,每次迭代,除了更新 蚁群 的信息素,把历史最优的路径的信息素也更新一下 

    每次迭代,表现好的蚂蚁才释放信息素,或者 释放 的信息素 权重更大 

    双重信息素

    《_时变多车型下的生鲜农产品配送路径优化模型》

     

     

  • 相关阅读:
    android提供ToolBar实现划动菜单的陷阱
    style="display"之后不能获取offsetHeight或clientWidth这类测量的值
    onmouseenter与onmouseover
    使用Dom的Range对象处理chrome和IE文本光标位置
    js严格模式“use strict”
    正则表达式lastIndex属性浅析
    IE中的fireEvent和webkit中的dispatchEvent
    readonly=“readonly”与readonly=“true”
    【杂文】
    【洛谷p1015】【一本通p1309】回文数(noip1999)
  • 原文地址:https://www.cnblogs.com/yanshw/p/15722440.html
Copyright © 2020-2023  润新知