Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members  

/magnus/back_end/Genetic/include/GAWord.h

Go to the documentation of this file.
00001 /*
00002  *   $Id: GAWord.h,v 1.1.1.1 1997/11/20 03:14:15 bormotov Exp $
00003  */
00004  
00005 // Copyright (C) 1997 The New York Group Theory Cooperative
00006 // See magnus/doc/COPYRIGHT for the full notice.
00007 //
00008 // Contents: Definition of GAWord class
00009 //
00010 // Principal Author: Dmitry Bormotov
00011 //
00012 // Status: in progress
00013 //
00014 // Revision History:
00015 //
00016 
00017 
00018 #ifndef _GAWord_H_
00019 #define _GAWord_H_
00020 
00021 #include "RandomNumbers.h"
00022 #include "Map.h"
00023 #include "FreeGroup.h"
00024 
00025 
00026 // ------------------------------ GAWord ---------------------------------- //
00027 
00028 
00029 class GAWord
00030 {
00031 
00032 public:
00033   
00034   /////////////////////////////////////////////////////////////////////////
00035   //                                                                     //
00036   // Constructors:                                                       //
00037   //                                                                     //
00038   /////////////////////////////////////////////////////////////////////////
00039   
00040   GAWord( ) : numOfGens( 0 ) { }
00041   
00042   GAWord( int NumOfGens, const Word& w ) : numOfGens(NumOfGens), theWord( w )
00043   { }
00044  
00045   // copy constructor supplied by compiler.
00046   
00047   // destructor supplied by compiler.
00048 
00049 
00050   /////////////////////////////////////////////////////////////////////////
00051   //                                                                     //
00052   // Accessors:                                                          //
00053   //                                                                     //
00054   /////////////////////////////////////////////////////////////////////////
00055 
00056   Word getWord( ) const { return theWord; }
00057 
00058   //int fitness( const GAWord& w ) const; 
00059 
00060   GAWord mutate( ) const;
00061 
00062   GAWord crossover( const GAWord& w ) const;
00063 
00064   GAWord randomWord( ) const;
00065       
00066 
00067   /////////////////////////////////////////////////////////////////////////
00068   //                                                                     //
00069   // OI:                                                                 //
00070   //                                                                     //
00071   /////////////////////////////////////////////////////////////////////////
00072 
00073   
00074   friend ostream& operator << ( ostream& ostr, const GAWord& w )
00075   {
00076     ostr << w << endl;
00077     return ostr;
00078   }
00079 
00080   /*
00081   friend istream& operator >> ( istream& istr, GHNConfig& C )
00082   {
00083     C.readFrom(istr);
00084     return istr;
00085   }
00086   */
00087 
00088 private:
00089 
00090   /////////////////////////////////////////////////////////////////////////
00091   //                                                                     //
00092   // Private functions:                                                  //
00093   //                                                                     //
00094   /////////////////////////////////////////////////////////////////////////
00095 
00096   int randomGen( ) const;
00097 
00098   
00099   /////////////////////////////////////////////////////////////////////////
00100   //                                                                     //
00101   // Data members:                                                       //
00102   //                                                                     //
00103   /////////////////////////////////////////////////////////////////////////
00104   
00105   int numOfGens;
00106   Word theWord;
00107   static int maxWordLen;
00108   static UniformRandom r;
00109 };
00110 
00111 #endif

Generated at Tue Jun 19 09:49:35 2001 for Magnus Classes by doxygen1.2.6 written by Dimitri van Heesch, © 1997-2001