Multi-stage scheduling problems with precedence constraints