# Optimization Algorithms in SDN: Routing, Load Balancing, and Delay Optimization
## 3 Classes of Algorithms
### Heuristic Algorithms  
They represent a class of optimization techniques that are good for solving complex problems which may be impractical to solve exactly due to problem size, complexity, or the time constraints involved. These algorithms are especially important in the context of network design and management/control, where decisions must often be made quickly and sometimes with incomplete information. Swarm Intelligence is a branch of metaheuristic optimizer algorithms that is inspired by the collective behavior of decentralized, self-organized systems, such as biological swarms. In SDN networking, swarm intelligence can be harnessed to optimize the various aspects of network operation [11]. For instance, Particle Swarm Optimization (PSO) can adjust the configuration parameters of network devices to maximize throughput or minimize latency [12]. It does so by having a multitude of candidate solutions, referred to as particles, which explore the solution space and converge on the optimal solutions through a process that mimics social interaction. Similarly, the Ant Colony Optimization (ACO) algorithm, another swarm intelligence technique, is adept at finding optimal routing paths in a network. By simulating the pheromone trail-laying behavior of ants, ACO can be used to develop routing protocols that adaptively find the shortest and least congested paths. In [13], the capability of the algorithm is tested within MATLAB simulations with the aim to obtain better load-balancing results relative to known methods. For the implementation, the test is supposed to implement the ACO algorithm into an SDN-based environment using the OpenFlow protocol, with the scope of facilitating the communication between the control and the forwarding layer of the network. In the implementation, the SDN had the capability to dynamically change the packet routing based on IACO algorithm decisions. After the algorithm implementation, the network switches have benefitted from better management of the flow tables, resulting in a more efficient manner of passing the data flows to the destination in a secure way. Firefly Algorithm, inspired by the bioluminescent communication of fireflies, can be used for the dynamic control of network paths in SDN networks. In [14], using the firefly luminescence analogy to demonstrate the path adjustment, it was implemented as an algorithm that aimed to evaluate every path on the network based on efficiency. An RYU controller was used to implement the algorithm with the goal of optimizing and changing the routes in real-time, achieving by this approach better metrics such as the throughput and latency of the SDN environment. Tabu Search is an iterative algorithm that guides a local heuristic search procedure to explore the solution space beyond local optimality. One of its key features is its use of a tabu list to maintain a short-term memory of the search history, which helps avoid cycles and local minima, thus facilitating escape from local optima and allowing the search to continue towards a more global optimum. In SDN, Tabu Search can optimize the network configuration by remembering recent changes to the network's setup and avoiding them if they do not yield improvements, efficiently navigating the configuration space. In [15], the study is focused on the process of minimizing the OPEX (operational expense) by inducing limitations regarding the flow setup and the latencies that can appear between controllers. A challenge of the study was related to the model cost optimizations considering the limitations imposed. With the model built, the efficiency of the algorithm has been tested with real network topologies from the Topology Zoo data. Simulated Annealing has been used in network optimization for tasks such as optimizing the layout of network nodes to minimize cost while maintaining connectivity and desired performance levels.