Optimizing a complex multi-objective personnel scheduling problem jointly complying with requests from customers and staff