An extension of set partitioning with application to scheduling problems