Firstly,an initial population of algorithms is created through random combinations of functions and terminals. These programs are then tested individually in a network scenario and the fitness of the algorithms is calculated using the fitness function. Next, “parent” programs are selected based on their calculated fitness, and genetic operations such as mutation and crossover are performed on them.