Page 172 - 49A Field Guide to Genetic Programming
P. 172

158                                                      B TinyGP


        149       case MUL:
        150       case DIV :
        151         b u f f e r [ pos ] = prim ;
        152         return ( grow ( buffer , grow ( buffer , pos+1, max, depth −1) ,
        153                 max, depth−1 ) ) ;
        154       }
        155     }
        156     return ( 0 ) ; // should never get here
        157   }
        158
        159   int p r i n t i n d i v ( char [ ] buffer , int buffercounter ) {
        160     int a1=0, a2 ;
        161     i f ( b u f f e r [ bu ffe rco unt er ] < FSET START ) {
        162       i f ( b u f f e r [ bu ffe rco unt er ] < varnumber )
        163         System . out . print ( ”X”+ ( b u f f e r [ b uffercounter ] + 1 )+ ” ”
                        ) ;
        164       else
        165         System . out . print ( x [ b u f f e r [ bu ffercoun ter ] ] ) ;
        166       return ( ++bu fferco unter ) ;
        167       }
        168     switch ( b u f f e r [ bufferc oun te r ] ) {
        169       case ADD: System . out . print ( ” ( ” ) ;
        170         a1=p r i n t i n d i v ( buffer , ++buffer count er ) ;
        171         System . out . print ( ” + ” ) ;
        172         break ;
        173       case SUB: System . out . print ( ” ( ” ) ;
        174         a1=p r i n t i n d i v ( buffer , ++buffer count er ) ;
        175         System . out . print ( ” − ” ) ;
        176         break ;
        177       case MUL: System . out . print ( ” ( ” ) ;
        178         a1=p r i n t i n d i v ( buffer , ++buffer count er ) ;
        179         System . out . print ( ” ∗ ” ) ;
        180         break ;
        181       case DIV : System . out . print ( ” ( ” ) ;
        182         a1=p r i n t i n d i v ( buffer , ++buffercounter ) ;
        183         System . out . print ( ” / ” ) ;
        184         break ;
        185       }
        186     a2=p r i n t i n d i v ( buffer , a1 ) ;
        187     System . out . print ( ” ) ” ) ;
        188     return ( a2 ) ;
        189   }
        190
        191
        192   static char [ ]  b u f f e r = new char [MAX LEN] ;
        193   char [ ]  create random indiv ( int depth ) {
        194     char [ ] ind ;
        195     int len ;
        196
        197     len = grow ( buffer , 0 , MAX LEN, depth ) ;
        198
        199     while ( len < 0 )
        200       len = grow ( buffer , 0 , MAX LEN, depth ) ;
        201
   167   168   169   170   171   172   173   174   175   176   177