From 51c15ed0b8f16d6cdbc9bf821fde77e77abe2904 Mon Sep 17 00:00:00 2001 From: evomarc Date: Thu, 12 Apr 2001 16:46:55 +0000 Subject: [PATCH] Added eoCloneOps.h that contains ... cloning instances of eoXXXOp (all in 1 file, sorry JJ). Modified eo - also added a few comments there --- eo/src/eo | 9 ++++-- eo/src/eoCloneOps.h | 79 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 85 insertions(+), 3 deletions(-) create mode 100644 eo/src/eoCloneOps.h diff --git a/eo/src/eo b/eo/src/eo index bf380700..9e637cbd 100644 --- a/eo/src/eo +++ b/eo/src/eo @@ -46,6 +46,7 @@ #define eo_is_an_integer false //----------------------------------------------------------------------------- +// gneral purpose #include #include #include @@ -65,10 +66,15 @@ #include #include +// the variation operators #include #include +#include #include +// combinations of simple eoOps (eoMonOp and eoQuadOp) +#include +// population #include // Evaluation functions @@ -109,9 +115,6 @@ #include #include -// Variation -#include - // a simple transformer #include diff --git a/eo/src/eoCloneOps.h b/eo/src/eoCloneOps.h new file mode 100644 index 00000000..89a91db4 --- /dev/null +++ b/eo/src/eoCloneOps.h @@ -0,0 +1,79 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- +//----------------------------------------------------------------------------- +// eoCloneOps.h +// (c) GeNeura Team, 1998 +/* + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + Contact: todos@geneura.ugr.es, http://geneura.ugr.es + CVS Info: $Date: 2001-04-12 16:46:55 $ $Header: /home/nojhan/dev/eodev/eodev_cvs/eo/src/eoCloneOps.h,v 1.1 2001-04-12 16:46:55 evomarc Exp $ $Author: evomarc $ + */ +//----------------------------------------------------------------------------- + +#ifndef _eoCloneOps_H +#define _eoCloneOps_H + +#include + +/** + * The different null-variation operators (i.e. they do nothing) + * + * eoQuadCloneOp at least is useful to emulate the standard + * crossover(pCross) + mutation(pMut) + * within the eoGenOp framework + * eoMonCloneOp will probably be useful as the copy operator + * eoBinCloneOp will certainly never been used - but let's be complete :-) + */ + +/** +Mon clone: one argument +*/ +template +class eoMonCloneOp: public eoMonOp +{ +public: + /// Ctor + eoMonCloneOp() : eoMonOp() {} + virtual string className() const {return "eoMonCloneOp";} + virtual bool operator()(EOT&){return false;} +}; + + +/** Binary clone: two operands, only the first could be modified + */ +template +class eoBinCloneOp: public eoBinOp +{ +public: + /// Ctor + eoBinCloneOp() : eoBinOp() {} + virtual string className() const {return "eoBinCloneOp";} + virtual bool operator()(EOT&, const EOT&){return false;} +}; + +/** Quad clone: two operands, both could be modified - but are not! +*/ +template +class eoQuadCloneOp: public eoQuadOp +{ +public: + /// Ctor + eoQuadCloneOp():eoQuadOp() {} + virtual string className() const {return "eoQuadCloneOp";} +virtual bool operator()(EOT& , EOT& ) {return false;} +}; + +#endif +