This project is aimed at solving the mwccp problems using heuristic algorithms. It is part of the Heuristic Optimization Techniques course at TU Wien. For more insights we refer to both reports used to give further insights:
- Search- & Metaheuristics: https://mkleinegger.github.io/mwccp-heuristic-hustle/report_search-and-meta-heuristics.pdf
- Evolutionary Algorithm & CSMA: https://mkleinegger.github.io/mwccp-heuristic-hustle/report_evolutionary-and-hybrid-approaches.pdf
To install an environment which can be used to run the experiment you can simply call
sh ./setup.sh
It should create a python environment and install all necessary dependencies, including creating a jupyter kernel, for respective notebooks.
We created a benchmarking_search.py
which allows to generate all results for a single instance. All the parameters used to create our results are already set within run_benchmark.sh
and can be adapted. To being able to run all instances on multiple processors or threads, we opted to group the instances evenly into 5 groups. Therefore you can run the benchmark following way:
sh ./run_benchmark.sh <1-5>
Furthermore, did we implement files to tune and benchmark the evolutionary algorithm and CSMA. For this you need to execute:
python src/tune_brkga-csma.py # uses tuning instances
python src/test_brkga-csma.py # uses test instances
python src/comp_brkga-csma.py # uses competition instances
All plots and tables were generated using plots.ipynb
. Furthermore, we included all found results in aggregated form or raw, depending of size within the ./results
folder.