Research Article

An Improved Shuffled Frog Leaping Algorithm for Multiload AGV Dispatching in Automated Container Terminals

Pseudocode 1

The shortest distance rule and the calculation process of the objective function.
Initialize:/∗ initialize tasks and AGVs
T = InitializeTasks();/∗ initialize the pickup point, delivery point, and size of container of tasks
 AGVs = InitializeAGVs();/∗ initialize the status of AGV and assign tasks to AGVs randomly
GetRoutes:/∗ AGV route planning according to tasks assigned
While there are tasks waiting or AGV is not in the waiting place:/∗ for every AGV in AGVs
  IF AGV is in the waiting place or has just completed a pickup task or a delivery task:
   IF AGV is empty:
    IF the number of containers waiting to be loaded != 0:
     AGV visits the nearest pickup point;
     ;/∗ update the route of AGVs; travels from current point to pickup point
    ELSE:
     AGV travels to the waiting place;
     ;/∗ travels from current point to waiting point
   ELSE:
    IF the size of the container the AGV is carrying == 40 ft:
      AGV visits the delivery point;
      ;/∗ travels from current point to delivery point
    ELSE:
      IF AGV is unavailable:
       AGV visits the nearest delivery point;
       ; /∗ travels from current point to delivery point
      ELSE:
       IF the number of containers waiting to be loaded != 0:
        IF the distance travel to the nearest pickup point < the distance travel to the delivery point:
         AGV visits the nearest pickup point;
         ; /∗ travels from current point to pickup point
       ELSE:
         AGV visits the delivery point
         /∗ travels from current point to the delivery point
       ELSE:
         AGV visits the delivery point
         /∗ travels from current point to the delivery point
RETURN
Calculate the objective function:
/∗ represents the distance between task point and task point