A dynamic programming-based heuristic algorithm for a flexible job shop scheduling problem of a matrix system in automotive industry