Nonostante possa apparire banale a un occhi esterno, questo è un problema decisamente complesso (è in effetti NP-completo), talmente complesso che vale la pena tentare di attaccarlo con un approccio genetico (in sostanza una raffinazione di quello che stai tentando di fare). Ti suggerisco di leggere questo articolo sullo scheduling mediante algoritmi genetici:
http://www.codeproject.com/KB/recipe...sSchedule.aspx