Skip to content

This repository contains the Gale-Shapley (1962) and Irving's (1985) algorithm's for Stable Matching.

License

Notifications You must be signed in to change notification settings

umarhunter/what-a-match

Repository files navigation

What-a-Match

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.

Demo

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.

Local Installation

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

Run Locally

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

Acknowledgements

Authors