# Evolutionary Algorithms for Optimization Sequence of Cut in the Laser Cutting Path Problem
## 4 Overview of Application of ABRKGA to LCPP
### Initialization and Basic Concepts  
Similarly to [9], the execution will be performed on a laser cutting machine that moves along coordinates (x, y). The input parameters will define the head movement speed (\(V_{m}\)) and cutting speed (\(V_{c}\)). These values may vary according to equipment needs. The Chebyshev distance was considered to calculate the required time for a machine to extract parts from the inputs. The input parameters of our approach include the following:  
* \(p\)--population size (representing the set of solutions viable in each iteration);
* \(p_{e}\)--elite size partition of the population (representing the portion of the population that is selected as elite);
* \(p_{m}\)--mutant size partition of the population (representing the portion of the solutions that are submitted to our mutation procedure);
* \(\rho_{e}\)--probability of inheriting the key from an elite parent;
* \(max_{gen}\)--maximum number of generations;
* \(\gamma\)--value based on the running available time and (\(0\leq\gamma<1\));
* \(V_{m}\)--the device head movement speed value;
* \(V_{c}\)--the device head cutting speed value. We apply five classical parameters of BRKGA [37] (\(p,p_{e},p_{m},\rho_{e},max_{gen}\)), and also consider (\(\alpha\), \(\beta\), \(\gamma\)) (ABRKGA) [36] and (\(V_{m},V_{c}\)), specific parameters of LCPP. The variables \(\rho_{e}\) and \(\beta\) exhibit self-adjusting characteristics, while the remaining variables are modified using deterministic principles, except \(V_{m}\) and \(V_{c}\) which are constant for the whole execution. Users must specify a solitary fresh parameter \(\gamma\) depending on the available duration of execution. The objective of the ABRKGA is to employ parameter adjustment to facilitate increased exploration during the initial stage of the search and enhanced exploitation throughout the evolutionary progression. The ABRKGA creates an initial population comprising \(p\) randomly generated key vectors (individuals). Each individual's chromosome consists of \(2n+2\) genes, randomly generated with a uniform probability from the range [0, 1]. The representation of a possible solution for LCPP is divided into three parts. Each individual is encoded by a vector of random keys (1,2,..., \(n\), \(n+1\),..., \(2n\), \(2n+1\), \(2n+2\)), where \(n\) corresponds to the number of edges (\(n=|R|\)) that must be cut from the input layout. The \(n\)'s first positions define the cutting order of each required edge, and the next \(n\)'s indexes denote the direction of the cut. Finally, the remaining positions (\(2n+1\)) and (\(2n+2\)) are utilized to calculate the self-adjusting parameters \(\rho_{e}\) and \(\beta\), correspondingly. Figure 3 illustrates the three elements of individual representation. Figure 2: The ABRKGA workflow. Adapted from [8]. It is necessary to emphasize that the cutting process starts from the original system of each device (source) and returns with the movement head at the end (regress). This research considers point (0,0) as the source because the industrial cutting machine applies the same idea. In this context, Figure 4 shows a visual solution considering an input layout and the same individual presented in Figure 3.  
Therefore, the fitness of each individual (\(fitness(i)\)) and, consequently, the quality of the solutions is linked to the cutting time of an input layout. It is crucial to compute the fitness function for each \(i\) to count the time to cut the necessary edges (\(T_{cut}\)) and the movements of the head from the origin to the initially chosen node of the layout and back to the source (\(t_{offset}\)). Then, we use the head movement speed (\(V_{m}\)) and cutting speed (\(V_{c}\)) to calculate the value of \(T_{cut}\). Figure 5 shows the \((i\,,i+1)\) step of the \(fitness\) function. Note that \((i)\) typifies the edge to be cut in time(\(i\)), and \((n+i)\) the direction, see Figure 3. The position \(individual[i]=4\) and \(individual[n+i]=1\) indicates that the edge labeled with 4 must be separated with the direction of nodes (\(0\to 3\)).