⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 psorealpopulation.java

📁 用Java实现的粒子群优化算法
💻 JAVA
字号:
// Decompiled by Jad v1.5.7f. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) 
// Source File Name:   PSORealPopulation.java

package ci.ec.pso.real;

import ci.ec.real.ECRealIndividual;
import java.io.PrintStream;

// Referenced classes of package ci.ec.pso.real:
//            PSOBaseRealPopulation, PSOParameters, PSORealIndividual

public class PSORealPopulation extends PSOBaseRealPopulation
{

    public PSORealPopulation()
    {
    }

    public PSORealPopulation(int i, int j)
    {
        super(i, j);
        fitness = new double[i];
        for(int k = 0; k < i; k++)
            fitness[k] = 0.0D;

    }

    public PSORealPopulation(int i, int j, PSOParameters psoparameters)
    {
        super(i, j);
        parameters = psoparameters;
        fitness = new double[populationSize];
        for(int k = 0; k < populationSize; k++)
            fitness[k] = 0.0D;

    }

    public static void main(String args[])
    {
        PSOParameters psoparameters = new PSOParameters(0.90000000000000002D, 20, 100D, 200D, 30D, 80D, 1000, "Sphere", 10);
        PSORealPopulation psorealpopulation = new PSORealPopulation(2, 3, psoparameters);
        System.out.println("PSORealPopulation(2,3,pa) rp1: \n" + psorealpopulation);
        psorealpopulation.initialization(psorealpopulation.parameters.getMaximumPosition());
        psorealpopulation.evaluate();
        System.out.println("rp1 after initialization \n" + psorealpopulation);
        int i = psorealpopulation.getBest();
        System.out.println("best individual is the " + i + "th individual\n");
        PSOBaseRealPopulation psobaserealpopulation = new PSOBaseRealPopulation(psorealpopulation);
        psorealpopulation.initialization(psorealpopulation.parameters.getMaximumPosition());
        System.out.println("rp2 :\n" + psobaserealpopulation);
        System.out.println("new rp1:\n" + psorealpopulation);
    }

    public PSOBaseRealPopulation getUpdateVelocityStep(PSOBaseRealPopulation psobaserealpopulation, int i)
    {
        PSOBaseRealPopulation psobaserealpopulation1 = new PSOBaseRealPopulation(populationSize, individualLength);
        for(int j = 0; j < populationSize; j++)
            psobaserealpopulation1.realIndividual[j] = realIndividual[j].velocityUpdateStep(psobaserealpopulation.realIndividual[j], psobaserealpopulation.realIndividual[i]);

        return psobaserealpopulation1;
    }

    public double getInitialWeight()
    {
        return parameters.getInitialWeight();
    }

    public double[] getFitness()
    {
        return fitness;
    }

    public void evaluate()
    {
        for(int i = 0; i < populationSize; i++)
            fitness[i] = realIndividual[i].evaluate(parameters.getFunctionName(), parameters.getFunctionDimension());

    }

    public int getBest()
    {
        int i = 0;
        double d = 0.0D;
        for(int j = 0; j < populationSize; j++)
            if(fitness[j] >= d)
            {
                i = j;
                d = fitness[j];
            }

        return i;
    }

    public String toString()
    {
        String s = "";
        s = s + parameters.toString();
        s = s + super.toString();
        s = s + "fitness : ";
        for(int i = 0; i < populationSize; i++)
            s = s + fitness[i] + " ";

        s = s + "\n";
        return s;
    }

    private PSOParameters parameters;
    private double fitness[];
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -