**Algorithm 1** ESLS

**Input:** POP, the population composed by the individuals in the last generation of the EA. MaxGeneration, the number of generations. MO applies one of the mutation operators given in Section 3.3, chosen at random. *f*2, fitness function given in Section 3.2.

**Output:** POP, as a result of improvement of the input.

```
1. t := 0;
2. while t < MaxGeneration do
3. t := t + 1;
4. for all rule r in POP do
5. % Computing fitness
6. f := f2(r);
7. % Applying mutation.
8. newr := MO(r);
9. % Evaluating new individual.
10. newf := f2(newr);
11. % Updating the improved individual.
12. if newf > f then r := newr;
13. end for
14. end while
```
15. **end.**
