ISSN: 2641-3086
##### Trends in Computer Science and Information Technology
Research Article       Open Access      Peer-Reviewed

# Optimizing the Cross Section of Cold-Rolled Steel Beams Using a Genetic Algorithm: Avoiding Local Optima Using Adaptive Mutation Control, Flexible Restriction Handling and Inbreed Avoiding Mating Strategies

### Florian Esterhammer1, Christoph Wolf2, Anna Theresia Stadler2 and Werner Baumgartner2*

1RWTH-Aachen University, Department of Cellular Neurobionics, Germany
2Johannes Kepler University of Linz, Institute of Biomedical Mechatronics, Austria
*Corresponding author: Werner Baumgartner, Institute of Biomedical Mechatronics, Johannes Kepler University of Linz, Altenbergerstr. 69, 4040 Linz, Austria, E-mail: werner.baumgartner@jku.at
Received: 31 March, 2016 | Accepted: 21 April, 2016 | Published: 26 April, 2016
Keywords: Cold forming; Evolution; Restricted optimization; Penalty function; Cold-formed steel; Steelwork

Cite this as

Esterhammer F, Wolf C, Stadler AT, Baumgartner W (2016) Optimizing the Cross Section of Cold-Rolled Steel Beams Using a Genetic Algorithm: Avoiding Local Optima Using Adaptive Mutation Control, Flexible Restriction Handling and Inbreed Avoiding Mating Strategies. Trends Comput Sci Inf Technol 1(1): 001-011. DOI: 10.17352/tcsit.000001

In modern mechanical engineering and steelwork the use of cold-rolled steel sections is a standard method. These sections should be mechanically stable on the one hand and cost efficient on the other hand. To decide what profile suits for a certain case is a constrained optimization problem which is in general non convex, i.e. several local optima exist.

To solve this non trivial problem we used genetic algorithms, search heuristics that mimic the process of natural evolution. For the specific application some additional problems had to be solved: First, an adaptive mutation control was implemented. Second, a mixed asexual and sexual reproduction was applied with an inbreed avoiding method based on the genetic distance of the individuals. Third, the restrictions were handled flexible, dependent on the mutation strength. This means that under the conditions of strong mutations (r-strategy), violations of the restrictions are allowed within some limits corresponding to reduced evolutionary pressure. Later on when approaching an optimum and the algorithm changes eventually to K-strategy, the restrictions become more severe corresponding to stabilising selection.

The presented algorithm was tested on some cases; we found that significant improvement of cost efficiency was reached while mechanical stability was still granted. In comparison to hard restriction implementations like constant penalty functions or Lagrange-multipliers due to the flexible restrictions the algorithm tends significantly less to sustain in local optima. This approach could help to find cost efficient and light weight steel structures for mechanical engineering in the near future.

### Introduction

To produce steel beams with high mechanical stability the method of choice is the cold-rolling process [1]. It not only allows a high range of geometric possibilities but also ensures a cost efficient production: High end manufacturing equipment is available to produce tubes and sections from steel sheets in a continuous process. Although the wall thickness is constant, this technique allows a wide variability in sections and tubes, the latter produced by welding the steel sheets’ ends together within the forming process [1].

Such a profile has to meet several requirements with respect to the mechanical load. Parameters like moments of inertia, moments of resistance, torque of inertia, buckling-stability, slenderness ratio and the radii of inertia have to be in a range suitable for the material to withstand the loads. Facing the countless possibilities for steel beam profiles it is not easy to find the optimal, tailor made profile for a certain application case. Usually, the required mechanical parameters are calculated from the loads expected. Then either the cheapest profile from a palette of standard products is selected just fulfilling the mechanical requirements (including some safety-factor) or some experienced engineer uses inspiration and perspiration to design a profile where the material is “optimally” exploited.

The optimization problem could be solved using a method from the field of nonlinear programming, where the problem is defined by a system of equalities and inequalities, collectively termed constraints, over a set of unknown real variables, along with an objective function to be maximized or minimized, where some of the constraints or the objective function are nonlinear [2].

Formally: Let n, m, and p be positive integers. Let X be a subset of Rn, let f, gi, and hj be real-valued functions on X for each i in {1, …, m} and each j in {1, …, p}.

A nonlinear minimization problem is an optimization problem of the form

$f( x )→min g i ( x )≤0∀i∈{ 1,..,m } h j ( x )=0∀j∈{ 1,..,p } x∈X MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqkY=3j0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFfea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOabaeqabaqaaiaadAgadaqadaqaaiaadIhaaiaawIcacaGLPaaacqGHsgIRcaWGTbGaamyAaiaad6gaaaqaaeaacaWGNbWaaSbaaSqaaiaadMgaaeqaaOWaaeWaaeaacaWG4baacaGLOaGaayzkaaGaeyizImQaaeimaiabgcGiIiaadMgacqGHiiIZdaGadaqaaiaabgdacaqGSaGaaeOlaiaab6cacaWGSaGaamyBaaGaay5Eaiaaw2haaaaabaqaaiaadIgadaWgaaWcbaGaamOAaaqabaGcdaqadaqaaiaadIhaaiaawIcacaGLPaaacaWG9aGaaeimaiabgcGiIiaadQgacqGHiiIZdaGadaqaaiaabgdacaqGSaGaaeOlaiaab6cacaWGSaGaamiCaaGaay5Eaiaaw2haaaaabaqaaiaadIhacqGHiiIZcaWGybaaaaaa@637C@$

Constrains (all the gi and hj) are typically handled using Lagrange-multipliers, penalty-functions, barrier-functions, combinations of the former or methods eliminating degrees of freedom if the problem allows this [2,3]. All these methods transform the constrained to an unconstrained optimization problem.

Standard optimization algorithms can hardly be applied in our case of cold rolled steel profiles if a full topography optimization is required. This is because the problem is highly non convex, i.e. there are several local optima. Furthermore it is a restricted optimization, i.e. there are “solutions” which are not allowed for example due to mechanical limitations. Constrained optimization however is not easily implemented in standard optimization methods like downhill-simplex, gradient-search, quasi-Newton methods, secant method or Newton methods and makes these algorithms even more vulnerable to local optima [2,3]. Global optimization for non-convex problems is a big problem and there is no method that guarantees success. Besides great deluge algorithm, simulated annealing, Metropolis algorithm, threshold acceptance, hill climbing, ant algorithm, stochastic tunneling and RANSAC-algorithm the most promising and wide used approach is that of the genetic algorithm or evolutionary algorithm.

A genetic algorithm is a search heuristic that mimics the process of natural evolution [4-7]. This heuristics can be used to generate useful solutions to optimization and search problems. In a genetic algorithm, a population of individuals (candidate solutions) is evolved toward better solutions with respect to a fitness function. Each candidate solution has a set of parameters (its chromosomes or genome) fully describing the solution, which can be mutated and altered by recombination due to sexual reproduction. The genome of an individual is represented by a vector. Each entry constitutes one parameter [4-7].

A genetic algorithm basically works according to the following pseudocode:

Generate the initial population of individuals of size N

Evaluate the fitness of each individual in that population

While termination condition not fulfilled

Select M individuals (M

Generate offspring individuals by reproduction from parents

Mutate new individuals

Evaluate the individual fitness of offspring individuals

Replace least-fit subpopulation with new individuals to maintain population size N

End

Even though this approach is rather simple, it has proven its ability to solve difficult optimization problems in structural engineering in the past [4-12]. Not surprisingly, attempts to optimize cold formed steel profiles were made: Lu and Makelainen [13-15] and Lee et al. [16,17], used genetic algorithms to optimize dimensions of specific cold-formed steel profiles like hat, C and Σ profiles. Griffiths and Miles [18], used genetic algorithms where a voxel-based representation in which the design space was decomposed into a grid of identical sized squares. Cross-over and mutation operators were not applied to the genotype strings but to the design space, allowing evolution and convergence to known optimum I and box profiles. Gilbert et al. [19], showed - very comprehensive - that direct shape optimization is possible.

As mentioned above, the genetic algorithm is in principle a very simple and powerful method to optimize cold-formed steel profiles; however, there is one major difficulty: How to overcome local optima? The optimization of profiles is a non-convex problem, thus several optima occur. It has to be avoided that the algorithm gets stuck in one of these during the optimization process. All former mentioned studies faced this problem by restricting the search in the high dimensional search-space using different tricks.

The problem of avoiding local optima can be mainly broken up to three main issues that have to be overcome in order to effectively apply genetic algorithms to our problem of steel beam profile optimization effectively:

1. Mutation strength: How strong should the variation of the individuals in one generation be? Is K-strategy (slow but precise progress) or r-strategy (fast but crude progress) better?

2. Mating partner selection: How important is sexual reproduction and how can mating partners be selected in order to avoid inbreed?

3. Implementation of restrictions: How can mechanical and geometrical restrictions be implemented?

The first point can be addressed using the ‘rule of fifth’ originally developed by Rechenberg [6]. He demonstrated how the evolution process can be improved by adapting the mutation strength over time and depending on the improvement rates the current strength achieves. The rule states that the mutation strength should be increased if more than a fifth of all mutations are improvements to avoid getting stuck in a local maximum. Consequently the mutation strength should be decreased if less than a fifth of all mutations are improvements. The second point has been shown to be of significant importance by Affenzeller et al. [20], who described how the diversity in a population can be analyzed. They gave some insight into the importance of a diverse population for the success of the algorithm and additionally highlighted the importance of the selection, specifically the mate selection for the generation of offspring. Huang [21] shared his work and success with a mate selection modelled after the immune system. This makes it possible to maintain different subpopulations which increase the diversity. However, this comes at the cost of the success rate for mating and general convergence speed. As more dissimilar individuals mate, the likelihood to obtain non-viable offspring is increased. For the final issue raised, the standard solution would be the use of Lagrange multipliers [22] or a formulation of Kuhn-Tucker conditions [3]. For genetic algorithms, though, no perfect general solutions or approaches were found in the literature. We discovered that Lagrange multipliers or other standard penalty functions tend to make the algorithms very sensitive to local optima. That is why we decided to turn our own attention to it. In this article we make deliberate use of our concept of conserved segments in genetic algorithms to consider limitations during the optimization process.

### Methods and Theory

##### Data representation and reproduction

A profile produced by tin profiling can be represented in different ways. We found, similar to [19], that for a finite number of local bends the x- and y- coordinates of all bends, i.e. of all corners are the most convenient and well scaled representations of a profile. Thus the vector $g ˜ MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqkY=3j0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFfea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiqadEgagaacaaaa@3816@$ of all genes is given by

With $x ˜ MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqkY=3j0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFfea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiqadIhagaacaaaa@3827@$ representing the vector of all x-coordinates and $y ˜ MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqkY=3j0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFfea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiqadMhagaacaaaa@3828@$ being the vector of all y-coordinates of the bends 1..n. Between the bends the tin is flat. Each individual, i.e. each profile under investigation can be represented by such a vector referred to as genome. Alternative representations like the angles of deformations were found to yield less numerical stability as small changes in the first bends can lead to rather large changes in the later bends and thus the scaling of the genes is not uniform or the genes are not independent.

For the reproduction, one has to decide if asexual or sexual reproduction is applied. In the simple case of asexual reproduction an individual is selected for reproduction and a copy of the genome is taken and subjected to mutation (see below) for the next generation.

In the case of sexual reproduction two individuals have to be selected. This selection process is described below. If two individuals, represented by their genomes

were selected, in our case of continuous parameters two methods for recombining the genetic information were tested.

-Intermediate recombination

The genes (lines in the vectors) of the child-individual $c ˜ MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqkY=3j0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFfea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiqadogagaacaaaa@3812@$ are simply the averages of the corresponding genes of the parents.

-m-point cross over

For this method m equally distributed random integer numbers 1i is swapped between the parent organisms leading to two children. The number of recombination points m can be set to a fixed number like 1 or 2 (which were found to be convenient) or can be generated randomly.

These reproduction processes are repeated to obtain the demanded number of individuals for the next generation. The so produced children are then subjected to mutations.

##### Mutation

The mutation of an individual i, i.e. a profile represented by $g ˜ i MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqkY=3j0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFfea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaeaaceWGNbGbaGaadaWgaaWcbaGaamyAaaqabaaaaaa@3931@$ can be constructed by adding a vector of normal distributed values of the corresponding size to $g ˜ i MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqkY=3j0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFfea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiqadEgagaacamaaBaaaleaacaWGPbaabeaaaaa@3930@$ as

so the 2n values of Ni are normal distributed random numbers with mean 0 and standard deviation 1. In our approach all individuals of the offspring were mutated according to Eq. 4. The values si which can be 0 or 1 represent the protection of the end coordinates; if for example the x-coordinate of a bend j must not be changed due to constructive demands, sj is 0. If the y-coordinate of the bend number j must be protected, the sn+j is also 0. The value µ is the mutation strength which was found to be a rather critical parameter. If µ is large, the initial improvement of the fitness is fast and it is very likely to overcome local optima of the fitness function. However, a precise optimization close to the optimum is hardly possible. If on the other hand µ is small, a very fine search for the optimum is possible, however, the progress is slow and even more critical, and the algorithm can get stuck in a local optimum. Thus the mutation strength µ must be adapted continuously during the application of the algorithm. Therefore we applied the 1/5-method established by Rechenberg [6]. If the number of individuals in the generation t+1 that have higher fitness than their parents is significantly higher than 1/5th of the total number of individuals in this generation, the mutation rate is increased by a factor of 10. If on the other hand the better individuals are below 1/5th of the total number, the mutation strength is reduced by a factor of 3. These values were empirically obtained to yield good results.

##### Fitness

The fitness has to depend on the weight per unit length, which is proportional to the cross section area of the steel sheet when the material is given. Thus the first idea for the fitness F would be

with A being the cross-sectional area. However, demands concerning mechanical stability and geometric restrictions have to be fulfilled. To assure mechanical stability calculations for beams on two supports according to the DIN EN 1993 (Eurocode 3) were established. For our purpose the forces and momenta were calculated. Then for given restrictions concerning deformations and carrying capacity, parameters of the profile like moments of inertia, the moments of resistance, torque of inertia, buckling-stability, slenderness ratio and radii of inertia were calculated for each profile under consideration. If the stability criteria are not met by the profile under consideration, the fitness has to be reduced by a penalty function. We found that a throughout strict penalty function, i.e.

F=1/A if stability is granted and (6)

F=0 otherwise

to be misleading as the optimization algorithm exhibits a tendency to get stuck in a local optimum. To avoid this, we found the following method. Dependent on the state of the evolutionary optimization violations of the stability criteria are allowed. Initially when a large mutation strength µ is given, stronger violations of the stability criteria are tolerated, when fine tuning of the profile, i.e. when the mutation strength is small, the tolerated violations are turned to zero. For example with respect to allowed bending deformations the area moment of inertia around the x-axis Ix is calculated and compared to the minimal area moment of inertia Ix,min. Then a weighting factor hIX is calculated

with V being a steepness factor. A value of V equal one over ten times the number of variable entries in the genome was found empirically to be well suited. However, this factor might need individual adaptation by the operator to yield good results. Other functions were also tested and found to be in principle suited for calculation of the weighting factor like the logistic function or other sigmoidal functions. In the end it must be a function that is 1 if the stability criteria is fulfilled and which decrease towards 0 in the case of violations of these criteria. The decrease due to the violation must become stronger with decreasing mutation strength so that for µ-> 0 the weighting function becomes the Heaviside function at the stability limit.

The factor hIX is 1 if the area moment of inertia is high enough and decreases linearly with slope $V⋅μ MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqkY=3j0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFfea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaeaacaWGwbGaeyyXICncciGae8hVd0gaaaa@3BFE@$ until zero if Ix is smaller than Ix,min. The fitness-function F is then calculated as

with hi denoting all weighting factors for all the mechanical parameters mentioned above. One important aspect is that the corrected fitness has to be calculated for the best individual in each generation as the correction factor could have been changed.

##### Selection

For the different algorithms tested different selection strategies were used. The first and most simple algorithm was an ES (200+1) (ES for evolutionary strategy) [6], but with the above described modified fitness function. This means that in each generation 200 children are generated asexually from one parental individual. From all 200 children plus the parental individual the best (fittest) individual is selected as parental individual for the next generation.

Alternatively a roulette decision was used for the selection of 10 individuals out of 30 individuals from the current generation [21,23,24]. The selection was done by setting the selection probability p(i) of the ith individual to be proportional to the fitness of this individual

Then the 10 individuals were selected using a roulette decision based on uniformly distributed random numbers.

For normal sexual reproduction i.e. for applying recombination simply pairs of the selected 10 individuals were chosen.

In an alternative approach a special roulette-decision was made in order to get individuals with high fitness but also to avoid inbreed, which is the recombination of closely related (i.e. similar) individuals [21]. For this an individual $g ˜ MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqkY=3j0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFfea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiqadEgagaacaaaa@3816@$ is chosen either by normal roulette decision which means with probabilities proportional to the fitness or as the individual with the highest fitness. Then for the remaining individuals $h ˜ i MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqkY=3j0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFfea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiqadIgagaacamaaBaaaleaacaWGPbaabeaaaaa@3931@$ a modified fitness is calculated from the initial fitness and the genetic distance of $h ˜ i MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqkY=3j0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFfea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiqadIgagaacamaaBaaaleaacaWGPbaabeaaaaa@3931@$ and $g ˜ MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqkY=3j0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFfea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiqadEgagaacaaaa@3816@$ according to

with the genetic distance

Thus $g ˜ MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqkY=3j0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFfea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiqadEgagaacaaaa@3816@$ if $g ˜ MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqkY=3j0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFfea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiqadEgagaacaaaa@3816@$ $g ˜ MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqkY=3j0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFfea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiqadEgagaacaaaa@3816@$ and are similar (closely related) the fitness is reduced. In the above formula v denotes a weighting factor for the influence of the distance onto the modified fitness. Typically v=2 was found very reasonable. Based on this modified fitness function a partner for $g ˜ MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqkY=3j0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFfea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiqadEgagaacaaaa@3816@$ is chosen out of the $h ˜ i MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqkY=3j0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFfea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaeaaceWGObGbaGaadaWgaaWcbaGaamyAaaqabaaaaaa@3932@$ and children individuals are created according to the recombination rules defined above. This approach avoids that only similar individuals which of course have rather similar fitness values are recombined as this does not improve genetic variability. Thus if an individual is sufficiently good and really different from the initially chosen individual which has most likely a very high fitness, the modified fitness is high and the children are likely to exhibit new properties. This increases the genetic variation in the next generation.

##### Implementation

All algorithms were implemented in the numeric software environment Octave version 3.8.1 including the parallel computation package running on a 6-core PC using the Linux-Distribution XUubuntu 14.10 as operating system. As an isolation strategy was used (see below), different populations were allowed to evolve independently for some time before comparing to the other populations. This yielded a simple parallelisation. Using the pararrayfun-command from the parallel-computation package the 64 populations were started on the cores available on the computer. This resulted in a speed up of a factor 4.2 in comparison to simple sequential computation.

The mechanics of the restrictions used according to the DIN EN 1993 (Eurocode 3) are shown in Appendix A. The principle of the algorithm is shown as Octave-inspired pseudocode in Appendix B.

### Results

##### Comparison of asexual and sexual reproduction

First the different reproduction methods were compared with respect to convergence and run time. Therefore some simple test cases were optimized, always trying to minimise weight but maintain mechanical stability as restriction. A typical result is shown in Figure 1. As initial profile a hollow rectangle 10 x 15cm with wall thickness of 1.75mm was chosen. For constructive reasons a 90° angle is assumed to be needed at the origin. No prominences below 0 in x- and y-direction are allowed. A closed profile is required exhibiting at least the area moments of inertia of the rectangular profile (Ix=165cm⁴ and Iy=299cm⁴). Furthermore the section modulus of torsion has to be above Itmin=315cm³; the section muduli have to be above Wzmin=25 cm³ and Wymin=33cm³ respectively; the radii of inertia are demanded to be above rtymin=18cm and rtzmin=34cm in order to avoid euler-bending and buckling. The number of allowed bends was 9 set by 12 bends with 3 protected coordinates.

$g ˜ init =( 0,0,0,0,3,7,10,10,10,10,10,7,5,0,0, 10,12,15,15,15,15,9,4,0,0,0,0,0 ) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqkY=3j0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFfea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiqadEgagaacamaaBaaaleaacaWGPbGaamOBaiaadMgacaWG0baabeaakiaad2dadaqadaabaeqabaGaaeimaiaabYcacaqGWaGaaeilaiaabcdacaqGSaGaaeimaiaabYcacaqGZaGaaeilaiaabEdacaqGSaGaaeymaiaabcdacaqGSaGaaeymaiaabcdacaqGSaGaaeymaiaabcdacaqGSaGaaeymaiaabcdacaqGSaGaaeymaiaabcdacaqGSaGaae4naiaabYcacaqG1aGaaeilaiaabcdacaqGSaGaaeimaiaabYcaaeaacaqGXaGaaeimaiaabYcacaqGXaGaaeOmaiaabYcacaqGXaGaaeynaiaabYcacaqGXaGaaeynaiaabYcacaqGXaGaaeynaiaabYcacaqGXaGaaeynaiaabYcacaqG5aGaaeilaiaabsdacaqGSaGaaeimaiaabYcacaqGWaGaaeilaiaabcdacaqGSaGaaeimaiaabYcacaqGWaaaaiaawIcacaGLPaaaaaa@6C64@$

and the vector $s ˜ MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbnvMCYL2DLfgDOvMCaeXatLxBI9gBaerbd9wDYLwzYbItLDharuavP1wzZbItLDhis9wBH5garqqtubsr4rNCHbGeaGakY=3j0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFfea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaabauaaaOqaaiqadohagaacaaaa@3D2A@$ of the protection values si is

$s ˜ =( 0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0, 1,1,1,1,1,1,1,1,1,1,0,0 ) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqkY=3j0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFfea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiqadohagaacaiaad2dadaqadaabaeqabaGaaeimaiaabYcacaqGWaGaaeilaiaabgdacaqGSaGaaeymaiaabYcacaqGXaGaaeilaiaabgdacaqGSaGaaeymaiaabYcacaqGXaGaaeilaiaabgdacaqGSaGaaeymaiaabYcacaqGXaGaaeilaiaabgdacaqGSaGaaeimaiaabYcacaqGWaGaaeilaiaabcdacaqGSaGaaeimaiaabYcaaeaacaqGXaGaaeilaiaabgdacaqGSaGaaeymaiaabYcacaqGXaGaaeilaiaabgdacaqGSaGaaeymaiaabYcacaqGXaGaaeilaiaabgdacaqGSaGaaeymaiaabYcacaqGXaGaaeilaiaabcdacaqGSaGaaeimaaaacaGLOaGaayzkaaaaaa@6091@$

Rendering the coordinated (0,0), (0,10) and (5,0) protected. As the profile is closed the last entry in x and y is identical to the first entry which is (0,0). An optimized result in comparison to the initial rectangular profile is shown in Figure 1. Obviously the 90°-angle at (0,0) is maintained and the rest of the profile was evolved to a rather elliptic shape. Of course due to the limited number of allowed bends the elliptic form is only approximated. Different results for the coordinates (all localised on the ellipse) exist with approximately the identical fitness. This optimized profile yields a mass reduction of 4.97% compared to the rectangular profile. The development of the fitness function in dependence on the generation number is depicted in Figure 2 for different algorithms. First the simple asexual reproduction was employed (solid line). Then simple sexual reproduction with intermediate recombination was used (dashed line) where all individuals of the offspring were produced by sexual reproduction. Finally the inbreeding avoiding sexual reproduction (dash-dotted line) with 2-point cross over was applied; again all individuals were the result of sexual reproduction. Clearly the sexual reproduction is slightly faster with respect to the number of generations needed. Interestingly the inbreeding avoiding algorithm is extremely fast in the beginning but slows down in comparison to the simple sexual reproduction. If simple m-point cross over or inbreeding avoiding with intermediate recombination were applied the results were very similar (data not shown). Generally sexual reproduction and concomitant crossover of the chromosomes improves the useful genetic variability especially for complex organisms. In the field of genetic algorithms it is well established that crossover normally speeds up the convergence with respect to the number of generations and helps to avoid local optima. In contrast to other optimization problems the advantages of the sexual reproduction are rather small in our case of profile optimization with respect to the number of generations needed. This was found for virtually all test examples we investigated (not shown). As the computational effort for each generation is significantly higher in the case of sexual in comparison to the asexual reproduction, the runtime would even increase significantly when sexual reproduction is allowed.

##### The effect of adjustable penalty function

The difference of a strict penalty function (Eq. 6) and our flexible penalty (Eq. 7) which tolerates violations of the restricting conditions dependent on the mutation strength is exemplified in Figure 3. A profile for a guiding rail was taken. The profile has to fulfil the following conditions: The area moments of inertia have to be above Iymin=25cm⁴ and Izmin=94cm⁴; the section modulus of torsion has to be above Itmin=0.008cm³; the section moduli have to be above Wzmin=19cm³ and Wymin=20cm³ respectively. Most important the radii of inertia are demanded to be above rtymin=11cm and rtzmin=11cm in order to avoid Euler-bending and buckling. Geometric restrictions were also given: For bolting the guiding rail a vertical section at x=0 from y=2 to y=-2 has to be given and no parts of the profile may reach below x=0 to make bolting possible. Furthermore the width was restricted to 10cm. Now a B-profile (or Σ−profile) was chosen which fulfilled these restrictions best. This is shown in Figure 3A. If this profile is then subjected to an evolution algorithm with the strict penalty function (Eq. 6) which does not allow any violation of the above condition, the optimization stops at a hardly improved profile. A typical example is shown in Figure 3B. The reduction of mass was below 1%. This was found in 50 test runs. If however the flexible penalty function (Eq. 7) was used, the optimization could jump out of the local optimum and reach fundamentally new results. One example is shown in Figure 3C yielding a mass reduction of about 23%. To make the production feasible and to reduce problems with local buckling, of course the human designer will further improve the profile to demands, which cannot easily be implemented. The result is shown in Figure 3D. This profile can be cold-formed with reasonable effort and can be bolted easily while still fulfilling the mechanical demands. However, a mass reduction of still about 20% is achieved in comparison to the initial profile. Without the flexible penalty the initial profile could not evolve to the found optimized profile or a similar one in more than 100 test runs we performed.

##### An algorithm inspired by parthenogenetic animals

Sexual recombination, especially with inbreeding avoidance, has the advantage that the algorithm often does not stagnate in a local optimum [4,21,23,24], but continues to a better or even global optimum. To combine the fast convergence of the asexual and the better performance with respect to local optima of inbreeding avoiding recombination, we implemented an algorithm inspired by animals with facultative parthenogenesis. Different scorpions, bugs, mints or insects like the stick insect Carausius morosus can reproduce themselves in two different ways [25]. As there are much more female animals than male individuals, the female can reproduce asexually by producing non inseminated eggs. These animals develop normally as a clone of the mother but of course are subject to mutations. If, however, a male is present, sexual reproduction including recombination can take place. This combines the rapid and simple proliferation of asexual reproduction and the higher variability of sexual reproduction.

Initially an isolation strategy was used, meaning different populations (typically 64) were allowed to evolve independently and after the evolution was found to stagnate for all populations (mutation strength µ<10-6), the found optima were taken. One calculation is exemplified in Figure 4. The fittest individual of all 64 individuals had a fitness of 0.1477. This individual was selected for sexual reproduction. The mating partner has to be determined using the fitness corrected by the genetic distance to the first chosen individual. The finesses for the remaining 63 individuals are shown in Figure 4A. The genetic distances of the individuals to the initially chosen individual in our example are shown in Figure 4B. The modified fitness, i.e. the normalized fitness multiplied by the distance squared is shown in Figure 4C. Three individuals are marked A, B and C respectively to make the effect clear. Individual A has a high distance (no close relative) but a rather small fitness resulting in a low corrected fitness yielding it unlikely to be chosen for reproduction. Individual B has a high fitness (in fact the second best fitness in our example) but a small distance. This means that it is very similar to the initial individual and its genome carries hardly new information. The modified fitness is consequently small, rendering individual B not appropriate for reproduction. Individual C however has a high fitness and a high distance and is an excellent mating partner for the fittest individual of the population.

These “optimal” individuals were allowed to reproduce sexually with the inbreeding avoiding method yielding again 64 individuals. These recombined individuals were again allowed to evolve asexually. We typically found that repetition of this procedure yielded no further improvement in all cases tested, thus one sexual reproduction step was used only. A representative curve of the development of the best fitness in each generation is depicted in Figure 5. It has to be emphasized that the uncorrected fitness, i.e. 1/A is plotted here. Initially, when strong mutation takes place, profiles with very small A can occur (4th generation) which violate our restrictions. Due to the adjustable penalty function this is tolerated. After generation 30 hardly any improvement occurs. However, after the sexual recombination at generation 56 a new profile is found allowing further improvement to the final fitness level. Due to the initially occurring strong mutations, violations of the restrictions are tolerated, leading to the apparent high fitness at generation 58. The whole calculation of this example took about 3 minutes using the implementation described above. This is an example for the optimization of an existing warehouse rack profile. The results are depicted in Figure 6.

### Discussion

Cold-formed steel profiles are produced by bending a thin steel sheet at ambient temperature to a desired shape [1,26]. This yields an efficient and fast way to produce members that are commonly used in applications such as steel storage racks, roof and wall systems, composite concrete and steel slabs, or automotive parts [26-31]. In cold-formed steel profiles could exhibit an enormous flexibility of cross-sectional shapes due to the manufacturing process allowing the achievement of almost any desired cross-section. The cross-sectional shape is the key element in enhancing the properties of the steel profile. However, research on optimization of cold-formed steel profiles has been restricted mainly to the conventional C, Z or Σ cross-sectional shapes where only the dimension variables of the existing cross-sections were optimized [29,30]. Therefore innovations were rather limited.

In principle for general structural (topological) optimization genetic algorithms appear to be well suited [32-37]. This is true also for highly restricted problems [33,34], or even for the surveyance of structures [38]. However, due to the multiple optima in the problem of cold-formed steel section optimization the attempts were not too successful in the past.

Here we show that the combination of several improvements of the simple genetic algorithm can yield good results for a general shape optimization of steel profiles.

Choosing an adjustable penalty function over a hard cut-off value significantly increased the chance of finding fitter individuals. With a flexible penalty function the improvements surpassed the strict functions best result by more than 20%. It is assumed that while there are several local maxima available in the fitness landscape, they are separated by vast areas in which the stability criteria are not fulfilled. Those areas cannot be crossed if each and every individual representing a step through it is considered non-viable by the strict function. The adjustable penalty function permits the crossing between areas of the fitness landscape yielding viable individuals during the early stages of the evolutionary process. By reducing the permissiveness over the generations later generations will still focus on Optimizing individuals within the local maximum, thereby still taking full advantage of the strength of a strict cut-off function.

The example presented showcases the usefulness of such adjustable penalty functions when facing an optimization problem in which viable options are scattered across the fitness landscape. Simpler problems probably won’t gain anything if the entire fitness landscape yields viable individuals. The algorithm, throughout the tests, generated a variety of profiles that are, at least according to the numbers, very interesting. Before going into production, they should of course be investigated by engineers for mainly two reasons. First, the calculation of the stability criteria is a simplification that in fringe cases might not be an exact representation of the actual physical conditions. Second, while some profiles might fit the stability criteria and have significantly lower material requirements for production, it does not necessarily mean, that they can actually be easily produced. Therefore engineers must not only check the calculations for potential profiles, but also have to consider the feasibility of the production process.

In nature not only mutation, but, due to sexual reproduction, also recombination alters a populations gene pool and therefore contributes to evolution. Because recombination of the fittest individuals can have a high impact on evolutionary progress, this mechanism is often adopted in genetic algorithms. The problem occurring here is, that the fittest individuals will often be close relatives, so that recombination will lead to almost no progress in this case. To yield optimal progress, inbreed must be avoided.

While nature has several mechanisms to prevent inbreeding, most standard genetic algorithms neglect the problem of inbreed which reduces genetic variation. In some advanced genetic algorithms the Westermarck effect (reverse sexual imprinting) [39], is used to reduce the problem. This is a psychological effect through which individuals who are raised in close proximity during childhood become desensitized to later sexual attraction. Alternatively selection schemes [20,24] can be applied.

In nature there are even other inbreeding avoiding mechanisms that also maintain overall diversity within the population. For example one can be found in wild guppy populations and is called negative frequency-dependent selection (NFDS) [40]. This strategy is characterized by a female preference of rare male phenotypes, which substantially raises the probability, that the mating partner is no close relative. In the case of the guppy (Poecilia reticulata, Peters, 1859) the reproduction-fitness is strongly influenced by the rarity of male phenotype. However, rare does not necessarily mean good.

In other species like mice (Mus musculus, Linnaeus, 1758) direct information about an individual’s genome, and therefore its actual genetic distance, is encoded through peptides in the urine and can be assessed by the olfactory system for inbreeding avoidance [41].

Based on the later, we found an alternative approach for the implementation of our algorithm more fruitful. As it focuses only on the genetic distance and not on the “family history”, it is easy to implement and rather fast. Furthermore we combined the advantages of asexual (fast) and sexual (good diversity) reproduction like some living beings do in nature. Pure sexual reproduction was found to be slow due to the elaborate and time consuming search for a mating partner. However, the genetic variability is improved by sexual reproduction in populations with high diversity when inbreed is avoided. To get the best of both, we switched between asexual and sexual reproduction which yielded fast convergence and good genetic diversity.

Taken together, we found a biomimetic approach to optimize cold-rolled steel beam profiles in order to exploit the material almost ideal for obtaining cost efficient and producible sections that can bear the specified mechanical load. The restrictions of the mechanical stability are formulated in such a general way that they can be easily extended. For example a finite element (FEM) simulation could also be performed and the von Mises stress and the local deformations could be used as constrains. The values from the FEM can be compared to the allowed values and the weighting factors hi for the calculation of the corrected fitness function can be obtained. Thus the algorithm described could help saving resources and energy as well as costs in mechanical engineering and structural steel work in the future.

### Conclusion

Summarising our work, we were able to implement an optimization algorithm to a highly nonconvex problem based on evolutionary algorithms. We introduced a simple and efficient solution where standard optimization algorithms can hardly be applied. We have established a new adjustable penalty function to calculate the fitness. This new function surpasses the standard penalty function by more than 20 percent. Furthermore, we found a simple solution to combine the fast convergence of the asexual recombination and the high performance with respect to local optima of inbreeding avoiding sexual recombination, i.e. we used an algorithm inspired by animals with facultative parthenogenesis.

### Appendix A

Mechanical constrains

##### Moments

The area moment of inertia with respect to the center of gravity around the x- and y-axis can be calculated in general as

And the centrifugal momentum is given as

Now for a rectangular profile like the streight walls of our profiles the moments around the main inertia axis and with respect to the center of gravity of the individual walls i are given by

with li denoting the length of wall i and w is the thickness of the tin. In order to calculate the moments around the main axis (through the area center of gravity) of our profile the individual walls have to be rotated and translocated. This is done in two steps. First a rotation by the angle i (angle between main axis of profile and wall) is carried out according to

Here $x ¯ MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqkY=3j0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFfea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiqadIhagaqeaaaa@3830@$ and $y ¯ MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqkY=3j0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFfea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiqadMhagaqeaaaa@3831@$ denote the correctly rotated but still translated axis. Then the translation to the center of gravity by the distances xi and xi can be carried out as

With A denoting the area of wall i which is li times w.

The section modulus (modulus of resistance) can be calculated by dividing the corresponding moment of inertia by the maximal distance of the profile from the center of gravity:

Euler buckling

For Euler-buckling stability the slenderness of the profile is calculated according to

with b being the buckling parameter which is 1 in the case of a lever jointed on both sides. L describes the length of the lever and i is the radius of inertia which can be calculated as

The Euler buckling tension is then calculated as

which is then compared to the actual normal stress in the profile.

Local Buckling

For determining the critical buckling stress the buckling stress for each flat segment of the profile (flat part between two bends) has to be calculated. If the profile is open, the end-segments with only one connection to a neighboring segment have a critical buckling stress as

with bi being the width of the ith-segment, E the youngs modulus and w the width of the tin. For all other segments (connected on both sides to neighboring segments) one obtains

The critical buckling stress of the whole profile is then calculated according to

which is then compared to the actual stress in the profile.

### Appendix B

Pseudocode of the developed algorithm

Function c=profilevo(c,nodsav,xlim,ylim,boundc)

Check reasonability of input

Sigma=.02; % mutation strength

Calculate area Amin of initial individuals;

While sigma>1e-5

For i=1: offspring number

ccange=randn(size(c)) * sigma;

cnew=c + nodsav .* ccange;

Limit coordinates to xlim and ylim

Calculate A of cnew;

Calculate h using sigma from boundary conditions boundc according to Eq. 7; Calculate F according to Eq. 9

if F

Amin=A;

c=cnew;

end

end

if percentage of improved offspring individuals >25

sigma=sigma/2;

elseif percentage of improved offspring individuals <15%

sigma=sigma*10;

end

end

The authors thank the framework of the Austrian Center of Competence in Mechatronics (LCM) and the voestalpine Finaltechnik Krems for financial support.

© 2016 Esterhammer F, et al. This is an open-access article distributed under the terms of the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original author and source are credited.