DE差分进化算法(pyhton)第一次尝试编写
编程小白刚学python 见谅
import numpy as np
import random as rd
import matplotlib.pyplot as plt
import copy
from math import *
class DE:
def __init__(self,size,dim,maxgen,bound ,param):
self.size=size
self.maxgen=maxgen
self.dim=dim
self.bound=bound
self.param=param
self.p=np.zeros((size, dim))
self.m=np.zeros((size,dim)) #变异坐标
self.c=np.zeros((size,dim)) #交叉坐标
self.bp=[0.0 for i in range(dim)] #bp为最优解的 坐标 1行
self.f=np.zeros((size, 1)) #f为初始点的适应度函数值 n行1列 数组
self.trace=[] #trace为轨迹 记录 每次迭代的最佳适应度函数 列表类型
def begin(self):
for i in range(0,self.size):
#for j in range(0,self.dim):
self.p[i]=self.bound[0]+rd.uniform(0,1)*(self.bound[1]-self.bound[0])
self.f[i]=self.fitness(self.p[i])
#print(self.p)
#print(sel