home *** CD-ROM | disk | FTP | other *** search
/ Media Share 13 / mediashare_13.zip / mediashare_13 / ZIPPED / PROGRAM / APR94_1.ZIP / GA.ZIP / SOURCE.ZIP / GDRIVER.H < prev    next >
C/C++ Source or Header  |  1994-01-10  |  2KB  |  83 lines

  1. //Copyright (C) Man Machine Interfaces 1994. All rights reserved.
  2.  
  3. //gdriver.h
  4.  
  5. #ifndef __GDRIVER_H__
  6. #define __GDRIVER_H__
  7.     
  8. //flag an empty cell in the grid    
  9. const EMPTY_CELL = 0xFFFF ;
  10.  
  11. class CGAGraphDriver
  12. {           
  13.     
  14.     //Interface
  15. public:
  16.  
  17.     CGAGraphDriver(int numNodes, int width, int height) ;
  18.     ~CGAGraphDriver() ;
  19.     void SetGraph(CWordMatrix &graph) ;
  20.     void Optimize(int numGenrations) ;
  21.     void DrawOptimized(CDC &dc) ;
  22.     void DrawUnOptimized(CDC &dc) ;
  23.     
  24.     //Query members (const)
  25.     
  26.     //Calc the length of a chromosome
  27.     //needed based on the graph and grid
  28.     UINT CalcChromosomeLength() const ;                         
  29.     UINT CalcRowAlleleLength() const ; ;
  30.     UINT CalcColAlleleLength() const ; ;
  31.     int GetWidth() const ;
  32.     int GetHeight() const ;
  33.     int GetNumNodes() const ;
  34.     BOOL Connected(WORD node1, WORD node2)  const;  
  35.     int GetNumConnections(WORD node) const ;
  36.     int GetConnectivity() ; 
  37.     void Stop() ;
  38.  
  39.  
  40.     PTIndividual m_pBest ;
  41.     PTIndividual m_pWorst ;
  42.     BOOL m_Stop ;
  43.     
  44.     //Implementation
  45. private:
  46.  
  47.     //Draw the graph in this grid
  48.     void Draw(CDC &dc, CWordMatrix &Grid) ;
  49.  
  50.     //num nodes in the graph
  51.     int m_NumGraphNodes ;                    
  52.     //width of grid to draw on (in cells)
  53.     int m_GridWidth ;             
  54.     //height of grid to draw on (in cells)            
  55.     int m_GridHeight ;             
  56.     //connection table representation of a graph
  57.     CWordMatrix *m_pGraph ;         
  58.     //GA that will find the "optimal" drawing    
  59.     //of the graph on the grid
  60.     TBasicGA  *m_pTheGA ;          
  61. } ;
  62.     
  63.  
  64. //Inline simple members
  65.     
  66. inline int CGAGraphDriver::GetWidth() const 
  67. {   
  68.     return m_GridWidth ;
  69. }
  70.  
  71. inline int CGAGraphDriver::GetHeight() const 
  72. {   
  73.     return m_GridHeight ;
  74. }
  75.  
  76. inline int CGAGraphDriver::GetNumNodes() const 
  77. {   
  78.     return m_NumGraphNodes ;
  79. }
  80.  
  81.  
  82. #endif
  83.