<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def subtree_mutation(self, random_state):
 """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. """

        # 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)