This project provides a demonstration of Gale-Shapley's (1962) and Irving's (1985) algorithms for Stable Matching and Stable Roommate (respectively) using the open-source Python matching
library. This project was created as my final project for Hunter College's CSCI49387: Distributed Artificial Intelligence taught by Dr. Anita Raja.
The purpose of this project is to familiarize students with how matching algorithms function by providing an easy to use UI to run demo matches.
A long term goal is to incorporate illustrations of Niclas Boehmer & Klaus Heeger's paper "Adapting Stable Matchings to Forced and Forbidden Pairs" [AAMAS 2023] so we can adapt our matches as the scenarios shift.
This project is not complete. It currently supports the SM and SR problems, future use cases will be added. Current progress can be seen on the deployed website.
Clone the project
git clone https://github.com/umarhunter/what-a-match.git
Navigate to the project's directory
cd what-a-match
Option 1: Install all dependencies with Anaconda (creating a new environment)
conda env create -f environment.yml
Option 2: Create an empty conda environment
conda create --name <my_env>
Activate the new environment
conda activate my_env
Install requirements
pip install -r requirements.txt
Go to the project directory
cd what-a-match
Make necessary migrations
python manage.py makemigrations
Migrate changes
python manage.py migrate
Start the Django server
python manage.py runserver