  Market equilibria of matching markets offer an intuitive and fair solution
for matching problems without money with agents who have preferences over the
items. Such a matching market can be viewed as a variation of Fisher market,
albeit with rather peculiar preferences of agents. These preferences can be
described by piece-wise linear concave (PLC) functions, which however, are not
separable (due to each agent only asking for one item), are not monotone, and
do not satisfy the gross substitute property-- increase in price of an item can
result in increased demand for the item. Devanur and Kannan in FOCS 08 showed
that market clearing prices can be found in polynomial time in markets with
fixed number of items and general PLC preferences. They also consider Fischer
markets with fixed number of agents (instead of fixed number of items), and
give a polynomial time algorithm for this case if preferences are separable
functions of the items, in addition to being PLC functions.
  Our main result is a polynomial time algorithm for finding market clearing
prices in matching markets with fixed number of different agent preferences,
despite that the utility corresponding to matching markets is not separable. We
also give a simpler algorithm for the case of matching markets with fixed
number of different items.
