参考csdn上的一些大佬的程序 依葫芦画瓢自己编了个玩
# coding: utf-8
import numpy as np
import random
import matplotlib.pyplot as plt
import math
from numpy import *
#----------------------PSO参数设置---------------------------------
class PSO():
def __init__(self,pN,dim,max_iter):
self.w=0.729
self.c1=1.49445
self.c2 =1.49445
self.r1=0.6
self.r2=0.3
self.pN = pN #粒子数量
self.dim = dim #搜索维度
self.max_iter = max_iter #迭代次数
self.X = np.zeros((self.pN,self.dim)) #所有粒子的位置和速度
self.V = np.zeros((self.pN,self.dim))
self.pbest = np.zeros((self.pN,self.dim)) #个体经历的最佳位置和全局最佳位置
self.gbest = np.zeros((1,self.dim))
self.p_fit = np.zeros(self.pN) #每个个体的历史最佳适应值
self.fit =10000 #全局最佳适应值
def function(self,x):
''