Production scheduling to optimize the product assortment in case of constrained capacity and customer-driven substitution