code: def subtree_mutation(self, random_state):
          
          # Build a new naive program
          chicken = self.build_program(random_state)
          # Do subtree mutation via the headless chicken method!
          return self.crossover(chicken, random_state)
docs: Perform the subtree mutation operation on the program.
  
          Subtree mutation selects a random subtree from the embedded program to
          be replaced. A donor subtree is generated at random and this is
          inserted into the original parent to form an offspring. This
          implementation uses the "headless chicken" method where the donor
          subtree is grown using the initialization methods and a subtree of it
          is selected to be donated to the parent.
  
          Parameters
          ----------
          random_state : RandomState instance
              The random number generator.
  
          Returns
          -------
          program : list
              The flattened tree representation of the program.