## 2 Materials and Methods
### Genetic Algorithm Optimization  
The proposed genetic algorithm is aimed at defining the optimal empirical model able to reproduce the kinetics of the bacterial growth based on the experimental data and to overcome the limitations of the conventional non-structured mathematical models that are generally able to reproduce accurately only the exponential phase [15; 18]. Figure 3a shows the typical procedure of a genetic algorithm [30]. This consists of four main steps: (i) initialization; (ii) selection; (iii) crossover; (iv) mutation. Moreover, two more fundamental concepts are the genetic encoding of the parameters and the definition of the fitness function. For this study, the proposed procedure considers the mutation to operate in parallel with the crossover (Figure 3b), to emphasize the gains on the algorithm performance, and avoiding fast and local convergence [31; 32]. The implementation of the genetic algorithm starts with the definition and the encoding of a set of chromosomes (\(N\)), which represent individual solutions within the population. Among the available methods, in this study, the real value encoding is adopted since it allows representing chromosomes in terms of values, i.e., a given number of bits, avoiding any intermediate encoding and decoding steps. \(N_{T}\) (number of terms of the regression model) consists of the number of independent parameters, and represents the phenotype, which must be encoded into the chromosome, called genotype. Each of the independent parameters is encoded with independent genes (\(N_{G}\)). \(p_{j,i}\) define the powers of each term variables, where \(i=1,\ldots,N_{T}\) and \(j=1,\ldots,N_{G}\). Furthermore, the regression model coefficients (\(c_{k}\), \(k=0,\ldots,N_{T}\)) are evaluated through a standard linear regression. Thus, the set of the chromosome (\(C_{m}\), \(m=1,\ldots,N\)) and the resulting model can be represented as reported below (Equations (4) and (5), respectively):  
\[C_{m}=\left\{p_{j,i}\right\} \tag{4}\]  
\[y_{GA}\big{(}p_{1},\ldots,p_{j},\ldots,p_{N_{G}}\big{)}=c_{0}+c_{1}N_{1,1}^{p_ {1,1}}\ldots N_{j,1}^{p_{j,1}}\ldots N_{N_{G},1}^{p_{N_{G},1}}+\ldots+c_{N_{T}}N _{1,N_{T}}^{p_{1,N_{T}}}\ldots N_{j,N_{T}}^{p_{N_{T}}}\ldots N_{N_{G},N_{T}}^{ p_{N_{C},N_{T}}} \tag{5}\]  
In Equation (5), \(y_{GA}\big{(}p_{1},\ldots,p_{j},\ldots,p_{N_{G}}\big{)}\) represents the response variable, which is in this case the bacterial growth rate. This is an unknown function of the process parameters, and its specific form can be obtained through the genetic algorithm optimization. Practically, it consists of the sum of \(N_{T}\) terms with the form \(N_{1,1}^{p_{1,1}}\ldots N_{j,1}^{p_{j}}\ldots N_{N_{G},N_{T}}^{p_{N_{G},N_{T}}}\), plus a constant term. The vector of dimensions \(N_{G}N_{T}\times 1\) given by the possible combinations of the powers \(\{p_{1,1},\ldots p_{j,1},\ldots,p_{N_{G},1},\ldots,p_{1,j},\ldots,p_{j,j}, \ldots,p_{N_{G},\ldots,N_{T}},\ldots,p_{1,N_{T}},\ldots,p_{j,N_{T}},\ldots,p_{ N_{G},N_{T}}\}\) is the solution (the genotype). The best combination can be evaluated through the algorithm, while  
Figure 3: Genetic algorithm procedure: (**a**) typical vs. (**b**) proposed. a standard linear regression is used for the determination of the empirical coefficients \(c_{1},\ldots c_{i},\ldots c_{N_{T}}\) and the constant term \(c_{0}\). An arbitrary value within a specific range is randomly chosen to generate the first set of models (i.e., initial population) and is assigned to each set of powers, i.e., gene. This initial population evolves into the next generation through the other operators, i.e., selection, crossover and mutation.