参考另一篇文章的。感觉思路很好。本人整理了一下代码。
原文链接 :https://blog.csdn.net/u013638553/article/details/40824715
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.lang.reflect.Array;
import java.util.*;
public class Particle {
public static void main(String[] args) throws IOException{
PSO pso = new PSO();
pso.readfile();
pso.createpso();
pso.Initialize();
pso.Search();
}
}
class Agent{
public static int iPOSNum = 20;// 粒子个数
public static int iAgentDim = 2;// 粒子维度
public static int ikmeans = 2; // 聚类中心数
private final double w = 0.9;
private final double c1 = 1;
private final double c2 = 1;
public double[] dpos = new double[iAgentDim*ikmeans];// 粒子的位置
public double[] dpbest = new double[iAgentDim*ikmeans]; // 粒子本身的最优位置
public double[] dv = new double[iAgentDim*ikmeans]; // 粒子的速度
private double m_dFitness=0;
public double m_dBestfitness; // m_dBestfitness 粒子本身的最优解,适应度
private Random random = new Random();
public static double[] gbest = new double[iAgentDim * ikmeans];
public static List<ArrayList<Double>> result = new ArrayList<ArrayList<Do