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

📄 evothreemults.java~

📁 Java遗传算法库
💻 JAVA~
📖 第 1 页 / 共 5 页
字号:
/*
 * MonicaServer.java
 *
 * Created on 16 April 2001, 17:12
 */

package es.pj.circuits.control;

import es.control.*;
import es.deploy.*;
import es.evolve.*;
import es.experiment.*;
import es.*;

import es.pj.circuits.*;
import es.pj.circuits.experiment.*;
import es.pj.circuits.fpgaft.*;

import es.pj.gral.*;

import es.pj.tracing.*;

import islandev.IslandsEvolutionServer;

import debug.DebugLib;

import java.util.Vector;
import java.rmi.*;
import java.io.*;

/**
 *
 * @author  Michael Garvie
 * @version 
 */
public abstract class EvoThreeMults
{
     static Vector taskQ = new Vector();
     static Vector taskQNames = new Vector();

    static String logDir;
    static final String logFileName = "ms-log.txt";
    
    public static void main( String[] args )
    {
        logDir = args[ 0 ];
        DebugLib.trcLogger.isLogging = true;
        DebugLib.logFileName = logFileName;
        /*
        add2MultPop100_50M_50X( 0 );
        add2MultPop100_50M_50X( 1 );
        add2MultPop100_50M_50X( 2 );
        add2MultPop100_50M_50X( 3 );
        add2MultPop100_50M_50X( 4 );
        add2MultPop500_40M_60X( 0 );
        add2MultPop500_40M_60X( 1 );
        add2MultPop500_40M_60X( 2 );
        add2MultPop500_40M_60X( 3 );
        add2MultPop500_40M_60X( 4 );
        */
        /*
        add2MultPop30SAGAMut( 0 );
        add2MultPop30SAGAMut( 1 );
        add2MultPop30SAGAMut( 2 );
        add2MultPop30SAGAMut( 3 );
        add2MultPop30SAGAMut( 4 );
        */
        
        //add2MultPost1Plus1( 0, "00011010001001001001100000110111110000111000011111011100000000000000000000000000000000000000000000000000000000000000000000000000011111111100000000000000000000000000000000011111111101000000000000000010010011010000000000000000000000000000000000000000000000000000000000000000000000000001111101110100000000000000000000000000000000000000000000101010001001000000000000000000000000000000000000000000" );
        /*add2MultPostEvolve1Plus1( 1, "00010010000101000100110001110111010000100100011111011100000111110111010001111111110000011111111101111011100111100001010100101100010110001101000111110111011110111001111100011111111100111011110111010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" );
        add2MultPostEvolve1Plus1( 2, "00010010000101011101010010110001001100011100110110000000001111110000000001010000100101110110101110000101111100000011111010000000011111111100000110001100100001100011001100011111011100111011111111101110111011110000011010010101000110110101110011111110000000101110111110001011101111000111111101110001111111111101011111111111100111111011110000000000000000000000000000000000000000000000000000000000" );
        add2MultPostEvolve1Plus1( 3, "00010010000101011101010010110001001100011100110110000000001111110000000001010000100101110110101110000101111100000011111010000000011111111100000110001100100001100011001100011111011100111011111111101110111011110000011010010101000110110101110011111110000000101110111110001011101111000111111101110001111111111101011111111111100111111011110000000000000000000000000000000000000000000000000000000000" );
        add2MultPostEvolve1Plus1( 4, "00010010000101001000110000110111001110100000011111011100000111110111010001111111110000011111111101001000100001010010001010010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000110100101010010101101001101111011111000000111110111000001111101110100011111111100000111111111010010101001010100101010110100000000000000000000000000000000000000000000" );
        add2MultPostEvolve1Plus1( 5, "00010010000101001000110000110111001110100000011111011100000111110111010001111111110000011111111101001000100001010010001010010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000110100101010010101101001101111011111000000111110111000001111101110100011111111100000111111111010010101001010100101010110100000000000000000000000000000000000000000000" );
        add2MultPostEvolve1Plus1( 6, "00010010000011001000100000110001001010011000011111011100000111111111010111001110100011100010000011000111111111000001111101110100011111111100000110001100100001100011001100011111011100111011111111101110111011110000011010010101000110110101110011111110000000101110111110001011101111000111111101110001111111111101011111111111100111111011110101011101101001010110100101010011110100011101111010100110" );
        add2MultPostEvolve1Plus1( 7, "00010010000011001000100000110001001010011000011111011100000111111111010111001110100011100010000011000111111111000001111101110100011111111100000110001100100001100011001100011111011100111011111111101110111011110000011010010101000110110101110011111110000000101110111110001011101111000111111101110001111111111101011111111111100111111011110101011101101001010110100101010011110100011101111010100110" );
        add2MultPostEvolve1Plus1( 15, "00010010000101001000110000110111001110100000011111011100000111110111010001111111110000011111111101001000100001010010001010010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" );
        add2MultPostEvolve1Plus1( 16, "00010010000011001000100000110001001010011000011111011100000111111111010111001110100011100010000011000111111111000001111101110100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" );
        add2MultPostEvolve1Plus1( 17, "00011010001001001001100000110111110000111000011111011100000000000000000000000000000000000000000000000000000000000000000000000000011111111100000000000000000000000000000000011111111101000000000000000010010011010000000000000000000000000000000000000000000000000000000000000000000000000001111101110100000000000000000000000000000000000000000000101010001001000000000000000000000000000000000000000000" );
        */
        
        /*add2MultPostParsimony1Plus1( 0, "5p[UK]DDtY]WjABs[vuQ9OVDk2YulT^13t_7^_hnTubFOt5oAk8pX5ghnmnb2i37^g" );
        add2MultPostParsimony1Plus1( 1, "77hFt\\DidKgKCHRK1\\Jf66T[l22TkaX`qBJPIRp9nrd5spT5hpkInrMRIbUtFFtTW0" ); 
        add2MultPostParsimony1Plus1( 2, "iuXHtc9Inc`tmP_WjhuUo9KEv^chG_Pkm9`aN1Gq]qsMUHc[JUDb`jVooVUUGCvFDW" );
        add2MultParsimony1Plus1( 0 );
        add2MultParsimony1Plus1( 1 );
        add2MultParsimony1Plus1( 2 );
        add2MultPostParsimonyP100M50X50( 0, getFinalPopA() );
        add2MultPostParsimonyP100M50X50( 1, getFinalPopB() );
        add2MultPostParsimonyP100M50X50( 2, getFinalPopC() );
        add2MultParsimonyP100M50X50( 0 );
        add2MultParsimonyP100M50X50( 1 );
        add2MultParsimonyP100M50X50( 2 );
        */
        add3MultBunchOps1Plus1( 0 );
        /*add3MultBunchOps1Plus1( 1 );
        add3MultBunchOps1Plus1( 2 );
        add3MultBunchOps1Plus1( 3 );
        add3MultBunchOps1Plus1( 4 );
        */
        //addCoTPFourInput();
        //addCoTPVarMUX42();
        
        
        try
        {
            IslandsEvolutionServer ms = new IslandsEvolutionServer( "MonicaServer", taskQ, taskQNames, logDir, 0.5 );
            ms.bindServer();
            //MonicaServer ms = new MonicaServer( "MonicaServer", taskQ, taskQNames, args[ 0 ], 0.5 );
        }catch( java.rmi.RemoteException e )
        {
            System.out.println( e );
        }
        
    }

    private static void add3MultBunchOps1Plus1( int id )
    {

        // A - Genetic Algorithms Properties
        // 1+1
         final int POP_SIZE = 31;
         final int TP_POP_SIZE = 3;
         final double BIT_MUTATION_PROB = 0.05;
         final int GENOTYPE_MUT = 1;
         final double XOVER_PROB = 0;
         final double MUTATION_PROB = 0.6;
         final int NUM_OF_ELITES = 1;
         final double CHOP_PROB = 0.2;
         final double STRETCH_PROB = 0.2;

         final double TP_XOVER_PROB = 0;
         final double TP_MUTATION_PROB = 1;
         final int TP_NUM_OF_ELITES = 1;

         final double[] RANK_PROBS = { 1d, 0d };
         final double[] TP_RANK_PROBS = { 1d, 0d };
        //
        // D -  Circuit Structure Properties
         final int BITS_PER_VARIABLE = 6;
         final int LUT_INPUTS = 2;

        // D - Simulator Properties
         final int SIMULATOR_GATE_DELAY = 1;
         final double T_SETUP = 0.45;
        // final int INPUT_SAMPLE_SEPARATION = 1;

        
        
        // E - Experiment Properties
         final int TEST_LENGTH = 50;

        // M - Log Properties
         int DUMP_POP_EVERY = 1;
        int GENERATIONS = 200000;

        // E - EXPERIMENT set up
         Experiment experiment = new MultiplierExperiment( 3, T_SETUP );
        
         Experiment tpexp = new TestPattern4EvolvingExperiment( experiment );        

        // D - DEPLOYMENT set up
        // SimulatorCircuit circuit = new SimulatorLUTCircuit( SIMULATOR_GATE_DELAY, BITS_PER_VARIABLE , LUT_INPUTS, experiment.getNumOfInputs(), experiment.getNumOfOutputs() );
         ElementDelayModel delayModel = new ConstantDelayModel( SIMULATOR_GATE_DELAY );
         CircuitMapping circuitMapping = new LUTAbsoluteMapping( experiment.getNumOfInputs(), experiment.getNumOfOutputs(), BITS_PER_VARIABLE, LUT_INPUTS, delayModel );
         SimulatorSimpleCircuit circuit = new SimulatorSimpleCircuit( circuitMapping );
         SimulatorDeployment deployment = new SimulatorDeployment( circuit );
        
        // A - Genetic Operators Set up
         int lutSize = 1 << LUT_INPUTS;
         int blockSize = lutSize + LUT_INPUTS * BITS_PER_VARIABLE;
         int genotypeLength = ( ( 1 << BITS_PER_VARIABLE ) - experiment.getNumOfInputs() ) * blockSize;
         int blockLength = BITS_PER_VARIABLE * LUT_INPUTS + 1 << LUT_INPUTS;
         int testPatLength = ( 1 << experiment.getNumOfInputs() ) * 2;
         int tpGenLength = testPatLength * experiment.getNumOfInputs();
         final Genotype SEED0 = new Genotype( "5El7Z2eNR2iMl1qt7bk`3i9pBtuFAHruc\\9AVi9p7fo9`4`vodXvaHquBvSYUK`^Gni\\FFDsrndeJhrulgaFFb`^_ni1mRom^ZmvEY9pRIE1mHhv77uFF_7P729Z[osqBvTuk29p3fq6rromFjUEZggLGMK", genotypeLength, 6 );
         final Genotype[] SEEDS = { SEED0 };
         final Genotype[] TP_SEEDS = { };

         GeneticOperator m = new SAGAMutator( 1, 10 );
         /*GeneticOperator m = new ExactGenotypeMutator( GENOTYPE_MUT );
        GeneticOperator bmf = new BunchMutator( lutSize, 1, blockSize );
        GeneticOperator bmin0 = new BunchMutator( BITS_PER_VARIABLE, 1, blockSize, lutSize );
        GeneticOperator bmin1 = new BunchMutator( BITS_PER_VARIABLE, 1, blockSize, lutSize + BITS_PER_VARIABLE );
        GeneticOperator bc = new BlockCopy ( blockSize, blockSize );
         GeneticOperator chop = new Chopper( 1 );
         GeneticOperator stretch = new Stretcher( 1, 0 );*/
        GeneticOperator tpbc = new BlockCopy( experiment.getNumOfInputs(),experiment.getNumOfInputs() );

         GeneticOperator tpm = new ExactGenotypeMutator( GENOTYPE_MUT );
        //GeneticOperator spxo = new TracingSinglePointXOver()
        GeneticOperator spxo = new SinglePointXOver();
         GeneticOperator tpspxo = new SinglePointXOver();

         // 1+1
         GeneticOperator[] geneticOps = { m, spxo };
         GeneticOperator[] tpGeneticOps = { tpm, tpbc };

         double[] opsProbs = { 0.6, 0.4 };
         double[] tpOpsProbs = { 0.5, 0.5 };
         //
         //
        // Selector selector = new FitnessProportionateSelector();
         Selector selector = new RankSelector(  );
        //Selector selector = new RankSelector(  );
        // Selector tpSelector = new FitnessProportionateSelector();
        // Selector tpSelector = new RankSelector( TP_RANK_PROBS );
         Selector tpSelector = new RankSelector( TP_RANK_PROBS );

         Evolver evolver = new StandardEvolver( POP_SIZE, genotypeLength, geneticOps, opsProbs, selector, NUM_OF_ELITES, SEEDS );
         Evolver tpEvolver = new StandardEvolver( TP_POP_SIZE, tpGenLength, tpGeneticOps, tpOpsProbs, tpSelector, TP_NUM_OF_ELITES, TP_SEEDS );

         Evolver[] evolvers = { evolver, tpEvolver };
         Experiment[] experiments = { experiment, tpexp };

         InteractionModel interactionModel = new StandardInteractionModel( evolver, deployment, experiment );
         int[] evolutionFrequency = { 1 , 4 };
         //InteractionModel interactionModel = new CircuitTestPatternIM( evolvers, deployment, experiments, evolutionFrequency );

        Monica monica = new Monica( interactionModel, DUMP_POP_EVERY, Integer.MAX_VALUE );
        String dirName = "3MultP30-" + id;
        monica.setName( dirName );        
        taskQ.add( monica );
        taskQNames.add( dirName );

⌨️ 快捷键说明

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