Genetic algorithm for structural adaptation of sorting algorithms

Constructivism was applied to form the sorting algorithm code. The meta-algorithm of program code generation is presented. Parts of existing sorting algorithms and auxiliary utilities are used for generation. A genetic algorithm was used to select the algorithm with the maximum time efficiency under...

Повний опис

Збережено в:
Бібліографічні деталі
Опубліковано в:PROBLEMS IN PROGRAMMING
Дата:2024
Випуск:2-3
Сторінки:11-18
ISSN:1727-4907
Автори та афіліації:
  • V.I. Shinkarenko — Ukrainian State University of oScience and Technology
  • O.V. Makarov — Ukrainian State University of oScience and Technology
Ключові слова:генетичний алгоритм, алгоритм сортування, алгоритм, генетичний код, біонічний алгоритм, зокрема генетичних алго- ритмів, алгоритм кодування, геном, алгоритми декодування, груповий генетичний алгоритм
Автори: Shinkarenko, V.I., Makarov, O.V.
Формат: Стаття
Мова:Українська
Опубліковано: PROBLEMS IN PROGRAMMING 2024
Теми:
Онлайн доступ:https://pp.isofts.kiev.ua/index.php/ojs1/article/view/614
Теги: Додати тег
Немає тегів, Будьте першим, хто поставить тег для цього запису!
Назва журналу:Problems in programming
Завантажити файл: Pdf

Репозитарії

Problems in programming
Опис
Резюме:Constructivism was applied to form the sorting algorithm code. The meta-algorithm of program code generation is presented. Parts of existing sorting algorithms and auxiliary utilities are used for generation. A genetic algorithm was used to select the algorithm with the maximum time efficiency under the given conditions of use. The use of a standard genetic algorithm faces a problem associated with a different number of elementary sorting operations, which leads to the use of chromosomes of diff erent lengths. To solve the problem, a representation of the chromosome in the form of a binary tree is proposed. Each node has start genes, end genes, and two child nodes. To form an algorithm that is guaranteed to sort the array, all end nodes (leaves) include the final sorting gene at the end of the start genes sequence. This gene is decoded by calling the existing sorting algorithm, which is guaranteed to perform sorting. Crossover and mutation operations are performed on chromosomes in the form of a binary tree. Crossover is performed using the exchange of tree branches. Mechanisms of coding and decoding of the sorting algorithm from chromosome have been implemented. Decoding and formation of a suitable sorting algorithm is performed using linearization: formation of a textual representation using a depth-first tree traversal algorithm. The fitness function is defined as the average time of sorting randomly generated arrays for sorting (identical arrays for all chromosomes) in some stable environment, considering certain features of these arrays. It is possible to use other fitness functions related to the number of calculations, comparisons, or permutations. The developed software should be used for adaptation of sorting algorithms to stable input data streams and environments. Prombles in programming 2024; 2-3: 11-18
ISSN:1727-4907
DOI:10.15407/pp2024.02-03.011