  Decision making problems are typically concerned with maximizing efficiency.
In contrast, we address problems where there are multiple stakeholders and a
centralized decision maker who is obliged to decide in a fair manner. Different
decisions give different utility to each stakeholder. In cases where these
decisions are made repeatedly, we provide efficient mathematical programming
formulations to identify both the maximum fairness possible and the decisions
that improve fairness over time, for reasonable metrics of fairness. We apply
this framework to the problem of ambulance allocation, where decisions in
consecutive rounds are constrained. With this additional complexity, we prove
structural results on identifying fair feasible allocation policies and provide
a hybrid algorithm with column generation and constraint programming-based
solution techniques for this class of problems. Computational experiments show
that our method can solve these problems orders of magnitude faster than a
naive approach.
