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

/magnus/back_end/Genetic/include/GAMatrixBurau.h

Go to the documentation of this file.
00001 /*
00002  *   $Id$
00003  */
00004  
00005 // Copyright (C) 1999 The New York Group Theory Cooperative
00006 // See magnus/doc/COPYRIGHT for the full notice.
00007 //
00008 // Contents: Definition of class GAMatrixBurau
00009 //
00010 // Principal Author: Dmitry Bormotov
00011 //
00012 // Status: in progress
00013 //
00014 // Description:
00015 //
00016 // Revision History:
00017 //
00018 
00019 
00020 #ifndef _GAMatrixBurau_H_
00021 #define _GAMatrixBurau_H_
00022 
00023 
00024 #include "PMDebornoyWord.h"
00025 #include "PMArray.h"
00026 #include "GA.h"
00027 #include "FreeGroup.h"
00028 #include "Matrix.h"
00029 #include "Polynomial.h"
00030 #include "Int2.h"
00031 
00032 
00033 // --------------------------- GAMatrixBurau ------------------------------- //
00034 
00035 
00036 class GAMatrixBurau : public GA
00037 {
00038 
00039 public:
00040   
00041   /////////////////////////////////////////////////////////////////////////
00042   //                                                                     //
00043   // Constructors:                                                       //
00044   //                                                                     //
00045   /////////////////////////////////////////////////////////////////////////
00046   
00047   GAMatrixBurau( const GAConfig& GAC, const FreeGroup& Br );
00048   
00049   ~GAMatrixBurau( );
00050   
00051   // copy constructor and operator '=' are hidden (not implemented)
00052 
00053 
00054   /////////////////////////////////////////////////////////////////////////
00055   //                                                                     //
00056   // Overriden abstract functions:                                       //
00057   //                                                                     //
00058   /////////////////////////////////////////////////////////////////////////
00059 
00060   void initPopulation( );
00061 
00062   int fitness( const PM* pm );
00063   
00064 
00065   /////////////////////////////////////////////////////////////////////////
00066   //                                                                     //
00067   // Accessors:                                                          //
00068   //                                                                     //
00069   /////////////////////////////////////////////////////////////////////////
00070 
00071   Word getSolution( ostream* o = NULL );
00072 
00073 
00074   /////////////////////////////////////////////////////////////////////////
00075   //                                                                     //
00076   // OI:                                                                 //
00077   //                                                                     //
00078   /////////////////////////////////////////////////////////////////////////
00079 
00080 
00081 private:
00082 
00083   /////////////////////////////////////////////////////////////////////////
00084   //                                                                     //
00085   // Private functions:                                                  //
00086   //                                                                     //
00087   /////////////////////////////////////////////////////////////////////////
00088 
00089   // copy constructor and operator '=' are hidden (not implemented)
00090   
00091   GAMatrixBurau( const GAMatrixBurau& );
00092 
00093   GAMatrixBurau& operator = ( const GAMatrixBurau& );
00094   
00095   void init( );
00096     
00097   bool checkForSolution( Word& res );
00098 
00099   Matrix< Polynomial<Int2> > productMatrix( const PM* pm );
00100 
00101   void penalizeFitness( );
00102 
00103 
00104   /////////////////////////////////////////////////////////////////////////
00105   //                                                                     //
00106   // Data members:                                                       //
00107   //                                                                     //
00108   /////////////////////////////////////////////////////////////////////////
00109   
00110   FreeGroup B;
00111   int numOfGens, n, g;
00112   bool keepDetails;
00113   ostream* out;
00114   Matrix< Polynomial<Int2> > *bgens, *bgensI, I;
00115   PMDebornoyWordConfig PMDWC;
00116 };
00117 
00118 
00119 #endif

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