资源简介
用python实现果蝇优化算法,并将该算法进行sphere函数的优化,注释较为详细。因初学python,对另外对果蝇优化算法的理解还不够深入
代码片段和文件信息
import random
import numpy as np
import matplotlib.pyplot as plt
“““————————定义sphere函数————————“““
def sphere(dimsmell):
sum=0
# Z=[smell for x in range(0dim)]
for i in range(dim):
sum+=smell[i]**2
return sum
“““————————算法开始————————————“““
#迭代次数
maxgen=1000
#种群数量
sizepop=100
#维度
dim=20
#在进行初始化操作之后,第一次finess统计时的适应度值
smellList=[]
#用于存放每次迭代的最优值
allFiness=[]
#用于存放果蝇的位置坐标
X=np.zeros((sizepopdim))
Y=np.zeros((sizepopdim))
#存放距离数值
Distance=np.zeros((sizepopdim))
#存放距离的倒数
Smell=np.zeros((sizepopdim))
“““-----找出第一次的最佳位置,用于和以后的迭代巡游进行对比----“““
for i in range(sizepop):
for j in range(dim):
#根据果蝇种群数量和维度进行位置初始化附与果蝇个体利用嗅觉搜寻食物之随机方向与距离
X[ij]=10.0*random.random()+2*random.random()-1
Y[ij]=10.0*random.random()+2 * random.random() - 1
for i in range(sizepop):
for j in range(dim):
Distance[ij]=(X[ij]**2+Y[ij]**2)**0.5
Smell[ij]=1/Distance[ij]
smellList.append(sphere(sizepop Smell[i]))
#找出群体中适应度最小的值
finess=np.min(smellList)
#较好果蝇位置的坐标索引
index=smellList.index(min(smellList))
#存放第一次果蝇较好的适应度值
allFiness.append(finess)
#将第一次果蝇位置较好的坐标进行记录
x=X[index]
y=Y[index]
“““-------迭代寻优开始------“““
for i
- 上一篇:通过python实现批量excel转pdf代码
- 下一篇:dbfpy操作dbf文件
相关资源
- Python-BDD100K大规模多样化驾驶视频数据
- Instant Pygame for Python Game Development How
- Biopython Tutorial
- Think Python 2nd
- 一个小小的表白程序(python)
- Python课堂笔记(高淇400集第一季)
- 二级考试python试题12套(包括选择题和
- pywin32_python3.6_64位
- python+ selenium教程
- PycURL(Windows7/Win32)Python2.7安装包 P
- 英文原版-Scientific Computing with Python
- 7.图像风格迁移 基于深度学习 pyt
- 基于Python的学生管理系统
- A Byte of Python(简明Python教程)(第
- Python实例174946
- Python 人脸识别
- Python 人事管理系统
- 基于python-flask的个人博客系统
- 计算机视觉应用开发流程
- python 调用sftp断点续传文件
- python socket游戏
- 基于Python爬虫爬取天气预报信息
- python函数编程和讲解
- Python开发的个人博客
- 基于python的三层神经网络模型搭建
- python实现自动操作windows应用
- python人脸识别(opencv)
- python 绘图(方形、线条、圆形)
- python疫情卡UN管控
- python 连连看小游戏源码
评论
共有 条评论