Package com.heatonresearch.aifh.evolutionary.opp

Examples of com.heatonresearch.aifh.evolutionary.opp.EvolutionaryOperator


        int tries = this.train.getMaxOperationErrors();
        do {
            try {
                // choose an evolutionary operation (i.e. crossover or a type of
                // mutation) to use
                final EvolutionaryOperator opp = this.train.getOperators()
                        .pickMaxParents(this.rnd,
                                this.species.getMembers().size());

                this.children[0] = null;

                // prepare for either sexual or asexual reproduction either way,
                // we
                // need at least
                // one parent, which is the first parent.
                //
                // Chose the first parent, there must be at least one genome in
                // this
                // species
                this.parents[0] = chooseParent();

                // if the number of individuals in this species is only
                // one then we can only clone and perhaps mutate, otherwise use
                // the crossover probability to determine if we are to use
                // sexual reproduction.
                if (opp.parentsNeeded() > 1) {

                    int numAttempts = 5;

                    this.parents[1] = chooseParent();
                    while (this.parents[0] == this.parents[1]
                            && numAttempts-- > 0) {
                        this.parents[1] = chooseParent();
                    }

                    // success, perform crossover
                    if (this.parents[0] != this.parents[1]) {
                        opp.performOperation(this.rnd, this.parents, 0,
                                this.children, 0);
                    }
                } else {
                    // clone a child (asexual reproduction)
                    opp.performOperation(this.rnd, this.parents, 0,
                            this.children, 0);
                    this.children[0].setPopulation(this.parents[0]
                            .getPopulation());
                }
View Full Code Here

TOP

Related Classes of com.heatonresearch.aifh.evolutionary.opp.EvolutionaryOperator

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.