Group scheduling and assignment : complexity and algorithms