*2.4. Time Composition*

In the process of completing Nstep assigned tasks, each unmanned dump truck encounters several stages, including a driving stage, a waiting stage, a loading stage, an unloading stage, and a charging stage. Equation (7) defines the time for each truck to complete the corresponding Nstep established tasks.

$$T\_i = T\_{\text{cruising}} + T\_{\text{loading}} + T\_{\text{urloading}} + T\_{\text{waiting}} + T\_{\text{charyping}} \tag{7}$$

where *Ti* is the total time of unmanned dump truck *i* to complete Nstep tasks; *T*unloading is the waiting time of unmanned dump truck *i* to complete Nstep tasks; and *T*charging is the charging time of unmanned dump truck *i* to complete the scheduled Nstep tasks.

Equation (8) presents the total time taken by Ntruck unmanned dump trucks to complete Nstep given tasks.

$$T \equiv \max\{ \left\{ T\_1, T\_2, T\_3 \dots, T\_{\text{N}\_{\text{truck}}} \right\}. \tag{8}$$

Equation (9) indicates that the driving time of unmanned dump truck *i* is related to the task spots that need to be visited:

$$T\_{\text{cruising}} = \sum\_{j=1}^{\text{N\_{step}}} TravelTime \left( tasks \, pot\_j, tasks \, pot\_{j+1} \right). \tag{9}$$

Herein, *TravelTime*(*a*, *b*) is a function that estimates the driving time from task spot *a* to *b*. *taskspotj* denotes the task spot that the jth task of unmanned dump truck *i* is required to visit.

Equation (10) defines the loading time of unmanned dump truck *i* during loading tasks:

$$T\_{\text{loading}} = N\_{\text{step\\_load}} \times T\_{\text{load\\_p\\_}} \tag{10}$$

where Tload\_p is the loading time for unmanned dump truck *i* loading at each loading spot. *N*step\_load is the number of loading tasks.

Equation (11) shows the unloading time of unmanned dump truck *i* during unloading tasks:

$$T\_{\text{unloading}} = N\_{\text{step\\_unload}} \times T\_{\text{unload}\\_p\text{\\_}} \tag{11}$$

where Tunload\_p denotes the unloading time for unmanned dump truck *i* unloading at each unloading spot. *N*step\_unload is the number of unloading tasks.

Equation (12) indicates that waiting time includes the time waiting for loading, waiting for unloading, and waiting for charging.

$$T\_{\text{waiting}} = T\_{\text{waiting\\_load}} + T\_{\text{waiting\\_unload}} + T\_{\text{waiting\\_charage}} \tag{12}$$

where *T*waiting\_load denotes the time that unmanned dump truck *i* spends on waiting for loading during the completion of Nstep tasks; *T*waiting\_unload denotes the time that unmanned dump truck *i* spends on waiting for unloading during the completion of Nstep tasks; and *T*waiting\_charge denotes the time that unmanned dump truck *i* spends on waiting for charging during the completion of Nstep tasks.

Equation (13) shows that the charging time depends on the residual capacity when the unmanned dump truck reaches the charging spot for charging:

$$T\_{\text{charging}} \equiv \frac{E\_{\text{full}} - E\_{\text{remain}}}{\mathbf{q}}.\tag{13}$$

Herein, Efull is the full electric quantity of unmanned dump truck *i*; *E*remain is the residual capacity when the unmanned dump truck *i* reaches the charging spot; and q represents the charging efficiency.

The residual capacity of the unmanned dump truck depends on how many tasks are completed and which loading and unloading spots are visited.

#### **3. Methodology**

In the scheduling problem formulated in the previous section, the solution candidates differ from one another in their task scheduling sequences, thereby resulting in different cost function values. This section introduces how to solve the formulated problem. To that end, the first thing is to define an encoding principle so that all of the solution candidates can be presented uniformly in such a solution space. Thereafter, an efficient solver should be proposed to search for the optimal or near-optimal solution in the defined solution space. The technical details are introduced in the next few subsections.

#### *3.1. Principle of Solution Vector Encoding*

The encoding strategy for the scheduling sequence is determined by the number of loading and unloading spots in the environment. Concretely, if there are two loading spots and three unloading spots, the serial numbers for the loading spots are designated as {1, 2}. Meanwhile, the serial numbers for the unloading spots are set to {3, 4, 5}, and the serial number for the charging spot is represented as {6}. As shown in Figure 3, suppose that there are eight tasks to be scheduled for each unmanned dump truck. The scheduling sequence for the unmanned dump truck #1 might be {1, 3, 2, 4, 2, 1, 2, 5}. In such a sequence, the red part of the figure should be penalized for repeated selections of the loading spot while the green part should not be penalized. As for the unmanned dump truck #2, the red part of the figure should be penalized for repeated selections of the unloading spot while the green part should not be penalized.

**Figure 3.** Schematic of solution vector encoding.

#### *3.2. Scheduling Problem Re-Formulation*

In the previous section, Equation (1) defines the cost function. However, the cost function does not adequately consider the establishment of the hard constraint. Therefore, we redefine the cost function here to ensure that the feasibility of the solution vector is not determined solely by the constraint, but also by the penalty function. This redefinition is beneficial for the subsequent utilization of the optimization algorithm, which will be discussed in detail later.

When allocating tasks to multiple unmanned dump trucks, it is vital to ensure that the optimal task scheduling sequence prevents excessive idle time for any truck. Thus, the variance of time taken by each unmanned dump truck to finish its tasks is incorporated into the cost function as a penalty term. This inclusion promotes quicker identification of the optimal task scheduling sequence, averting significant disparities in the completion times among trucks. As a result, the revised cost function is defined as follows:

$$\sum\_{i=1}^{N\_{\text{track}}} \left( \frac{\mathbf{w}\_1}{Q\_i} + \mathbf{w}\_2 \times E\_i \right) + \mathbf{w}\_3 \times T + \mathbf{w}\_7 \times N\_{\text{punish}} + \mathbf{w}\_8 \times T\_{\text{var}} \tag{14}$$

where *N*punish is the number of repeated loading and unloading spots in the task scheduling sequence. w7 is the weight coefficient of the penalty term for repeated spots. *T*var represents the variance of the time taken by all unmanned dump trucks to complete the given task according to the current task scheduling sequence. w8 is the weight coefficient of the penalty term for variance.

### *3.3. Improved-Evolution Artificial Bee Colony Search Procedure*

The artificial bee colony (ABC) algorithm is a heuristic optimization algorithm based on bee behavior. It is used to solve complex optimization problems by simulating the foraging behavior and information exchange of bees. The local search accuracy of the conventional ABC algorithm is not satisfactory. The improved-evolution artificial bee colony (IE-ABC) algorithm used in this paper is an improved artificial bee colony algorithm. The search intensity is manipulated by adding an adaptive change multiplier to the global search equation, and the traditional re-initialization process is improved by the overall degradation strategy to obtain a better optimal solution.

Algorithm 1 uses the IE-ABC search framework to search for the optimal scheduling scheme, which includes the initialization phase (lines 1–2), the employed bee phase (lines 4–12), the calculation of the probability index to prepare for the roulette selection strategy (lines 13–20), the onlooker bee phase (lines 21–38), and the scout bee phase (lines 39–44). *trial*(*i*) records the number of times an inefficient search is performed by the ith employed bee or any onlooker bee that searches around the ith employed bee. *trial*(*item*) *trial*(*item*)+*trial*(*k*) in the fifth line is utilized as an adaptive change multiplier to regulate the search intensity. The solution vector *X* represents the scheduling sequence, and Equation (14) represents the objective function GetCostFun(). *P* represents the probability index. During the scout bee stage, if the number of searches exceeds the limit, the position of the scout bee is reinitialized.

The pseudo-code of the IE-ABC algorithm is given as follows.

#### **Algorithm 1.** IE-ABC.

```
1. Set the population size PN, and maximum cycle number MCN; Set the inefficient trial time
     counter trial(i) ← 1 (i = 1, 2, . . ., PN/2);
```

$$X\_{item}^{\*} \leftarrow X\_{item} + rand(-1, 1) \times (X\_k - X\_{item}) \times \frac{trial(item)}{trial(item) + trial(k)} \neq$$


$$19. \quad P(i) \leftarrow \frac{\sum\_{j=1}^{i} fitness(j)}{\sum\_{j=1}^{j} fitness(j)}$$


$$Y\_{item} \leftarrow X\_{\dot{j}} + rand(-1, 1) \times (X\_k - X\_{\dot{j}}) \times \frac{trial(\dot{j})}{trial(\dot{j}) + trial(k)} \text{ } \dot{z}$$


During the initialization phase, the sequence for scheduling is arranged based on the loading and unloading order to streamline the search for the best solution. After establishing this sequence, the energy consumption required for the unmanned dump truck to complete its tasks is assessed. This assessment subsequently informs when the truck needs recharging.

Algorithm 2 identifies the best recharging moments, relying on the loading and unloading order of the unmanned dump truck. The algorithm starts by accepting the sequence of loading and unloading tasks as its input. In its third line, it estimates the driving time between successive task spots, as dictated by the task sequence. The next line, i.e., line 4, computes the truck's residual energy, based on the calculated driving time. Then, from lines 5 to 10, the algorithm discerns if there exists a need for recharging by considering the leftover energy. If charging is deemed necessary, it then updates the task sequence to accommodate this.

The pseudo-code for the ChargeConstruct algorithm is presented below.


The energy consumption of the unmanned dump truck is related to the working time. The driving time of the unmanned dump truck between the loading spots, unloading spots, and charging piles is proportional to the path length. The planning space is modeled by using the Voronoi diagram, and the optimal path is obtained by combining the A\* search algorithm [34], so as to estimate the optimal path length.

The Voronoi diagram is a fundamental geometric concept used to divide a plane based on a discrete set of spots. The diagram ensures that the distance from any spot in a given region to its corresponding spot in the discrete set is smaller than the distance to any other spot in the set.

Assuming that the set of discrete spots *D* = {*d*1, *d*2, *d*<sup>3</sup> ... *dn*}, the mathematical expression of the Voronoi diagram is as follows:

$$
\sqrt{(x-x\_i)^2 + (y-y\_i)^2} < \sqrt{(x-x\_j)^2 + (y-y\_j)^2}, \text{ i } \neq j \tag{15}
$$

where (*xi*, *yi*) and (*xj*, *yj*) represent the coordinates of any two discrete spots *di* and *dj* in the set D, respectively. (*x*, *y*) represents the coordinates of any spot on the plane.

By satisfying Equation (15), the set of spots (*x*, *y*) forms the Voronoi region for the discrete spot *di*. Consequently, the plane can be divided into *n* polygons, where each polygon contains only one discrete spot *di*.

Furthermore, the spots lying on the edges of the Voronoi polygon satisfy specific constraints.

$$\begin{cases} \sqrt{\left(\mathbf{x} - \mathbf{x}\_i\right)^2 + \left(\mathbf{y} - \mathbf{y}\_i\right)^2} = \sqrt{\frac{\left(\mathbf{x} - \mathbf{x}\_j\right)^2 + \left(\mathbf{y} - \mathbf{y}\_j\right)^2}{\left(\mathbf{x} - \mathbf{x}\_k\right)^2 + \left(\mathbf{y} - \mathbf{y}\_i\right)^2}} \text{, i } \mathbf{i} \neq \mathbf{j} \neq \mathbf{k} \end{cases} \tag{16}$$

where (*xi*, *yi*) and (*xj*, *yj*) represent the coordinates of adjacent discrete spots *di* and *dj*, respectively. (*xk*, *yk*) represents the coordinates of any other discrete spot *dk*.

The planning space is segmented into multiple Voronoi regions based on the placement of obstacles within the environment. Recognizing that obstacles can vary in size and shape, their boundaries are discretized using a method that employs numerous discrete spots to encapsulate these boundaries. The Delaunay triangulation algorithm constructs the Voronoi diagram from this. To enhance this representation, virtual nodes are placed near pivotal areas, including loading spots, unloading spots, and charging spots. These nodes are then integrated with the original Voronoi diagram, yielding the final representation.

The A\* algorithm operates on a traversal search principle, leveraging a heuristic function. This function gauges the cost of moving from any location to the destination, steering the search towards the most viable routes. By adopting the Voronoi diagram as the model for the planning space, the A\* algorithm's search is limited to traversing only the nodes within the diagram, substantially enhancing its efficiency. After identifying the best path, the algorithm can then estimate its length.

#### **4. Simulation Results and Discussion**

This section reports the simulation results, together with our in-depth discussions. Concretely, the simulation experiments will be conducted in three aspects. First, comparative experiments will be performed using various optimization algorithms. Second, comparative experiments will be carried out with different cost function definition strategies. Third, comparative experiments will be performed using different encoding strategies for the solution vector.

#### *4.1. Simulation Setup*

Simulations are implemented in a MATLAB platform and executed on an Intel(R) Core(TM) i7-7700 CPU with 16 GB RAM that runs at 8 × 3.6 GHz.

Critical parameters are listed in Table 1. In order to increase the diversity of unmanned dump trucks, two kinds of unmanned dump trucks are set up, which have different load capacities and loading and unloading times, respectively. Each unmanned dump truck has two average speeds during cruising.


**Table 1.** Parametric settings for simulations.
