An Improved Differential Evolution Algorithm for Solving a Distributed Flexible Job Shop Scheduling Problem