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

📄 traceevomany.java~

📁 Java遗传算法库
💻 JAVA~
📖 第 1 页 / 共 2 页
字号:
        //
         /* 1+1
         GeneticOperator[] geneticOps = { spxo };
         GeneticOperator[] tpGeneticOps = { tpm };

         double[] opsProbs = { XOVER_PROB };
         double[] tpOpsProbs = { TP_MUTATION_PROB };
         */
        // Selector selector = new FitnessProportionateSelector();
         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, java.lang.Integer.MAX_VALUE );
        
        taskQ.add( monica );
        taskQNames.add( "TracingFourInput-" + id );
    }
    
    private static void addCoTPVarMUX42()
    {
    // A - Genetic Algorithms Properties
    /* Standard
     final int POP_SIZE = 100;
     final int TP_POP_SIZE = 7;
     final double BIT_MUTATION_PROB = 0.05;
     final int GENOTYPE_MUT = 1;
     final double XOVER_PROB = 0.55;
     final double ALIEN_PROB = 0;
     final double WIRE_SWAP_PROB = 0.7;
     final double MUTATION_PROB = 0.35;
     final double CHOP_PROB = 0.05;
     final double STRETCH_PROB = 0.05;
     final int NUM_OF_ELITES = 3;

     final double TP_XOVER_PROB = 0.5;
     final double TP_MUTATION_PROB = 0.5;
     final int TP_NUM_OF_ELITES = 2;
    
     final double[] TP_RANK_PROBS = { 8d, 4d, 2d, 1d };
    */
    // 1+1
    
     final int POP_SIZE = 2;
     final int TP_POP_SIZE = 2;
     final double BIT_MUTATION_PROB = 0.05;
     final int GENOTYPE_MUT = 2;
     final double XOVER_PROB = 0;
     final double MUTATION_PROB = 0.9;
     final double CHOP_PROB = 0.05;
     final double STRETCH_PROB = 0.05;
     final int NUM_OF_ELITES = 1;
    
     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;
    
    /* For NANDC
     final int BITS_PER_VARIABLE = 5;
     final int STABILIZERS = 1;
     final int GATE_INPUTS = 2;
    */
    
    // D - Simulator Properties
     final int SIMULATOR_GATE_DELAY = 0;
     final double T_SETUP = 0.45;
    // final int INPUT_SAMPLE_SEPARATION = 1;

    // E - Experiment Properties
     final int TEST_LENGTH = 50;
    
    // M - Log Properties
     String logDirName = "c:\\"; // maybe overriden by paramaters
     int DUMP_POP_EVERY = 20;

    // E - EXPERIMENT set up
    // Experiment experiment = new DLatchExperiment( TEST_LENGTH, T_SETUP );
    // Experiment experiment = new EdgeDLExperiment( TEST_LENGTH, T_SETUP );
    // BooleanFunction boolFun = new AndFunction();
    // BooleanFunction boolFun = new ManCarAddFunction();
    // BooleanFunction boolFun = new FourInputFunction();
    // BooleanFunction boolFun = new XOrFunction();
     BooleanFunction boolFun = new MUXFunction( 2 , 4 );
    // BooleanFunction boolFun = new VertorHorizFun();
    // BooleanFunction boolFun = new FLEXToneDetectFun();
     Experiment experiment = new ArbitraryFunctionExperiment( boolFun, T_SETUP );
    // Experiment experiment = new SimpleOscillatorExperiment( 50 );
    // Experiment experiment = new EvenOscillatorExperiment( 400 );
    // Experiment experiment = new FLEXOscillatorExperiment( 5000000 );
    // Experiment experiment = new MultiplierExperiment( 2, T_SETUP );
     Experiment tpexp = new TestPattern4EvolvingExperiment( experiment );

    // D - DEPLOYMENT set up
     ElementDelayModel delayModel = new ConstantDelayModel( SIMULATOR_GATE_DELAY );
     CircuitMapping circuitMapping = new LUTVariableSizedAbsoluteMapping( 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
    /* For CNAND
     int genotypeLength = GATE_INPUTS * STABILIZERS * ( ( 1 << BITS_PER_VARIABLE ) - experiment.getNumOfInputs() ) * ( BITS_PER_VARIABLE + 1 );        
    */
     int blockLength = BITS_PER_VARIABLE * LUT_INPUTS + 1 << LUT_INPUTS;
     int initGenotypeLength = blockLength * 3;
     int testPatLength = ( 1 << experiment.getNumOfInputs() ) * 2;
     int tpGenLength = testPatLength * experiment.getNumOfInputs();

    // final Genotype SEED0 = new Genotype( "5X6e7R]nn^OmeHUYjQZ9", genotypeLength, 6 );
    // final Genotype SEED1 = new Genotype( "6WS_iRZCj6Y8ELA2eO6ZJ8eMnPDTCdlHHtQFdj95jMhqg7bcFi9PGfu86JVoIpWkQjmvWSX6S[shXWjEjlRQiieI9QV95HvQD6iK\\EHNY\\RKa\\hB5^aF\\3OL9cl3r7r07rdbpQJkrOYaivRCqCK5IWPFM4USapH2mi3_RR2BX[5i^cCfnLZRR]N5t94Ms0iiLfmLuh72feoUuHWV6CHTh[0etY9[[Iv9KTBf`iZZojZteMsirncWvonRShJ0", genotypeLength, 6 );
    // final Genotype SEED2 = new Genotype( "2GS_i17CiQY8ELA2eO6ZJ8eMnPDTC_jrLtUVdjDG8EEQS\\beNi9PKfu87Jjc3jRiaIqH[ALYJsE11WIqSMRIgj04oBe09jKAhLiLaMVU_08qdSQaImCtgaB4cc[3r3raARcfpAJli0jWiJ0kq4Nk0WPF64USqpH2gi3bBKu2]SRe`cCfknjBqEMKTO7Iu5ru1_THNb72V3n6rWD824uaHW0etY9[[Iv9KTBf`gtYM_AhAq6hNldYCEAdb1i0", genotypeLength, 6 );
    // final Genotype[] SEEDS = { SEED0, SEED1, SEED2 };
    // final Genotype[] SEEDS = { SEED0, SEED1 };
    // final Genotype[] SEEDS = { SEED0 };
     final Genotype[] SEEDS = { };
    // final Genotype SEEDTP0 = new Genotype( "GTJqc5eJgQMpdsQijj^llE^Elf[ov_E2`Vj2rIqt[OpfXsGc4n8U`ZS6UXN1p09D", tpGenLength, 6 );
    // final Genotype SEEDTP1 = new Genotype( "UrFEZ7_gVE9iEslS0dMJ51eg3jq4cDF3ume6b5iTQuS[8cVo9blDXNncTLs[VTG^", tpGenLength, 6 );
    // final Genotype[] TP_SEEDS = { SEEDTP0, SEEDTP1 };
     final Genotype[] TP_SEEDS = { };
        
    // BitMutator bm = new BitMutator( BIT_MUTATION_PROB );
    // GeneticOperator m = new ExactGenotypeMutator( GENOTYPE_MUT );
    // GeneticOperator m = new SAGAMutator( 1, 10 );
     GeneticOperator m = new AdaptiveMutator( 1, initGenotypeLength / 5 );
    // GeneticOperator tpam = new AdaptiveMutator( 1, tpGenLength / 5 );
     GeneticOperator tpm = new ExactGenotypeMutator( GENOTYPE_MUT );
    // GeneticOperator ws = new WireSwapper( BITS_PER_VARIABLE, STABILIZERS );
     GeneticOperator spxo = new SinglePointXOver();
     GeneticOperator tpspxo = new SinglePointXOver();
     GeneticOperator chop = new Chopper( blockLength / 2 );
     GeneticOperator stretch = new Stretcher( blockLength / 2, 0 );
    
    // Standard
     GeneticOperator[] geneticOps = { m, spxo, chop, stretch };
     GeneticOperator[] tpGeneticOps = { tpm, tpspxo };

     double[] opsProbs = { MUTATION_PROB, XOVER_PROB, CHOP_PROB, STRETCH_PROB };
     double[] tpOpsProbs = { TP_MUTATION_PROB, TP_XOVER_PROB };
    
    /* 1+1
     GeneticOperator[] geneticOps = { m };
     GeneticOperator[] tpGeneticOps = { tpm };
    
     double[] opsProbs = { MUTATION_PROB };
     double[] tpOpsProbs = { TP_MUTATION_PROB };
    */
    
    // Selector selector = new FitnessProportionateSelector();
     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, initGenotypeLength, 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, java.lang.Integer.MAX_VALUE );
        
        taskQ.add( monica );
        taskQNames.add( "CoTPVarMUX42" );
    }

}

⌨️ 快捷键说明

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