# A Microbial Screening in Silico Method for the Fitness Step Evaluation in Evolutionary Algorithms
## 1 Introduction  
Genetic algorithms (GAs) were introduced by [PERSON] [1] and popularized by [PERSON] [2], representing at present one of the most popular optimization techniques in the field of Artificial Intelligence (AI). A GA is a stochastic optimization method inspired by the principles of natural selection [3] stated by [PERSON]'s evolutionary theory in 1859. The search for the optimum is carried out through the simulation of the survival of the most valid solutions or \"individuals\" in an environment or \"problem space\". For three decades now, GAs have been used in optimization and search problems, with many applications in engineering, market research, operations development, biology, sociology, game theory, computer science, etc. [4]. A GA comprises the following steps [5]. (a) The algorithm begins (\(t=0\)) randomly generating a set of solutions (individuals). (b) Afterwards, these solutions are evaluated, and are scored according to the goodness of the solutions (environmental adaptation), obtaining a fitness value. (c) Next, selection is conducted, i.e., those solutions with the highest fitness value will have the highest probability of surviving, and therefore of reproducing by passing one or more copies to the next generation (gene propagation). (d) Subsequently, the solutions passing to the next generation (\(t+1\)) are modified through genetic mechanisms. The solutions are encoded in strings or vectors mimicking chromosomes, and sub-strings representing the genes for which the sequence is changed. These variations are the result of mutations and/or genetic crossover, mechanisms that are present in the organisms andsimulated in the GAs via genetic operators. (e) Finally, and with the new population of solutions, steps (b)-(d) are repeated, over and over again, until an optimal solution is found. However, GA's ability to successfully solve an optimization problem depends largely on a problem-specific procedure to obtain a fitness value of the solutions. In accordance with Reference [6], we have to distinguish when a GA is used in an artificial life model or is applied in order to solve a practical problem, e.g., in engineering. In the first case, the fitness of an agent, e.g., a virtual ant, digital organism, robot, etc., is given by its execution and interaction with the environment; whereas, in the second situation, a fitness function, i.e., an objective or evaluation function, is required to get the individual fitness. In the latter case, the evaluation function will use the values coded in the chromosome as a function argument. Usually, each optimization problem has its own fitness function, although there are some general rules. There are classic optimization problems, such as MAXONE, knapsack problem, scheduling, etc., where the fitness function is known. In other problems, for instance in classification problems, the fitness function can be obtained from error measurements. Likewise, in problems where we have information about the evolutionary surface, and therefore constraints, the fitness is calculated with the inverse of the sum of the variables. Similarly, in design problems and in multiobjective problems, the fitness is provided by cost and Pareto functions respectively, etc. Nevertheless, despite these general rules, finding a good procedure for calculating the fitness constitutes part of the state-of-the-art in the designing process of a GA.  
At present, evolutionary experiments with microorganisms, and in particular with bacteria, are a common practice in microbiology, biotechnology and synthetic biology. In these experiments with bacteria, one of the decisive stages is the evaluation of fitness [7]. However, the most common methods of measuring bacterial fitness in the laboratory involve the same kind of bacterial features that are used for their screening, i.e., its identification and isolation. Usually, the classical screening methods are based on some physiological traits of bacteria.