A hybrid particle swarm optimization approach for the job-shop scheduling problem