# A Novel Evolutionary Algorithm for Designing Robust Analog Filters
## 3 Methods: A Robust Analog Filter Design Using Evolutionary Algorithms
### Evolving Robust Analog Filters With Respect to Parameter Variation: The Unified Approach  
In this paper, we examine how to evolve robust analog filters with respect to parameter variations. There are many ways to achieve this by combining GP for an open-ended topological search and GA or differential evolution (DE) for fine-tuning the evolved solutions from GP. In this section, first the common characteristics of the various methods for evolving robustness are presented, followed by details of each individual approach.  
The typical approach for evolving robust designs [32] is to use multiple Monte Carlo samplings with different environmental or system configurations (e.g., perturbation of parameter values of the system) to calculate a worst-case or an average fitness for a given candidate solution, as shown in Equation (3). This robust-by-multiple-simulation (RMS) method is used in [25]. Another method is to simply add a perturbation to the design variable before evaluation. This perturbation, however, is not incorporated into the genome, making it different from a \"normal\" parameter mutation operator or Larmarckian-style evolution algorithms. This robust-by-perturbed-evaluation (RPE) method is used in [24] and is suggested to be more efficient by [PERSON] et al. [28]. Both methods are tested in this work. For the RPE method, no special fitness function is needed. One only needs to perturb the parameters before normal fitness evaluation. For the RMS multi-simulation method, the raw fitness for a design solution with robustness criterion is defined as the sum of a number SPI of 101-point deviations from the target frequency response curve:  
\[f_{robustraw}=\sum_{k=1}^{SPI}f_{raw}^{k} \tag{4}\]  
where SPI is the number of Monte Carlo sampling evaluations for each individual, and \(f_{raw}^{k}\) is the raw fitness of the \(k\)-th sampled evaluation with a different Monte Carlo perturbation of the parameters as defined in Equation (2). With this raw robustness fitness, we then calculate the final fitness according to Equation (3).  
In the experiments reported below, the perturbation of the component values during evolution is implemented by adding to each component parameter Gaussian noise \(N(\mu,\sigma)\) with a mean \(\mu\) of 0 and the standard deviation \(\sigma\) set to 20% of the parameter value. This perturbation model has been widely used by previous researchers [24; 25]; while it may not be appropriate for all manufacturing processes, it is sufficient for our purposes as an approximation to the real component value degradation model in some situations. When more sophisticated models are used in the future to capture all parameter variations due to process, temperature, and voltage changes and simulate them in our system design evolution, the evolved systems can be more robust to these variations in reality. We also need to consider the parasitic effects existing in the evolved circuits. One difficulty with this definition is that if the original parameter value is zero, then no perturbation will be generated. Although this is rare in evolutionary experiments, we have incorporated a special step to check whether the component value is zero. If that is the case, we set the standard deviation for the perturbation to 1.