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

本文探讨了使用遗传算法寻找函数f(x)=∑xi^2最小值的方法,比较了Python和MATLAB两种实现。实验设置为种群规模100,实数编码,历经100代,交叉概率0.8,变异概率0.1。
摘要由CSDN通过智能技术生成

遗传算法计算函数最小值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 summ

D=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是从低到高排序后的MSLL


Sortf=f[:,Index]             #由f升序得到

for gen in range
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值