Models and algorithms for job selection, routing, and scheduling in a flexible manufacturing system