# Enhanced Hyper-Cube Framework Ant Colony Optimization for Combinatorial Optimization Problems
## 3 Enhanced Hyper-Cube ACO Algorithms  
[PERSON] experimentally observed that using local search techniques can improve the overall performance of the ACO [2; 21]. Local search can be carried out by hybridizing the ACO with local search algorithms such as Tabu search or using permutation operators to explore the solution neighborhood [12; 22]. The commonly used operators in SSD optimization problem are two-points permutation and swap. Two-points permutation means selecting two bits in the solution string and reversing the order of the bits in between [1]. The swap operator is used to switch the position of two randomly selected bits of the solution string [23]. The HCFACO algorithms presented here adopted two other permutation operators to perform the algorithm enhancement. The first operator is called a bit flip (also known as single point mutation), which is used successfully with Permutation Genetic Algorithm [1]. The second operator is inspired by using one of the Tabu Search movements named the insertion [2]. The proposed Enhanced HCFACO procedure is listed in Algorithm 2. The Enhanced HCFACO Algorithms starts by defining the standard ACO parameters such as the maximum number of iterations \((Iter_{max})\), number of ants \((n_{Ants})\), number of design variables \((N_{V})\), the initial pheromone trail \((\tau_{0})\), and evaporation rate \((r)\). In addition, the solution convergence rate counter is imposed \([Iconv_{max}]\) and its value determines whether the convergence rate is slow or fast. When the ACO loop starts, all solution edges have the same deposited pheromone trail \(\tau_{0}\), which gives all nodes the same probability of selection to be a part of the feasible solution. The artificial ants, \(k=1:n_{Ants}\), start building the solution table, \(S_{i}(n_{Ants},N_{V})\), by randomly choosing a node di on their way to build the solution vector \(S_{i}(k,N)\). Next, the evaluation of the solutions table is carried out by calling the objective function, and the obtained values are stored in \(f(ige,S_{i}(1:n_{Ants},N_{V}))\) matrix. The best solution of the stacking sequence design has the maximum value of the objective function listed in \(f(ige,S_{i})\) matrix of the current iteration. The best solution of each iteration \(ige\) is stored in the best solution matrix \(S^{*}(ige)\). Thereafter, the global pheromone trail update is performed as described in the Hyper-Cube Framework of ACO in Equation (11). The local search actions are enforced as soon as the best solution of the current tour is determined. Following this, a comparison of the generated solutions with the best solution obtained so far is made. The best solution matrix is then updated if any improvement is detected. Finally, the HCFACO loop continues until the termination criteria are met. The global optimal solution is determined as the best solution matrix member with the maximum value of the objective function. ```
1:\((f)\) objective function, \((N_{V})\) number of the design variables, \((n_{Antts})\) number of \(ants,(N_{n})\) length of the design domain vector, \((Iter_{max})\) maximum number of iterations, \((\tau_{0})\) initialpheromotrail, \((\rho)\)evaporationrate, \((Iconv_{max})\) maximum convergence rate. 2:\((f^{*})\) the optimal solution value, \((S^{*})\) optimal solution vector, \((ige^{*})\) number of optimal solution iterations. Initialization:
3:\(ige=0\), initialize the EHCFACO main loop counter. 4:\(S_{0}(1:n_{Antts}N_{V},\tau_{0})\), generate initial population. 5:\(f_{0}(1:n_{Antts}S_{0})\), evaluate the initial population. 6:\(\tau(N_{V},N_{n})\), update global pheromone trial. 7:While (termination criterion not satisfied) Do:
8:\(ige=i+1\), update loop counter. 9:\(S_{ige}(1:n_{Antts},N_{V},\tau)\)\(=\)\(R\)



the search process. The second measure is practical reliability \((PR)\) and it is defined as the percentage of runs that achieve practical optima (_PO_), at a specific run. Practical optima is defined as the solution with 0.1% error in the best possible solution [1].