Skip to content

k0raty/Fil_rouge

Repository files navigation

Vehicle Routing Problem (VRP)

Updated on the 28th of April 2022

This project was started on the 1st of March 2022 by students of the Ecole Centrale de Lille, in France.

It aims to optimize the resolution of the VRP, using different algorithms and finding their best parameters.

It is a school project for the class "Intelligence Collaborative (ICO)", therefore it is not intended to be used in production.

Getting started

A quick introduction to how to set up the project.

switch your python interpreter to pipenv

git pull
git checkout main (for the production branch)
git checkout develop (for the development branch)
git checkout [branch name] (for any feature branch)

Then to run the different algorithms.

Go to an algorithm file
Run it in your IDE console
Create an instance of an algorithm class
Call its main method
Access any of its properties to dig into it

Example :
ga = GeneticAlgorithm()
ga.main()
print(ga.solution)

Features

What can you do with this project ?

  • use different metaheuristics algorithms to solve the VRP :
    • tabou
    • simulated annealing
    • genetic
  • use a multi-agent system to combine the metaheuristics
  • use Q-Learning to improve the parameters of the SMA and the metaheuristics

Architecture

1.1. Dataset

It simply contains all the files storing the data used in the project.

It gathers csv and xlsx files storing the information about the customers, the vehicles, the depots.

1.2. Metaheuristics

It contains the implementation of the 3 metaheuristics studied (genetic algorithm, tabou algorithm, simulated annealing), as well as all functions used in specific metaheuristics code.

1.3. Sma

It contains all files related to the multi-agent system implementation.

  • sma.py : define the agent and model classes for the SMA
  • interactions.py : define the scenarios of interactions between the agent within the SMA

1.4. QLearning

It contains all files related to the q-learning part.

1.4. Utility

It contains all classes and functions used through the whole project.

  • database.py : read the dataset files and store them in a pandas dataframe
  • validator.py : check that all constraints are matched by a solution generated by the algorithm
  • common.py : all functions used several times and common in all algorithms
  • pool.py : manage the pool of solution used in the SMA
  • plotter.py : manage the plotting of graph and chart, to display the solutions

Useful links

Contributing

If you want to contribute, feel free to create your own branch :

git branch [your branch name]

Once you finished your work, you can check the modified files :

git status

And then you can add them to a commit :

git add [file name]

After that you can create the commit :

git commit

Finally, you can push on your remote branch :

git push

By Florianne, Alexandre, Antony, Flavian, Hugo, Julien

About

Fil rouge pour ICO

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages