Figure 4 shows the extended approach, leaving unmodified steps in gray, while highlighting extended or new steps in black. Following the general Model Predictive Control scheme, the approach includes three phases with six steps that the approach applies incrementally as the installation progresses in the real-world system. The first phase measures the system state and updates the internal state representation, e.g., locations and loading states of vessels and the number of installed turbines. This section presents extensions of that system state
x, required to enable an incremental crew scheduling. The second step uses weather forecasts to estimate the duration of each possible operation if a vessel would start it at a given instance during the planning horizon. The authors of the original approach propose two different ways to estimate these durations as a mixture of waiting and processing times: a Markov-Chain-based stochastic simulation and an estimation using a probabilistic sliding window approach. As the Markov-Chain approach delivers indeterministic results when applied to aggregate and basic operations (see step four for more details), this article proposes using the sliding window approach. The third step uses these estimated operation durations to optimize a long-term plan, spanning all included vessels. Following the Model Predictive Control scheme, this optimization generates a plan for
P many planning horizons
T denoted as the prediction horizon
. As the original model relies on so-called aggregate operations that, e.g., subsume all installation operations for a single turbine, including their associated waiting times, the fourth step refines these plans. Therefore, this step splits these aggregate operations into their contained basic operations and calculates their actual starting and end times by using the results of the sliding window estimation, also used to aggregate the operations. Step five uses this detailed list of operations to optimize the crew assignments for the long-term plan. Finally, steps six and seven extract the targeted short-term plan as control u that the approach forwards to the real-world system for execution. The approach defines its monitoring and rescheduling policy to trigger a new planning iteration if all operations in u have finished or if the real-world system diverges from u. The model aims to minimize offshore waiting times. Thus, it triggers a new instance if an operation finishes earlier than planned or takes longer and misses the next operation in u. Similarly, this article assumes that a new iteration will start if, e.g., personnel becomes unavailable during the plan execution due to accidents or sickness.
4.1. Model Design Based on the Requirements and General Assumptions
Particularly the crew scheduling model and its connected system state influence the fulfillment of the requirements stated earlier. Therefore, this subsection first revisits these requirements and describes how the proposed model aims to satisfy them before presenting the state x and the MILP model in more detail. In this context, this subsection also describes the general assumptions taken into account during the model design.
Working hours and rest periods: The proposed model uses the notion of rulesets () that it assigns to each person or crew as to cope with different laws for parts of the overall crew. Each ruleset defines the maximum weekly () and daily () workload, the length of daily rest periods (), and the duration (), and interval of short breaks ( ) personnel need to take when working. The use of these rulesets allows differentiating, e.g., between port-side workers, project crews, or vessel crews that fall under different restrictions depending on the country’s laws.
Crew Roles and Qualification: In contrast to the articles found in the literature, the proposed model does not rely on a binary role model. Instead, it uses the notion of skills (). Therefore, it assigns each person a degree of experience for each noted skill as and a minimum required level of experience for each job as . This way of denoting capable personnel allows for a great deal of flexibility. Planners can define skills on a very rudimentary level, e.g., “We need persons that can install a blade with an experience of 1.5.”, or on way more detailed levels, e.g., “To install the blade, we need someone who can weld with an experience of 0.7 and someone who can operate the crane with an experience of 1.8”. The optimization model will then select crews that, combined, meet the minimum requirement of skills for each operation.
Availability and Worker Health: This requirement splits into two different aspects. First, the dynamic aspect of unavailability due to sickness or accidents. This proposed general approach already covers this aspect by its iterative planning and the described monitoring and rescheduling policy. Second, the requirement includes planned unavailabilities, e.g., due to vacation or on/off periods. The model covers this aspect by including a parameter () in its state. It lists if a person (p) is already planned or unavailable for a given instance (k) within the prediction horizon. In addition to noting general unavailability, the model uses this parameter to block a rescheduling of personnel, e.g., if the plan for one vessel fails, while other vessels still have planned operations for the new prediction horizon left.
Types of Contract and Payment: Similar to the rulesets, which already cover most of the contractual characteristics, the model allows assigning costs to each person individually as
. By combining the rulesets and skills with the cost parameter, the model provides a versatile way to define different personnel, contract types, and associated costs. For example, by adding a person without limits on their workloads, all skills, and high costs, the model can easily represent the notion of additional agency personnel introduced by Leggate et al. [
31].
Type of Assignment: The model’s design assigns crews to jobs. As described earlier, the fourth step of the general approach breaks down the provided plans into basic installation, loading, and vessel operations as specified in
Table 1 to allow precise assignment with a high level of detail. Therefore, the model uses a set of jobs
. For each job, the model denotes the jobs starting (
) and end time (
), its duration (
), and its indexed location (
), e.g., if it takes place at the port or a particular vessel. Similarly, it denotes the location of personnel (
). Using these locations, the model calculates a binary matching if a particular person or crew is present at the right location (
) as part of the capability requirement.
Influence of Weather and Forecast-Uncertainty: Weather conditions strongly affect the overall planning problem and define when an operation can start safely. The proposed approach includes these dynamics in its general approach but not in the actual crew scheduling model. As described earlier, the general approach follows a predictive-reactive approach to first estimate the influence of weather conditions using forecasts, even including their uncertainty. Second, it employs viable monitoring and rescheduling policies to react if the predictions were wrong.
Nationality: As described earlier, this article focuses on the operative decision support and, thus, assumes that planners already took care of visa, traveling, and accommodation issues for planned crews or personnel. Thus, the model does not include the nationality of the crews explicitly.
4.3. Decision Variables and Cost Function
The proposed model uses a time-indexed formulation, where each index represents one hour. It uses six binary decision variables for its optimization. Four of these variables directly follow the definitions given in Rizvanolli and John [
37] and Rizvanolli and Heise [
38]. The model’s primary decision variable
tracks if personnel
p performs a specific job
j at time
k. Two additional variables track which person performs which job (
) and which person the model assigns to the current plan (
). The fourth of these variables
tracks if a person’s or crew’s state switches from active to inactive. The cost function later on uses this variable to avoid a quick switching between personnel and ensures that personnel remains active as long as possible. Finally, the model adds two additional decision variables,
and
, to track the start and end of resting periods. As can be seen from this definition, the optimizer primarily needs to decide on the assignment of personnel to jobs at a given time. The remaining variables directly depend on this decision and mainly simplify the definition of constraints.
Based on the cost function proposed in Rizvanolli and Heise [
38], this model also minimizes the cost based on assigned personnel in
. It also contains a term to minimize switching between personnel as the weighted, normalized sum of assignment changes. Equation (
1) shows the applied cost function.
4.4. Constraints
The model uses several constraints to satisfy the requirements described above. In addition to the parameters described in the state, this article additionally introduces the notion of capable personnel, denoted as set
. The model deems personnel capable if they are at the right location (
) and if they offer at least one skill required by the current job (
). While the model calculates this set as needed, this article defines this set as given in Equation (
2) for the sake of readability. In addition, constraints using this set enforce that their values become zero for unqualified personnel.
The remainder of this subsection presents the constraints and explains the reasoning behind them:
Constraint (
3) ensures that the final plan satisfies all skill requirements imposed by the jobs.
Constraint (
4) ensures that if the model assigns personnel to a job, they perform the complete job. Additionally, the constraint ensures that the optimizer cannot assign more or less time to a job than defined by the duration parameter, even if the job allows starting and ending within a broader interval.
Constraint (
5) enforces that personnel only performs a single job at a time. Additionally, it prevents the model from scheduling already planned or unavailable personnel.
Constraint (
6) denotes personnel assigned to a job at any time as assigned to the plan in general.
Constraint (
7) tracks switches between active and inactive times for each person or crew. The constraint only applies to the set of capable personnel
.
Constraints (
8) and (9) use a Big-M formulation to track the start and end of rest periods. The constraints force their respective variable to take the value of 0 if the period
T contains any assignment for that person or crew. Both constraints only apply if period
T fits into the planning problem, i.e., the model cannot denote the start of a rest period if the prediction horizon is too short to finish the period. Similarly, constraint (9) can only denote the end of a period, for instances larger or equal to the resting period.
Nevertheless, using the parameter
, which contains the number of free hours personnel had at the end of the last iteration, an additional constraint allows the optimizer to use this time and schedule the end of a resting period that started in the last planning iteration. Therefore, the model calculates the remaining pause time as
.
Constraint (
10) follows the same logic as the previous constraints but the model only applies it to the first time-instances k that are larger or equal to the remaining pause but smaller than the first viable instance for a regular resting period.
Constraints (
11) and (12) both contain two different constraints that require each day (
11) and each week (12) to at least start and end one rest period per person or crew. The set
T contains the instances where a new day or week starts within the prediction horizon. Its definition uses the modulo operator % that returns the rest of a division. Thus, for each instance starting a day or week, the optimizer requires that this instance and the following 23 instances (167 for weeks) include at least one pause start and pause end entry. A separate set of constraints focuses on the first interval between the first instance and
. Instead of enforcing the start and end of a resting period, these additional constraints refer to the state parameters
and
to see if that person or crew still needs to start or finish its resting period for this day.
Constraints (
13) and (14) use the same day and week indices
T to limit the maximum workload per person or crew for each day and week. Similar to the last constraints, the first periods for the day and week additionally add the state parameters
and
to allow for the model’s incremental planning.
Finally, constraint (
15) requires each instance k that the following time interval, defined by the pause interval, contains a break according to the current person’s or crew’s ruleset. Therefore, it limits the maximum number of assigned hours for this interval.