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

/magnus/back_end/Genetic/include/GAEquationSolver.h

Go to the documentation of this file.
00001 /*
00002  *   $Id: GAEquationSolver.h,v 1.2 1998/08/03 21:04:56 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 GAEquationSolver, GraphicEquationSolver
00009 //
00010 // Principal Author: Dmitry Bormotov
00011 //
00012 // Status: in progress
00013 //
00014 // Revision History:
00015 //
00016 
00017 
00018 #ifndef _GAEquationSolver_h_
00019 #define _GAEquationSolver_h_
00020 
00021 #include "RandomNumbers.h"
00022 #include "FreeGroup.h"
00023 #include "Config.h"
00024 
00025 
00026 // -------------------------- GAEquationSolver ----------------------------- //
00027 
00028 
00029 class GAEquationSolver
00030 {
00031 
00032 public:
00033   
00034   /////////////////////////////////////////////////////////////////////////
00035   //                                                                     //
00036   // Constructors:                                                       //
00037   //                                                                     //
00038   /////////////////////////////////////////////////////////////////////////
00039   
00040   GAEquationSolver( const FreeGroup& G, int NumOfVars, 
00041                     const GHNConfig& config );
00042   
00043   // copy constructor supplied by compiler.
00044   
00045   // destructor supplied by compiler.
00046 
00047 
00048   /////////////////////////////////////////////////////////////////////////
00049   //                                                                     //
00050   // Accessors:                                                          //
00051   //                                                                     //
00052   /////////////////////////////////////////////////////////////////////////
00053 
00054   Map getSolution( const Word& u, ostream* out = NULL );
00055   // returns a solution for equation u found by genetic algorithm
00056 
00057 
00058   /////////////////////////////////////////////////////////////////////////
00059   //                                                                     //
00060   // OI:                                                                 //
00061   //                                                                     //
00062   /////////////////////////////////////////////////////////////////////////
00063 
00064 
00065 private:
00066 
00067   /////////////////////////////////////////////////////////////////////////
00068   //                                                                     //
00069   // Private functions:                                                  //
00070   //                                                                     //
00071   /////////////////////////////////////////////////////////////////////////
00072 
00073   Word mutate( const Word& u );
00074 
00075   int randomGen( );
00076   
00077   Word randomWord( ); 
00078   
00079   Word crossover( const Word& u, const Word& v );
00080 
00081 
00082   /////////////////////////////////////////////////////////////////////////
00083   //                                                                     //
00084   // Data members:                                                       //
00085   //                                                                     //
00086   /////////////////////////////////////////////////////////////////////////
00087   
00088   FreeGroup theGroup;
00089   GHNConfig cfg;
00090   int numOfVars, numOfGens, numOfConsts;
00091   bool keepDetails;
00092   UniformRandom r;
00093   const int maxWordLen;
00094 };
00095 
00096 
00097 // ------------------------ GraphicEquationSolver -------------------------- //
00098 
00099 
00100 class GraphicEquationSolver
00101 {
00102 
00103 public:
00104   
00105   /////////////////////////////////////////////////////////////////////////
00106   //                                                                     //
00107   // Constructors:                                                       //
00108   //                                                                     //
00109   /////////////////////////////////////////////////////////////////////////
00110   
00111   GraphicEquationSolver( FreeGroup F, VectorOf<Chars> vNames, 
00112                          Word eq, const GHNConfig& config, Chars fn = "" );
00113   
00114   // copy constructor supplied by compiler.
00115   
00116   // destructor supplied by compiler.
00117 
00118 
00119   /////////////////////////////////////////////////////////////////////////
00120   //                                                                     //
00121   // Accessors:                                                          //
00122   //                                                                     //
00123   /////////////////////////////////////////////////////////////////////////
00124 
00125   Map getSolution( const Word& u, ostream* out = NULL );
00126   // returns a solution for equation u found by genetic algorithm
00127 
00128 
00129   /////////////////////////////////////////////////////////////////////////
00130   //                                                                     //
00131   // OI:                                                                 //
00132   //                                                                     //
00133   /////////////////////////////////////////////////////////////////////////
00134 
00135 
00136 private:
00137 
00138   /////////////////////////////////////////////////////////////////////////
00139   //                                                                     //
00140   // Private functions:                                                  //
00141   //                                                                     //
00142   /////////////////////////////////////////////////////////////////////////
00143 
00144   Word mutate( const Word& u );
00145 
00146   char mutateChar( char u );
00147 
00148   int randomGen( );
00149   
00150   Word randomWord( ); 
00151   
00152   Word crossover( const Word& u, const Word& v );
00153 
00154   char crossoverChar( char u, char v );
00155 
00156   int fitness( Word u, Word v ) const;
00157 
00158   /////////////////////////////////////////////////////////////////////////
00159   //                                                                     //
00160   // Data members:                                                       //
00161   //                                                                     //
00162   /////////////////////////////////////////////////////////////////////////
00163   
00164   FreeGroup theGroup;
00165   GHNConfig cfg;
00166   VectorOf<Chars> varNames;
00167   int numOfVars, numOfConsts;
00168   bool keepDetails;
00169   UniformRandom r;
00170   int maxWordLen;
00171   Word equation;
00172   Chars popFile;
00173 };
00174 
00175 #endif
00176 
00177 
00178 
00179 
00180 

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