An Improved Butterfly Optimization Algorithm for Engineering Design Problems Using the Cross-Entropy Method
Abstract
:1. Introduction
2. Methods
2.1. Butterfly Optimization Algorithm
Algorithm 1: Butterfly Optimization Algorithm |
Begin |
Objective function , , here d represents the number of dimensions. |
Generate initial population P containing n butterflies . |
Stimulus intensity at is determined by the fitness value . |
Define sensor modality c, power exponent a, and switch probability p. |
while stop criteria not met do |
for each butterfly in the population P do |
Calculate fragrance f using Equation (5). |
end for |
Evaluate and rank the population P, and find the best butterfly. |
for each butterfly in the population P do |
Generate a random number . |
if () |
Implement global search using Equation (6). |
else |
Implement local search using Equation (7). |
end if |
end for |
Update the value of the power exponent a. |
end while |
Output the best solution and optimal value. |
End |
2.2. The Cross-Entropy (CE) Method
Algorithm 2: Cross-entropy (CE) for optimization problems |
Begin |
Set . Initialize the probability parameter . |
while stop criteria for CE not met do |
Generate . Evaluate and rank the sample S. |
Solve the problem given in Equation (11) based on the sample S. Denote the solution by . |
Update the parameter using . |
Set . |
end while |
Output the best solution and optimal value. |
End |
3. Hybrid BOA-CE Method
Algorithm 3: BOA-CE algorithm |
Begin |
Objective function , ; here, d represents the number of dimensions. |
Generate initial population P containing n butterflies . |
Stimulus intensity at is determined by the fitness value . |
Define sensor modality c, power exponent a, and switch probability p. |
while stop criteria not met do |
for each butterfly in the population P do |
Calculate fragrance f using Equation (5). |
end for |
Evaluate, rank P, and find the best butterfly. |
for each butterfly in the population P do |
Generate a random number . |
if () |
Implement global search using Equation (6). |
else |
Implement local search using Equation (7). |
end if |
end for |
Update the value of the power exponent a. |
Evaluate and rank the population P. |
Initialize the probability parameter using the population P. |
while stop criteria for CE not met do |
Generate , evaluate the sample S. |
Rank the population P and the sample S together, co-update P and S, update the best butterfly. |
Calculate the probability parameter by the elite sample . |
Update the probability parameters via Equation (12). |
end while |
end while |
Output the best solution and optimal value. |
End |
4. Experiment and Results
4.1. Results of the Algorithms Using Unimodal Test Functions
4.2. Results of the Algorithms Using Multimodal Test Functions
4.3. Results of the Algorithms on Composite Test Functions
4.4. Analysis of the Hybrid BOA-CE Algorithm
- The BOA, which mimics the food foraging behavior of butterflies in nature, has the advantage of a fast convergence rate. Based on co-updating, the BOA-CE uses the excellent individuals obtained by the BOA operator to update the CE operator’s probability parameters during the iterative process, which speeds up the convergence rate of the CE operator.
- The CE method is a global stochastic optimization method based on statistical model, and has the advantages of randomness, adaptability, and robustness, which bring a good population diversity to the BOA operator so that it can effectively avoid falling into a local optimum and improve its global search capability.
- The BOA-CE algorithm employs a co-evolutionary technique to co-update the BOA operator’s population and the CE operator’s probability parameters. This enables the improved method to obtain an appropriate balance between exploration and exploitation and have more superior performance in terms of exploitation, exploration, and local optima avoidance when solving complex optimization problems.
5. Using the BOA-CE Algorithm for Classical Engineering Design Problems
5.1. Tension/Compression Spring Design
5.2. Welded Beam Design
5.3. Pressure Vessel Design
6. Conclusions
Author Contributions
Funding
Acknowledgments
Conflicts of Interest
Appendix A
Name | Formulation |
---|---|
Sphere | |
Ackley | |
Griewank | |
Weierstrass | |
Rastrigin |
References
- Hu, X.; Eberhart, R.C.; Shi, Y. Engineering optimization with particle swarm. In Proceedings of the 2003 IEEE Swarm Intelligence Symposium, Indianapolis, IN, USA, 26–26 April 2003; pp. 53–57. [Google Scholar]
- Sergeyev, Y.D.; Kvasov, D.E. A deterministic global optimization using smooth diagonal auxiliary functions. Commun. Nonlinear Sci. Numer. Simul. 2015, 21, 99–111. [Google Scholar] [CrossRef]
- Lera, D.; Sergeyev, Y.D. GOSH: Derivative-free global optimization using multi-dimensional space-filling curves. J. Glob. Optim. 2018, 71, 193–211. [Google Scholar] [CrossRef]
- Sergeyev, Y.D.; Kvasov, D.E.; Mukhametzhanov, M.S. On the efficiency of nature-inspired metaheuristics in expensive global optimization with limited budget. Sci. Rep. 2018, 8, 453. [Google Scholar] [CrossRef] [PubMed]
- Zilinskas, A.; Zhigljavsky, A. Stochastic Global Optimization: A Review on the Occasion of 25 Years of Informatica. Informatica 2016, 27, 229–256. [Google Scholar] [CrossRef]
- Goldfeld, S.M.; Quandt, R.E.; Trotter, H.F. Maximization by quadratic hill-climbing. Econometrica 1966, 34, 541–551. [Google Scholar] [CrossRef]
- Abbasbandy, S. Improving Newton–Raphson method for nonlinear equations by modified Adomian decomposition method. Appl. Math. Comput. 2003, 145, 887–893. [Google Scholar] [CrossRef]
- Jones, D.R.; Perttunen, C.D.; Stuckman, B.E. Lipschitzian optimization without the Lipschitz constant. J. Optim. Theory Appl. 1993, 79, 157–181. [Google Scholar] [CrossRef]
- Mirjalili, S. The Ant Lion Optimizer. Adv. Eng. Softw. 2015, 83, 80–98. [Google Scholar] [CrossRef]
- Whitley, D. A genetic algorithm tutorial. Stat. Comput. 1994, 4, 65–85. [Google Scholar] [CrossRef]
- Wieczorek, L.; Ignaciuk, P. Continuous Genetic Algorithms as Intelligent Assistance for Resource Distribution in Logistic Systems. Data 2018, 3, 68. [Google Scholar] [CrossRef]
- Kennedy, J.; Eberhart, R.C. Particle swarm optimization. In Proceedings of the 1995 IEEE International Conference on Neural Networks, Perth, Australia, 27 November–1 December 1995; pp. 1942–1948. [Google Scholar]
- Yang, X.S.; Deb, S. Engineering Optimisation by Cuckoo Search. Int. J. Math. Model. Numer. Optim. 2010, 1, 330–343. [Google Scholar] [CrossRef]
- Yang, X.S. A new metaheuristic bat-inspired algorithm. In Nature Inspired Cooperative Strategies for Optimization (NICSO 2010); Springer: Berlin/Heidelberg, Germany, 2010; pp. 65–74. [Google Scholar]
- Mirjalili, S.; Mirjalili, S.M.; Lewis, A. Grey Wolf Optimizer. Adv. Eng. Softw. 2014, 69, 46–61. [Google Scholar] [CrossRef] [Green Version]
- Ghaemi, M.; Feizi-Derakhshi, M.R. Forest Optimization Algorithm. Expert Syst. Appl. 2014, 41, 6676–6687. [Google Scholar] [CrossRef]
- Naz, M.; Zafar, K.; Khan, A. Ensemble Based Classification of Sentiments Using Forest Optimization Algorithm. Data 2019, 4, 76. [Google Scholar] [CrossRef]
- Mirjalili, S.; Lewis, A. The Whale Optimization Algorithm. Adv. Eng. Softw. 2016, 95, 51–67. [Google Scholar] [CrossRef]
- Askarzadeh, A. A novel metaheuristic method for solving constrained engineering optimization problems: Crow search algorithm. Comput. Struct. 2016, 169, 1–12. [Google Scholar] [CrossRef]
- Mirjalili, S.; Gandomi, A.H.; Mirjalili, S.Z.; Saremi, S.; Faris, H.; Mirjalili, S.M. Salp Swarm Algorithm: A bio-inspired optimizer for engineering design problems. Adv. Eng. Softw. 2017, 114, 163–191. [Google Scholar] [CrossRef]
- Arora, S.; Singh, S. Butterfly algorithm with Lèvy Flights for global optimization. In Proceedings of the 2015 International Conference on Signal Processing, Computing and Control (ISPCC), Waknaghat, India, 24–26 September 2015; pp. 220–224. [Google Scholar]
- Arora, S.; Singh, S. Butterfly optimization algorithm: A novel approach for global optimization. Soft Comput. 2019, 23, 715–734. [Google Scholar] [CrossRef]
- Yang, X.S.; Deb, S. Cuckoo search: Recent advances and applications. Neural Comput. Appl. 2014, 24, 169–174. [Google Scholar] [CrossRef]
- Wolpert, D.H.; Macready, W.G. No Free Lunch Theorems for Optimization. IEEE Trans. Evol. Comput. 1997, 1, 67–82. [Google Scholar] [CrossRef]
- Lai, X.S.; Zhang, M.Y. An Efficient Ensemble of GA and PSO for Real Function Optimization. In Proceedings of the 2009 2nd IEEE International Conference on Computer Science and Information Technology, Beijing, China, 8–11 August 2009; pp. 651–655. [Google Scholar]
- Mirjalili, S.; Hashim, S.Z.M. A New Hybrid PSOGSA Algorithm for Function Optimization. In Proceedings of the 2010 International Conference on Computer and Information Application (2010 ICCIA), Tianjin, China, 3–5 December 2010; pp. 374–377. [Google Scholar]
- Abdullah, A.; Deris, S.; Mohamad, M.S.; Hashim, S.Z.M. A New Hybrid Firefly Algorithm for Complex and Nonlinear Problem. In Distributed Computing and Artificial Intelligence; Springer: Berlin/Heidelberg, Germany, 2012; pp. 673–680. [Google Scholar] [Green Version]
- He, X.S.; Ding, W.J.; Yang, X.S. Bat algorithm based on simulated annealing and Gaussian perturbations. Neural Comput. Appl. 2014, 25, 459–468. [Google Scholar] [CrossRef]
- Mafarja, M.M.; Mirjalili, S. Hybrid Whale Optimization Algorithm with simulated annealing for feature selection. Neurocomputing 2017, 260, 302–312. [Google Scholar] [CrossRef]
- Pepelyshev, P.; Zhigljavsky, A.; Zilinskas, A. Performance of global random search algorithms for large dimensions. J. Glob. Optim. 2018, 71, 57–71. [Google Scholar] [CrossRef]
- Rubinstein, R.Y. Optimization of Computer Simulation Models with Rare Events. Eur. J. Oper. Res. 1997, 99, 89–112. [Google Scholar] [CrossRef]
- Arora, S.; Singh, S. An Improved Butterfly Optimization Algorithm for Global Optimization. Adv. Sci. 2017, 8, 711–717. [Google Scholar] [CrossRef]
- Arora, S.; Singh, S. Node Localization in Wireless Sensor Networks Using Butterfly Optimization Algorithm. Arab. J. Sci. Eng. 2017, 42, 3325–3335. [Google Scholar] [CrossRef]
- Kroese, D.P.; Portsky, S.; Rubinstein, R.Y. The Cross-Entropy Method for Continuous Multi-extremal Optimization. Methodol. Comput. Appl. Probab. 2006, 8, 383–407. [Google Scholar] [CrossRef]
- Bekker, J.; Aldrich, C. The cross-entropy method in multi-objective optimisation: An assessment. Eur. J. Oper. Res. 2011, 211, 112–121. [Google Scholar] [CrossRef]
- Rubinstein, R.Y. The Cross-Entropy Method for Combinatorial and Continuous Optimization. Methodol. Comput. Appl. Probab. 1999, 1, 127–190. [Google Scholar] [CrossRef]
- Rubinstein, R.Y.; Kroese, D.P. The Cross-Entropy Method: A Unified Approach to Combinatorial Optimization, Monte Carlo Simulation and Machine Learning; Springer: New York, NY, USA, 2004. [Google Scholar]
- Chepuri, K.; Homem-De-Mello, T. Solving the vehicle routing problem with stochastic demands using the cross-entropy method. Ann. Oper. Res. 2005, 134, 153–181. [Google Scholar] [CrossRef]
- Yu, J.; Konaka, S.; Akutagawa, M.; Zhang, Q. Cross-Entropy-Based Energy-Efficient Radio Resource Management in HetNets with Coordinated Multiple Points. Information 2016, 7, 3. [Google Scholar] [CrossRef]
- Joseph, A.G.; Bhatnagar, S. An online prediction algorithm for reinforcement learning with linear function approximation using cross entropy method. Mach. Learn. 2018, 107, 1385–1429. [Google Scholar] [CrossRef] [Green Version]
- Peherstorfer, B.; Kramer, B.; Willcox, K. Multifidelity preconditioning of the cross-entropy method for rare event simulation and failure probability estimation. SIAM/ASA J. Uncertain. Quantif. 2018, 6, 737–761. [Google Scholar] [CrossRef]
- Wang, Y.; Yang, H.; Qin, K. The Consistency between Cross-Entropy and Distance Measures in Fuzzy Sets. Symmetry 2019, 11, 386. [Google Scholar] [CrossRef]
- Pramanik, S.; Dalapati, S.; Alam, S.; Smarandache, F.; Roy, T.K. NS-Cross Entropy-Based MAGDM under Single-Valued Neutrosophic Set Environment. Information 2018, 9, 37. [Google Scholar] [CrossRef]
- Eiben, A.E.; Schipper, C.A. On evolutionary exploration and exploitation. Fund. Inform. 1998, 35, 35–50. [Google Scholar]
- Yao, X.; Liu, Y.; Lin, G.M. Evolutionary Programming Made Faster. IEEE Trans. Evol. Comput. 1999, 3, 82–102. [Google Scholar]
- Liang, J.; Suganthan, P.; Deb, K. Novel composition test functions for numerical global optimization. In Proceedings of the 2005 IEEE Swarm Intelligence Symposium, Pasadena, CA, USA, 8–10 June 2005; pp. 68–75. [Google Scholar]
- Coello, C.C.A.; Mezura, M.E. Constraint-handling in genetic algorithms through the use of dominance-based tournament selection. Adv. Eng. Inform. 2002, 16, 193–203. [Google Scholar] [CrossRef]
- Coello, C.C.A. Use of a Self-Adaptive Penalty Approach for Engineering Optimization Problems. Comput. Ind. 2000, 41, 113–127. [Google Scholar] [CrossRef]
- He, Q.; Wang, L. An effective co-evolutionary particle swarm optimization for constrained engineering design problems. Eng. Appl. Artif. Intell. 2007, 20, 89–99. [Google Scholar] [CrossRef]
- Gandomi, A.H.; Yang, X.S.; Alavi, A.H.; Talatahari, S. Bat algorithm for constrained optimization tasks. Neural Comput. Appl. 2013, 22, 1239–1255. [Google Scholar] [CrossRef]
- Lee, K.S.; Geem, Z.W. A new meta-heuristic algorithm for continuous engineering optimization: Harmony search theory and practice. Comput. Methods Appl. Mech. Eng. 2005, 194, 3902–3933. [Google Scholar] [CrossRef]
- Huang, F.; Wang, L.; He, Q. An effective co-evolutionary differential evolution for constrained optimization. Appl. Math. Comput. 2007, 186, 340–356. [Google Scholar] [CrossRef]
Function | Dim | Range | |
---|---|---|---|
30 | 0 | ||
30 | 0 | ||
30 | 0 | ||
30 | 0 | ||
30 | 0 | ||
30 | 0 | ||
30 | 0 |
Function | Dim | Range | |
---|---|---|---|
30 | |||
30 | 0 | ||
30 | [−32, 32] | 0 | |
30 | [−600, 600] | 0 | |
30 | [−50, 50] | 0 | |
30 | [−50, 50] | 0 | |
Dim | Range | ||
---|---|---|---|
(CF1) | |||
Sphere Function, | 10 | 0 | |
(CF2) | |||
Griewank’s Function, | 10 | 0 | |
(CF3) | |||
Griewank’s Function, | 10 | 0 | |
(CF4) | |||
Ackley’s Function, Rastrigin’s Function, | |||
Weierstrass Function, Griewank’s Function, | 10 | 0 | |
Sphere Function, , | |||
(CF5) | |||
Rastrigin’s Function, Weierstrass Function, | |||
Griewank’s Function, Ackley’sGriewank’s Function, | 10 | 0 | |
Sphere Function, , | |||
(CF6) | |||
Rastrigin’s Function, Weierstrass Function, | |||
Griewank’s Function, Ackley’sGriewank’s Function, | |||
Sphere Function, , | 10 | 0 | |
, | |||
, | |||
Fun. | Metr. | GA | PSO | BA | GWO | CSA | SSA | BOA | BOA-CE |
---|---|---|---|---|---|---|---|---|---|
F1 | Mean | ||||||||
SD | |||||||||
F2 | Mean | ||||||||
SD | |||||||||
F3 | Mean | ||||||||
SD | |||||||||
F4 | Mean | ||||||||
SD | |||||||||
F5 | Mean | ||||||||
SD | |||||||||
F6 | Mean | 0 | |||||||
SD | 0 | ||||||||
F7 | Mean | ||||||||
SD |
Fun. | Metr. | GA | PSO | BA | GWO | CSA | SSA | BOA | BOA-CE |
---|---|---|---|---|---|---|---|---|---|
F8 | Mean | ||||||||
SD | |||||||||
F9 | Mean | ||||||||
SD | |||||||||
F10 | Mean | ||||||||
SD | 0 | ||||||||
F11 | Mean | 0 | |||||||
SD | 0 | ||||||||
F12 | Mean | ||||||||
SD | |||||||||
F13 | Mean | ||||||||
SD |
Fun. | Metr. | GA | PSO | BA | GWO | CSA | SSA | BOA | BOA-CE |
---|---|---|---|---|---|---|---|---|---|
F14 | Mean | ||||||||
SD | |||||||||
F15 | Mean | ||||||||
SD | |||||||||
F16 | Mean | ||||||||
SD | |||||||||
F17 | Mean | ||||||||
SD | |||||||||
F18 | Mean | ||||||||
SD | |||||||||
F19 | Mean | ||||||||
SD |
Fun. | GA | PSO | BA | GWO | CSA | SSA | BOA | BOA-CE |
---|---|---|---|---|---|---|---|---|
F1 | 8.96 | 0.20 | 0.33 | 0.55 | 0.10 | 0.66 | 0.46 | 0.41 |
F2 | 8.80 | 0.21 | 0.35 | 0.57 | 0.11 | 0.43 | 0.49 | 0.42 |
F3 | 10.75 | 0.76 | 2.52 | 1.13 | 2.02 | 0.56 | 1.61 | 1.15 |
F4 | 8.44 | 0.20 | 0.41 | 0.55 | 0.14 | 0.38 | 0.46 | 0.40 |
F5 | 9.11 | 0.27 | 0.59 | 0.62 | 0.29 | 0.45 | 0.59 | 0.51 |
F6 | 8.57 | 0.20 | 0.34 | 0.55 | 0.10 | 0.38 | 0.45 | 0.40 |
F7 | 9.29 | 0.54 | 0.91 | 1.14 | 0.58 | 0.52 | 0.84 | 0.90 |
F8 | 8.72 | 0.31 | 0.87 | 0.65 | 0.19 | 0.44 | 0.68 | 0.62 |
F9 | 8.81 | 0.26 | 0.41 | 0.57 | 0.15 | 0.40 | 0.58 | 0.48 |
F10 | 8.66 | 0.26 | 0.43 | 0.59 | 0.17 | 0.41 | 0.55 | 0.45 |
F11 | 8.97 | 0.31 | 0.69 | 0.64 | 0.34 | 0.47 | 0.66 | 0.54 |
F12 | 10.14 | 1.17 | 1.62 | 1.52 | 1.16 | 0.91 | 2.45 | 1.67 |
F13 | 10.10 | 1.17 | 1.62 | 1.52 | 1.17 | 0.91 | 2.46 | 1.66 |
F14 | 264.89 | 249.55 | 256.03 | 304.78 | 260.24 | 266.09 | 263.94 | 265.80 |
F15 | 261.13 | 232.07 | 261.98 | 300.36 | 258.01 | 255.73 | 263.67 | 259.32 |
F16 | 259.28 | 210.24 | 269.61 | 250.40 | 263.24 | 258.70 | 259.05 | 252.60 |
F17 | 313.15 | 212.06 | 287.05 | 273.28 | 282.19 | 283.91 | 286.06 | 282.38 |
F18 | 293.31 | 262.41 | 289.38 | 272.57 | 286.17 | 286.81 | 288.63 | 286.88 |
F19 | 287.42 | 172.65 | 278.74 | 288.92 | 282.58 | 297.25 | 291.06 | 284.31 |
Total | 1798.50 | 1344.82 | 1653.88 | 1700.91 | 1638.95 | 1655.41 | 1664.70 | 1640.89 |
Ranking | 8 | 1 | 5 | 7 | 2 | 6 | 4 | 3 |
Design Problem | BOA Operator | CE Operator | ||
---|---|---|---|---|
Tension/compression spring | 100 | 50 | 100 | 50 |
Welded beam | 100 | 100 | 100 | 50 |
Pressure vessel | 100 | 100 | 100 | 50 |
Algorithm | Optimum Variables | Optimum Weight | ||
---|---|---|---|---|
GA [48] | 0.051480 | 0.351661 | 11.632201 | 0.0127048 |
PSO [49] | 0.051728 | 0.357644 | 11.244543 | 0.012675 |
BA [50] | 0.051690 | 0.356730 | 11.288500 | 0.012670 |
GWO [15] | 0.051690 | 0.356737 | 11.288850 | 0.012666 |
HS [51] | 0.051154 | 0.349871 | 12.076432 | 0.012671 |
CSA [19] | 0.051689 | 0.356717 | 11.289012 | 0.012665 |
SSA [20] | 0.051207 | 0.345215 | 12.004032 | 0.012676 |
BOA-CE | 0.051618 | 0.355004 | 11.390144 | 0.012665 |
Algorithm | Optimum Variables | Optimum Cost | |||
---|---|---|---|---|---|
GA [48] | 0.205986 | 3.471328 | 9.020224 | 0.206480 | 1.728226 |
PSO [49] | 0.202369 | 3.544214 | 9.048210 | 0.205723 | 1.731485 |
BA [50] | 0.2015 | 3.562 | 9.0414 | 0.2057 | 1.7312 |
GWO [15] | 0.205676 | 3.478377 | 9.03681 | 0.205778 | 1.72624 |
HS [51] | 0.2442 | 6.2231 | 8.2915 | 0.2443 | 2.3807 |
WOA [18] | 0.205396 | 3.484293 | 9.037426 | 0.206276 | 1.730499 |
CSA [19] | 0.205730 | 3.470489 | 9.036624 | 0.205730 | 1.724852 |
BOA-CE | 0.205730 | 3.470481 | 9.036611 | 0.205730 | 1.724854 |
Algorithm | Optimum Variables | Optimum Cost | |||
---|---|---|---|---|---|
GA [48] | 0.8125 | 0.4375 | 42.097398 | 176.654050 | 6059.9463 |
PSO [49] | 0.8125 | 0.4375 | 42.091266 | 176.746500 | 6061.0777 |
BA [50] | 0.8125 | 0.4375 | 42.0984456 | 176.636596 | 6059.7143 |
GWO [15] | 0.8125 | 0.4345 | 42.089181 | 176.758731 | 6051.5639 |
HS [ [51] | 1.1250 | 0.6250 | 58.2789 | 43.7549 | 7198.433 |
WOA [18] | 0.8125 | 0.4375 | 42.0982699 | 176.638998 | 6059.7410 |
DE [52] | 0.8125 | 0.4375 | 42.098411 | 176.63769 | 6059.7341 |
BOA-CE | 0.8125 | 0.4375 | 42.0984456 | 176.6365958 | 6059.7143 |
© 2019 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).
Share and Cite
Li, G.; Shuang, F.; Zhao, P.; Le, C. An Improved Butterfly Optimization Algorithm for Engineering Design Problems Using the Cross-Entropy Method. Symmetry 2019, 11, 1049. https://doi.org/10.3390/sym11081049
Li G, Shuang F, Zhao P, Le C. An Improved Butterfly Optimization Algorithm for Engineering Design Problems Using the Cross-Entropy Method. Symmetry. 2019; 11(8):1049. https://doi.org/10.3390/sym11081049
Chicago/Turabian StyleLi, Guocheng, Fei Shuang, Pan Zhao, and Chengyi Le. 2019. "An Improved Butterfly Optimization Algorithm for Engineering Design Problems Using the Cross-Entropy Method" Symmetry 11, no. 8: 1049. https://doi.org/10.3390/sym11081049