001 package org.jaga.reproduction.greycodedNumbers;
002
003 import org.jaga.reproduction.*;
004
005 /**
006 * TODO: Complete these comments.
007 *
008 * <p><u>Project:</u> JAGA - Java API for Genetic Algorithms.</p>
009 *
010 * <p><u>Company:</u> University College London and JAGA.Org
011 * (<a href="http://www.jaga.org" target="_blank">http://www.jaga.org</a>).
012 * </p>
013 *
014 * <p><u>Copyright:</u> (c) 2004 by G. Paperin.<br/>
015 * This program is free software; you can redistribute it and/or modify
016 * it under the terms of the GNU General Public License as published by
017 * the Free Software Foundation, ONLY if you include a note of the original
018 * author(s) in any redistributed/modified copy.<br/>
019 * This program is distributed in the hope that it will be useful,
020 * but WITHOUT ANY WARRANTY; without even the implied warranty of
021 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
022 * GNU General Public License for more details.<br/>
023 * You should have received a copy of the GNU General Public License
024 * along with this program; if not, write to the Free Software
025 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
026 * or see http://www.gnu.org/licenses/gpl.html</p>
027 *
028 * @author Greg Paperin (greg@jaga.org)
029 *
030 * @version JAGA public release 1.0 beta
031 */
032
033 public class SimpleBinaryXOverWithMutation extends CombinedReproductionAlgorithm {
034
035 public SimpleBinaryXOverWithMutation() {
036 super();
037 insertReproductionAlgorithm(0, new SimpleBinaryMutation());
038 insertReproductionAlgorithm(1, new SimpleBinaryXOver());
039 }
040
041 public SimpleBinaryXOverWithMutation(double xOverProb, double mutProb) {
042 super();
043 insertReproductionAlgorithm(0, new SimpleBinaryXOver(xOverProb));
044 insertReproductionAlgorithm(1, new SimpleBinaryMutation(mutProb));
045 }
046
047 public void setXOverProbability(double xOverProb) {
048 ((SimpleBinaryXOver) getReproductionAlgorithm(0)).setXOverProbability(xOverProb);
049 }
050
051 public double getXOverProbability() {
052 return ((SimpleBinaryXOver) getReproductionAlgorithm(0)).getXOverProbability();
053 }
054
055 public void setMutationProbability(double mutProb) {
056 ((SimpleBinaryMutation) getReproductionAlgorithm(1)).setMutationProbability(mutProb);
057 }
058
059 public double getMutationProbability() {
060 return ((SimpleBinaryMutation) getReproductionAlgorithm(1)).getMutationProbability();
061 }
062
063 }