Skip to content

A Julia package to optimize a room occupancy with simulated annealing

License

Notifications You must be signed in to change notification settings

kaipartmann/RoomJuggler.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

80 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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:

About

A Julia package to optimize a room occupancy with simulated annealing

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages