This repository contains a functional AIMMS illustration of the Stable Marriage Problem (specifically the Stable Reindeer Pairing). It demonstrates how to pair "lefty" and "righty" reindeer in front of Santa's sleigh based on their individual preferences to ensure a stable and happy lineup.
The stable marriage problem is a classic optimization challenge in matching theory. In this festive scenario, Santa needs to find pairings where:
- Stability: No two reindeer would both prefer each other over their current assigned partners.
- Preference Optimization: Reindeer are matched based on ranked preference lists.
- Variety: Finding multiple stable solutions to allow Santa to vary the lineup year after year so the reindeer don't get bored.
To get the most out of this model, we highly recommend reading our detailed step-by-step guide on the AIMMS How-to website:
👉 Read the Full Article: Reindeer Pairing Guide
- AIMMS: You will need AIMMS installed to run the model. Download the Free Academic Edition here if you are a student.
- SQLite ODBC Driver: This project uses a database for data persistence. Ensure you have the SQLite ODBC Driver installed.
- WebUI: This project features a complex custom page layout using CSS Grid and advanced UI styling.
- Constraint Programming (CP): Uses the AIMMS CP Optimizer to handle logical "if-then" constraints and channel constraints.
- Multiple Solutions: Configured to return up to 1000 different stable pairings using
solution_storage_limit. - DirectSQL: Demonstrates how to use
DirectSQLprocedures to export the resulting pairings directly to a database.
- Download the Release: Go to the Releases page and download the
.zipfile from the latest version. - Open the Project: Launch the
.aimmsfile. - Run the Model: Use the WebUI workflow to solve the pairings and explore different stable configurations.
This example is maintained by the AIMMS User Support Team.
- Found an issue? Open an issue.
- Questions? Reach out via the AIMMS Community.
Maintained by the AIMMS User Support Team. We optimize the way you build optimization.