(1)* *Initialize the positions of root apices |

(2)* *Calculate the fitness values of each root apex |

(3)* *While not meet the terminal condition |

(4)* * Divide all the root apices into main roots, lateral roots and aging roots |

(5)* * For each main root apex |

* * Regrow with the root regrowing operator |

* *Branch with the root branching operator |

* *Evaluate the fitness value of new root apices |

* *Implement inhibition mechanism of plant hormones |

End for |

(6)* * For each lateral root apex |

* *Produce a new apex replacing the original one |

* * End for |

(7)* * Implement shrinkage operator |

(8)* * Rank root apices and label elite roots |

(9)* *End while |

(10) Postprocess results |