6-2免疫算法(IA)代码

点击查看完整代码http://www.daimapi.com/algorithm6_2/

利用Python3实现。

# -*-coding: utf-8-*-
######免疫算法求解 TSP 问题##########
import math  # 调用数学库里面的相关函数
import random  # 生成随机数
import matplotlib.pyplot as plt #python 绘图模块
import numpy as np

'''
    旅行商问题:构造城市
'''

# 取编号为 x,y 城市之间路径的权值
# 这里分三种情况,当x>y时,返回生成列表 ;当x y:
        return val_list[x - 1][y - 1]
    elif x == y:
        return 0
    elif x < y:
        return val(y, x)

## 随机生成抗体群,抗体编码从 1 开始
def shuffle_list():
    # 辅助函数,生成一个洗牌之后的数组,且第一个元素为 1
    res_list = list(range(2, num_of_city + 1))
    random.shuffle(res_list)
    return [1] + res_list

# 产生抗体列表
def produce_antibody_list():
    return [ shuffle_list() for i in range(size_of_antibody_list) ]

# 根据抗体群产生抗体信息群
# affinity 相似度
# density 浓度

## 三个辅助函数

# 计算抗体间的相似度(此处采用两向量的欧几里得距离),返回一个布尔值,表示是否低于门限值
def simularity(antibody1, antibody2, threshold):
    return np.linalg.norm(np.array(antibody1) - np.array(antibody2)) <= threshold

猜你喜欢

转载自blog.csdn.net/aeoob/article/details/81079391
6-2