Back to the paper

This individual was created in the 1a test suite.


Raw individual. Total statements (ignoring common setup statements): 37.

public class TSPChooser_Generation211_Number291 : GeneticProgrammingEngine.TravelingSalesman.TSPChooser {
   public override void Execute() {
      RunSetup();
      int loopLimit = 145;
      int stepLimit = 145;
      for( int loopCount = 0; ((RunIncomplete()
                  && (loopCount < loopLimit))
                  && (Step < stepLimit)); loopCount = (loopCount + 1) ) {
         if( CheapestChoice() ) {
            Choose();
         }
         else {
            if( !ChoiceInTop20() ) {
               MoveToCheapest();
            }
            if( ChoiceInTop20() ) {
               Choose();
               RandomJump();
               MoveToCheapest();
               RandomJump();
            }
            else {
               if( !ChoiceInTop20() ) {
                  MoveToCheapest();
               }
            }
            if( ChoiceInTop20() ) {
               MoveLeft();
               MoveRight();
               if( !CheapestChoice() ) {
                  RandomJump();
               }
               else {
                  MoveLeft();
                  if( CheapestChoice() ) {
                     MoveToCheapest();
                  }
                  else {
                     if( !ChoiceInTop20() ) {
                        MoveToCheapest();
                     }
                     Choose();
                     RandomJump();
                     RandomJump();
                     RandomJump();
                     MoveToCheapest();
                     if( !ChoiceInTop20() ) {
                        MoveToCheapest();
                     }
                     if( ChoiceInTop20() ) {
                        Choose();
                        RandomJump();
                        MoveToCheapest();
                        RandomJump();
                     }
                     else {
                        MoveLeft();
                     }
                     MoveToCheapest();
                     Choose();
                  }
               }
            }
            MoveRight();
         }
      }
      RunTeardown();
   }
}


Structural statements in grey (i.e. setup statements found in all individuals).
Useless statements hilighted in blue (i.e. MoveLeft() followed by MoveRight()). Count: 13.
Unreachable statements hilighted in red (i.e. MoveToCheapest() followed by if( !CheapestChoice() )). Count: 5.

Total worthless statements: 18 out of 37 = 49%.

public class TSPChooser_Generation211_Number291 : GeneticProgrammingEngine.TravelingSalesman.TSPChooser {
   public override void Execute() {
      RunSetup();
      int loopLimit = 145;
      int stepLimit = 145;
      for( int loopCount = 0; ((RunIncomplete()
                  && (loopCount < loopLimit))
                  && (Step < stepLimit)); loopCount = (loopCount + 1) ) {
         if( CheapestChoice() ) {
            Choose();
         }
         else {
            if( !ChoiceInTop20() ) {
               MoveToCheapest();
            }
            if( ChoiceInTop20() ) {
               Choose();
               RandomJump();
               MoveToCheapest();
               RandomJump();
            }
            else {
               if( !ChoiceInTop20() ) {
                  MoveToCheapest();
               }
            }
            if( ChoiceInTop20() ) {
               MoveLeft();
               MoveRight();
               if( !CheapestChoice() ) {
                  RandomJump();
               }
               else {
                  MoveLeft();
                  if( CheapestChoice() ) {
                     MoveToCheapest();
                  }
                  else {
                     if( !ChoiceInTop20() ) {
                        MoveToCheapest();
                     }
                     Choose();
                     RandomJump();
                     RandomJump();
                     RandomJump();
                     MoveToCheapest();
                     if( !ChoiceInTop20() ) {
                        MoveToCheapest();
                     }
                     if( ChoiceInTop20() ) {
                        Choose();
                        RandomJump();
                        MoveToCheapest();
                        RandomJump();
                     }
                     else {
                        MoveLeft();
                     }
                     MoveToCheapest();
                     Choose();
                  }
               }
            }
            MoveRight();
         }
      }
      RunTeardown();
   }
}

Simplified code.

         if( CheapestChoice() ) {
            Choose();
         }
         else {
            if( !ChoiceInTop20() ) {
               MoveToCheapest();
            }
            Choose();
            RandomJump();
            if( ChoiceInTop20() ) {
               if( !CheapestChoice() ) {
                  RandomJump();
               }
               else {
                  MoveLeft();
                  if( !CheapestChoice() ) {
                     if( !ChoiceInTop20() ) {
                        MoveToCheapest();
                     }
                     Choose();
                     MoveToCheapest();
                     Choose();
                     MoveToCheapest();
                     Choose();
                  }
               }
            }
            MoveRight();
         }

Back to the paper