I have an assignment problem where I need to assign resources to consumers. Each consumer has a list of resources it'd like to acquire, ordered by preference, and each consumer can have at most one resource. I'd like to find a mapping from the resources to the consumers that tries to satisfy each consumer's preferences.
The twist on the classic assignment problem here is that I'm not necessarily interested in an algorithm which produces the optimal solution. Rather, I'm interested in an algorithm that's simple enough a lay person could do it in their head, or at least part of it in their head at a time.
See, my resources and consumers are embedded in a (hex) grid where a resource and a consumer have to be on adjacent cells to be matched, so the graph is really quite sparse. An ideal algorithm would only use "local" information, such as information about a cell and its neighbors.
An added wrinkle is that whatever algorithm should produce a stable result regardless of the choice of ordering the resources and consumers, either their inherant ordering or an algorithm-chosen ordering. So just walking down the list of consumers from first to last, either their actual ordering or an invented ordering, giving them each their first pick of the remaining resources won't work, because the final assignments might change under a different ordering.
As an example of a possible algorithm, I could assign a resource only if there is exactly one consumer that wants that resource as its first choice, otherwise it doesn't get assigned. Certainly not perfect but it meets all the requirements above while giving a reasonable matching.
Are there any other algorithms worth considering here, or any relevant literature to read?