Skip to content

Latest commit

 

History

History
49 lines (33 loc) · 2.56 KB

README.md

File metadata and controls

49 lines (33 loc) · 2.56 KB

RoomJuggler

Documentation Build Status
Stable Dev Build Status Coverage

A non-registered Julia package to solve a room occupancy problem with simulated annealing

The room occupancy problem

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.

Installation

For a detailed installation guide, see the documentation: https://kaipartmann.github.io/RoomJuggler.jl/stable/

Input: Excel file with the data

The Excel file needs to contain three sheets: guests, rooms, and wishes

Run RoomJuggler.jl:

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:

asciicast

Output: Excel file with a report

The results of the optimization are exported to an Excel file: