Skip to content
My bachelors thesis project. A parallelized evolutionary algorithm for generating timetables.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
genetic
json
latex
out
presentation
tinyxml2
web
xml
.gitattributes
.gitignore
CMakeLists.txt
LICENSE
README.md
custom_mpi.cpp
custom_mpi.h
database_data_convert.py
import.cpp
import.h
input_generator.py
main.cpp
output_analysis.py
performance.cpp
performance.h
settings.cpp
settings.h
setup-machine.sh
timetable.cpp
timetable.h
timetable_remapper.py
timetable_types.h
utils.cpp
utils.h

README.md

Parallel Timetables

This is my bachelors thesis project. I researched and implemented an evolutionary algorithm for generating university timetables. Parallelization was achieved with MPI.

A script to set up a fresh Ubuntu 15.04 (desktop or server) machine for compiling and running the program is included. Also included is an HTML timetable viewer for analyzing results.

Features

  • XML Schema Definitions for input data.
  • A robust and easily extensible system for implementing new constraints.
  • An efficient parallelization with minimized memory usage.
  • A machine set-up script.
  • A launch script tat handles copying, builds and launches on multiple machines at once.
  • Editing algorithm parameters without recompiling the program.
  • An input generator for generating inputs with specific properties.
  • Result viewer (HTML application).

Dependencies

  • Boost (with mandatory compiled libraries)
    • Boost.Serialization
    • Boost.MPI

Included libraries

License

The source code is licensed under the MIT license. The thesis is licenced under CC BY-SA 4.0. See included license files for details.

You can’t perform that action at this time.