Development of the intelligent control system of an unmanned car

This study delves into creating an intelligent control system for self-driving vehicles, utilizing cutting-edge machine learning methods. Central to our approach is the NeuroEvolution of Augmenting Topologies (NEAT) algorithm, implemented in the Python programming language. NEAT plays a pivotal role...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Datum:2024
Hauptverfasser: Dakhno, N.B., Miroshnyk, A.P., Kravchenko, Yu.V., Leshchenko, O.O., Dudnik, A.S.
Format: Artikel
Sprache:English
Veröffentlicht: PROBLEMS IN PROGRAMMING 2024
Schlagworte:
Online Zugang:https://pp.isofts.kiev.ua/index.php/ojs1/article/view/659
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
Назва журналу:Problems in programming
Завантажити файл: Pdf

Institution

Problems in programming
id pp_isofts_kiev_ua-article-659
record_format ojs
resource_txt_mv ppisoftskievua/70/ad951ba6ea512d2fa5b3074c42f3e470.pdf
spelling pp_isofts_kiev_ua-article-6592025-02-15T15:14:51Z Development of the intelligent control system of an unmanned car Development of the intelligent control system of an unmanned car Dakhno, N.B. Miroshnyk, A.P. Kravchenko, Yu.V. Leshchenko, O.O. Dudnik, A.S. neural networks; evolutionary learning; genetic algorithms; NEAT algorithm; NEAT learning efficiency; neural network architecture UDC 519.711 нейронні мережі; еволюційне навчання; генетичні алгоритми; алгоритм NEAT; ефективність навчання NEAT; архітектура нейронної мережі УДК 519.711 This study delves into creating an intelligent control system for self-driving vehicles, utilizing cutting-edge machine learning methods. Central to our approach is the NeuroEvolution of Augmenting Topologies (NEAT) algorithm, implemented in the Python programming language. NEAT plays a pivotal role in refining artificial neural networks, enabling autonomous cars to navigate diverse road conditions independently. Through rigorous experimentation, we demonstrate NEAT's capability to automate self-driving operations, ensuring adaptability to various driving scenarios. The result of the research is the development of a complex system proficient in autonomously navigating a variety of race tracks. NEAT's dynamic neural network structures help the vehicle learn quickly.The Python language is quite convenient for implementing such tasks thanks to a large number of libraries. Integration with Pygame equips the system with essential tools for graphics rendering and interaction. Iterative cycles of training and refinement significantly enhance the system's performance and adaptability. Neural networks adeptly learn to navigate tracks, maintain optimal speeds, avoid collisions, and tackle diverse racing challenges. This project demonstrates NEAT's capability, alongside Python and Pygame integration, in crafting intelligent control systems for self-driving cars. This holds promise for further development in autonomous driving technology, aiming to handle more intricate scenarios and seamlessly integrate with real-world hardware. In essence, the successful deployment of an intelligent control system for unmanned vehicles based on NEAT demonstrates the efficacy of evolutionary algorithms in tackling complex control problems. This sets the stage for further research and refinement in unmanned driving, fostering the development of safer and more efficient transportation systems.Prombles in programming 2024; 2-3: 375-383 Ця робота присвячена створенню інтелектуальної системи керування безпілотними транспортними засобами з використанням передових методів та підходів машинного навчання. Центральним елементом цього підходу є алгоритм NeuroEvolution of Augmenting Topologies (NEAT), реалізований мовою програмування Python. NEAT відіграє ключову роль у вдосконаленні штучних нейронних мереж, що дозволяє автономним автомобілям самостійно орієнтуватися в різноманітних дорожніх умовах. Здійснення ретельних експериментів довело здатність NEAT автоматизувати роботу самокерованого водіння, забезпечуючи адаптивність до різних сценаріїв. Результатом дослідження стала розробка складної системи, здатної автономно орієнтуватися на різних гоночних трасах. Динамічні структури нейронних мереж NEAT допомагають автомобілю швидко вчитись. Мова Python достатньо зручна для реалізації таких задач завдяки великій кількості різноманітних бібліотек. А інтеграція із Pygame забезпечує систему необхідними інструментами для рендерингу та взаємодії з графікою. Ітеративні цикли навчання та вдосконалення значно підвищують продуктивність та адаптивність системи. Нейронні мережі успішно навчаються орієнтуватися на трасі, підтримувати оптимальну швидкість, уникати зіткнень та вирішувати різноманітні гоночні завдання. Цей проєкт підкреслює можливості NEAT, поряд з інтеграцією Python та Pygame, у створенні інтелектуальних систем керування для безпілотних автомобілів. Він є перспективним для подальшого розвитку технології автономного водіння, спрямованої на обробку більш складних сценаріїв і безперешкодну інтеграцію з реальним обладнанням. Успішне розгортання інтелектуальної системи управління безпілотними автомобілями на основі NEAT демонструє ефективність еволюційних алгоритмів у вирішенні складних проблем управління. Це створює підґрунтя для подальших досліджень і вдосконалення безпілотного водіння, сприяючи розвитку безпечніших і ефективніших транспортних систем.Prombles in programming 2024; 2-3: 375-383 PROBLEMS IN PROGRAMMING ПРОБЛЕМЫ ПРОГРАММИРОВАНИЯ ПРОБЛЕМИ ПРОГРАМУВАННЯ 2024-12-17 Article Article application/pdf https://pp.isofts.kiev.ua/index.php/ojs1/article/view/659 10.15407/pp2024.02-03.375 PROBLEMS IN PROGRAMMING; No 2-3 (2024); 375-383 ПРОБЛЕМЫ ПРОГРАММИРОВАНИЯ; No 2-3 (2024); 375-383 ПРОБЛЕМИ ПРОГРАМУВАННЯ; No 2-3 (2024); 375-383 1727-4907 10.15407/pp2024.02-03 en https://pp.isofts.kiev.ua/index.php/ojs1/article/view/659/711 Copyright (c) 2024 PROBLEMS IN PROGRAMMING
institution Problems in programming
baseUrl_str https://pp.isofts.kiev.ua/index.php/ojs1/oai
datestamp_date 2025-02-15T15:14:51Z
collection OJS
language English
topic neural networks
evolutionary learning
genetic algorithms
NEAT algorithm
NEAT learning efficiency
neural network architecture
UDC 519.711
spellingShingle neural networks
evolutionary learning
genetic algorithms
NEAT algorithm
NEAT learning efficiency
neural network architecture
UDC 519.711
Dakhno, N.B.
Miroshnyk, A.P.
Kravchenko, Yu.V.
Leshchenko, O.O.
Dudnik, A.S.
Development of the intelligent control system of an unmanned car
topic_facet neural networks
evolutionary learning
genetic algorithms
NEAT algorithm
NEAT learning efficiency
neural network architecture
UDC 519.711
нейронні мережі
еволюційне навчання
генетичні алгоритми
алгоритм NEAT
ефективність навчання NEAT
архітектура нейронної мережі
УДК 519.711
format Article
author Dakhno, N.B.
Miroshnyk, A.P.
Kravchenko, Yu.V.
Leshchenko, O.O.
Dudnik, A.S.
author_facet Dakhno, N.B.
Miroshnyk, A.P.
Kravchenko, Yu.V.
Leshchenko, O.O.
Dudnik, A.S.
author_sort Dakhno, N.B.
title Development of the intelligent control system of an unmanned car
title_short Development of the intelligent control system of an unmanned car
title_full Development of the intelligent control system of an unmanned car
title_fullStr Development of the intelligent control system of an unmanned car
title_full_unstemmed Development of the intelligent control system of an unmanned car
title_sort development of the intelligent control system of an unmanned car
title_alt Development of the intelligent control system of an unmanned car
description This study delves into creating an intelligent control system for self-driving vehicles, utilizing cutting-edge machine learning methods. Central to our approach is the NeuroEvolution of Augmenting Topologies (NEAT) algorithm, implemented in the Python programming language. NEAT plays a pivotal role in refining artificial neural networks, enabling autonomous cars to navigate diverse road conditions independently. Through rigorous experimentation, we demonstrate NEAT's capability to automate self-driving operations, ensuring adaptability to various driving scenarios. The result of the research is the development of a complex system proficient in autonomously navigating a variety of race tracks. NEAT's dynamic neural network structures help the vehicle learn quickly.The Python language is quite convenient for implementing such tasks thanks to a large number of libraries. Integration with Pygame equips the system with essential tools for graphics rendering and interaction. Iterative cycles of training and refinement significantly enhance the system's performance and adaptability. Neural networks adeptly learn to navigate tracks, maintain optimal speeds, avoid collisions, and tackle diverse racing challenges. This project demonstrates NEAT's capability, alongside Python and Pygame integration, in crafting intelligent control systems for self-driving cars. This holds promise for further development in autonomous driving technology, aiming to handle more intricate scenarios and seamlessly integrate with real-world hardware. In essence, the successful deployment of an intelligent control system for unmanned vehicles based on NEAT demonstrates the efficacy of evolutionary algorithms in tackling complex control problems. This sets the stage for further research and refinement in unmanned driving, fostering the development of safer and more efficient transportation systems.Prombles in programming 2024; 2-3: 375-383
publisher PROBLEMS IN PROGRAMMING
publishDate 2024
url https://pp.isofts.kiev.ua/index.php/ojs1/article/view/659
work_keys_str_mv AT dakhnonb developmentoftheintelligentcontrolsystemofanunmannedcar
AT miroshnykap developmentoftheintelligentcontrolsystemofanunmannedcar
AT kravchenkoyuv developmentoftheintelligentcontrolsystemofanunmannedcar
AT leshchenkooo developmentoftheintelligentcontrolsystemofanunmannedcar
AT dudnikas developmentoftheintelligentcontrolsystemofanunmannedcar
first_indexed 2025-07-17T10:02:50Z
last_indexed 2025-07-17T10:02:50Z
_version_ 1850410763882070016
fulltext 375 Експертні та інтелектуальні інформаційні системи, штучний інтелект УДК 519.711 http://doi.org/10.15407/pp2024.02-03.375 Ю.В. Кравченко, Н.Б. Дахно, О.О. Лещенко, А.С. Дудник, А.П. Мірошник РОЗРОБКА СИСТЕМИ ІНТЕЛЕКТУАЛЬНОГО КЕРУВАННЯ БЕЗПІЛОТНИМ АВТОМОБІЛЕМ Ця робота присвячена створенню інтелектуальної системи керування безпілотними транспортними за- собами з використанням передових методів та підходів машинного навчання. Центральним елементом цього підходу є алгоритм NeuroEvolution of Augmenting Topologies (NEAT), реалізований мовою про- грамування Python. NEAT відіграє ключову роль у вдосконаленні штучних нейронних мереж, що до- зволяє автономним автомобілям самостійно орієнтуватися в різноманітних дорожніх умовах. Здійс- нення ретельних експериментів довело здатність NEAT автоматизувати роботу самокерованого во- діння, забезпечуючи адаптивність до різних сценаріїв. Результатом дослідження стала розробка скла- дної системи, здатної автономно орієнтуватися на різних гоночних трасах. Динамічні структури ней- ронних мереж NEAT допомагають автомобілю швидко вчитись. Мова Python достатньо зручна для реалізації таких задач завдяки великій кількості різноманітних бібліотек. А інтеграція із Pygame забез- печує систему необхідними інструментами для рендерингу та взаємодії з графікою. Ітеративні цикли навчання та вдосконалення значно підвищують продуктивність та адаптивність системи. Нейронні ме- режі успішно навчаються орієнтуватися на трасі, підтримувати оптимальну швидкість, уникати зітк- нень та вирішувати різноманітні гоночні завдання. Цей проєкт підкреслює можливості NEAT, поряд з інтеграцією Python та Pygame, у створенні інтелектуальних систем керування для безпілотних автомо- білів. Він є перспективним для подальшого розвитку технології автономного водіння, спрямованої на обробку більш складних сценаріїв і безперешкодну інтеграцію з реальним обладнанням. Успішне ро- згортання інтелектуальної системи управління безпілотними автомобілями на основі NEAT демонст- рує ефективність еволюційних алгоритмів у вирішенні складних проблем управління. Це створює пі- дґрунтя для подальших досліджень і вдосконалення безпілотного водіння, сприяючи розвитку безпе- чніших і ефективніших транспортних систем. Ключові слова: нейронні мережі, еволюційне навчання, генетичні алгоритми, алгоритм NEAT, ефек- тивність навчання NEAT, архітектура нейронної мережі. Yu. Kravchenko, N. Dakhno, O. Leshchenko, A. Dudnik, A. Miroshnyk DEVELOPMENT OF THE INTELLIGENT CONTROL SYSTEM OF AN UNMANNED CAR This study delves into creating an intelligent control system for self-driving vehicles, utilizing cutting-edge machine learning methods. Central to our approach is the NeuroEvolution of Augmenting Topologies (NEAT) algorithm, implemented in the Python programming language. NEAT plays a pivotal role in refining artificial neural networks, enabling autonomous cars to navigate diverse road conditions independently. Through rig- orous experimentation, we demonstrate NEAT's capability to automate self-driving operations, ensuring adaptability to various driving scenarios. The result of the research is the development of a complex system proficient in autonomously navigating a variety of race tracks. NEAT's dynamic neural network structures help the vehicle learn quickly.The Python language is quite convenient for implementing such tasks thanks to a large number of libraries. Integration with Pygame equips the system with essential tools for graphics ren- dering and interaction. Iterative cycles of training and refinement significantly enhance the system's perfor- mance and adaptability. Neural networks adeptly learn to navigate tracks, maintain optimal speeds, avoid collisions, and tackle diverse racing challenges. This project demonstrates NEAT's capability, alongside Py- thon and Pygame integration, in crafting intelligent control systems for self-driving cars. This holds promise for further development in autonomous driving technology, aiming to handle more intricate scenarios and seamlessly integrate with real-world hardware. In essence, the successful deployment of an intelligent control system for unmanned vehicles based on NEAT demonstrates the efficacy of evolutionary algorithms in tack- ling complex control problems. This sets the stage for further research and refinement in unmanned driving, fostering the development of safer and more efficient transportation systems. Keywords: neural networks, evolutionary learning, genetic algorithms, NEAT algorithm, NEAT learning ef- ficiency, neural network architecture. © Ю.В. Кравченко, Н.Б. Дахно, О.О. Лещенко, А.С. Дудник, А.П. Мірошник, 2024 ISSN 1727-4907. Проблеми програмування. 2024. №2-3 376 Експертні та інтелектуальні інформаційні системи, штучний інтелект Introduction The rapid development of information technology is quickly changing our lives and affecting all areas of human activity [1]. Infor- mation technologies allow automating various processes, increasing productivity, and reduc- ing costs. Such areas as networking, cloud technol- ogies, Internet of Things technologies, and artifi- cial intelligence are actively developing [2-3]. The rapid development of technology has led to significant advances in the field of unmanned vehicles, both ground and airborne [4]. One of the most promising areas in this field is the development of intelligent control systems for ground-based unmanned vehicles, also known as self-driving cars. The development of an intelligent con- trol system for self-driving cars is an endeavor that encompasses a variety of advanced soft- ware development technologies. It involves the combination of artificial intelligence, machine learning, computer vision, and advanced algo- rithms to create a system that allows the vehi- cle to perceive information from the outside and make decisions in real time [5]. By using a multitude of sensors, these systems collect and process huge amounts of data. In this paper, we propose to create a simple system for intelligent control of an un- manned vehicle in the Python programming language using the NEAT (NeuroEvolution of Augmenting Topologies) algorithm. In the context of self-driving vehicles, a simple model system developed using NEAT in Py- thon has great prospects. Such a system makes it possible to understand the fundamental con- cepts of intelligent driving. Main part Intelligent driverless vehicle control systems use advanced Machine Learning algo- rithms [6]. Through a process known as Deep Learning, these algorithms analyze large data sets to discover patterns, allowing the vehicle to improve its decision-making capabilities over time. This iterative learning process enables the system to adapt to new scenarios, optimize its performance, and ultimately improve the safety and reliability of automated vehicles. The NEAT (NeuroEvolution of Aug- menting Topologies) technology was used in this work. NEAT is an evolutionary algorithm that creates artificial neural networks. It com- bines neural networks and genetic algorithms to create intelligent control systems. Algorithm description It is necessary to describe the genetic coding algorithm used in NEAT. NEAT's ge- netic coding strategy is designed to facilitate gene alignment during mating when two ge- nomes overlap. Genomes serve as linear repre- sentations of network connections, and each genome contains a list of connecting genes that refer to pairs of genes of connected nodes [7]. In NEAT, mutations can affect both the weights of connections and the structure of the network. The weights of connections change, as in other neuroevolutionary systems. At the same time, each connection is potentially bro- ken or remains constant in each generation [8]. Each mutation leads to the expansion of the genome by introducing new genes. In the "linkage addition" mutation, a new linkage gene with a random weight is added. In the "node addition" mutation, the existing linkage is split and a new node is placed. The linkage leading to the new node is assigned a weight of 1. This approach to adding nodes was chosen to minimize the direct impact of mutation [9]. Although the new nonlinearity in the connec- tion slightly changes the function, new nodes can be quickly integrated. As a result of mutations, genomes in NEAT gradually increase in size, resulting in genomes of different lengths. Allowing ge- nomes to grow unlimitedly inevitably leads to a more complex form of the "controlling con- vention problem" with different topologies and combinations of weights [10]. In the course of evolution, there is infor- mation that accurately reveals the correspond- ence of genes between individuals. This infor- mation is the historical origin of each gene. Genes with the same historical origin neces- sarily represent the same structural component, although potentially with different weights. Therefore, all that the system needs to establish 377 Експертні та інтелектуальні інформаційні системи, штучний інтелект genetic alignments is to store records of the his- torical origin of each gene in the system. Keeping track of these historical jour- nals requires minimal computing resources. Each time a new gene appears, the innovation global number is incremented and assigned to that gene. These innovation numbers essen- tially reflect the appearance of each gene in the system [11]. These historical markers provide NEAT with powerful capabilities [12]. Now the system has an accurate knowledge of which genes correspond to each other. During the crossing process, genes from both genomes with matching innovation numbers are paired and called matching genes. Genes that do not match are classified as redundant. These re- dundant genes represent structural components that are not present in the rest of the genome [13]. In the generation of offspring, genes are randomly selected from either parent, while all redundant genes are included sequentially from the parent with the best fit. Therefore, historical markers allow NEAT to perform crosses using linear genomes. By introducing new genes into the pop- ulation and combining genomes with different structures, the system can create a population with a diverse topology. However, it is obvious that this population alone is not enough to pre- serve topological innovation. Smaller struc- tures tend to be optimized faster than larger ones, and adding nodes and connections usu- ally initially reduces the fitness of the network. The newly added structures have a limited probability of surviving longer than one gener- ation, even though the innovations they repre- sent may be vital to solving problems [14]. The degree of compatibility between a pair of genomes is naturally determined by the number of redundant genes. The greater the di- vergence between two genomes, the less evo- lutionary history they share. Therefore, in NEAT, we can quantify the compatibility dis- tance, denoted as δ, for different structures through a direct linear combination of several factors, including the number of redundant genes (E), the number of non-overlapping genes (D), and the average weight differences between the corresponding genes (W), which includes even non-functional genes. The formula for calculating the compatibility dis- tance is as follows: 1 2 3 .c E c D c W N N  = + + The coefficients 1 2 3, ,с с с provide a means of adjusting the relative importance of the three factors in calculating the compatibil- ity distance. The Factor N, which represents the number of genes in the largest genome, is used to normalize the genome size. The thresh- old of compatibility, called t , is used in con- junction with the distance measure  , to deter- mine how genomes should be classified into species. An ordered list of species is main- tained to organize the population into species. Each existing species is characterized by a randomly selected genome of the next generation, which serves as a representative genome. To assign a given gene, called g , from the current generation to a species, it is placed in the first species, for which g is con- sidered compatible with the representative ge- nome of that species. This method ensures that the species do not overlap and do not share any common members [15]. If the genome g is in- compatible with any of the existing species, a new species is created, where g is a repre- sentative genome. The NEAT reproduction mechanism uses explicit fitness sharing, which means that organisms belonging to the same species must collectively share the fitness of their niche. This arrangement ensures that a species cannot grow excessively, even if a significant number of its members are doing very well. Therefore, it is unlikely that one species will dominate the entire population. To calculate the adjusted suitability, denoted as if  , for a given organism i its distance  from all other organisms j in the population is taken into account: ( )( ) 1 , i i n j ff sh i j = =  . Sharing function sh is set to 0 when the distance ( ),i j above the threshold value t , under the other condition ( )( ),sh i j will be equal to 1. Thus, ( )( ) 1 , n j sh i j =  reduced to 378 Експертні та інтелектуальні інформаційні системи, штучний інтелект the number of organisms of the same species as organism i . This decrease is natural, as spe- cies are already clustered by compatibility with the threshold t . Each species is assigned a potentially different number of offspring. Then the species are multiplied, first excluding the members with the lowest efficiency from the population [16]. Then the entire population is replaced by the offspring of the remaining or- ganisms in each species. Description and development of the system For the development, we used the Py- thon programming language together with the PyGame visualization package. The Python programming language is best suited for the development of neural networks, and the PyGame package is suitable for visualizing the system's operation [17]. For the successful implementation of the project, it is necessary to choose the opti- mal configuration of the NEAT algorithm (Fig. 1). Fig. 1. NEAT algorithm configuration The NEAT section defines parameters specific to the system: • fitness_criterion: used to calculate the com- pletion criterion based on the genome fit- ness set. • fitness_threshold: when the value of the fit- ness function calculated with fitness_crite- rion, reaches the threshold specified in the code, the evolution process is completed. • pop_size: number of individuals in each generation. • reset_on_extinction: this parameter is set to True. When all species die out simultaneously due to stagnation, a new random population will be created. The DefaultGenome section defines the parameters for the built-in DefaultGenome class. This section is necessary for the imple- mentation of the genome when creating an in- stance of the Config: • activation_default: attribute of the default activation function assigned to new nodes. • activation_mutate_rate: the probability that a mutation will replace the node's activation function with a randomly determined acti- vation_options parameter. • activation_options: activation functions that can be used by nodes. • aggregation_default: attribute of the default aggregation function assigned to new nodes. • aggregation_mutate_rate: the probability that a mutation will replace the node's ag- gregation function with a randomly deter- mined aggregation_options parameter. • aggregation_options: aggregation functions that can be used by nodes. New aggregation functions can be defined in the same way as new activation functions. A description of the car driving on the race track is shown in Fig. 2. The program code describes: • Uploading a car image, setting car dimen- sions. • Determining the starting position and speed of the car. • Create a list where data from the car sensors will be recorded. • Setting the initial parameter to check if the car has not crashed. • Setting the initial parameters of the distance and time traveled. Fig. 2. Description of the race car After that, the system aims to autono- mously navigate race tracks of varying 379 Експертні та інтелектуальні інформаційні системи, штучний інтелект complexity by evolving the neural network ar- chitecture through an iterative evolutionary process [18]. Our model is a neural network with five input neurons - sensors - and four out- put neurons - actions it can perform between them (Fig. 3). Fig. 3. Input and output neurons Next, we added some hidden layers with additional neurons. These layers increase the complexity and sophistication of our model, but they also increase the training time and the likelihood of neurons "overfitting" (Fig. 4). Fig. 4. Hidden layers All neurons are interconnected, the connections between neurons have a certain weight depending on all those values to which the model will react in a certain way based on the input data (Fig. 5). Fig. 5. Connections between neurons Initially, sensor values and actions are completely random, but over time, cars learn to perform actions more rationally and efficiently. However, for each action that cars perform, they will receive a reward or a pen- alty, and this is realized by using a so-called fitness function. In our simple model, the fit- ness function of a car increases depending on the distance it travels without accidents. After each generation, the cars improve - the cars with the highest fitness function are likely to survive and reproduce, while cars that do not perform as well will disappear after a while. When a car is reproduced, it won't simply copy its parent's properties. It'll be similar but not identical, potentially improving performance on the track and avoiding accidents. Thus, cars that are very similar to each other form their own species. If a species does not improve within a fixed number of generations, it be- comes extinct. Taking all these principles into account, an environment was created in which the best cars survive and reproduce, while the worst disappear. The basic principle is that what works is likely to survive and be repro- duced. Testing the system First, the system was tested for a simple oval track. The simulation start function is shown in Fig. 6: Fig. 6. The function of starting a simulation The self-driving car successfully over- comes the track during the first few genera- tions. With each new generation, the car in- creases its speed and completes the track faster. After the fourth generation, there are several cars that successfully pass the track. Further, with the following generations, the 380 Експертні та інтелектуальні інформаційні системи, штучний інтелект number of cars and their speeds are constantly increasing. The implementation of creating popu- lations and running a simulation with 1000 generations is shown in Fig. 7. Fig. 7. Code snippet for creating populations and starting a simulation We can also see how the cars were di- vided into two groups, forming two types (Fig. 8-10). Fig. 8. Third generation on a simple oval track Fig. 9. Fourth generation on a simple oval track Fig. 10. The fifth generation on a simple oval track Then the system was tested on a more complex track with many turns. Until the fourth generation, the cars could not drive through the first turn. But the model gradually develops, trains, and therefore, after the fourth generation, it can easily overcome this turn. Then there are problems with other turns. With each subsequent generation, the model improves and covers a greater distance of the track. More and more cars successfully complete the track before crashing. And finally, after twenty-four generations, one car successfully completes the track without an accident. With each new generation, there are more cars and they gradually increase their speed to drive faster around the track. In this example, we can clearly see how the NEAT neural net- work learns and develops (Fig. 11-13). Fig. 11. Fourth generation on a challenging track Fig. 12. Twenty-first generation on a chal- lenging track 381 Експертні та інтелектуальні інформаційні системи, штучний інтелект Fig. 13. The twenty-fourth generation on a difficult track Testing the system on different tracks confirmed the system's functionality. Conclusions Thanks to the integration of NEAT, Py- thon, and Pygame, a system capable of auton- omously navigating race tracks of varying complexity was successfully created. Throughout the development process, the capabilities of NEAT, a neuro-evolutionary algorithm, were used to develop a neural net- work architecture that demonstrates intelligent behavior. NEAT facilitated the automatic gen- eration and modification of neural network structures, allowing the system to adapt and learn based on interaction with the environ- ment. The Python language is quite conven- ient for implementing such tasks thanks to a large number of libraries. Pygame provided us with the necessary tools for graphics render- ing, collision detection, and time control, which allowed us to create a visually interac- tive environment for the system. Iterative cycles of training and evalua- tion, as well as system refinement and optimi- zation, have played a crucial role in improving the system's performance and adaptability. Thanks to several generations of evolution and continuous improvement, neural networks have learned to navigate race tracks, maintain a high average speed, avoid collisions, and adapt to various racing challenges. This project demonstrated the potential of NEAT and its integration with Python and Pygame in the development of intelligent con- trol systems for self-driving cars. The devel- oped system serves as a basis for further devel- opment of self-driving cars, as it can be extended to handle more complex scenarios and integrate with real-world hardware. In general, the successful development of an intelligent control system for an un- manned vehicle based on NEAT demonstrates the effectiveness of evolutionary algorithms in solving complex control problems. This sets the stage for further research and refinement in unmanned driving, fostering the development of safer and more efficient transportation sys- tems. References 1. O. V. Barabash, N. B. Dakhno, H. V. Shevchenko and T. V. Majsak, "Dy- namic models of decision support sys- tems for controlling UAV by two-step variational-gradient method," 2017 IEEE 4th International Conference Ac- tual Problems of Unmanned Aerial Ve- hicles Developments (APUAVD), Kiev, Ukraine, 2017, pp. 108-111, doi: 10.1109/APUAVD.2017.8308787. 2. A. Dudnik, Y. Kravchenko, O. Trush, O. Leshchenko, N. Dakhno and V. Rakytskyi, "Study of the Features of Ensuring Quality Indicators in Multi- service Networks of the Wi-Fi Stand- ard," 2021 IEEE 3rd International Con- ference on Advanced Trends in Infor- mation Theory (ATIT), Kyiv, Ukraine, 2021, pp. 93-98, doi: 10.1109/ATIT54053.2021.9678691. 3. A. Dudnik, Y. Kravchenko, O. Trush, O. Leshchenko, N. Dahno and Y. Ryabokin, "Routing Method in Wire- less IoT Sensor Networks," 2022 IEEE 3rd International Conference on Sys- tem Analysis & Intelligent Computing (SAIC), Kyiv, Ukraine, 2022, pp. 1-6, doi:10.1109/SAIC57818.2022.992299 8. 4. N. Dakhno, O. Barabash, H. Shevchenko, O. Leshchenko and A. Dudnik, "Integro-differential Models with a K-symmetric Operator for Con- trolling Unmanned Aerial Vehicles Us- ing a Improved Gradient Method," 2021 IEEE 6th International Confer- ence on Actual Problems of Unmanned Aerial Vehicles Development 382 Експертні та інтелектуальні інформаційні системи, штучний інтелект (APUAVD), Kyiv, Ukraine, 2021, pp. 61-65, doi: 10.1109/APUAVD53804.2021.96154 31. 5. S. Bhaggiaraj, M. Priyadharsini, K. Karuppasamy and R. Snegha, "Deep Learning Based Self Driving Cars Us- ing Computer Vision," 2023 Interna- tional Conference on Networking and Communications (ICNWC), Chennai, India, 2023, pp. 1-9, doi: 10.1109/IC- NWC57852.2023.10127448. 6. S. Bhaggiaraj, M. Priyadharsini, K. Karuppasamy and R. Snegha, "Deep Learning Based Self Driving Cars Us- ing Computer Vision," 2023 Interna- tional Conference on Networking and Communications (ICNWC), Chennai, India, 2023, pp. 1-9, doi: 10.1109/IC- NWC57852.2023.10127448. 7. K. O. Stanley, Efficient Evolution of Neural Networks through Complexifi- cation, 2004, URL: https://citese- erx.ist.psu.edu/docu- ment?repid=rep1&type=pdf&doi=e15 8baaec08a54313c74ea0e1af1b72a686 3406c. 8. K. O. Stanley, R. Miikkulainen, Evolv- ing Neural Networks through Aug- menting Topologies, 2002. URL: https://nn.cs.utexas.edu/downloads/pa- pers/stanley.ec02.pdf. 9. K. O. Stanley, B. D. Bryant, and R. Miikkulainen. "Evolving Neural Net- work Agents in the NERO Video Game". In Proceedings of the IEEE 2005 Symposium on Computational Intelligence and Games (CIG’05). Pis- cataway, NJ: IEEE. 10. K. O. Stanley, R. Miikkulainen. "Effi- cient reinforcement learning through evolving neural network topologies". In Proceedings of the Genetic and Evo- lutionary Computation Conference (GECCO2002). San Francisco: Kauf- mann. 11. S. Whiteson, K. O. Stanley, and R. Miikkulainen. "Automatic feature se- lection in neuroevolution". In GECCO 2004: Proceedings of the Genetic and Evolutionary Computation Conference Workshop on Self-Organization, July 2004. 12. S. Whiteson, P. Stone, K. O. Stanley, R. Miikkulainen, and N. Kohl. "Auto- matic Feature Selection in Neuroevolu- tion". In Proceedings of the Genetic and Evolutionary Computation Confer- ence (GECCO 05). pp. 1225-1232, Washington, D.C., June 2005. 13. X. Yao. Evolving artificial neural net- works. Proceedings of the IEEE, 87(9):1423–1447, 1999. 14. K. O. Stanley, B. D. Bryant, and R. Miikkulainen. "Evolving adaptive neu- ral networks with and without adaptive synapses". In Proceedings of the 2003 IEEE Congress on Evolutionary Com- putation (CEC-2003). Canberra, Aus- tralia: IEEE Press, 2003. 15. K. O. Stanley, and R. Miikkulainen. "Competitive coevolution through evo- lutionary complexification". Journal of Artificial Intelligence Research 21: 63- 100, 2004. 16. K. O. Stanley, and R. Miikkulainen. "Continual coevolution through com- plexification". In Proceedings of the Genetic and Evolutionary Computation Conference (GECCO-2002). San Fran- cisco, CA: Morgan Kaufmann, 2002. 17. NEAT-Python 0.92 documentation. Welcome to NEAT-Python documen- tation! – NEAT-Python 0.92 documen- tation, 2022. URL: https://neat-py- thon.readthedocs.io/en/lat- est/neat_overview.html. 18. M. E. Timin. The robot auto racing simulator, 1995. URL: http://rars.sourceforge.net. Одержано: 10.04.2024 Внутрішня рецензія отримана: 19.04.2024 Зовнішня рецензія отримана: 23.04.2024 383 Експертні та інтелектуальні інформаційні системи, штучний інтелект Про авторів: 1Кравченко Юрій Васильович, Доктор технічних наук, професор, завідувач кафедри. https://orcid.org/0000-0002-0281-4396. 1Дахно Наталія Борисівна, Кандидат технічних наук, доцент, доцент кафедри. https://orcid.org/0000-0003-3892-4543 1Лещенко Ольга Олександрівна, Кандидат технічних наук, доцент, доцент кафедри https://orcid.org/0000-0002-3997-2785 1Дуднік Андрій Сергійович, Доктор технічних наук, доцент, професор кафедри. https://orcid.org/0000-0003-1339-7820 1Мірошник Адрій Петрович, студент. Місце роботи авторів: 1Київський національний університет імені Тараса Шевченка, тел. +38-044-522-62-42 E-mail: fit@knu.ua Сайт: https://knu.ua