1. Introduction
Bulk terminals manage substantial volumes of both liquid and dry bulk cargo, including commodities such as oil, coal, iron ore, and grain. In 2016, global dry cargo shipments reached 7.23 billion tons, with coal accounting for 1.14 billion tons. This study focuses on the scheduling challenges of a dry bulk terminal handling coal imports, a critical operation for Morocco’s energy supply.
Morocco, poised as an energy exporter to Europe, relies on coal-fired power plants for 34% of its electricity generation. The nation’s limited fossil fuel resources necessitate increased coal imports, placing significant pressure on bulk terminals to enhance operational efficiency. Optimizing stacker and reclaimer productivity is vital to meet demand while minimizing delays and costs.
Unlike container terminals, where berth allocation and quay crane scheduling are well studied, bulk terminals employ specialized equipment such as stackers and reclaimers. The productivity of these machines directly affects cargo throughput and operational efficiency. However, scheduling them is complex due to interdependencies and constraints, such as equipment collisions and limited stockyard capacity.
This paper introduces an integrated model for scheduling stackers and reclaimers, employing a hybrid genetic algorithm (GA) enhanced with tabu search (TS) to address these challenges. The proposed algorithm ensures feasible solutions by optimizing cargo-handling operations and minimizing completion times. Computational experiments using real data from a Moroccan terminal validate the algorithm’s efficiency and effectiveness.
The remainder of this paper is organized as follows:
Section 2 reviews the related literature.
Section 3 describes the problem and constraints.
Section 4 presents a the mixed-integer linear programming model.
Section 5 details the hybrid GA, and
Section 6 explains the TS method. Experimental results are discussed in
Section 7, followed by conclusions and future directions in
Section 8.
2. Literature Review
In an effort to increase the productivity of container terminals, numerous studies have focused on the quay crane scheduling problem (QCSP). Comprehensive surveys of the QCSP literature were conducted in [
1,
2]. Daganzo [
3] initiated the study, but Ref. [
4] noted that scientific attention in QCSP increased significantly after the publication of Kim’s pioneering paper [
5]. This work formulated QCSP as a mixed-integer linear model addressing container groups, non-crossing constraints, and safety margins. Kim proposed a branch-and-bound (B&B) method and heuristic algorithms to minimize the weighted sum of makespan and total completion time. Moreover, computational experiments on benchmark problems were presented, which later served as references for other researchers.
Moccia et al. [
6] addressed interference between quay cranes, revising the Kim and Park [
5] model to incorporate crane travel times and formulate QCSP as a vehicle routing problem. They proposed a branch-and-cut solution methodology, which outperformed Kim’s B&B approach for the same benchmark instances. Sammarra et al. [
7] further enhanced the model by including precedence and non-simultaneity constraints between tasks. They introduced the TS algorithm and compared its performance with branch-and-cut and greedy randomized adaptive search procedure approaches.
Several studies have employed genetic algorithms (GAs) to solve QCSP. For instance, Ref. [
8] tackled QCSP using a GA that adopted independent unidirectional crane movements. To improve GA search efficiency, they utilized an initial solution based on the S-LOAD rule [
7] and developed a chromosome representation method to reduce decision variables. Their initial population was generated using S-LOAD, while the study presented here uses solutions derived from the TS algorithm. Chung and Chan [
9] highlighted QCSP’s NP-hard nature and proposed a GA with fuzzy logic to adapt mutation rates and mechanisms dynamically. This differs from our GA, where mutation rates are experimentally determined, and swap mutation mechanisms are modified to align with operational rules.
Diabat and Theodorou [
10] developed a GA, integrating crane assignment and scheduling, considering conditions such as end-bay positioning and non-crossing constraints. They restored chromosome feasibility during reproduction to address infeasibility issues caused by genetic operators, albeit at the cost of increased complexity. Unlike their approach, our GA ensures chromosomes remain feasible by modifying the operators’ structure. Recently, Zheng et al. [
11] combined a GA with the Left-and-Right Vessel Move algorithm (LRVM), using the LRVM as an initial chromosome for integrated berth allocation and crane assignments while accommodating preventive maintenance activities within hard time windows.
To improve landside operations in container terminals, the yard crane scheduling problem (YCSP) has garnered increasing attention in recent decades. Carlo et al. [
12] conducted reviews on this topic. Ng et al. [
13] studied the scheduling of multiple yard cranes sharing a single bi-directional lane, where inter-crane interference due to physical blockage was a significant factor. The problem was formulated as an integer program and solved using a dynamic programming-based heuristic to derive effective schedules. In contrast, Gharehgozli et al. [
8] focused on single-crane operations, avoiding interference issues. They modeled the problem as an asymmetric traveling salesman problem, proving it to be NP-hard, and developed an exact solution using a merging algorithm for optimal results.
Lee and Chao [
14] proposed a neighborhood search heuristic to reposition export containers efficiently, ensuring no extra re-handles occurred during ship loading. Speer et al. [
15] conducted a detailed study on real-time yard crane scheduling, considering specific crane characteristics such as movements and interference. They evaluated four automated crane systems through simulation, comparing their performance using the branch-and-bound (B&B) method and highlighting the importance of incorporating all crane cycle times. Galle et al. [
16] developed a model integrating the YCSP with the container relocation problem, formulating it as binary integer programming. They proposed a heuristic local search scheme to jointly optimize crane travel time and expected relocations.
The warehouse crane scheduling problem (WCSP), related to the YCSP, has been studied in warehousing contexts. Yuan [
17] addressed a similar problem in coil warehouses, focusing on storage, retrieval, and shuffling requests to minimize crane travel time. They used a time–space network flow model, with exact dynamic programming for small-to-medium instances and approximate dynamic programming for larger instances. Tang et al. [
18] studied single-crane scheduling for steel coil retrieval and shuffling, proving its NP-hardness and formulating it as a mixed-integer linear program. Their research showed that integrating scheduling with shuffling decisions outperformed sequential approaches. They proposed dynamic programming and heuristic algorithms with worst-case performance guarantees.
Maschietto et al. [
19] addressed unrelated parallel crane scheduling with non-interference constraints, where cranes on the same track cannot overtake each other. They aimed to minimize the total weighted completion time of trucks. To solve large-scale problems, they developed two genetic algorithms (GAs) with chromosomes represented as truck sequences, while our GA employs stockpile handling sequences. To enhance GA performance, five genetic parameters were optimized using the SPOT method [
4].
The number of papers published on scheduling research in dry bulk terminals is limited compared to those focused on container port terminals and warehousing activities. Only a few studies are available in the literature [
20]. Conradie et al. [
21] explored coal handling scheduling, addressing multiple conflicting objectives such as blend requirements and stochastic demand. They proposed a multi-objective approach using simulated annealing to tackle scheduling challenges in coal handling environments.
Boland et al. [
22] investigated stockyard management at Newcastle’s coal terminal, focusing on stockpile locations, assembly timings, and synchronization with ship schedules. The study utilized greedy algorithms combined with enumeration and integer programming to enhance throughput without delaying ships. Similarly, Thomas et al. [
23] developed a Lagrangian relaxation-based approach incorporating volume and Wedelin algorithms for integrated planning and scheduling. Their model considered production planning across multiple mines and train scheduling, achieving better performance than mixed-integer linear programming models by reducing tardiness and operational costs.
Robenek et al. [
24] studied integrated berth allocation and yard assignments in bulk ports. Their solution combined branch-and-price methods with metaheuristics, such as critical-shaking neighborhood search, to minimize vessel service times efficiently. Menezes et al. [
20] presented a mathematical model for Brazilian bulk terminals, integrating production planning and scheduling. Their approach optimized product allocation, equipment schedules for ship loading, and product quality while minimizing operational costs and demurrage. Solutions were derived using branch-and-price algorithms.
Most studies on integrated optimization in dry bulk ports have focused on coal export supply chains from mines to ports, differing from the operational environment of coal-fired plants studied in this paper. In commercial bulk port terminals, an integrated approach to rake scheduling and stockyard planning was explored by [
25]. They developed a mixed-integer linear programming model to minimize rake turnaround times. To address the complexities of real-world problems, they combined genetic algorithms with a greedy heuristic and compared this with a modified block-based evolutionary algorithm. Unlike their focus on outbound cargo rake schedules, this study emphasizes maximizing throughput by scheduling stacker and reclaimer operations while addressing capacity and operational constraints.
Closely related to this paper, Hu et al. [
26] discussed the scheduling problem of stacker–reclaimers in dry bulk terminals, aiming to minimize the maximum completion time for a given set of operations. Unlike this study, which focuses on two independent machines (stacker and reclaimer) operating simultaneously in the same stockyard with collision constraints, Hu considered combined stacker–reclaimer machines without such restrictions. They adopted a traditional genetic algorithm (GA) with a greedy assignment procedure to find optimal schedules.
This study introduces new genetic operators based on cargo clearing numbers to produce feasible schedules addressing stacker and reclaimer operational conflicts. A tabu search (TS) algorithm is also developed and combined with GAs to enhance solution quality. The hybrid GA, pure GA, and TS algorithms are tested and compared for effectiveness and efficiency using real data from a dry bulk terminal.
Literature Summary
The scheduling and optimization of equipment in port terminals have been extensively studied, particularly in the context of the quay crane scheduling problem (QCSP) and the yard crane scheduling problem (YCSP).
QCSP research was initiated by Daganzo [
3] and gained significant attention following Kim’s [
5] pioneering work, which formulated it as a mixed-integer linear programming (MILP) model incorporating container groups, non-crossing constraints, and safety margins. Various approaches have been proposed to solve the QCSP, listed as follows:
Exact methods: Kim [
5] introduced a branch-and-bound (B&B) approach to minimize makespan and total completion time.
Heuristic methods: Moccia et al. [
6] modeled the QCSP as a vehicle routing problem and proposed a branch-and-cut approach, which outperformed B&B in computational efficiency.
Metaheuristic methods: Sammarra et al. [
7] incorporated precedence and non-simultaneity constraints and evaluated solutions using tabu search (TS) and the greedy randomized adaptive search procedure (GRASP).
Several studies have employed genetic algorithms (GAs) to address the QCSP. For example, Diabat and Theodorou [
10] integrated crane assignment and scheduling, while Zheng et al. [
11] combined a GA with the Left-and-Right Vessel Move (LRVM) algorithm to optimize berth allocation and preventive maintenance scheduling.
In yard operations, the YCSP and WCSP have been widely studied, as indicated below:
YCSP: Carlo et al. [
12] and Conradie et al. [
21] explored scheduling for multiple cranes on a single bi-directional lane, proposing dynamic programming-based heuristics to mitigate interference.
WCSP: Yuan et al. [
17] and Tang et al. [
18] formulated crane scheduling as a time–space network flow problem, proving its NP-hardness and developing both exact and heuristic approaches.
Compared to container terminals, research on scheduling in dry bulk terminals remains limited, as indicated below:
Stockyard management: Boland et al. [
22] and Thomas et al. [
23] studied stockpile planning and ship synchronization, using Lagrangian relaxation and greedy algorithms combined with integer programming.
Integrated berth and stockyard scheduling: Robenek et al. [
24] and Menezes et al. [
20] optimized product allocation, stock quality, and operational costs through branch-and-price methods and metaheuristics.
Regarding the scheduling of stackers and reclaimers, very few studies exist; some are listed below:
Hu et al. [
26] examined the scheduling of combined stacker–reclaimers but did not consider collision constraints between independent machines. Their approach relied on a traditional GA with a greedy assignment procedure.
This study differs by considering two independent machines (stacker and reclaimer) operating simultaneously, integrating collision constraints, and developing novel genetic operators combined with tabu search to enhance solution quality.
While existing research has extensively focused on the QCSP and YCSP in container terminals, studies on scheduling in dry bulk terminals remain scarce. This study aims to fill this gap by proposing a hybrid GA-TS model tailored for optimizing stacker and reclaimer operations, significantly improving dry bulk terminal productivity.
3. Problem Description
The scheduling problem investigated in this study is motivated by a real case, involving stacker and reclaimer scheduling in a bulk terminal that supplies coal to a coal-fired power plant in Morocco. The power plant produces an electricity capacity equal to 1400 MW, which represents 10% of Morocco’s power generation. This case study is assumed to be a representative of stacker and reclaimer scheduling for any dry bulk terminal.
At this particular terminal, the cargo (coal) is imported through various sizes of vessels, each with a capacity between 60,000 and 70,000 tons. These vessels are positioned at the anchorage, and, based on the first-in first-out (FIFO) policy, the port authorities called them for berthing into the mechanized berth. The vessel is unloaded by ship-unloaders that can serve the berth. The cargo is then transferred from the berth to the cargo storage yard where it is unloaded to stockyards by a stacker. The stacked cargo is later reclaimed and conveyed to the coal bunker house (CBH) to feed the boiler process with continuous and required volumes of coal. The challenge in this environment is four boiler processes run 24 h a day and 7 days a week to provide continuous high-pressure steam to steam turbine processes, but the shipping of the coal is not ensured continuously because of the increased traffic in the port, the berth availability, and the limited space in the cargo storage yard. However, any shortage of coal feeding to the boiler processes makes boilers run with fuel feeding systems, which decreases the efficiency of the boiler, as well as the efficiency of the steam turbine process. Consequently, this causes a loss of sales and depletion of the fuel inventory. In addition, a lower throughput of cargo may create an overstock of cargo in stockyards, and, thus, the vessel cannot be unloaded within the contracted time following its arrival, which incurs a demurrage cost associated with unloading the vessel. Therefore, the system has to work with higher throughput without causing any stoppage of coal feeding or unacceptable delays for the vessels.
Moreover, the throughput of cargo is heavily related to the productivity of the stacker and reclaimer, which are the most frequently used facilities for cargo handling. In the present study, we address the scheduling problem of stackers and reclaimers to minimize the maximum completion time at which all handling operations are completed in a planning horizon, considering all the constraints of the system described in the following section.
3.1. Detailed Cargo Handling System
The terminal under study, as mentioned, has one berth in the wharf area dealing with cargo materials. This mechanized berth is served by three units of grab-bucket-type ship-unloaders (GTSUs), each with a capacity rate of 1600 tons per hour for unloading cargo from vessels. The Wharf has a conveyor belt system through which the cargo is directly transferred to the cargo storage yard, where there are two stockyards, with each being 520,000 m long and 55,000 m wide. Each stockyard is further subdivided into smaller subarea called stockpiles, where the cargo is stored. Each cargo stockpile spans the entire width of a stockyard, so we can think of stockpiles and stockyards as effectively being one-dimensional. An area between adjacent stockpiles on a stockyard must be kept free with a minimum distance, in practice, equal to 10 m to avoid contamination of the stockpiles. In addition, the cargo storage yard is facilitated by two portal-scraper reclaimers and one stacker. Cargo arriving at a terminal is unloaded into a stockyard by a stacker machine, which can access the two stockyards at a given time and can move forward and backward along the rail line installed between the two stockyards. The rate at which a stacker can process an unloading operation depends on the stacker rate capacity, with a predefined value of 4800 tons per hour. This rate is used to calculate the total time it takes to unload the cargo from the vessel onto the stockpile. We assume that the total tonnage is evenly distributed over this cargo unloading operation, and the stockpile is sloped at an angle of repose, 38°. To perform a new unloading operation, the stacker has to be assigned to one of the available, empty stockpiles, and the setup time of the stacker required to perform this operation has to be considered. Moreover, the time required by the stacker for traveling when it moves from one stockpile to the next and slewing when the stacker boom turns from the horizontal position to the slewing angle (±95°) can be generally regarded as the setup time. The traveling time depends on the traveling speed of the stacker, which is predefined at 30 m per minute, and the distance between the two stockpiles.
The activities in the cargo handling system are driven by the need to satisfy a cargo demand pattern generated by boiler operators. In this process, boiler processes request a specific amount of cargo that has already arrived at the terminal and has been transferred to the stockyard. The amount of cargo required per hour is closer to the reclaiming capacity transferred per hour. Therefore, reclaiming operations are performed to provide the boiler processes with a continuous feed of cargo during the planning horizon. Each stockpile is reclaimed using a portal-scraper reclaimer without pauses or shifts, and the cargo is transferred to coal bunkers through the conveyor belt system. Each reclaimer can move back and forth in its rail lines to access stockpiles on different positions of the stockyard installed between its rails. We assume that the rate of reclaiming is 1200 tons per hour, and thus the time it takes to reclaim a stockpile can be calculated from the total tonnage of cargo stored in this stockpile. Furthermore, only one reclaimer can process a reclaiming operation at a given time and can be assigned to different occupied stockpiles based on the availability of cargo in the stockyard between its rail lines. The setup time required of a reclaimer to process a new reclaiming operation is assumed to be the traveling time from one stockpile to the next. The traveling speed of a reclaimer is fixed at 12 m per minute.
Figure 1 provides an overview of the described cargo handling system.
The stacker and reclaimer scheduling problem determines the handling sequence of all stockpiles including the unloading and reclaiming of cargoes with the objective of minimizing the time by which the unloading of all the vessels and satisfying of all the customer demands are completed across the planning horizon. Consequently, the productivity of stacker and reclaimer machines is improved, and a higher throughput capacity of cargo in the terminal is achieved.
3.2. Cargo Handling System Constraints
Here, we explain some constraints that are specific to the terminal under study that are critical to understanding the problem. During running operation, the stacker and reclaimer can perform stacking and reclaiming operations at a given time and in the same stockyard. To prevent mutual collision between the stacker and reclaimer, a crane anti-collision control is installed for monitoring the current position value of the stacker and reclaimer. When the distance between stacker and reclaimer positions reaches 40 m, both machines run with the deceleration rate set to 10% during a deceleration position approach, and when the stacker and reclaimer approach the stop position (30 m), they stop in the current direction. Therefore, when a reclaimer travels from the current stockpile
pi to the targeted stockpile
pj to perform a new reclaiming operation, it is necessary to check whether there is a stacker present performing an unloading operation between
pi and
pj. If blocking exists between the current stockpile and the targeted stockpile as in
Figure 2, the reclaimer has to wait in the stockpile just before the blocking one until the unloading operation is completed and the stacker boom slews back to a horizontal position; this is because of the safety distance that should be kept between them during operation. In this situation, the starting time for the reclaimer to perform a new reclaiming operation changes to the completion time of the last reclaiming operation plus the setup time from stockpile
pi to
pj, in addition to the waiting time caused by the collision constraint. In the opposite manner, if the stacker operator wants to move forward or backward, there are no restrictions for its movements because the stacker boom is always kept in a horizontal position during traveling time so that it can pass the reclaimer without any collision. In addition, after completion of the reclaiming operation, the reclaimer is practically positioned in the reclaimed stockpile. In case the stacker is assigned to the same stockpile for the unloading of cargo, the stacker has to wait until the reclaimer is moved to a closer occupied stockpile, and this waiting time will affect the starting time of this unloading operation. Another limitation of the system is that the two reclaimers operating in two different stockyards cannot operate simultaneously, as they transfer the cargo to coal bunkers through a common conveyor, as shown in
Figure 1. Moreover, the spontaneous combustion of coal is a major environmental, safety, and economic concern in coal storage areas and can eventually lead to open flames and burning of the material, which causes a decrease in the calorific value of coal. In practice, to mitigate this spontaneous combustion, occupied stockpiles that have a storage period longer than 21 days take priority, needing to be reclaimed over other occupied stockpiles. Furthermore, the calculation of the operation’s starting time is affected by the precedence relationship involved for the unloading of vessels and reclaiming of stockpiles. The reclaiming of stockpiles associated with a given vessel by a clearing number cannot be performed until after the total amount of cargo contained in the vessel is stacked. That is, the starting time of reclaiming a stockpile is always greater than the completion time of unloading the associated vessel. Along with the above constraints, which are specific to the given terminal, general stacker and reclaimer scheduling and operations constraints are also applicable to this problem and are explained in the next section.
4. Mathematical Model
In this section, we describe a mixed-integer linear programming (MILP) formulation for the discussed problem. We solve the problem for a given planning horizon discretized into T periods and a fixed number of stackers and reclaimers. Each stockyard is divided into P identical stockpiles based on the volume of cargo the stockyard can support, such that each stockpile can be handled to unload one vessel completely. The flow rates of the unloading line and reclaiming line are assumed to be constant throughout the planning horizon considered; also, once stacked at a stockpile, cargo is not requested to be shifted to a different location in order to create space in the stockyard. In this paper, an operation is defined as the unloading or reclaiming of cargoes for stockyards. The input parameters of the model, which define the initial status of the stockyards, can be collected by pre-processing the information available just before starting up the model. The notations used to describe the problem are detailed below.
4.1. Sets and Input Data
T The set of time steps, t = {1, 2, …, T}.
V The set of veyssels that need to be served, v = {1, 2, …, V}.
The set of clearing numbers of cargo associated with the set of vessels V, .
S The set of stackers used for stacking the cargo, s = {1, 2, …, S}.
R The set of reclaimers used for reclaiming the cargo, r = {1, 2, …, R}.
I The set of operations that need to be processed in a given planning horizon, i = {1, 2, …, I}.
Y The set of stockyards, y = {1, 2, …, Y}.
P The set of stockpiles in each stockyard, p = {1, 2, …, P}.
Arrival time of vessel v at a berth.
Length of stockyard y.
Length of stockpile p in a stockyard.
Minimum space that must be maintained between two stockpiles in stockyard y.
Initial position of reclaimer r in stockyard y at time t = 0.
Initial position of stacker s in stockyard y at time t = 0.
Total quantity of cargo labeled with the clearing number .
Flow rate of cargo transferred from wharf area to stockyards.
Flow rate of cargo transferred from stockyards to bunkers.
Traveling speed at positioning of reclaimer r.
Traveling speed at positioning of stacker s.
Safety distance that must be maintained at all times to prevent collision between the stacker and reclaimer.
τ A large positive constant.
4.2. Decision Variables
Position of stockpile p in stockyard y.
Position of reclaimer r in stockyard y at time t.
Position of stacker s in stockyard y at time t.
The total processing time of operation , an integer .
Starting time of operation , an integer .
Completion time of operation .
Set up time to process operation j immediately after operation i on stacker s.
Set up time to process operation j immediately after operation i on reclaimer r.
Quantity of cargo handled by reclaimer
r in task
i per period of time
t.
4.3. Objective Function and Constraints
The performance schedule can depend on the completion times of the operations, striving for a higher throughput of handling facilities defined by the volume of cargo moves per hour. The objective function seeks to minimize the maximum completion time at which all operations are completed for a given planning horizon.
where
subject to
The objective function (1) minimizes the maximum completion time of handling operations for a given planning horizon, which is the latest completion time among all operations, as described in the Equation (2). Constraints (3) ensure that a stockpile must fit in its stockyard. To avoid the contamination of stockpiles, constraints (4) define a minimum distance that should always be maintained between two adjacent stockpiles in a stockyard. Constraints (5) guarantee that the completion time of operation i is greater than or equal to the sum of the start time and processing time. Constraints (6) and (7) set the minimum limit of processing time of operation i based on the total quantity of cargo that has to be handled and the flaw rate capacity of the machine used to perform operation i. Constraints (8) and (9) ensure that the order of operations for unloading or reclaiming is respected and give the relationship between the start time of an operation and that of its successor. Constraints (10) and (11) force the value of the implied decision variable to be one when the unloading operation i is between the starting and completion times. Similarly, constraints (12) and (13) define , such that when the reclaiming operation j is being processed. Constraints (14) guarantee that the reclaiming quantity of cargo is equal to the quantity required to cover an assumed deterministic demand per period of time. Although, when the stacker and reclaimer are simultaneously performing unloading and reclaiming operations, constraints (15) ensure that the stacker and reclaimer cannot proceed with these two different operations with the same clearing number at the same time. Constraints (16) and (17) state that unloading and reclaiming operations should take place continuously from the starting time to the minimum time required to complete the operations. While reclaimers transfer the cargo to coal bunkers through a common conveyor, constraints (18) ensure that only one reclaimer can perform a reclaiming operation at a given time. Constraints (19) show that each stockyard is served by only one reclaimer, and, similarly, constraints (20) ensure that the stacker can access a single stockyard at a given time to process one unloading operation. Indeed, when , constraints (21) guarantee that each stockpile in a stockyard can contain the cargo of a single clearing number at a given point in time. Constraints (22) to (26) update the status of the stockyard. Constraints (27) define the collision restriction. When the stacker and reclaimer are simultaneously working in the same stockyard, these constraints ensure that a minimum distance must be maintained to prevent collision between them. Constraints (28) to (30) are binary constraints on the variables.
5. The Developed Hybrid Genetic Algorithm
The scheduling problem that has been studied was shown to be NP-hard and included in combinatorial optimization problems (Diabat et al. [
10]). The MILP formulated above, when solved, likely did not lead to satisfactory results, from a computing time perspective, for real-life instances of interest. Thus, it is necessary to employ a meta-heuristic approach to tackle problems of a realistic size. GAs are one of the meta-heuristic approaches known to be robust in handling scheduling problems [
7]. Furthermore, a GA is an artificial intelligence search from the class of evolutionary algorithms that simulates the process of the natural biological evolution of living organisms [
15]. In general, a GA applies the concept of survival of the fittest in order to let the best individuals evolve continuously through generation until they produce a near-optimal solution. At each generation, a reproduction mechanism is performed by the process of selecting individuals according to their fitness values, defined in accordance with the objective function of the problem and breeding the selected individuals together using operators derived from natural genetics, such as crossover and mutation. This process leads to the evolution of the population of individuals until the termination criterion is satisfied.
The developed approach using a hybrid GA is illustrated in
Figure 3. The procedure starts with obtaining the input data, which consist of the vessel schedule, stockyard status, and machines’ initial positions. Then, hybridization of the GA is performed by a tabu search algorithm, aiming to seed the initial population with good solutions. The solutions generated by the TS algorithm with a predefined seeding frequency (
sf) are considered as a set of individuals of the initial population, and the remaining ones are generated randomly. The generation procedure of the initial population is explained in
Appendix A. Therefore, the hybrid GA starts with a population of individuals or solutions; each solution is encoded as strings, namely chromosomes. The length of each chromosome is equal to the number of operations to be handled in a planning horizon. Afterword, the fitness value of each chromosome in the population is set to be the reciprocal of the objective function value, and with respect to the probability distribution of chromosomes based on their fitness values, a roulette wheel approach is adopted as a selection strategy. After two chromosome parents are selected from the current population, a certain portion of chromosomes between the two parents is exchanged using a modified version of two-point crossover [
1]. After exerting the modified two-point crossover, some individuals may undergo a mutation process.
The offspring solutions are then evaluated and used to evolve the population. To prevent the loss of the best individuals, an elitist strategy is applied. This procedure is continued in order to increase the number of generations until the termination criteria are satisfied.
In this study, we employ modified swap mutation, in which a random element is picked and its position is randomly exchanged with a former element such that the precedence relations are satisfied. The mutation process ensures diversity in the population, and, as a result, the hybrid GA searches in a broader area. Generally, the implementation of genetic operators to parent solutions may yield infeasible offspring solutions in the sense that some stockpiles may be handled by two successive unloading operations while some stockpiles may be handled by two successive reclaiming operations in the offspring. To avoid these infeasibilities, we modify the structure of the two-point crossover and swap mutation to guarantee feasible individuals for the next generation.
5.1. Chromosome Representation
As explained previously, each chromosome is a candidate solution to the problem, consisting of genes that represent the decision variables. The number of genes in each chromosome is equal to the number of operations. It should be noted that in this study a handling operation is characterized by the stockpile number, operation type, and clearing number. Thus, we define a chromosome as having three parts. In the first part, from left to right, genes represent the stockpiles and their handling sequence, whereas in the second part, they represent the type of operation performed in each stockpile of the first part. The genes in the second part can only take “U” or “R” as their value. The gene equal to “U” means an unloading operation will be performed in the stockpile presented in the first part, and the gene equal to “R” means a reclaiming operation. The last part represents the clearing number of cargo quantities that will be handled in each stockpile, which is essential for relating each handling operation to the corresponding vessel.
Figure 4 shows an example of chromosome encoding. This chromosome represents a solution for the stacker and reclaimer scheduling problem in a cargo storage yard with eight stockpiles, one stacker, and two reclaimers. There are 10 vessels to be unloaded; each has a clearing number
for labeling the quantity of cargo contained in each vessel. Each clearing number can be handled by unloading and reclaiming operations, which means that, in this planning horizon, we have 20 handling operations. It is assumed that in the beginning of the planning horizon all the stockpiles are empty and the machines are positioned in the initial position. As indicated in the first part of the chromosome, there are eight stockpiles (numbered
P1–
P8), and the order in which the stockpiles are placed in the chromosome defines the sequence in which they are handled at a cargo storage yard. The second part of the chromosome indicates which type of operation is being handled in each stockpile, and the third part of the chromosome indicates the clearing number associated with each operation. The work assignment of the machine to the stockpile is according to the handling sequence of stockpiles in the chromosome, as long as the handling operation is completely performed. From the example above, the assignment of machines to the stockpiles is stacker-01 = {
P6,
P7,
P5,
P1,
P2,
P7,
P8,
P5,
P2,
P4}, reclaimer-01 = {
P1,
P2,
P3,
P4}, and reclaimer-02 = {
P6,
P7,
P5,
P7,
P8,
P5}.
5.2. Population Initialization
One promising approach for improving the convergence speed of GAs towards the global optimum is population diversity [
1]. This indicates that while the initial population is formed, it is important to generate as many disparate individuals as possible. For this purpose, we propose a hybridization of GAs, which is realized by applying the solution obtained by the TS algorithm into the randomly generated, initial population. The TS algorithm is used to generate initial solutions by a seeding frequency
sf, which is defined based on an experiment, and its result is discussed in
Section 7. The proposed TS algorithm is explained in
Section 6. In the case of stacker and reclaimer scheduling problems, it is not possible to generate populations in a random manner, since the existence of precedence relations among unloading and reclaiming operations and collision constraints between the machines leads to infeasible solutions. Elimination of these infeasible solutions and replacing them with new generated chromosomes is time-consuming. Thus, in the current study, we propose a new method that satisfies the system constraints to only produce feasible individuals. Thereby, the schedule of all the vessels expected to arrive at the terminal is generated by the port authorities, and the stockyard status is updated based on the availability of the cargo. The order in which the handling operations are performed is decided by the following four cases. In the first case, when the list of vessels that need to be served is not empty and the number of occupied stockpiles in the stockyards are less or equal to a minimum limit number, which is assumed in this study to be two stockpiles, the unloading operation is given priority over a reclaiming operation to prevent stockouts of cargo. In the second case, when the stockyards are fully stored with cargo, only the reclaiming operation can be processed. The third case depends on the arrival time of the vessels; when this time is reached, the cargo starts to be transferred from the vessel to one of the empty stockpiles. Otherwise, the reclaiming operations take place successively. The handling sequence in which the stockpiles are handled is also decided during the treatment of the selected case. Then, we calculate the starting time, setup time, and completion time for handling the cargo using the proposed method. Next, we calculate the maximum completion time required to perform all handling operations during the given planning horizon. Therefore, the fitness value for each of the generated schedules is calculated. The initialization procedure of the developed hybrid GA is presented by three algorithms in
Appendix A.
5.3. Fitness Evaluation and Selection
After generating the initial population, a fitness function is used to evaluate the quality of each chromosome. Chromosomes with a higher fitness value have a greater chance of passing on their good characteristics to offspring. Furthermore, the objective of our scheduling problem is to minimize the maximum completion time, which is always positive. Hence, the fitness value of its corresponding chromosome is set to be the reciprocal of its objective function value, as defined in Equation (1).
In this paper, a roulette wheel approach is adopted as the selection procedure to probabilistically select individuals based on a certain measure of their performance. It is assumed that the fitness value is the chosen measure of performance. The roulette wheel procedure implemented in this study was adapted from [
1].
5.4. Crossover
In the present study, a two-point crossover is employed to create offspring by combining and exchanging a certain portion of chromosomes between two parent individuals. For the studied problem, the two-point crossover is modified to ensure that feasibility will be maintained throughout the evolution process and prevent the need for a repair procedure to resolve the illegality of offspring. To demonstrate how the modified two-point crossover is performed, the following steps are presented:
Step 1. The parent individuals are selected to be combined using a roulette wheel procedure.
Step 2. Generate two random numbers that cut the first parent into three parts.
Step 3. Copy the substrings of the first part from the first parent into offspring.
Step 4. Copy the clearing number substring of the second part from the first parent into offspring.
Step 5. Reorder the stockpile handling sequence of unloading operations of the second part into the offspring according to the sequence in which they are contained in the second parent, and which satisfy the precedence relationship.
Step 6. Reorder the stockpile handling sequence of reclaiming operations according to the new order of their corresponding unloading operations.
Step 7. Place the missing genes into the unfixed positions of the offspring from left to right according to the order of the first parent.
Figure 5 illustrates an example of a modified two-point crossover in which two genes are selected randomly. When the stockpile handling sequence of the second part is reordered in offspring, according to the order in which the stockpiles are sequenced in the second parent without satisfying the precedence relationship, the offspring become infeasible. The infeasibilities arising in the offspring are in the form of repeated unloading operations and reclaiming operations in stockpile
P3 successively. That means, after unloading cargo
in stockpile
P3, the unloading of cargo
in
P3 is not possible until the completion of cargo
reclaiming from
P3. Moreover, the reclaiming operation of empty stockpile
P2 is performed before unloading the cargo in it. Another infeasibility is presented in the offspring in the sense that the unloading of stockpile
P7 is performed with cargo
, while the reclaiming of the same stockpile is performed sequentially with different cargo
. To resolve the illegitimacy of offspring, a detailed, modified two-point crossover procedure is given in
Appendix B.
5.5. Mutation
Mutation plays a key role in preserving the diversity of the population, which can force the GA to search in new areas and helps it to avoid premature convergence [
14]. In the developed hybrid GA, we apply swap mutation, which basically means the shuffling of genes within the chromosome. Picking two genes at random and shuffling them, i.e., changing their positions in the chromosome, may lead to an infeasible schedule. Regarding the primary concern for feasibility in the studied problem, the concept of swap mutation is modified. However, the modified swap mutation is performed between four genes, as this still maintains the feasibility of the schedule, and it works as follows:
Step 1. Select the chromosome randomly in terms of the probability of the mutation.
Step 2. Pick one unloading operation, 1U, from the selected chromosome at random.
Step 3. Find the position of reclaiming operation 1R corresponding to the chosen unloading operation.
Step 4. From the position of 1R to the end of chromosome, pick one unloading operation 2U, which satisfies the precedence relationship, randomly.
Step 5. Find the position of reclaiming operation 2R corresponding to the unloading operation 2U.
Step 6. Interchange the position of 1U and 2U, and the position of 1R and 2R.
Appendix C details the procedure for modified swap mutation, which is used for the shuffling of genes within the chromosome, as illustrated in
Figure 6.
5.6. Creation of the Next Generation and Termination Criteria
This elitist strategy ensures that the individuals with the highest fitness value in the current generation can pass into the next generation, which prevents a possible inadvertent loss of high-quality chromosomes during propagation into future generations. The following mechanism, which is similar to [
1] with a few changes, describes the elitist strategy used:
Step 1. Sort the chromosomes of the current population in ascending order of fitness value.
Step 2. Fill the first 25% of the next population from the ordered list (the best chromosomes).
Step 3. From the rest of the 75% of the current population, two chromosomes are selected randomly.
Step 4. Replace the two newly generated offspring with the two selected chromosomes in the next generation.
The termination criteria are determined after a given number of generations, which is decided after extensive experimentation.
6. Tabu Search Algorithm
In this section, we propose a tabu search algorithm for the stacker and reclaimer scheduling problem. The tabu search approach was originally proposed by Glover [
27], and it has successfully been implemented to solve various combinatorial problems. See, for example, Glover et al. [
28], Pardalos el al. [
29], It was developed to allow the well-known hill-climbing to overcome local optima. The basic principle of TS is to perform moves away whenever a local optimum is encountered in the hope that it will eventually identify a better solution. To prevent the search from cycling back to previously visited solutions, the TS keeps a record of its recent search history in memories, called tabu lists.
6.1. Solution Representation
A candidate solution for the neighborhood structure can be represented by
vector representation adapted from Chen [
30]. A complete schedule,
SQ, can be decomposed into subsets
SQs and
SQr, in which
SQs and
SQr correspond to a sequence of stockpiles that are handled by stacker
s and reclaimer
r, respectively. Let
;
SQs can be defined by a permutation vector
, where
denotes the
xth stockpile that can be handled in
. Similarly, let
;
SQr can be defined by a permutation vector
, where
denotes the
xth stockpile that can be handled in
. Therefore, the solution can be represented as follows:
Now, let us consider an illustrative instance to show how we developed the solution.
Instance: In the handling system illustrated in
Figure 4, there are two stockyards; each one is divided into four stockpiles. These two stockyards are facilitated by one stacker and two reclaimers used for unloading and reclaiming the cargo.
Vessel arrival with their cargo quantity and the processing time of handling operations for each type of machine are given in
Table 1. We assume that the setup time of the unloading operation is equal to the traveling time of the stacker machine plus slewing movement time. Moreover, the setup time of the reclaiming operation is regarded as the traveling time of the reclaimer machine.
Example 1. We process the handling operations in the planning horizon considered in the sequences given by = {P6, P7, P5, P1, P2, P7, P8, P5, P2, P4}, = {P1, P2, P3, P4}, and = {P6, P7, P5, P7, P8, P5}. A feasible schedule for the instance could be represented as . Then, the maximum completion time of the schedule is equal to the maximum completion time of the handling machine set. Thus, = 41,518 min.
6.2. Initial Solution Generation
In this section, we use the same heuristic employed to generate a random initial population in
Section 5.2 to produce an initial schedule for the TS algorithm. The main idea of the heuristic method is to schedule all handling operations for a given planning horizon, based on four cases, as shown in
Appendix A (Algorithm A1). When scheduling the unloading operation, we select one of the available empty stockpiles contained in the stockyard status randomly, as described in
Appendix A (Algorithm A2). The First-Come-First-Served (FCFS) rule is applied when building the stockpile handling sequences for reclaiming operations; then, the procedure described in
Appendix A (Algorithm A3) is followed. The updated stockyard status is considered before selecting a stockpile and applying the FCFS rule, so as to ensure that a feasible schedule can be obtained.
6.3. Neighborhood Structure
Due to the existence of some operational constraints that are specific to the problem under consideration, the search space explored by the TS algorithm may include the possibility of considering an unfeasible solution. In the proposed neighborhood structure
Ns, the search is limited to only consider the feasible space of the constrained problem, where each point in the search space corresponds to the set of schedules that satisfies all the operational constraints. In practice, the chosen neighborhood structure should make sure that the moves that seem to intuitively drive the search in the right direction should be the ones that are likely to be selected by Gendreau et al. [
31]. In the proposed approach, a neighbor of a solution is obtained by performing the swapping moves explained in
Section 5.5.
In the example illustrated in
Figure 6, we consider a schedule
. If we perform all possible swaps on
, we may obtain some swapping moves that lead to infeasible solutions, which appear in the form that two successive unloading operations are performed in the same stockpile. However, we identify here a restricted subset of moves that are feasible and can lead to improvement. For the unloading schedule, we associate a sextuple notation (
px,
, U,
py,
, U) with each swapping move, which defines the handling sequence of stockpiles
and
as swapped on
. This means that stacker
s changes the position for unloading the cargo
to the stockpile
. Likewise, the position for unloading the cargo
is changed to the stockpile
.
We start the search for the collection of neighbor solutions by applying the swapping move to the unloading operations associated with the vector . This vector represents the processing order in which the given set of stockpiles is handled by the stacker machine. Applying a swapping move to such a vector by itself does not ensure that a feasible schedule can be found because of the preceding relationships between unloading and reclaiming operations. Thus, we need to construct a complete feasible schedule by performing necessary moves on reclaiming operations that are associated with the vector . For each new processing order obtained from , by applying the swapping move SMs(px, , U, py, , U), we obtain a new processing order from by swapping two stockpiles that are related to the same clearing number of swapped stockpiles on . The movement is denoted SMr(px, , R, py, , R). For better understanding, the swapping move is performed in the following steps:
Step 1. Create an initial feasible solution
using the procedure explained in
Section 6.2.
Step 2. Pick one triplet (px, , U) from the initial chromosome.
Step 3. Find the position of the triplet (px, , R) corresponding to the chosen triplet (px, , U).
Step 4. From the position of the triplet (px, , R) to the end of chromosome, identify all possible swaps that lead to feasible solutions.
Step 5. For each triplet (py, , U) identified in step 4, we apply swapping move SMs(px, , U, py, , U).
Step 6. Find the position of the triplet (py, , R) corresponding to the chosen triplet (py, , U).
Step 7. Apply swapping move SMr(px, , R, py, , R).
Based on the previous description that gives the necessary condition for moving a handling sequence of stockpile, a feasible schedule can be transformed at each iteration by applying the described moves to obtain a set of neighbor schedules. This set of neighbor solutions in the search space defines the neighborhood of , denoted Ns().
6.4. Tabu List and Search Mechanism
The tabu status of a solution is stored in the short-term memory of the search, which is called tabu list
T. This tabu action is applied to prevent the recent moves from cycling back to previously visited solutions. To describe the search strategy of our TS algorithm, it is necessary to introduce an additional notation. Equation (31) describes how a solution
can be presented by a union of permutation vectors. Thereby, the permutation vector
can be associated with a set of attributes.
where
means that the stockpiles
and
are consecutively handled by stacker machine
s. In our case, once a handling sequence of stockpiles
py1 and
py2 are swapped on the stacker schedule, we obtain a neighbor solution by removing two attributes,
and
, from
and replacing it with two other attributes,
and
, where
. Then, the attributes
and
are declared tabu for a certain number of iterations,
. Let
denote the iteration number for which an attribute remains forbidden. Therefore, we do not allow a swapping move that involves returning attributes which they have assigned by tabu status. Similarity to
, let
denotes the set of attributes which are associated with the schedule
. Removing an attribute
from
consists of removing the handling sequence of stockpile
py from
and replacing it with another stockpile
pz. If
pz cannot be handled by reclaimer
r1, the handling sequence of stockpile
py will be removed from
, and stockpile
pz will be assigned to the adjacent one,
, so that the attribute
can be added to
.
However, tabus may sometimes prohibit attractive moves, or they may lead to the overall stagnation of the search process [
31]. In this case, it is necessary to overrule the tabu status of a solution by using algorithmic devices, which are called aspiration criteria. In our algorithm, we allow a tabu move if the aspiration criterion is satisfied; i.e., the move leads to a neighborhood solution that results in a smaller
than that of the current best-known solution
.
One of the main limitations of the traditional tabu search approach is that it tends to spend most of its time in a restricted portion of the search space. To overcome this local optimality, a diversification mechanism is applied to perform wider exploration by leading the search into unexplored regions of the solution space. This mechanism is based on a frequency memory, in which we record the number of times an attribute
has been added to the solution during the search. We let
be the frequency of the attribute
, and
represents the current iteration number. If a non-improving solution
is obtained by applying the swapping move to the current solution
, a penalty weight
is added to
when evaluating the maximum completion time of
. In the applied swapping move, four attributes can be added to the neighbor solution
. Therefore, the penalty
is formulated as follows:
The scaling factor defines a correction that adjusts the penalty weight with respect to the maximum completion time and problem size. The constant factor is used to control the intensity of diversification.
6.5. Overall Description of TS Algorithm
We are now in a position to give an overall procedure for the TS algorithm, integrating the elements that we have described above. We start with an initial handling sequence
with the value of maximum completion time
and primary empty tabu list
T. At each iteration, we apply the local transformation to the schedule
and find out the neighborhood
Ns(
). Let
be the set of schedules obtained by performing non-tabu moves; i.e., at least one attribute
is less than
or satisfies the aspiration criterion. To implement the diversification process, any solution
, such that
, is penalized by a penalty weight
. Thereby, we select the best feasible schedule
from the set
. Then, the tabu list
T is updated, and the frequency of each attribute added to describe
is increased by one unit. The schedule
is set to be the primal one for the next iteration. The algorithm is repeated for a predetermined iteration number
. Therefore, the best-known schedule
encountered during the search is identified. The proposed TS algorithm for the stacker and reclaimer scheduling problem is given in
Appendix D.