Optimal production scheduling with customer-driven demand substitution