djstein.com | projects | Rendezvous
Rendezvous
Abstract: This application, "Rendezvous," comprises a scheduler for arranging a set of meetings among a set of people in a set of limited-capacity rooms in a set of time slots over the course of a day. The user first creates a set of named individuals, a set of meeting rooms with specified capacities, and a number of time slots. Next, the user creates a set of meetings, each naming certain individuals who must attend. The goal of the application is to find a schedule such that:
- Each meeting is assigned to a room with sufficient capacity for the number of attendees;
- No two meetings are assigned to the same room in the same time slot; and
- No two meetings sharing an attendee are assigned to the same time slot (i.e., no individual is forced to bear a schedule conflict.)
The algorithm used to solve this problem relies on a customized implementation of a Hopfield-Tank neural network. Once the user creates a set of "resources" (individuals, rooms, and meeting slots), the application constructs a visual two-dimensional grid of rooms and times, and attempts to arrange meetings within this grid. As the network iterates, the application shows the meetings gradually phasing in and out of different time slots, and stops once it reaches a viable solution. The network process may be replayed, or a new solution may be generated.
Version: 1.0 - last updated Thursday, June 09, 2005
Links: Download (Contents: Executable (Windows), Source Code (C#))
Screenshots: