Politecnico di Torino (logo)

A genetic algorithm for optimizing velocity in the Bridgestone World Solar Challenge

Pietro Chiavassa

A genetic algorithm for optimizing velocity in the Bridgestone World Solar Challenge.

Rel. Filippo Gandino, Dirk Roose, Dries Ketelslegers. Politecnico di Torino, Corso di laurea magistrale in Ingegneria Informatica (Computer Engineering), 2020

PDF (Tesi_di_laurea) - Tesi
Licenza: Creative Commons Attribution Non-commercial No Derivatives.

Download (2MB) | Preview

In the Bridgestone World Solar Challenge (WSC) student teams from various universities use solar technology and advanced engineering to create sustainable innovative solar powered electric vehicles able to travel 3,020 km from Darwin to Adelaide. During the race, the strategy unit of the teams must be able to decide at which speed the car should drive at any given moment. The objective is to finish the race in the least amount of time while avoiding the risk of running out of battery. The Belgian Team (Agoria Solar Team) uses a Genetic Algorithm to solve this problem. A population of possible solutions is evolved, in which individuals are represented as vectors of velocities that the car should drive at in each segment of the race. A fitness function evaluates each solution by taking into account weather conditions, spatial position, topography information, car speed, car specifications and race specific constraints. The output of the function is the time to finish the race, penalized in the case of discharged batteries. Individuals with better fitness are selected for reproduction, creating new children for the next generation. Mutation is also applied on the newly generated children. The objective of this work is to improve the performance of the algorithm in terms of solution quality and computation time. The first goal is achieved by improving the genetic operators and performing more extensive tuning of the algorithm's parameters. The second objective is reached by porting the code, originally developed in Matlab, to a compiled language (C++) and introducing support for parallelization. The software was developed focusing on portablity, extensibility and ease of use. All the fundamental functionalities were made accessible from the Python environment by wrapping the library into a Python module. The new implementation of the algorithm improved the computation speed of about 60 times when run with comparable operators and parameter settings. Thread parallelization further increased the performance by achieving almost perfect scaling in optimal conditions. The extensive testing unveiled important insights on how different parameters and operators affect the evolutionary process and quality of solutions. The proposed modifications also led to a refinement of the model, which is now able to produce more realistic speed profiles.

Relators: Filippo Gandino, Dirk Roose, Dries Ketelslegers
Academic year: 2020/21
Publication type: Electronic
Number of Pages: 71
Corso di laurea: Corso di laurea magistrale in Ingegneria Informatica (Computer Engineering)
Classe di laurea: New organization > Master science > LM-32 - COMPUTER SYSTEMS ENGINEERING
Aziende collaboratrici: Ku Leuven
URI: http://webthesis.biblio.polito.it/id/eprint/15891
Modify record (reserved for operators) Modify record (reserved for operators)