Documentation | Build Status |
---|---|
A non-registered Julia package to solve a room occupancy problem with simulated annealing
Guests must be accommodated in rooms separated by gender. Guests can request friends with who they would like to share a room. The problem: How do you allocate the rooms to fulfill as many wishes as possible?
This problem must be solved every year during the Jugendtagorchester rehearsal weekend. See the website https://www.jugendtag-orchester.de/orchester if you want to learn more about the orchestra. RoomJuggler.jl
was written to simplify the room juggling and help the organizers schedule the rooms.
For a detailed installation guide, see the documentation: https://kaipartmann.github.io/RoomJuggler.jl/stable/
The Excel file needs to contain three sheets: guests
, rooms
, and wishes
To use RoomJuggler.jl
, you need just four lines of code:
using RoomJuggler
# Read the Excel-file and create a `RoomJugglerJob`
# Specify the full path to the file as argument
rjj = RoomJugglerJob("data.xlsx")
# Optimize room occupancy in terms of the guest's happiness
juggle!(rjj)
# Export the results to a new Excel-file
# Specify the name of the resulting file and the RoomJugglerJob as arguments
report("report.xlsx", rjj)
The following terminal recording shows how to run RoomJuggler.jl
on the file job_300_guests.xlsx
in the examples
directory:
The results of the optimization are exported to an Excel file: