A column generation-based algorithm for midterm nurse scheduling with specialized constraints, preference considerations, and overtime