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

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值