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 used by the GenAlgEngine to specify how big the next * 00027 * Generation should be. This is only a interface for this strategy * 00028 * which can the Alg. use. * 00029 * * 00030 * $Log: IGenerationSizeStrategy.h,v $ 00031 * Revision 1.3 2009/07/21 08:37:58 robot12 00032 * add some comments 00033 * 00034 * Revision 1.2 2009/06/16 12:25:32 robot12 00035 * finishing the generation size strategy and implements the comments. 00036 * 00037 * Revision 1.1 2009/05/04 15:27:57 robot12 00038 * rename of some files and moving files to other positions 00039 * - SingletonGenAlgAPI has one error!!! --> is not ready now 00040 * 00041 * Revision 1.3 2009/05/04 07:06:14 robot12 00042 * some implements... Part6 00043 * 00044 * Revision 1.2 2009/04/28 13:23:55 robot12 00045 * some implements... Part2 00046 * 00047 * Revision 1.1 2009/04/27 10:59:33 robot12 00048 * some implements 00049 * 00050 * 00051 ***************************************************************************/ 00052 00053 #ifndef IGENERATIONSIZESTRATEGY_H_ 00054 #define IGENERATIONSIZESTRATEGY_H_ 00055 00056 //forward declaration 00057 class Generation; 00058 00059 /** 00060 * This interface is to specify how big the next generation should be. 00061 */ 00062 class IGenerationSizeStrategy { 00063 public: 00064 /** 00065 * default constructor 00066 * do nothing 00067 */ 00068 IGenerationSizeStrategy(); 00069 00070 /** 00071 * default destructor 00072 * do nothing 00073 */ 00074 virtual ~IGenerationSizeStrategy(); 00075 00076 /** 00077 * declaration for a function which calculate the size of the next generation after oldGeneration 00078 * @param oldGeneration (Generation*) the old generation 00079 * @return (int) the new size 00080 */ 00081 virtual int calcGenerationSize(Generation* oldGeneration) = 0; 00082 }; 00083 00084 #endif /* IGENERATIONSIZESTRATEGY_H_ */