## 6 Space-Segment Optimization Aspects
### Applicable Optimization Methods for Space Segment
#### 6.8.1 Genetic Algorithm (Ga)  
GA, originally introduced in [147], is an evolutionary algorithm that is used to find solutions to optimization problems, which relies on biologically inspired genetic operators: cross-over, mutation, and selection. We provide the steps of the plain GA in Algorithm 1. However, it should be noted that numerous variants of GA exist, such as an expansion to the multi-objective optimization problems (MOGA[52]) or the ones that follow specific operator criteria, for example, the selection criteria seen in NSGA-II[53], which we will cover in more detail at the ground segment.  
Although we believe Algorithm 1 is sufficient as an overview, how to apply genetic operators in context can be confusing. To clarify what this means from a constellation optimization perspective, we provide the following example.  
The population represents the collection of possible constellations, individuals represent particular constellations, and the genomes represent the parameters of a particular constellation. The cross-over operation determines the parameter vectors of the offspring from the parameters of the parents, as per the biological counterpart. Thus, if we consider the genome consisting only of the altitude and number of satellites, the offspring would have the number of satellites from the first parent and altitude from the second. Following the cross-over, the mutation operator introduces diversity to the population by mutating the genes of the offspring with some probability. Again, a very simple arbitrary example would be to have the mutation operator increase the altitude by 50 km with a 40% chance, reduce it by 20 km with a 40% chance, and have no changes with 20% chance.  
```
Step 1: Population Initialization  Initialize the population with \(N\) individuals, based on problem range and constraints. Step 2: Evaluate the Fitness Function  Evaluate the value of the fitness (objective) function for each individual in the population. Step 3: Apply Selection  Select individuals from the population using some selection criteria. A simple example is selecting randomly, but other selection metrics can be used depending on application. Step 4: Apply Cross-Over  Apply the cross-over genetic operator to the parents (i.e., produce a total of \(\frac{N}{2}\) off-springs from the parents, with parameters carrying over from either parent with some probability). Step 5: Apply Mutation  Apply the mutation genetic operator to the parents and off-springs (i.e., change genomes of an individual according to some joint probability of the mutation happening, what parameter to change, and how it changes) Step 6: Termination  Repeat steps 2-5 until a termination criteria is met (i.e., total iterations, change in optimality metric, etc.).
```  
**Algorithm 1**Ga  
The last point of discussion regarding GA is the overhead of the method. While GA, like all the other evolutionary algorithms, requires a population that interacts with the environment (which naturally makes it an online method), it is typically applied to optimization problems via simulations in an offline manner. This is especially true in the case of constellation optimization, where parameters such as the number of satellites, the satellite inclination angles, etc., are almost impossible to modify once a satellite is launched on the orbit. As a result, the significance of the overhead comes from the required time and the computational complexity of the optimization method; both of which are primarily determined by the utilized software simulator and its computational complexity rather than by the optimization method itself. However, since an implementable optimization result obtained via GA will require a fairly complex simulation, the method's overhead is difficult to generalize and must be examined case by case on a per-implementation and per-scenario basis.