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

/magnus/back_end/Genetic/include/GAWP.h

Go to the documentation of this file.
00001 /*
00002  *   $Id: GAWP.h,v 1.4 1998/02/11 21:47:06 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 GAWP class
00009 //
00010 // Principal Author: Dmitry Bormotov
00011 //
00012 // Status: in progress
00013 //
00014 // Revision History:
00015 //
00016 
00017 
00018 #ifndef _GAWP_H_
00019 #define _GAWP_H_
00020 
00021 #include "RandomNumbers.h"
00022 #include "FPGroup.h"
00023 #include "FreeGroup.h"
00024 #include "Config.h"
00025 #include "SubgroupGraph.h"
00026 
00027 
00028 // ------------------------------- GAWP ------------------------------------ //
00029 
00030 
00031 class GAWP
00032 {
00033 
00034 public:
00035   
00036   /////////////////////////////////////////////////////////////////////////
00037   //                                                                     //
00038   // Constructors:                                                       //
00039   //                                                                     //
00040   /////////////////////////////////////////////////////////////////////////
00041   
00042   GAWP( const FPGroup& G, const GHNConfig& config ) 
00043     : theGroup( G ), cfg( config ), I(G.getRelators()) { }
00044   
00045   // copy constructor supplied by compiler.
00046   
00047   // destructor supplied by compiler.
00048 
00049 
00050   /////////////////////////////////////////////////////////////////////////
00051   //                                                                     //
00052   // Accessors:                                                          //
00053   //                                                                     //
00054   /////////////////////////////////////////////////////////////////////////
00055 
00056   Trichotomy isTrivial( const Word& u, ostream& out );
00057   // returns yes if the genetic algorithm could prove that u
00058   // is trivial; returns dontknow after computing all generations
00059 
00060 
00061   /////////////////////////////////////////////////////////////////////////
00062   //                                                                     //
00063   // OI:                                                                 //
00064   //                                                                     //
00065   /////////////////////////////////////////////////////////////////////////
00066 
00067 
00068 private:
00069 
00070   /////////////////////////////////////////////////////////////////////////
00071   //                                                                     //
00072   // Private functions:                                                  //
00073   //                                                                     //
00074   /////////////////////////////////////////////////////////////////////////
00075 
00076   int fitness( const Word& u ) const;
00077   
00078   Word mutate( const Word& u );
00079 
00080   
00081   
00082   /////////////////////////////////////////////////////////////////////////
00083   //                                                                     //
00084   // Data members:                                                       //
00085   //                                                                     //
00086   /////////////////////////////////////////////////////////////////////////
00087   
00088   FPGroup theGroup;
00089   GHNConfig cfg;
00090   Word w;
00091   int wLen;
00092   SetIterator<Word> I;
00093   UniformRandom r;
00094 };
00095 
00096 
00097 // ------------------------------- GAWP2 ----------------------------------- //
00098 
00099 
00100 class GAWP2
00101 {
00102 
00103 public:
00104   
00105   /////////////////////////////////////////////////////////////////////////
00106   //                                                                     //
00107   // Constructors:                                                       //
00108   //                                                                     //
00109   /////////////////////////////////////////////////////////////////////////
00110   
00111   GAWP2( const FPGroup& G, const GHNConfig& config );
00112   
00113   // copy constructor supplied by compiler.
00114   
00115   // destructor supplied by compiler.
00116 
00117 
00118   /////////////////////////////////////////////////////////////////////////
00119   //                                                                     //
00120   // Accessors:                                                          //
00121   //                                                                     //
00122   /////////////////////////////////////////////////////////////////////////
00123 
00124   Trichotomy isTrivial( const Word& u, ostream* out = NULL );
00125   // returns yes if the genetic algorithm could prove that u
00126   // is trivial; returns dontknow after computing all generations;
00127   // if out is not NULL it keeps details of the computation
00128 
00129 
00130   /////////////////////////////////////////////////////////////////////////
00131   //                                                                     //
00132   // OI:                                                                 //
00133   //                                                                     //
00134   /////////////////////////////////////////////////////////////////////////
00135 
00136 
00137 private:
00138 
00139   /////////////////////////////////////////////////////////////////////////
00140   //                                                                     //
00141   // Private functions:                                                  //
00142   //                                                                     //
00143   /////////////////////////////////////////////////////////////////////////
00144 
00145   int fitness( const Word& u ) const;
00146   
00147   Word mutate( const Word& u );
00148 
00149   
00150   
00151   /////////////////////////////////////////////////////////////////////////
00152   //                                                                     //
00153   // Data members:                                                       //
00154   //                                                                     //
00155   /////////////////////////////////////////////////////////////////////////
00156   
00157   FPGroup theGroup;
00158   GHNConfig cfg;
00159   SetOf<Word> relators;
00160   Word w;
00161   int wLen;
00162   bool keepDetails;
00163   SetIterator<Word> I;
00164   UniformRandom r;
00165 };
00166 
00167 
00168 #endif

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