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

/magnus/back_end/Genetic/include/GASubgroup.h

Go to the documentation of this file.
00001 /*
00002  *   $Id: GASubgroup.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 GASubgroup class
00009 //
00010 // Principal Author: Dmitry Bormotov
00011 //
00012 // Status: in progress
00013 //
00014 // Revision History:
00015 //
00016 
00017 
00018 #ifndef _GASubgroup_H_
00019 #define _GASubgroup_H_
00020 
00021 #include "SubgroupGraph.h"
00022 #include "RandomNumbers.h"
00023 
00024 
00025 //------------------------------ GASubgroup ---------------------------------//
00026 
00027 
00028 class GASubgroup
00029 {
00030 
00031 public:
00032   
00033   /////////////////////////////////////////////////////////////////////////
00034   //                                                                     //
00035   // Constructors:                                                       //
00036   //                                                                     //
00037   /////////////////////////////////////////////////////////////////////////
00038   
00039   GASubgroup( );
00040   
00041   GASubgroup( const SetOf<Word>& generators ) : gens( generators ) { }
00042  
00043   // copy constructor supplied by compiler.
00044   
00045   // destructor supplied by compiler.
00046 
00047 
00048   /////////////////////////////////////////////////////////////////////////
00049   //                                                                     //
00050   // Accessors:                                                          //
00051   //                                                                     //
00052   /////////////////////////////////////////////////////////////////////////
00053 
00054   SetOf<Word> generators( ) const { return gens; }
00055 
00056   int fitness( const GASubgroup& S ) const;
00057 
00058   GASubgroup mutate( ) const;
00059 
00060   GASubgroup crossover( const GASubgroup& S ) const;
00061 
00062   GASubgroup randomSubgroup( ) const;
00063       
00064 
00065   /////////////////////////////////////////////////////////////////////////
00066   //                                                                     //
00067   // OI:                                                                 //
00068   //                                                                     //
00069   /////////////////////////////////////////////////////////////////////////
00070 
00071   
00072   friend ostream& operator << ( ostream& ostr, const GASubgroup& S )
00073   {
00074     ostr << S.gens << endl;
00075     return ostr;
00076   }
00077 
00078   /*
00079   friend istream& operator >> ( istream& istr, GHNConfig& C )
00080   {
00081     C.readFrom(istr);
00082     return istr;
00083   }
00084   */
00085 
00086 private:
00087 
00088   /////////////////////////////////////////////////////////////////////////
00089   //                                                                     //
00090   // Private functions:                                                  //
00091   //                                                                     //
00092   /////////////////////////////////////////////////////////////////////////
00093 
00094   Word randomWord( ) const;
00095   
00096   int randomGen( ) const;
00097 
00098   
00099   /////////////////////////////////////////////////////////////////////////
00100   //                                                                     //
00101   // Data members:                                                       //
00102   //                                                                     //
00103   /////////////////////////////////////////////////////////////////////////
00104   
00105   SetOf<Word> gens; // subgroup generators
00106   static int maxCard;
00107   static int maxWordLen;
00108   static int numOfGens;
00109   static UniformRandom r;
00110 };
00111 
00112 #endif

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