  We study a fundamental model of resource allocation in which a finite number
of resources must be assigned in an online manner to a heterogeneous stream of
customers. The customers arrive randomly over time according to known
stochastic processes. Each customer requires a specific amount of capacity and
has a specific preference for each of the resources, with some resources being
feasible for the customer and some not. The system must find a feasible
assignment of each customer to a resource or must reject the customer. The aim
is to maximize the total expected capacity utilization of the resources over
the horizon. This model has application in services, freight transportation,
and online advertising. We present online algorithms with bounded competitive
ratios relative to an optimal offline algorithm that knows all stochastic
information. Our algorithms perform extremely well compared to common
heuristics, as demonstrated on a real data set from a large hospital system in
New York City.
