Iterative scheduling algorithms