A Self-Adaptive Memetic Algorithm for Distributed Job Shop Scheduling Problem | Synapse