遗传算法计算函数最小值f(x)=∑xi^2 基于matlib与python对比

采用种群数100,实数编码,进化100代交叉概率0.8,变异概率0.1

# -*- coding: utf-8 -*-
""""""import numpy as np#适应度函数
def func2(x):summ=sum(pow(x,2))return summD=10
NP=100
Xs=20
Xx=-20
G=100
Pc=0.8
Pm=0.1
nf=np.zeros((D,NP))
f=np.random.rand(D,NP)*(Xs-Xx)+Xx
Sortf=np.zeros((D,NP))
NSortf=np.zeros((D,NP))
MSLL=np.zeros(NP)
NMSLL=np.zeros(NP)
NMSLL1=np.zeros(NP)
#Index=np.zeros(NP)
trace=[]
for w in range(NP):          MSLL[w]=func2(f[:,w])     #MSLL是f的适应度
Index=np.argsort(MSLL)
SortMSLL=sorted(MSLL)           #SortMSLL是从低到高排序后的MSLLSortf=f[:,Index]             #由f升序得到for gen in range(G):Emper=Sortf[:,0]          #选择君主NoPoint=round(D*Pc)      #交叉点个数PoPoint=np.random.randint(0,D,[NoPoint,int(NP/2)])nf=Sortffor i in range(int(NP/2)):nf[:,2*i]=Empernf[:,2*i+1]=Sortf[:,2*i+1]for k in range(NoPoint):nf[PoPoint[k,i],2*i]=nf[PoPoint[k,i],2*i+1]nf[PoPoint[k,i],2*i+1]=Emper[PoPoint[k,i]]#变异操作for by in range(NP):for i in range(D):r=np.random.rand()if r<Pm:nf[i,by]=np.random.rand()*(Xs-Xx)+Xx#子群按适应度排序for i in range(NP):NMSLL[i]=func2(nf[:,i])Index=np.argsort(NMSLL)NSortMSLL=sorted(NMSLL)NSortf=nf[:,Index]f1=np.hstack((Sortf,NSortf))MSLL1=np.hstack((SortMSLL,NSortMSLL))Index=np.argsort(MSLL1)SortMSLL1=sorted(MSLL1)Sortf1=f1[:,Index]SortMSLL=SortMSLL1[0:NP]Sortf=Sortf1[:,0:NP]trace.append(SortMSLL[0])MATLIB```python
clear all
close all
clcD=10
NP=100
Xs=20
Xx=-20
G=25
f=zeros(D,NP)
nf=zeros(D,NP)
Pc=0.8
Pm=0.1
f=rand(D,NP)*(Xs-Xx)+Xx
for np=1:NPMSLL(np)=func2(f(:,np))
end
[SortMSLL,Index]=sort(MSLL)
Sortf=f(:,Index)%%%%君主方式进行选择交叉
for gen=1:GEmper=Sortf(:,1)   %君主染色体NoPoint=round(D*Pc)PoPoint=randi([1,D],NoPoint,NP/2)nf=Sortffor i=1:NP/2nf(:,2*i-1)=Empernf(:,2*i)=Sortf(:,2*i)for k=1:NoPointnf(PoPoint(k,i),2*i-1)=nf(PoPoint(k,i),2*i)nf(PoPoint(k,i),2*i)=Emper(PoPoint(k,i))endendfor m =1:NPfor n=1:Dr=rand(1,1)if r<Pmnf(n,m)=rand(1,1)*(Xs-Xx)+Xxendendendfor np=1:NPNMSLL(np)=func2(nf(:,np))end[NSortMSLL,Index]=sort(NMSLL)NSortf=nf(:,Index)f1=[Sortf,NSortf]MSLL1=[SortMSLL,NSortMSLL][SortMSLL1,Index]=sort(MSLL1)Sortf1=f1(:,Index)SortMSLL=SortMSLL1(1:NP)Sortf=Sortf1(:,1:NP)trace(gen)=SortMSLL(1)
end
bestf=Sortf(:,1)
trace(end)
figure
plot(trace)
xlabel('迭代次数')
ylabel('目标函数值')function result=func2(x)
sumn=sum(x.^2)
result=sumn
end

基于python和MATLAB的遗传算法优化函数最小值相关推荐

  1. 基于python与matlab的TOA定位算法性能仿真

    基于python与matlab的TOA定位算法性能仿真 仿真要求 仿真方案的设计 matlab仿真代码 python仿真代码 仿真结果 仿真要求 要求一:编写两个函数TOA_LLOP和TOA_CHAN ...

  2. lc filter在matlab哪,基于python实现matlab filter函数过程详解

    matlab中的filter函数: y = filter(b,a,x) python实现matlab中的filter函数 def filter_matlab(b,a,x): y = [] y.appe ...

  3. matlab filter函数原理,基于python实现matlab filter函数过程详解

    matlab中的filter函数: y = filter(b,a,x) python实现matlab中的filter函数 def filter_matlab(b,a,x): y = [] y.appe ...

  4. 【多式联运】基于帝国企鹅算法、遗传算法、粒子群算法求解多式联运路径优化问题附matlab代码

    1 内容介绍 在军事运输中,采用多种运输方式联合投送是加强战略投送能力建设发展的重要途径,而路径规划是制定多式联运输送保障方案的关键第一步.本文提出了一个以遗传算法为主框架的解决方案,用来求解多式联运 ...

  5. imf 能量矩 matlab,基于IMF能量矩和遗传算法优化SVM的储能电池过充诊断方法与流程...

    本发明涉及一种基于imf能量矩和遗传算法优化svm的储能电池过充诊断方法,属于储能电池故障监测领域. 背景技术: :在智能电网建设背景下,储能电池已经成为保证电网安全.稳定.高效运行的关键性技术,在削 ...

  6. 阵列matlab遗传,基于MATLAB的遗传算法及其在稀布阵列天线中的应用

    文件名大小更新时间 基于MATLAB的遗传算法及其在稀布阵列天线中的应用02019-12-26 基于MATLAB的遗传算法及其在稀布阵列天线中的应用\chapter302019-07-28 基于MAT ...

  7. matlab机械臂工作空间代码_【ROS-Moveit!】机械臂控制探索(3)——基于python的API示例代码分析...

    本文参考Moveit!官方文档. 系统:ubuntu 18.04 / 16.04 ROS:Melodic / Kinetic 概述 基于python的运动组API是最简单的MoveIt!用户接口.其中 ...

  8. python中心性评价_centrality 计算复杂网络中的节点或边 数中心性,基于python的 工具箱 matlab 238万源代码下载- www.pudn.com...

    文件名称: centrality下载 收藏√  [ 5  4  3  2  1 ] 开发工具: Python 文件大小: 101 KB 上传时间: 2014-03-13 下载次数: 4 详细说明:计算 ...

  9. 基于Python/MATLAB长时间序列遥感数据处理及在全球变化、物候提取、植被变绿与固碳分析、生物量估算与趋势分析

    目录 专题一.长时序遥感产品在全球变化/植被变绿/植被物候等方面的应用 专题二.MODIS遥感数据产品预处理 专题三.长时序MODIS遥感数据产品时间序列重构 专题四.基于GIMMS 3g和MODIS ...

最新文章

  1. CS131专题-6:图像特征(Blob检测、LoG算子、Harris-Laplacian)
  2. BAT-使用BAT生成快捷方式
  3. BugkuCTF-MISC题蜘蛛侠
  4. LeetCode 50 实现乘方运算
  5. 阿里巴巴Java开发文档2020版学习-命名风格
  6. Android模拟地图gps定位
  7. 1小时搞懂 Git 版本控制
  8. Javaweb项目 SMBMS 超市订单管理系统:准备工作、登录与注销、修改密码、用户管理
  9. 风云唐太宗(上部)精要
  10. 推荐给DBA的Oracle书籍
  11. 初学vue,模仿个静态网站
  12. 在360与腾讯过家家时,我们该醒醒了
  13. HRSaaS系统和ERP系统有什么区别?
  14. 数学基础知识总结 —— 9. 什么是拉格朗日乘数法(Lagrange Multiplier,有约束条件的多元函数求极值)
  15. mysql命令(客户端登陆与mysql -uxxx -pxxx的区别;环境变量的使用)
  16. spring boot 运行提示:Process finished with exit code 1
  17. python word保存图_Python 将本地图片存储到 Word 文档
  18. 【个人喜好诗词之一】再别康桥
  19. 深入理解Java之线程池
  20. Android L无法接听/拒接来电现象的分析与解决(文末对比Android M)

热门文章

  1. Python读取xls文件报错:raise XLRDError(FILE_FORMAT_DESCRIPTIONS[file_format]+‘; not supported‘)
  2. 1030: 判断直角三角形Python
  3. 中兴光猫F460 V3.0破解,断了电信的远程管理,禁止电信光猫外网登录超级管理员,有效去除被黑的烦恼...
  4. MAC码云配置以及使用
  5. pe下找不到ssd硬盘_快启动PE中没有识别到固态硬盘的解决方法
  6. [信息化]企业信息化规划建设中需要注意的点
  7. 一个基于 Docker 的私有云方案
  8. luogu2657-Windy数题解--数位DP
  9. Kali2021.1 关于w3af的一些问题
  10. python综合练习:学生管理系统