# Carousel - Stable Matching

# Carousel: Stable Matcher - CGI Application Upload

Upload a preferences spreadsheet (.xlsx, .xls, .csv):

## About

This is an upload form for the carousel stable matcher (intended only for small matchings), mainly to help assign UO Physics TAs to classes according to preference. This form uses the UO pages.uoregon.edu CGI Capability, so the implementation of carousel being invoked can be inspected here and you may also inspect the source of this page to verify that this script is called to invoke it.

The Stable Matching Problem (actually the "college admissions" variant of the problem) solved by carousel is to find a "stable" set of assignments between courses/roles and TAs. A stable assignment, in this context, is one in which there is no pair of TA and course role which would prefer each other to their respective assignment given under the matching. This form uses default carousel settings to run a version of the the Gale-Shapley (1962) deferred-acceptance algorithm which finds the stable matching that is optimal for the TA preferences. If other stable solutions are desired, you will need to run carousel as a python application yourself.

### Input: Expected Spreadsheet Format

A spreadsheet for matching should be organized as a list of TA assignment preferences and a list of course preferences/constraints, i.e. with the following structure:

- Column A: Name (text)

### Output: Matching Result Format

This form will return a matching in the form of