A divide-and-conquer strategy with particle swarm optimization for the job shop scheduling problem