Skip to content

Bezik1/LCVRP-Genetic-Algorithm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧬 LCVRP Genetic Algorithm

💡 Overview

This project goal was to find the best soultion for the Limited Capacitated Vehicle Routing Problem (LcVRP). To achieve it we had to used Genetic Algorithm (GA) written in lower level C++, with the code optimized down to the last detail.

⚙️ Commands

Note: In case of path error, modify the ProblemLoader::BASE_PATH, ProblemLoader::BASE_EXTENSION, folderName or instanceName parameters.

# Initialize build directory
cmake -S . -B build

# Builds project
cmake --build build --target main

# Run project
./build/main

Parameters

int populationSize;     // Controls the size of the population
double mutProb;         // Controls probability for mutation occurances
double crossoverProb;   // It's the probability for solution crossing, when it did not occur we simply copy indivduals
int numTurns;           // Number of turns, at which tournament selection will be looking for mate
int numEpochs;          // How many times Optimizer::runIteration will be invoked
int numGroups;          // Number of groups of trucks to optimize

📚 Documentation

Generate Documentation Template

# Generates documentation
doxygen -g

# Updates documentation
doxygen

# Run documentation
./docs/html/index.html

Custom Operators: Overloads < and > to facilitate integration with the HeapSort algorithm.

About

LCVRP is the Limited Capacity Vehicle Problem. This implementation uses C++ in version 11 and solves decribed problem using Genetic Algorithm approach.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors