I'm working on an application to assign summer camp kids to activities. The program input is a list of campers, and a ranked list of each camper's preferred activities. For example, Alice might rank archery first, then swimming, then hiking. Bob might rank hiking first, then swimming, then archery. Activities can only accommodate a certain number of participants, so not every camper will get their first choice. There are several activity periods, so a camper might get their first choice for one period and second choice for another - choices can't be repeated.
I was hoping to write a stable marriage algorithm for this. The tricky part is that the preference is only in one direction: campers prefer activities, but activities themselves don't care which campers do them. Every SM algorithm I've seen (such as Gale-Shapley) assumes that each marriage party has a preference list. Can the algorithm work if the preferences are only in one direction?