1 /* 2 * Open BEAGLE 3 * Copyright (C) 2001-2004 by Christian Gagne and Marc Parizeau 4 * 5 * This library is free software; you can redistribute it and/or 6 * modify it under the terms of the GNU Lesser General Public 7 * License as published by the Free Software Foundation; either 8 * version 2.1 of the License, or (at your option) any later version. 9 * 10 * This library is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 * Lesser General Public License for more details. 14 * 15 * You should have received a copy of the GNU Lesser General Public 16 * License along with this library; if not, write to the Free Software 17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 18 * 19 * Contact: 20 * Laboratoire de Vision et Systemes Numeriques 21 * Departement de genie electrique et de genie informatique 22 * Universite Laval, Quebec, Canada, G1V 4J7 23 * http://vision.gel.ulaval.ca 24 * 25 */ 26 27 /*! 28 * \file beagle/LinGP/Evolver.hpp 29 * \brief Definition of the class LinGP::Evolver. 30 * \author Christian Gagne <cgagne@gel.ulaval.ca> 31 * \author Alain-Daniel Bourdage <adb@btc.bm> 32 * $Revision: 1.1 $ 33 * $Date: 2005/10/06 15:43:44 $ 34 */ 35 36 /*! 37 * \defgroup LinGPOp Linear GP Operators and Evolvers 38 * \ingroup LinGPF 39 * \brief Genetic programming operators and evolvers, part of the linear GP framework. 40 */ 41 42 #ifndef Beagle_LinGP_Evolver_hpp 43 #define Beagle_LinGP_Evolver_hpp 44 45 #include <string> 46 47 #include "beagle/config.hpp" 48 #include "beagle/macros.hpp" 49 #include "beagle/Object.hpp" 50 #include "beagle/Pointer.hpp" 51 #include "beagle/PointerT.hpp" 52 #include "beagle/Allocator.hpp" 53 #include "beagle/AllocatorT.hpp" 54 #include "beagle/ContainerT.hpp" 55 #include "beagle/Evolver.hpp" 56 #include "beagle/LinGP/EvaluationOp.hpp" 57 58 namespace Beagle { 59 namespace LinGP { 60 61 /*! 62 * \class Evolver beagle/LinGP/Evolver.hpp "beagle/LinGP/Evolver.hpp" 63 * \brief Standard linear GP generational evolver class. 64 * \ingroup LinGPF 65 * \ingroup LinGPOp 66 */ 67 class Evolver : public Beagle::Evolver { 68 69 public: 70 71 //! LinGP::Evolver allocator type. 72 typedef AllocatorT<Evolver,Beagle::Evolver::Alloc> 73 Alloc; 74 //! LinGP::Evolver handle type. 75 typedef PointerT<Evolver,Beagle::Evolver::Handle> 76 Handle; 77 //! LinGP::Evolver bag type. 78 typedef ContainerT<Evolver,Beagle::Evolver::Bag> 79 Bag; 80 81 Evolver(); 82 explicit Evolver(Beagle::EvaluationOp::Handle inEvalOp); ~Evolver()83 virtual ~Evolver() { } 84 85 }; 86 87 } 88 } 89 90 #endif // Beagle_LinGP_Evolver_hpp 91