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.gitNavigate to the project's directory
cd what-a-matchOption 1: Install all dependencies with Anaconda (creating a new environment)
conda env create -f environment.ymlOption 2: Create an empty conda environment
conda create --name <my_env>Activate the new environment
conda activate my_envInstall requirements
pip install -r requirements.txtGo to the project directory
cd what-a-matchMake necessary migrations
python manage.py makemigrationsMigrate changes
python manage.py migrateStart the Django server
python manage.py runserver