00001 /*************************************************************************** 00002 * Copyright (C) 2005-2009 by Robot Group Leipzig * 00003 * martius@informatik.uni-leipzig.de * 00004 * fhesse@informatik.uni-leipzig.de * 00005 * der@informatik.uni-leipzig.de * 00006 * guettler@informatik.uni-leipzig.de * 00007 * jhoffmann@informatik.uni-leipzig.de * 00008 * joergweide84@aol.com (robot12) * 00009 * * 00010 * This program is free software; you can redistribute it and/or modify * 00011 * it under the terms of the GNU General Public License as published by * 00012 * the Free Software Foundation; either version 2 of the License, or * 00013 * (at your option) any later version. * 00014 * * 00015 * This program is distributed in the hope that it will be useful, * 00016 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 00017 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 00018 * GNU General Public License for more details. * 00019 * * 00020 * You should have received a copy of the GNU General Public License * 00021 * along with this program; if not, write to the * 00022 * Free Software Foundation, Inc., * 00023 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * 00024 *************************************************************************** 00025 * * 00026 * This class is a interface for the select strategy of the generation. * 00027 * * 00028 * $Log: ISelectStrategy.h,v $ 00029 * Revision 1.3 2009/07/21 08:37:59 robot12 00030 * add some comments 00031 * 00032 * Revision 1.2 2009/06/25 13:34:17 robot12 00033 * finish the select strategy and add some comments. 00034 * 00035 * Revision 1.1 2009/05/04 15:27:56 robot12 00036 * rename of some files and moving files to other positions 00037 * - SingletonGenAlgAPI has one error!!! --> is not ready now 00038 * 00039 * Revision 1.2 2009/04/30 14:32:34 robot12 00040 * some implements... Part5 00041 * 00042 * Revision 1.1 2009/04/30 11:51:26 robot12 00043 * some implements... new classes 00044 * 00045 * 00046 * 00047 ***************************************************************************/ 00048 00049 #ifndef ISELECTSTRATEGY_H_ 00050 #define ISELECTSTRATEGY_H_ 00051 00052 //forward declaration 00053 class Generation; 00054 00055 /** 00056 * this interface is for a select strategy of the generation class. 00057 */ 00058 class ISelectStrategy { 00059 public: 00060 /** 00061 * default constructor 00062 */ 00063 ISelectStrategy(); 00064 00065 /** 00066 * default destructor 00067 */ 00068 virtual ~ISelectStrategy(); 00069 00070 /** 00071 * abstract function which select the individual from the old generation and copy it in the new generation. 00072 * @param oldGeneration (Generation*) the old generation from where the individual comes 00073 * @param newGeneration (Generation*) the new generation where the selected individual should be 00074 */ 00075 virtual void select(Generation* oldGeneration, Generation* newGeneration) = 0; 00076 }; 00077 00078 #endif /* ISELECTSTRATEGY_H_ */