European Journal of Operational Research 321 (2025) 958–973
Contents lists available at ScienceDirect
European Journal of Operational Research
journal homepage: www.elsevier.com/locate/eor
Innovative Applications of O.R.
An approximate dynamic programming approach for solving aircraft fleet
engine maintenance problem: Methodology and a case study
Miao Zhang a , Jingyuan Yang b , Chuwen Zhang a , Simai He c , Huikang Liu c , Jinshen Wang d ,
Zizhuo Wang e,f ,∗
a
School of Information Management and Engineering, Shanghai University of Finance and Economics, Shanghai, 200433, China
Booth School of Business, University of Chicago, Chicago, 60637, IL, United States of America
c Antai College of Economics and Management, Shanghai Jiao Tong University, Shanghai, 200240, China
d China Southern Airlines Company Limited, Guangzhou, 510403, China
e School of Data Science, The Chinese University of Hong Kong, Shenzhen, Guangdong, 518172, China
f
Cardinal Operations Co. Ltd., Beijing, 100102, China
b
ARTICLE
INFO
Keywords:
OR in airlines
Engine maintenance
Fleet management
Multi-stage stochastic integer programming
Approximate dynamic programming
ABSTRACT
We consider a long-term engine maintenance planning problem for an aircraft fleet. The objective is to
guarantee sufficient on-wing engines to reach service levels while effectively organizing shop visits for engines.
However, complexity arises from intricate maintenance policies and uncertainty in engine deterioration. To
address this problem, we propose a graph-based approach representing high-dimensional engine statuses and
transitions. We then formulate the problem as a multi-stage stochastic integer program with endogenous
uncertainty. We develop an approximate dynamic programming algorithm enhanced by dynamic graph
generation and policy-sifting techniques so as to reduce the computational overhead in large problems. We
demonstrate the efficacy of our method, compared with other popular methods, in terms of running time
and solution quality. In the case study, we present an implementation in a real-world decision system in
China Southern Airlines, in which the proposed method works seamlessly with other supporting modules and
significantly improves the efficiency of engine maintenance management.
1. Introduction
Maintenance is a major operational expense for airlines. According
to the International Air Transport Association (IATA) Maintenance Cost
Technical Group, airlines face substantial costs related to maintenance,
repair, and overhaul (MRO), totaling approximately $62 billion and
accounting for 11.2% of total airline operating costs in 2021 (Cros,
2022). Specifically, expenses on aircraft engines alone comprise 35% to
40% (Ackert, 2011). Therefore, it is crucial to strategize cost-effective
aircraft engine maintenance.
The aircraft engine maintenance problem involves the design and
coordination of maintenance activities for a fleet of aircraft engines,
aiming to achieve cost efficiency while ensuring service levels. As an
overhaul is typically needed only once in a few years, a plan is never
handled in a short view. In the industry, however, maintenance plans
often entail manual decision-making and human control and can hardly
consider engine management from a larger picture. The complexity
of managing engine maintenance for an aircraft fleet can be seen in
several folds.
Costly and lengthy shop visit. The foremost complexity of repairing an
aircraft engine results from a shop visit. By the name we refer to an
event where an engine is removed from the aircraft and transported to
a specialized maintenance facility, often referred to as an engine shop,
for inspection and restoration. In sharp comparison to other routine
maintenance usually performed by airlines themselves, a shop visit is
usually a serious event that may take millions of dollars and last for a
few months.
Complex maintenance policy. A maintenance policy includes the
workscope for each module of an engine during a shop visit. The
workscope may range from minor maintenance to overhaul. Determining a proper workscope can be complex. It is based on a comprehensive
understanding of the operational requirements, engine performance
data, regulations, and best practices in the industry. The workscope
required is first determined by the manufacturer’s recommendations,
depending on the cycles since overhaul (CSO), time since overhaul
∗ Corresponding author.
E-mail addresses: serena.zhangm@gmail.com (M. Zhang), jyang21@chicagobooth.edu (J. Yang), chuwzhang@gmail.com (C. Zhang), simaihe@sjtu.edu.cn
(S. He), hkl1u@sjtu.edu.cn (H. Liu), jason-wang@csair.com (J. Wang), wangzizhuo@cuhk.edu.cn (Z. Wang).
https://doi.org/10.1016/j.ejor.2024.10.008
Received 7 December 2023; Accepted 4 October 2024
Available online 15 October 2024
0377-2217/© 2024 Elsevier B.V. All rights are reserved, including those for text and data mining, AI training, and similar technologies.
European Journal of Operational Research 321 (2025) 958–973
M. Zhang et al.
(TSO), and so on. The results of the inspection, including visual inspection, nondestructive testing, or other diagnostic tests, are then
used to refine the workscope. The replacement of expensive parts,
such as a life-limited part (LLP), is also determined, which can significantly impact the workscopes. Perhaps not surprisingly, there are,
in many cases, multiple maintenance policies that all comply with
safety requirements, from which an airline can select based on specific
operational targets. Each valid maintenance policy corresponds to a
particular post-maintenance engine performance, a maintenance cost,
and a maintenance time (also known as Turnaround Time or TAT).
Although we initially frame the problem in the context of aircraft
engine fleet management, our proposed framework, comprising both
the modeling and the algorithm, can be pertinent to other large-scale
dynamic problems in related areas.
Outline. The rest of this paper is organized as follows. Section 2
reviews the related work. Section 3 provides a detailed modeling
framework of the aircraft fleet engine maintenance problem. An ADP
algorithm is proposed in Section 4. We conduct numerical experiments
in Section 5 to demonstrate the computational performance and effectiveness of the proposed algorithm. Section 6 illustrates the practical
applicability and implementation of our approach within a real-world
system through a case study with China Southern Airlines. Section 7
concludes the study.
Tight flying schedule. In addition to the case for single-engine maintenance, planning for engines within the entire aircraft fleet becomes
even more intricate. The lack of available engines can lead to a fleet’s
inability to meet tight flying schedules, resulting in substantial economic losses and even the cancellation of routes. Hence, we should
avoid sending a large number of engines for maintenance simultaneously to prevent shortages in the fleet. Moreover, another critical
aspect requiring attention is the possibility of engines experiencing
unexpected events like damage from foreign object debris (FOD), corrosion, or other environmental factors that can lead to failure or
malfunction. To maintain a desired service level without committing to
long-term ownership or significant capital investment, airlines may use
short-lease engines. Nevertheless, short leases can be quite expensive.
In summary, to maintain the service level while minimizing costs,
a lifetime plan for engines in a fleet should be specified to balance
the rhythm of shop visits. Besides, unforeseen engine failures should
be taken into account. Meanwhile, short-term leases should also be
considered as a contingency measure. All these factors together make
the planning problem extremely complicated. This paper proposes a
modeling framework to address this problem. Additionally, effective
optimization methods are introduced to support the decision-making
process.
2. Related work
Operations research methods have been widely used in the airline
industry since the 1950s (Barnhart & Talluri, 1997; Yu & Hillier, 1998).
A wide range of models and techniques have been proposed for wellknown problems like flight scheduling (Feo & Bard, 1989), aircraft
routing (Clarke et al., 1997), and crew scheduling (Vance et al., 1997).
We refer readers to Bazargan (2010) for a comprehensive review of
related applications.
The Airline Deregulation Act introduced in 1978 transferred control
over air travel from political to market forces, paving the way for
airlines to prioritize efficient maintenance efforts (Kennet, 1994). The
significance of maintenance investment decisions to management is
also acknowledged in numerous industries (McKone & Weiss, 1998).
Despite being a critical aspect of aviation operations, engine maintenance for an aircraft fleet has not been extensively studied in prior
research. Previous studies have yet to tackle the complexity associated
with maintenance policies and the real-world challenges of optimizing
the scheduling of shop visits and short-term leases to ensure service
guarantees in the face of uncertainty. This gap in knowledge presents a
compelling case for further investigation into the scheduling of shop
visits in aircraft fleet engine maintenance. In this section, we review the literature related to aircraft engine and fleet maintenance on
the context side and multi-stage stochastic integer programming and
endogenous uncertainty on the methodology side.
1.1. Contribution
Our contributions are summarized as follows:
• We introduce an aircraft fleet engine maintenance management problem that incorporates simultaneous decisions on maintenance timing,
policy, and short-term leasing. To the best of our knowledge, despite
its importance in the air industry, this problem has not been studied
in an integrated way. Traditionally, the focus has primarily been on
making maintenance decisions based on the individual engine’s condition or selecting maintenance policies in predetermined schedules
for engines with very limited options. We shift our perspective to a
fleet-wide view, allowing us to better account for the flight schedule
and expand our focus beyond rudimentary maintenance decisions to
encompass implementable policies.
• We develop a graph-based approach that captures the dynamics
between high-dimensional engine statuses under uncertainty. Our
approach incorporates a black-box maintenance policy oracle to represent any reasonable external modules, as long as they generate
valid policies for engine maintenance. This abstraction allows us to
leverage existing solutions for single aircraft engine maintenance. We
also develop an approximate dynamic programming (ADP) algorithm
based on classical stochastic dual dynamic programming (SDDP) with
refinements to address the challenges of endogenous uncertainty,
integer solutions, and large state space for a stochastic dynamic
model.
• We demonstrate the effectiveness and efficiency of our proposed
method via extensive numerical experiments. In a case study, we
implement our methods in collaboration with China Southern Airlines
(CSAIR) in an engine maintenance management system (EMMS) integrating statistical analysis and other optimization tools. The one-year
backtest results indicate that the EMMS can significantly reduce shortterm rental days by approximately 30%, resulting in an estimated cost
reduction exceeding $2,000,000.
2.1. Aircraft engine & fleet maintenance
Existing literature on single aircraft engine maintenance scheduling
has focused on the replacement problem of parts that balances failure
probability and maintenance costs. These studies primarily investigate
the optimal maintenance interval by heuristic-based approaches (Hopp
& Kuo, 1998), dynamic programming models (DomitroviΔ et al., 2008)
and integer programming models (Almgren et al., 2012). Our work also
addresses the maintenance of individual engines; however, our primary
objective is to develop maintenance plans for a multi-engine aircraft
fleet, encompassing the operational requirements of the entire fleet.
From a fleet perspective, inexact solution methods have been widely
used. Among them, simulation is the most common approach to decide
how engines go through cycles of service, maintenance, and inventory (Adamides et al., 2004; Johnson & Fernandes, 1978; Painter
et al., 2006; Ramirez-Hernandez et al., 2016; Razavi et al., 2015).
Some also use heuristics, machine learning methods, or combinations
to study aircraft engine maintenance within the fleet (Bollapragada
et al., 2007; Zhou et al., 2022). For broader aircraft fleet (non-engine)
maintenance problems, one of the main methods employed is integer
programming. Sanchez et al. (2020) consider tail assignments in maintenance scheduling and propose a multi-objective mixed integer linear
programming (MMILP) formulation to make a schedule based on predefined maintenance opportunities (MOPs). Other approaches to aircraft
maintenance scheduling problems involve Markov decision process and
959
European Journal of Operational Research 321 (2025) 958–973
M. Zhang et al.
reinforcement learning (Hu et al., 2021; Mattila & Virtanen, 2011).
These studies typically consider whether to perform a maintenance
task chosen from a very limited set at a prescribed time. In contrast,
our scope extends beyond basic maintenance decisions to encompass a
multitude of individualized maintenance policies.
Our problem is also related to fleet management and resource
allocation, which are well-known applications of approximate dynamic
programming and reinforcement learning (Powell, 2011; Powell &
Topaloglu, 2005; Simao & Powell, 2009; Wu et al., 2023). Nevertheless, the aircraft fleet engine maintenance problem becomes significantly more complex due to the intricate maintenance policies, flexible
short-term leases, and the stochastic deterioration of the engines.
3.1. A graph-based approach for modeling engine statuses and transitions
The first step in the framework is to model engine status and their
transitions. The presence of stochastic deteriorations, which significantly disrupt the decision-making process, coupled with the intricacies
involved in generating maintenance policies, renders a conventional
composite engine status metric incapable of fully capturing the realworld situation. To address this, we introduce a graph-based approach
to depict the high-dimensional engine statuses and their transitions as
nodes and edges, respectively. This graph-based approach forms the
basis for formulating a dynamic program to address the aircraft fleet
engine maintenance problem effectively. In the following, we explain
the details of the engine statuses and transitions respectively.
2.2. Multi-stage stochastic integer programming & endogenous uncertainty
3.1.1. Representing engine statuses
An engine generally undergoes a long-term degradation process
from a healthy status to failure. A composite metric, referred to as the
remaining useful life (RUL), is often used in condition-based maintenance
to represent the engine status (Lei et al., 2018). It is a prediction
of the amount of remaining time an engine can function. However,
such simple parameterization fails in multi-stage problems where the
dynamics of RUL become obscure. On the one hand, it is impossible to
accurately capture the relationship between changes in RUL and actions
taken by an engine. Since the RUL loses complete information on engine
status, the RUL of an engine can only be precise at the beginning. On
the other hand, maintenance policies for engines with identical RUL are
not necessarily the same. There could be multiple outcomes for modules
and LLPs for a single RUL, resulting in distinct maintenance policies.
For example, an engine that replaces multiple LLPs costs more than
another engine that replaces a single LLP, yet they can share the same
RUL.
It is thus much more informative to use multi-dimensional information to represent the engine status. In our model, we conceptualize the
multi-dimensional information of engine status by discrete levels, each
encompassing all the pertinent information required for maintenance.
By leveraging these levels, maintenance policies can be generated to
address specific engine statuses. Furthermore, engines at the same level
are considered to be in identical status. These levels are treated as
abstract nodes in a graph, which we are going to introduce next.
The stochastic dual dynamic programming (SDDP), proposed
in Pereira and Pinto (1991), can be considered a state-of-the-art solution method for large-scale multi-stage stochastic linear programming
problems. Since being introduced in a hydrothermal context, SDDP has
been used in many practical applications and received various enhancements (Guigues, 2017; Kozmík & Morton, 2015; Tilmant & Kelman,
2007; Zou et al., 2018). The key idea is to iteratively approximate the
expected cost-to-go functions by linear inequalities, including Benders
cutting planes.
However, SDDP may not be as effective when applied to integer
problems due to the nonconvexity of the cost-to-go functions. For
solving multi-stage stochastic integer programming (MSIP) problems,
the stochastic dual dynamic integer programming (SDDiP) proposed
by Zou et al. (2019) that extends SDDP can be regarded as a pioneering
work. However, SDDiP requires state variables to be binary. For general
integer state variables, binarization can be implemented at the price of
enlarging the problem size. There are a few studies on approximating
the cost-to-go functions. For example, Philpott et al. (2020) use the
mixed integer dynamic approximation scheme (MIDAS) that approximates monotonic cost-to-go functions with step functions. Ahmed et al.
(2022) exploit a family of Lipschitz cuts to approximate the non-convex
cost-to-go function.
In the field of stochastic programming, endogenous or decisiondependent uncertainty means that the decisions can directly affect the
probability distribution. Jonsbråten et al. (1998) and Ahmed (2000)
establish early disjunctive methods for endogeneity. Nohadani and
Sharma (2018) prove that robust linear optimization problems with
decision-dependent uncertainties are NP-complete. More recently, Luo
and Mehrotra (2020) and Yu and Shen (2022) study decision-dependent
models in the distributionally robust optimization (DRO) framework,
where the ambiguity sets of probability distributions can depend on
the decision variables. Nevertheless, the existing literature mainly focuses on two-stage stochastic programs and typically solves the problem by enumeration incorporating a customized branch-and-bound
method (Goel & Grossmann, 2006; Luo & Mehrotra, 2020). For a
problem with a large number of stages as in our case, the number of
scenarios grows exponentially which makes the enumeration no longer
applicable.
3.1.2. Edges in the level transition graph
Formally, we use a directed graph π’ = (β , β° ) to model level
transitions. Each node in β represents a possible level of an engine.
We use β ∅ ⊆ β to denote the collection of levels that are not healthy.
Each edge in β° stands for a specific level transition. We give an example
of the level transition graph π’ in Fig. 1. The circle represents the
level, where white and shaded circles represent the level of healthy
and unhealthy statuses respectively. Different colored lines represent
different types of transitions.
Transitions of engine levels are mainly determined by three actions:
usage, storage, and maintenance. The action of using an engine in an
aircraft is called on wing. On-wing engines in one level are naturally
transferred to another according to deterministic deterioration patterns.
When not in active use, an engine can either be stored in a depot
and stay at the same level or sent to a shop visit and transferred to
a healthier level according to the maintenance policy. An engine may
also encounter random damage that causes a stochastic level transition.
Edges that represent deterministic level transitions are contained
in three disjoint subsets β° π , β° π» , and β° π corresponding to different
actions. The edge set β° π represents level transitions caused by usage.
We assume that an engine is precisely transferred from one level to
another after a period of usage, i.e., there is exactly one edge in β° π
starting from each node in β ββ ∅ . Since engines that are not healthy
cannot be used, there is no such edge starting from nodes in β ∅ . The
edge set β° π» consists of loops indicating that the level of an engine
remains constant due to storage. The edge set β° π is generated through
the maintenance policy oracle O. We formally define the maintenance
policy oracle O below. An illustration is given in Fig. 2.
3. A modeling framework
In this section, we establish a modeling framework to address
the long-term planning problem of aircraft fleet engine maintenance.
Specifically, the problem involves careful consideration of engine arrangements for each time period. This entails decisions regarding
whether each engine in a fleet should be assigned to an aircraft, put
in storage, or sent off with a proper maintenance policy, or if a newly
short-leased engine is required. Additionally, it is crucial to ensure that
the total number of engines in use within the aircraft fleet exceeds
a prescribed demand. In the following, we describe several critical
components in our framework. To facilitate understanding, we list
all the notations and their meanings in Table 1, which will also be
explained in detail when discussed.
960
European Journal of Operational Research 321 (2025) 958–973
M. Zhang et al.
Table 1
List of notations in Section 3.
Notation
Description
π
O
β
β∅ ⊆ β
β°
β°π ⊆ β°
β°π» ⊆ β°
β°π ⊆ β°
π’ = (β , β° )
ξΉ(π)
ξ―(π, π′ )
ξ (π, π′ )
ξ±(π)
Time horizon, indexed by π‘.
Maintenance policy oracle.
Collection of possible engine levels, indexed by π.
Collection of unhealthy levels.
Edge set of all engine level transitions in a period, indexed by (π, π′ ).
Level transitions caused by usage.
Transitions where the engine level remains constant due to storage.
Level transitions generated by the maintenance policy oracle O.
Engine level graph.
Collection of levels π′ reachable after maintenance via O from π.
Maintenance fee of restoring engine level from π to π′ .
Turnaround time of restoring engine level from π to π′ .
Set of maintenance policies, each of which can restore an engine from level π to level π′ . Each policy
is associated with a maintenance fee ξ―(π, π′ ) and a turnaround time ξ (π, π′ ).
Level transitions due to stochastic deterioration.
Number of engines in level π at the beginning of time π‘.
Number of engines that will enter level π after π-period maintenance at the beginning of time π‘.
Number of rented engines with π periods remaining at the beginning of time π‘.
Number of self-owned engines in level π assigned on-wing at time π‘.
Number of engines that select the maintenance policy represented by (π, π′ ) ∈ ξ±(π) at time π‘.
Maximum possible turnaround time to reach level π.
Set of remaining maintenance time to reach level π, indexed by π.
ππ,π′ ,π‘ denotes the number of engines deteriorating from level π to π′ at time π‘.
Number of short-term rented engines entering the fleet at time π‘.
One-time rental cost for renting a short-term engine.
Lease length of renting a short-term engine.
Set of remaining rental time.
All decision variables.
All state variables.
Set of feasible solutions, given endogenous uncertainty ππ‘ (ππ‘ ) and the maintenance policy oracle O.
One-period cost function at time π‘.
Value function given the uncertainty ππ‘ (ππ‘ ).
Expected value function.
β°π
ππ,π‘
ππ,π,π‘
π
π,π‘
π’π,π‘
ππ,π′ ,π‘
πmax (π)
π¬(π) = {1, … , πmax (π)}
ππ‘ ≡ (ππ,π′ ,π‘ )(π,π′ )∈β° π
ππ‘
π
πΎ
π€ = {1, … , πΎ − 1}
π₯π‘ = [π’(⋅,π‘) , π(⋅,π‘) , ππ‘ ]
ππ‘ βΆ= [π(⋅,π‘) , π(⋅,π‘) , π
(⋅,π‘) ]
(
)
ππ‘ ππ‘ , ππ‘ (ππ‘ ), O
ππ‘ (⋅)
ππ‘ (ππ‘ , ππ‘ (ππ‘ ), O)
ξπ‘ (ππ‘ , O)
Fig. 1. An Example of the Level Transition Graph π’ .
Definition 1 (Maintenance Policy Oracle). The maintenance policy oracle O consists of three mappings:
1. a set-valued mapping ξΉ βΆ β β β defined by
ξΉ(π) βΆ= {π′ | there is a maintenance policy that can restore the engine
level from π to π′ };
2. a single-valued mapping ξ― βΆ β × β → R where ξ―(π, π′ ) denotes
the maintenance fee of restoring engine level from π to π′ ;
3. a single-valued mapping ξ βΆ β × β → R where ξ (π, π′ ) denotes
the turnaround time of restoring engine level from π to π′ .
Fig. 2. Maintenance Policy Oracle O.
ξ―(π, π′ ) and turnaround time ξ (π, π′ ). Through the oracle O, we treat
the maintenance policy generation process as a black box that uses
an engine level as input and outputs a desired maintenance policy. In
practice, the maintenance policy oracle may result from an abstraction
of expert or AI-assisted systems. It is important to note that generating
maintenance policies is complex and resource-intensive. In this view,
As shown in Fig. 2, given a level π ∈ β , we obtain the set ξΉ(π)
of levels reachable after maintenance. Each edge (π, π′ ) in the subset
ξ±(π) βΆ= {(π, π′ ) β£ π′ ∈ ξΉ(π)} ⊆ β° π corresponds to a maintenance policy
that can restore an engine in level π to level π′ with maintenance fee
961
European Journal of Operational Research 321 (2025) 958–973
M. Zhang et al.
a reasonable model should limit its trials in querying the maintenance
policies.
An unexpected failure may result in abrupt transitions that exhibit
larger deviations than those by usage. We use a set of stochastic
transitions β° π to capture abrupt transitions. Each edge (π, π′ ) in β° π
stands for a stochastic deterioration from the start node π to the end
node π′ . In this paper, we assume only engines in healthy levels may
encounter stochastic deterioration and enter a failed level. There might
be multiple outcomes of stochastic transitions for a level.
−
π′ βΆ(π,π′ )∈β° π
π’π,π‘ +
π′ βΆ(π′ ,π)∈β° π
ππ,π‘+1 = ππ,π‘ − π’π,π‘ +
∑
π′ βΆ(π′ ,π)∈β° π
π′ βΆ(π,π′ )∈β° π
π’π′ ,π‘ −
∑
∑
ππ′ ,π,π‘ ,
∑
ππ,π′ ,π‘ ≤ ππ,π‘ −
(4)
∑
ππ,π′ ,π‘
∀π ∈ β ββ ∅ .
(6)
π′ βΆ(π,π′ )∈β° π
π′ βΆ(π,π′ )∈β° π
The ‘‘after-effects’’ are also true for rented engines in service until
the end of the lease contract. (7) specifies the dynamics of rented
engines. Once an engine is rented at time π‘, it will be in service
immediately and for the subsequent πΎ − 1 periods:
π
πΎ−1,π‘+1 = ππ‘ and π
π−1,π‘+1 = π
π,π‘ ,
∀π ∈ π€ β{1}.
(7)
The number of engines available at time π‘ must meet the flight demand ππ‘ , and we can use rented engines as a supplement to self-owned
engines to avoid shortages:
∑
∑
ππ‘ +
π’π,π‘ +
π
π,π‘ ≥ ππ‘ .
(8)
π∈β ββ ∅
π∈π€
In our dynamic programming framework, we define the decision
variables at any given time π‘ as π₯π‘ , which include decisions on engine
deployment, maintenance, and rentals, enveloped in π₯π‘ βΆ= [π’(⋅,π‘) , π(⋅,π‘) ,
ππ‘ ]. The state variables are denoted as ππ‘ , represented by the vector
ππ‘ βΆ= [π(⋅,π‘) , π(⋅,π‘) , π
(⋅,π‘) ], which provides a comprehensive snapshot of
the engine statuses at the beginning of each period. Constraints (2)–
(8) for the problem at π‘ can be represented in the form (π₯π‘ , ππ‘+1 ) ∈
(
)
ππ‘ ππ‘ , ππ (ππ‘ ), O , where ππ‘ denotes the set of feasible solutions, emphasizing endogenous uncertainty given in (1) as well as the functional
dependency on the maintenance policy oracle O.
Let ππ‘ (⋅) be the one-period cost function at time π‘, then we have
∑
ππ‘ (π₯π‘ ) =
ξ―(π, π′ )ππ,π′ ,π‘ + πππ‘ .
(9)
This suggests that there is a correlation between the state variables and
random variables.
Let ππ‘ be the number of short-term rented engines entering the fleet
at time π‘, each of which incurs a one-time cost π with a lease length of πΎ
periods. We do not consider the wear and tear for those rented engines.
Let π€ = {1, … , πΎ − 1} be the set of remaining rental time.
Next, we describe the constraints and system dynamics. To begin, self-owned engines transfer between levels by the corresponding
actions taken at time π‘ as described by the following equations:
ππ,π′ ,π‘ +
∀π ∈ π¬(π)β{1}, ∀π ∈ β ββ ∅ .
Note (2) specifies level transitions of unhealthy engines. For engines
in such a level π ∈ β ∅ , they either stay in the current level or enter
the maintenance process according to the maintenance policies given
in ξ±(π). There are two ways of entering a failed level π: one is by usage
according to β° π , and the other is by stochastic deteriorations according
to β° π .
The level transitions of healthy engines are given by (3). After usage,
an engine in a healthy level π ∈ β ββ ∅ will leave for the new level π′ as
(π, π′ ) ∈ β° π . Similar to unhealthy engines, a healthy engine can also be
sent for maintenance. And engines that finish maintenance will return
to the corresponding levels. Some engines may encounter stochastic
deteriorations and enter failed levels.
Since a maintenance policy adopted at time π‘ will not be completed
until several periods later, it creates ‘‘after-effects’’ in the following
periods. The ‘‘after-effects’’ caused by maintenance are formulated as
(4). The remaining maintenance time of an engine under maintenance
decreases over time. An engine in level π that adopts a π-period maintenance policy (π, π′ ) at time π‘ has π − 1 periods left at time π‘ + 1 to finish
maintenance.
Note that the sum of the number of engines taking three actions is
bounded by the number of engines at the beginning of the period:
∑
ππ,π′ ,π‘ ≤ ππ,π‘ , ∀π ∈ β ∅ ,
(5)
π′
∑
ππ′ ,π,π‘ ,
(3)
π′ βΆ(π′ ,π)∈β° π ,ξ (π′ ,π)=π
With the above defined engine statuses and their transitions, we
adopt a dynamic programming framework to formulate this problem.
In the dynamic programming formulation, at the beginning of time π‘,
there are ππ,π‘ engines in level π, ππ ,π,π‘ engines that will enter level π after
π-period maintenance and π
π,π‘ rented engines with π periods remaining.
At each state, we need to determine the number of engines that
perform each of the three actions. Let π’π,π‘ be the number of selfowned engines in level π assigned on-wing at time π‘. After being used
for a period, engines in level π transfer to level π′ according to the
edge set β° π in π’ . To restore an engine to a healthier level, we can
choose from maintenance policies given in β° π and send an engine for
maintenance. We use ππ,π′ ,π‘ to denote the number of engines that select
the maintenance policy represented by (π, π′ ) ∈ ξ±(π) at time π‘. Once
the policy (π, π′ ) is selected, an engine will not return and transfer to
level π′ until the ξ (π, π′ )- period maintenance is completed. Let π¬(π) =
{1, … , πmax (π)} be the set of remaining maintenance time, where πmax (π) =
max{ξ (π′ , π) βΆ π ∈ ξΉ(π′ )} denotes the maximum possible turnaround
time to reach level π.
In addition to deterministic level transitions, an engine may encounter stochastic deterioration. We collect the number of engines
that encounter stochastic deterioration at time π‘ in the vector ππ‘ ≡
(ππ,π′ ,π‘ )(π,π′ )∈β° π , where ππ,π′ ,π‘ denotes the number of engines transferring
from level π to π′ at time π‘. The random variable ππ‘ is defined on a
common and complete probability space (πΊπ‘ , β± , P). Note that |πΊπ‘ | < ∞
for all π‘. For each π‘, the bounded vector π€π‘ ∈ πΊπ‘ signifies the stage π‘
realization of the random vector ππ‘ . Note that the number of engines
that encounter stochastic deteriorations is bounded by the number of
engines in the corresponding level, i.e.,
∑
ππ,π′ ,π‘ ≤ ππ,π‘ .
(1)
π’π′ ,π‘ −
∀π ∈ β ββ ∅ ,
∑
ππ−1,π,π‘+1 = ππ,π,π‘ +
3.2. Dynamic programming formulation
∑
ππ,π′ ,π‘ + π1,π,π‘ ,
π′ βΆ(π,π′ )∈β° π
Remark. In this study, we assume uniform engine types across the fleet,
which is a common practice since fleets are typically managed with
a single type of engine. In the case study (Section 6), we focus on a
fleet of V2500 engines that powers Airbus A320 family. However, our
model can be readily adapted to accommodate multiple engine types
by carefully designing the graph and the dynamics. For example, one
can construct the graph for each one of the engine families, and then
combine it into one large graph to define the dynamic programming
problem.
ππ,π‘+1 = ππ,π‘ +
∑
(π,π′ )∈β° π
Our goal is to minimize the total expected discounted cost
∑ −1 π‘−1
minπ₯1 ,…,π₯π −1 E[ ππ‘=1
π½ ⋅ππ‘ (π₯π‘ )] over the π -stage planning horizon given
an initial state π1 with discount factor π½. We may rewrite the problem
in the form of stochastic dynamic integer programming:
SDIP βΆ ππ‘ (ππ‘ , ππ‘ (ππ‘ ), O) = min ππ‘ (π₯π‘ ) + π½ξπ‘+1 (ππ‘+1 , O)
π₯π‘ ,ππ‘+1
(10)
s.t. (π₯π‘ , ππ‘+1 ) ∈ ππ‘ (ππ‘ , ππ‘ (ππ‘ ), O),
[
]
where ξπ‘ (ππ‘ , O) = E ππ‘ (ππ‘ , ππ‘ (ππ‘ ), O) is the cost-to-go function, and
ξπ (⋅) βΆ= 0. Since the feasible solution, that satisfies all the constraints
∀π ∈ β ∅ , (2)
π′ βΆ(π′ ,π)∈β° π
ππ,π′ ,π‘
π′ βΆ(π,π′ )∈β° π
962
European Journal of Operational Research 321 (2025) 958–973
M. Zhang et al.
ππ }
{π₯ππ‘ π , ππ‘+1
π‘=1,…,π −1 is collected for each one of the scenarios. For
conciseness, we omit the maintenance policy oracle O for now, but it
is important to note the dependency of the cost-to-go function on O,
which we will delve into further in Section 4.3.
• Under complete recourse, each {π₯ππ‘ π }π‘=1,…,π −1 gives a feasible solution
to the original problem; thus we have a statistical upper bound π :
(2)–(8), allows for the renting of short-term engines to address any demand shortages, there is always a way to meet demand. Consequently,
the problem has complete recourse since there exists a feasible solution
to (10) for every ππ‘ ∈ ππ‘−1 and for every ππ‘ (ππ‘ ).
Before we delve into solution methods, we give a few remarks. First,
our framework is flexible for potential extensions. For instance, deep
learning and reliability analysis can assist in estimating and predicting
engine status, taking into account multiple failure mechanisms (see,
e.g., Huang et al. 2022). These methods can be effectively incorporated
into the graph-based approach. Furthermore, it is worth noting that
recent research has made progress in the generation of maintenance
policies. This evolution spans from traditional time-based approaches
to more sophisticated condition-based and risk-based strategies (see,
e.g., DomitroviΔ et al. 2008, Lv et al. 2015). It may contribute to the enhancement of maintenance policy oracle O. Moreover, it is also possible
to integrate various forecasting and data-driven methods dealing with
demand uncertainty into our framework (see, e.g., Delage and Ye 2010,
Hamilton 2020). Given that previous studies have already achieved
substantial advancements in addressing engine status estimation and
prediction, maintenance policy generation, and demand uncertainty,
we can shift our focus to the planning problem.
Finally, we comment that while certain operational assumptions,
such as maintenance location, aircraft flight hours or cycles, and workforce considerations, are not explicitly incorporated into this model,
these factors can be considered within the maintenance policy oracle,
from which we derive the maintenance time, cost, and expected performance level. The oracle-based approach allows us to incorporate these
variables implicitly without explicitly stating them in our model.
πΎ
πΎ
∑
∑
πΜ
π = πΜ + π§πΌβ2 √ , πΜ =
π’π π βπΎ , πΜ 2 =
(π’π π − π)
Μ 2 β(πΎ − 1),
(14)
πΎ
π=1
π=1
∑π −1
where π’π π = π‘=1
ππ‘ (π₯ππ‘ π ) and π§πΌβ2 denotes the πΌβ2-quantile of the
standard normal distribution.
• In the backward pass, new cuts are added to update approximations
of cost-to-go functions from π‘ = π to 2 in the reversed order. These
cuts are generated for states {ππ‘π π }π,π‘ determined in the forward pass.
For each π‘, let ππ‘ be the number of realizations of the random variable
ππ‘ . We iterate over all realizations π€ππ‘ , π = 1, … , ππ‘ , and solve an LP
relaxation to ππ‘π (ππ‘π π , ξ π+1
, π€ππ‘ ) :
π‘+1
)
(
(
)
, π€ππ‘ βΆ min ππ‘ (π₯π‘ ) + π½ξ π+1
ππ‘+1
π
ππ‘ ππ‘π π , ξ π+1
π‘+1
π‘+1
π₯π‘ ,ππ‘+1
(15)
s.t. (π₯π‘ , ππ‘+1 ) ∈ ππ‘π«π― (ππ‘π π , π€ππ‘ ),
to obtain cut coefficients π£ππ‘ ππ as the objective value and ππ‘π ππ as
the subgradient of ππ‘ . The cut we obtain in this way is the wellknown Benders cut (Benders, 1962). Here ππ‘π«π― (⋅) denotes the feasible
solution set after relaxing the integral constraints. With a slight abuse
of notations, a new cut at some ππ‘π π for ξπ‘ is generated by
ππ‘π π (ππ‘ ) =
4. Solution methodology
ππ‘ (
)
1 ∑ π ππ
π£ + β¨ππ‘π ππ , ππ‘ − ππ‘π π β© .
ππ‘ π=1 π‘
(16)
• The current lower bound is set as
In this section, we propose an approximate dynamic programming
(ADP) algorithm based on the stochastic dual dynamic programming
(SDDP) introduced in Pereira and Pinto (1991) for multi-stage stochastic linear problems, with several ingredients to work with endogenous
uncertainty, integer solutions, and large state space for a stochastic
dynamic model. To facilitate the understanding of the algorithm, we
first give an overview in Section 4.1.
π = π1 (π₯1 ) + π½ξ π+1
(π2 ).
2
To apply the traditional SDDP algorithm to our problem, we need
to address three challenges. The first is endogenous uncertainty. As
seen from (11), one generates samples at the beginning of each iteration. However, this is impossible for endogenous uncertainty in our
problem since the probability distribution of the current stage depends
on decisions made in previous stages. To be specific, the number of
stochastic deteriorations realized at level π depends on the quantity of
engines at the corresponding level. The second challenge lies in getting
satisfactory integer solutions. For problem (10), cuts generated by the
SDDP algorithm are not tight. The third challenge is the astronomical
state space in the problem. In Section 4.2, we discuss how we convert
endogenous uncertainty into exogenous one and how we improve
integer solutions by means of lifting. Then in Section 4.3, we introduce
a dynamic graph generation scheme and a policy sifting idea to save the
total number of maintenance policies in order to increase the efficiency
in calculation.
4.1. Overview of the algorithm
Stochastic dual dynamic programming. In general, the SDDP algorithm
approximates convex polyhedral cost-to-go functions by iteratively
adding cutting planes. While the original algorithm is well-known,
we include a self-contained description in the context of our problem
for completeness. A single iteration of the algorithm consists of the
sampling procedure and two passes:
• At iteration π, generate πΎ scenarios
{π€π1π , … , π€πππ−1 }π=1,…,πΎ .
(11)
• In the forward pass, we optimize a set of subproblems ππ‘π successively from π‘ = 1 to π − 1:
(
)
ππ‘π (ππ‘π π , ξ ππ‘+1 , π€ππ‘ π ) βΆ min ππ‘ (π₯π‘ ) + π½ξ ππ‘+1 ππ‘+1
π₯π‘ ,ππ‘+1
(17)
• The algorithm is terminated when the relative gap π between the
lower bound π and the statistical upper bound π is small enough.
4.2. Adaptation for endogenous uncertainty and integer solutions
(12)
4.2.1. Endogeneity to exogeneity
To tackle endogeneity, existing literature uses reformulation and
employs an enumerative procedure. Instead, we keep our method
within the realm of SDDP by considering alternative sampling procedures. We develop a method to transform endogenous samples to
exogenous sampling. This is achieved by embedding an auxiliary random
variable π» π‘ such that samples can be drawn independently in the beginning. We then recover the original random variable ππ‘ when solving the
subproblem. In this way, the sampling procedure disentangles from the
π π } for any π. Now we define the auxiliary random
trajectory {π₯ππ‘ π , ππ‘+1
variable.
s.t. (π₯π‘ , ππ‘+1 ) ∈ ππ‘ (ππ‘π π , π€ππ‘ π ),
where ξ ππ‘+1 (⋅) is the approximate expected cost-to-go function at
iteration π given by
(
)
(
)
π
ξπ‘+1 (ππ‘+1 ) ≥ ξ ππ‘+1 ππ‘+1 βΆ= max π ππ‘+1
ππ‘+1 .
(13)
π=0,…,πΏ
π (⋅)
ππ‘+1
Here
denotes the π-th cut generated for ξπ‘+1 in the past
0 (⋅) is the initial under-approximation to preserve
iteration and ππ‘+1
boundedness; the total number of cuts πΏπ generated depends on the
scenarios used in the iterations. Clearly, ξ ππ‘+1 (⋅) provides a lower
bound for the true expected cost-to-go function ξπ‘+1 (⋅). A trajectory
963
European Journal of Operational Research 321 (2025) 958–973
M. Zhang et al.
Definition 2. The auxiliary random variable π» π‘ ≡ (π» π,π′ ,π‘ )(π,π′ )∈β° π lies in
the interval [0, 1] and satisfies E[π» π,π′ ,π‘ ] = E[ππ,π′ ,π‘ ]βππ,π‘ .
graph and policy sifting, to give acceptable approximations to the
original problem (10) at large-scale instances. We employ a dimensionreduced space wherein a simplified state πΜπ‘ is utilized for computation,
Μ
along with a reduced set of maintenance policies denoted as ξΉ(π)
⊂
ξΉ(π). These techniques collectively simplify the problem.
We note that the above procedure is an approximation of the
original model. However, the approximation is reasonable because it
provides the natural insight as the failure rate. Specifically, motivated
by the fact that the mean value, E[ππ,π′ ,π‘ ], is linearly proportional
to the total number of on-wing engines ππ,π‘ , we define the auxiliary
random variable π» π,π′ ,π‘ such that E[π» π,π′ ,π‘ ]ππ,π‘ matches the averages. Also,
in our later numerical experiments, we show such an approximation
method leads to good performance. Since auxiliary random variables
−1 can be taken at the beginning of each
are exogenous, samples {ππ‘ }ππ‘=1
⌊
⌋
iteration and π€π‘ can be easily recovered by π€π,π′ ,π‘ = ππ,π′ ,π‘ ππ,π‘ .
Note that a rounding procedure is needed for the integer problem.
Since the auxiliary random variable π» π‘ has a continuous distribution,
we construct the sample average approximation (SAA) problem in the
spirit of Shapiro (2011) to which we apply the SDDP algorithm.
Dynamic graph. The cardinality of the set β , which represents the
number of potential engine levels, can reach into the millions, due to
the high dimensionality of these levels. Each engine’s state is captured
by a vector of conditions, making the total number of potential engine
levels essentially the product of all possible conditions for each vector
element. This leads to a problem known as the ‘‘curse of dimensionality’’. To address this issue, we propose the following approach. Since
the number of engines in a fleet (which is often a few hundred) is
significantly smaller than the total number of potential engine levels,
only a small subset of the level set β would be active at a given time
π‘, and the remaining majority is inactive to the present problem. This
naturally motivates us to capitalize on a dynamic graph generation
scheme that only builds a subgraph π’π‘ in an online fashion. Let βπ‘ ⊆ β
be the set of levels involved at the beginning of time π‘ and βπ‘∅ = βπ‘ ∩β ∅
be the set of levels that are unhealthy. Similarly, edge sets β°π‘π , β°π‘π» , β°π‘π
and β°π‘π wrap up the transition of possible usage, storage, maintenance,
and stochastic deterioration from time π‘ to π‘ + 1. We give an example
of a dynamic graph generation scheme below based on the full-scale
graph π’ in Fig. 1.
4.2.2. Improving integer solutions
Since the Benders cut shown in (16) is not tight in general, we
improve its quality by incorporating a lifting procedure. For each tuple
of the cut coefficients, π£ππ‘ ππ and ππ‘π ππ , obtained by (15), we can always
increase the intercept of the cut by a nonnegative scalar πΌπ‘π ππ according
to the following ‘‘lifting procedure’’,
}
{
πΌπ‘π ππ βΆ= sup πΌ ≥ 0 βΆ π ππ‘ (ππ‘π π , ξ π+1
, π€ππ‘ ) ≥ π£ππ‘ ππ + β¨ππ‘π ππ , ππ‘ β© + πΌ , ∀ππ‘ ,
π‘+1
Example 1 (A Dynamic Graph Generation Scheme). Suppose there are
only engines in level π0 , π2 and π7 at the beginning of time π‘, i.e., βπ‘ =
{π0 , π2 , π7 }. According to Fig. 1, an engine may transfer to level π4 or π5
from some level in βπ‘ . Then the subgraph π’π‘ should include βπ‘ ∪ {π4 , π5 }
and contain all edges starting from nodes π0 , π2 and π7 in the full-scale
graph π’ , as shown in Fig. 3.
(18)
where we define π ππ‘ (⋅) to be the optimal value of ππ‘π (⋅). The ‘‘lifted cut’’
at ππ‘π π for ξπ‘ is then formulated as follows:
ππ‘ (
)
1 ∑ π ππ
π£ + πΌπ‘π ππ + β¨ππ‘π ππ , ππ‘ − ππ‘π π β© .
(19)
πΜπ‘π π (ππ‘ ) =
ππ‘ π=1 π‘
Through a dynamic graph generation scheme, nodes involved in
the subgraph π’π‘ at time π‘ can be determined by enumerating the
limited outcomes of βπ‘ ; and edges are relatively sparse. Therefore, the
complexity of the full-scale graph π’ is resolved by exploiting a limited
subgraph at a time. At time π‘, we only need to consider variables and
constraints induced by π’π‘ and obtain a smaller πΜπ‘ therein:
min πΜπ‘ (π₯Μ π‘ ) + π½ ξΜ π‘+1 (πΜπ‘+1 , O)
π₯Μ π‘ ,πΜπ‘+1
(20)
(
)
Μ π‘ (πΜπ‘ ), O .
s.t. (π₯Μ π‘ , πΜπ‘+1 ) ∈ πΜ π‘ πΜπ‘ , π
We have the following result.
Theorem 1. The feasible region of (18) is bounded. Furthermore, if (18)
is feasible, then the optimal solution πΌπ‘π ππ to (18) is attainable and can be
acquired by solving a specific Lagrangian dual problem.
The proof is relegated to supplementary materials. In fact, one can
show that the lifted cut is equivalent to the strengthened Benders
cut in Zou et al. (2019). We provide a different perspective to understand the strengthened Benders cut through a simple lifting idea.
Finally, the cut coefficients can be aggregated similarly as in (16). One
can see that the lifting procedure only improves the cut ‘‘intercept’’
while leaving ππ‘π ππ untouched. This can be done by solving one extra
integer programming problem (18) for each π warm started by the
corresponding relaxed solution (16). It is also known that we may
construct the subgradient of ππ‘π ππ from (18) in view of the Lagrangian
relaxation (Wolsey, 2021). Then we can further apply, for example,
subgradient and bundle-type methods (Lemaréchal et al., 1995; Wolsey,
2021; Zou et al., 2019) to further improve the slope ππ‘π ππ and ππ‘π π . In
practice, this would require solving a large number of such problems
(18) to iteratively refine ππ‘π ππ . Therefore, due to the fact that our
problem is quite large, we do not further explore this method. As we
demonstrate in the numerical experiments in Section 5, using the lifting
procedure on πΌ itself will already lead to satisfactory performance for
solving our problems.
Not surprisingly, we show the solution to the subproblem based on π’π‘
also solves the original one with a large number of states.
Theorem 2 (Subproblem Equivalence). Problems (10) and (20) have the
∗ ) and (π₯
∗ )
same optimal objective value. Furthermore, let (π₯∗π‘ , ππ‘+1
Μ ∗π‘ , πΜπ‘+1
∗
∗
be optimal solutions of (10) and (20), respectively. Then, (π₯π‘ , ππ‘+1 ) and
∗ ) are identical up to a projection.
(π₯Μ ∗π‘ , πΜπ‘+1
The proof is straightforward by setting the inactive variables to
zero. Theorem 2 shows that it is always safe to use the dynamic graph
generation scheme in the forward pass as it provides the same optimal
solution as the original problem. An immediate benefit goes to the
forward pass when creating the trajectory since we are able to deal
with much smaller subproblems.
Policy sifting. Recall that generating a maintenance policy usually takes
quite an effort. Given the status of an aircraft engine, the oracle
O can provide several potential maintenance policies; that is, each
engine level corresponds to more than one maintenance policy. The
total number of maintenance policies ξ·ξΉ directly affects not only the
difficulty but also the quality of problem-solving. Clearly, using a larger
number of maintenance policies leads to better solutions while inducing
a more complex problem.
In practice, it is often acceptable to consider a coarse approximation
to the original problem, using fewer policies, as long as the resulting
4.3. Dynamic graph and policy sifting
Recall Fig. 1 shows an example of enumerating all possible engine
levels and transitions. However, generating the graph π’ in a complete
format involves an enormous number of engine levels and maintenance
policies, which would be an impossible task. Moreover, the resulting
dynamic programming problem also suffers from the ‘‘curse of dimensionality’’. Therefore, we propose two techniques, namely dynamic
964
European Journal of Operational Research 321 (2025) 958–973
M. Zhang et al.
Fig. 3. An Example of the Subgraph π’π‘ .
Algorithm 2: Forward Pass
solution is still near-optimal. To this end, we define a function πΉ βΆ
(β , ξ) → β , where ξ is a set of instructions designed for policy sifting.
For each engine level π ∈ β and an instruction πΌ ∈ ξ, πΉ returns a single
after-maintenance engine level π′ , i.e., πΉ (π, πΌ) = π′ , such that there exists
a maintenance policy (π, π′ ) matching instruction πΌ. For example, to find
the maintenance policy with the largest turnaround time up to π for
level π, πΉ might be defined as:
Input: Scenarios {π1π π , ..., πππ π−1 }π=1,…,πΎ
1 foreach π = 1, … , πΎ do
2
foreach π‘ = 1, … , π − 1 do
3
Recover π€ππ,ππ′ ,π‘ by π€ππ,ππ′ ,π‘ = ⌊πππ,ππ′ ,π‘ πππ‘ ⌋
4
5
π′ = ar g max ξ (π′′ , π) such that ξ (π′′ , π) ≤ π .
Generate subgraph π’π‘
π π by solving πΜ π
Get π₯ππ‘ π , ππ‘+1
π‘
end
end
ππ
ππ }
8 return {π₯π‘ , π
π‘+1 π=1,…,πΎ ,π‘=1,…,π −1
6
π′′
7
Our motivation is to mimic the process of decision-making. Very
often, when an engine is not healthy, the manager may give instructions on specific operational goals instead of using the entire possible
maintenance policy set. The ultimate goal is to use an instruction set
ξ for policy sifting such that a simpler policy set
Algorithm 3: Backward Pass
Input: Scenarios {π1π π , ..., πππ π−1 }π=1,…,πΎ
1 foreach π‘ = π − 1, … , 2 do
2
foreach π = 1, … , πΎ do
3
foreach π = 1, … , ππ‘ do
4
Get π£ππ‘ ππ and ππ‘π ππ by solving π
Μ ππ‘
5
Proceed lifting (18) //Optional
6
end
7
Add new cut ππ‘π π to ξ π+1
π‘
8
end
9 end
π+1
10 return approximation {ξ
}π‘=2,...,π −1
π‘
Μ
ξΉ(π)
βΆ= {π′ |π′ ∈ ξΉ(π), ∃πΌ ∈ ξ, s.t.πΉ (π, πΌ) = π′ }
significantly reduces the total number of oracle calls – the total number
of maintenance policies – ξ·ξΉ . We may also use a different ξ for
each level and period. Later in our numerical experiments, we demonstrate that this simple policy-sifting technique can provide satisfactory
solutions.
4.4. Approximate dynamic programming
Finally, we present our ADP based on SDDP in Algorithm 1 with
a refined forward pass Algorithm 2 and backward pass Algorithm 3.
We denote πΜπ‘π , π
Μ ππ‘ to be the corresponding forward problem and the
backward problem with dynamic graph and policy sifting techniques.
Note that we mark cut lifting as an optional step.
5. Numerical experiments
In this section, we conduct numerical experiments with two main
objectives: (1) to investigate the benefits of the proposed two techniques in enhancing SDDP; and (2) to evaluate the performances of
our ADP approach (Algorithm 1) for the engine maintenance problem
when compared with other common approaches such as mixed integer
programming and heuristics.
Algorithm 1: Approximate Dynamic Programming (ADP)
Input: π ← −∞, π ← +∞, and {ξ 0π‘ (⋅)}π‘=2,…,π −1
1 foreach π = 1, ..., πmax do
2
Generate πΎ scenarios {π1π π , ..., πππ π−1 }π=1,…,πΎ
3
Run forward pass (algorithm 2) and collect trajectories
ππ }
{π₯ππ‘ π , ππ‘+1
π=1,…,πΎ ,π‘=1,...,π −1
4
5
6
In the following, we first introduce the setup of the experiments
in Section 5.1, and then demonstrate the effectiveness of the dynamic
graph and policy sifting techniques in Section 5.2.1. Finally, we compare our ADP approach with two common approaches to solving the
aircraft fleet engine maintenance problem: a rolling-horizon approach
and a passive approach. We illustrate that the performances of our ADP
approach are superior in terms of speed, optimality, and robustness
in Section 5.3. We use synthetic data to construct experiments in this
section, and in Section 6, we illustrate the deployment of our approach
within a real-world management system, with a focus on its practical
applicability.
Compute the statistical upper bound π by (14)
Run backward pass (algorithm 3) and get new
}π‘=2,...,π −1
approximation {ξ π+1
π‘
Compute the lower bound π by (17)
if (π − π )βπ ≤ π then
Terminate
9
end
10 end
7
8
965
European Journal of Operational Research 321 (2025) 958–973
M. Zhang et al.
are performed on a Mac desktop with a 3.2 GHz 6-Core Intel Core i7
processor.
5.1. Setup
We address the engine management problem for an aircraft fleet
spanning up to 120 periods. Each period represents a two-month timeframe, thus it produces a plan covering about 20 years. The fleet
comprises 300 engines, and at each period, at least 270 engines are
needed for on-wing operations. In cases where self-owned engines fail
to meet the service level, we have the option to rent engines for a short
duration of two periods. The rental cost is set to 30 units. The discount
factor is set to 0.99 per period.
For engine levels, we use a two-dimensional array (π1 , π2 ). The first
element π1 ∈ [0, π1max ] represents the status of a module with the LLPs.
An LLP operates under a stringent life constraint limit, and once it
is put into service, its life expectancy begins to diminish. When the
LLP reaches the end of its designated lifespan, the engine becomes
unhealthy immediately. At this point, an overhaul is required to replace
the LLP. After the replacement, the LLP is completely renewed and
ready for use. The second element π2 ∈ [0, π2max ] represents the status of
a module without any LLP. Its status mainly depends on the statistics
from CSO and bore scope inspection (BSI). In our problem, we set π1 =
98 and π2 = 70.1
Given an engine level π = (π1 , π2 ), the corresponding maintenance
policies are generated as follows: (a) If π1 = π1max , then it means that
the LLPs in module 1 are brand new and cannot be replaced; (b) if
π1 is less than π1max , then the LLP can be replaced, and π1 is restored
to its maximum value, π1max ; (c) if π2 is less than π2max , then module
2 can be restored to any better status as required. We use overhaul to
refer to maintenance that requires the replacement of LLPs; otherwise,
it is called minor maintenance. The overhaul takes 3 periods and costs
100 units on average, while the minor maintenance takes 2 periods and
costs 10 units on average. We generate all 68150 maintenance policies
using the oracle O, i.e., |β° | = 68150. It should be emphasized that it is
usually not realistic to generate all possible maintenance policies.
For simplicity, the stochastic deterioration from any level is unique.
This implies that there is only one out edge standing for stochastic
transitions for any node π ∈ β ββ ∅ . The edge (π, π′ ) where π = (π1 , π2 )
and π′ = (π1′ , π2′ ) is randomly picked such that at least one of the
following conditions is met: either π1′ < π1 or π2′ < π2 . We further
assume that the stochastic deteriorations in our problem satisfy stagewise independence and the number of failed engines ππ,π‘ in level π
at time π‘ follows a binomial distribution π΅(ππ,π‘ , ππ ), where ππ,π‘ is the
number of self-owned engines in level π at time π‘ and ππ is the probability that an engine in level π encountering a stochastic deterioration.
Suppose ππ remains invariant with respect to time π‘. This can be readily
extended to time-varying probabilities. Specifically, we set the base
damage probability π0 as 0.01. Then the damage probability of level
π is calculated as follows: ππ = 0.99(π1 +π2 ) π0 . In order to use exogenous
sampling, we introduce auxiliary random variables π» π,π‘ from the beta
distribution with parameters (π, ππ ). We let π = 2 for all levels, and ππ
of level π is obtained from E(π» π,π‘ ) = ππ , so that the expected number
of failed engines is equal to that of the endogenous samples. According
to Zou et al. (2019), it is recommended that the number of sample paths
in the forward pass is no larger than 3. In our case, we set the forward
sample size to 1.
In all of the experiments, we terminate the algorithm once the gap
between the upper bound and lower bound obtained is smaller than
10%; and the computation time limit is set to be 7,200 s. The algorithms
are implemented in Python 3.9, and COPT 7.0 (Ge et al., 2022) is used
as the LP and MILP solvers for the subproblems therein. All experiments
5.2. Ablation study
5.2.1. Effectiveness of dynamic graph and policy sifting techniques
As discussed in Section 4, the practical performance of the dynamic
model is limited by the enormous size of state and action space. In
this section, we demonstrate that using dynamic graph and policy
sifting techniques significantly relieve the computational difficulties. As
illustrated in Example 1, the dynamic graph is achieved by generating
subgraphs π’π‘ in an online fashion in the forward pass. For policy sifting,
we randomly select a specific number of policies for each level from the
full-scale policy set, and it is worth noting that even a straightforward
strategy like this can yield satisfactory solutions.
We study the benefits of the two techniques in terms of optimality
and tractability. Specifically, we compare the best upper bound provided in the forward pass (notated as ‘‘Ub’’), the gap to the lower bound
(notated as ‘‘Gap’’) and the corresponding running times (‘‘Time (s)’’)
in different settings within a running time of 7,200 s. We present the
results of three candidate sets in Table 2. The statistics in ‘‘w/o Dynamic
Graph’’ represent the case without using the dynamic graph. For the
effect of policy sifting, we conduct tests on retaining different numbers
of maintenance policies for each engine level. We observe that as the
number of maintenance policies increases, the performance initially
improves and then deteriorates. This phenomenon occurs because when
there are few maintenance policies, increasing their number expands
the set of options, allowing for the discovery of better solutions. However, when there are already a significant number of maintenance
policies, further increases can impact problem tractability, potentially
leading to a degradation in the optimality of solutions. We report the
best results obtained when employing 18 maintenance policies for each
level with the total number of maintenance policies ξ·ξΉ = 7029 (about
10% of the entire policy set) in Table 2. The complete results can be
found in supplementary materials.
It can be seen that without dynamic graph generation, the algorithm
converges only when π = 40. For π ≥ 60, the algorithm without
dynamic graph generation obtains much higher upper bounds compared to those with dynamic graph generation in 7200 s. When it is
further enhanced with policy sifting techniques, the largest problem for
π = 120 can be efficiently solved in about 5300 s. These results clearly
illustrate that the proposed ADP approach in Algorithm 1 gains a clear
advantage over standard SDDP by using the dynamic graph and policy
sifting techniques, and we will use this approach with ξ·ξΉ = 7029 in
the subsequent analysis.
5.2.2. Impact of the lifting procedure
Recall that in Section 4, we showed that the lifting procedure
essentially results in a strengthened Benders cut. In this section, we
conduct numerical experiments to assess the impact of strengthening
Benders cuts on improving integer solutions. Based on the dynamic
graph and policy sifting, we compare the results before and after the
introduction of the lifting technique in Table 3.
In Table 3, we can observe that the lifting procedure is vital to provide satisfactory integer solutions. For large problems, the gap between
the lower bound (convex approximation) and the upper bound (primal
feasible solutions) can be quite large, as the current lower bound may
not be as accurate. However, when we apply the lifting procedure,
the gap can be significantly reduced. This result demonstrates the
effectiveness of the lifting procedure.
5.3. Comparison with different approaches
1
In reality, the maximum CSO for LLP is about 21,000, and the CSO
for modules without any LLPs to undergo overhauls can be 15,000. In our
problem, each period (2 months) corresponds to approximately 215 cycles,
thus we set π1 = 98 ≈ 21000β215 and π2 = 70 ≈ 15000β215.
Since our approach is in essence an approximation to the original problem, it remains to see whether this approach finds sufficiently satisfactory feasible solutions. In this section, we compare our
966
European Journal of Operational Research 321 (2025) 958–973
M. Zhang et al.
Table 2
Effectiveness of dynamic graph and policy sifting techniques.
π
40
60
80
100
120
w/o dynamic graph
Dynamic graph
Dynamic graph + policy sifting
Ub
Gap
Time (s)
Ub
Gap
Time (s)
Ub
Gap
Time (s)
4086.40
7285.46
10 508.98
16 086.02
18 863.43
7.94%
27.42%
57.49%
70.91%
77.37%
4743
7200
7200
7200
7200
4010.21
6958.77
9216.99
12 271.17
13 447.69
6.33%
21.59%
24.47%
50.81%
59.75%
3794
7200
7200
7200
7200
4140.85
6146.59
8040.30
9792.72
11 039.95
6.74%
2.96%
5.41%
8.32%
9.68%
3665
3672
3731
3747
5257
Rolling-horizon (s)
Passive (s)
6058
8094
8371
8923
9861
<1
1
1
1
2
Table 3
Impact of strengthened benders cuts.
π
40
60
80
100
120
Table 4
Decision speed of different approaches.
Before lifting
After lifting
π
Ub
Gap
Ub
Gap
4177.32
6482.57
8414.21
10 698.45
11 903.82
6.74%
7.38%
8.89%
17.95%
19.10%
4140.85
6146.59
8040.3
9792.72
11 039.95
6.26%
2.96%
5.41%
8.32%
9.68%
40
60
80
100
120
ADP
online (s)
offline (s)
50
69
84
99
126
3665
3672
3731
3747
5257
To be specific, the rolling-horizon approach has relatively better
performance in short-term decision-making as compared to its longterm counterpart. On one hand, the rolling-horizon approach is limited
in considering overhauls due to the length of subproblems, and this
limitation is relatively less apparent in the short term. On the other
hand, as the rolling-horizon approach does not account for the uncertainty during the decision-making process, short-term leasing becomes
necessary to make the decision practically viable. Consequently, the
rental cost rises with increasing decision horizon. The passive approach
has demonstrated the poorest performance. This can be attributed to
its stipulation that maintenance is only carried out when the engine is
deemed unhealthy for flying. Engines within the same fleet begin in
comparable statuses and may reach unhealthy conditions around the
same time, leading to a surge in shop visits and a temporary shortage
of engines. This shortage can only be addressed through costly leasing
arrangements.
ADP approach, with a focus on decision speed, solution quality, and
robustness against demand fluctuations, with two other approaches
widely used in practice: a rolling horizon approach and a passive
approach.
The rolling-horizon approach involves making decisions using deterministic MILP only for the near future and re-solving based on updated
states periodically. Necessary modifications are made if the decision
becomes infeasible due to uncertainty. Specifically, the subproblem
solved each time has a 20-period planning horizon; after solving a
subproblem covering periods between π‘ and π‘ + 20, the next problem
starts at π‘ + 6.
The passive approach involves restoring an engine to a healthy
condition by a predetermined maintenance policy after it has failed
or malfunctioned. The maintenance policy is predetermined as follows:
for a given engine level π at a time with more than 10 periods to go,
we divide the policy set into ‘‘overhaul’’ and ‘‘minor maintenance’’
as described in the previous section, and randomly pick a policy
with probabilities of 20% and 80% for the two brackets, respectively.
In this way, it is likely to obtain a maintenance policy with both
moderate cost and turnaround time to ensure a controllable schedule,
which is often the objective of management in reality. For a time with
less than 10 periods to go, we choose the ‘‘lightest’’ policy to avoid
overmaintenance.
The ADP approach consistently attains the lowest cost among the
three approaches, thanks to its well-structured cost distribution, with
maintenance expenses constituting the predominant share. In the long
term, maintenance proves to be more cost-effective compared to leasing. Our approach also guarantees a relatively even distribution of
maintenance activities over time, thereby averting centralized off-wing
actions by considering potential future unforeseen damages.
Decision speed. Firstly, we compare the decision speed of the three
approaches in Table 4. Both the rolling-horizon and passive approaches
do not rely on offline calculations to train a model or tune parameters
so that they operate online at each time. By contrast, the ADP approach
could be pre-optimized, e.g., using historical data. In the decisionmaking phase, the algorithm makes use of the learned approximate
value functions that significantly boost the computation speed. To this
end, we report both offline and online time for fair comparisons.
As we observe from Table 4, the rolling-horizon approach incurs
the highest online computational cost, primarily due to the necessity of
solving integer programs for decision-making. Conversely, the passive
approach excels in terms of decision speed since it only implements
a simple set of expert rules. It is clear that the ADP approach outperforms the rolling-horizon approach even considering the offline
overhead.
Robustness to demand fluctuation. Finally, we conduct experiments to
assess the robustness of the three approaches to demand fluctuations
when π = 120. We make the assumption that demand follows a
periodic fluctuation pattern, occurring on a yearly basis. While keeping
the average demand level constant, we impose different variability of
demand by introducing the coefficient of variation (CV) calculated as
the standard deviation divided by the mean.
Fig. 5(a) presents the average cost over different CVs of demand
for three approaches. It can be observed that the ADP approach consistently maintains the lowest total cost under all levels of demand
fluctuations, with maintenance costs consistently dominating. In contrast, the proportion of leasing costs in the other two approaches
gradually takes on a dominant position as demand fluctuations intensify. This is because the other two management methods struggle
to effectively schedule maintenance in the face of significant demand
volatility, leading to the necessity of resorting to leasing to ensure the
fleet’s operational continuity. Fig. 5(b) illustrates how the cost of each
approach changes as the CV increases, relative to the cost of the ADP
approach when the CV is zero. Notably, our ADP approach exhibits the
slowest increase in total cost as the CV rises. This can be attributed
to the fact that our approach is the only one that takes future costs
Solution quality. We next compare the cost incurred by each of the
three approaches. Fig. 4 presents a comparison of maintenance and
rental costs. The π¦-axis represents the total cost, combining both
maintenance and rental expenses. It can be observed that our ADP
approach outperforms all other approaches regardless of the decision
horizon.
967
European Journal of Operational Research 321 (2025) 958–973
M. Zhang et al.
Fig. 4. Cost Comparison Between Different Approaches.
Fig. 5. Robustness Against Demand Fluctuation of Different Approaches.
into account when making present decisions, thereby avoiding shortsightedness. Additionally, it allows for preemptive overhauls during the
off-season to effectively handle high demand during peak seasons.
engine) maintenance. Specifically, it aims to leverage the latest developments in operations research and machine learning to address major
operational problems. As part of innovations to improve the quality
of decision-making, starting in 2019, CSAIR officially introduced the
idea of ‘‘optimization for engine maintenance’’ and began to build the
EMMS upon numerous management information systems (MIS) across
the company. With a vision to provide optimized strategies at different
decision-making levels, EMMS of CSAIR is the first optimization equipped
management system for aircraft engine maintenance in the organization.
In the following, we first provide challenges of aircraft fleet engine
maintenance problems in CSAIR in Section 6.1, apart from the basic
characteristics and difficulties mentioned in Section 1. Next, we outline
the overall framework of EMMS in Section 6.2. We highlight our
method in this paper as a core module for long-term planning that
serves as both a strategic blueprint and a practical guideline for shortterm scheduling. Then in Section 6.3, we present the performance
of EMMS and how it benefits CSAIR’s engine fleet management. The
impact and beyond are given in Section 6.4.
6. Case study: Aircraft Engine Management in China Southern
Airlines
In this section, we illustrate the practical application of our proposed methods within the context of China Southern Airlines as a
pivotal component of its Engine Maintenance Management System
(EMMS). This case study serves to showcase how our approach seamlessly integrates into the EMMS framework, effectively addressing
the unique challenges encountered in aircraft engine maintenance.
Through an assessment of the EMMS implementation and its resultant
outcomes at China Southern Airlines, we gain valuable insights into the
real-world utility and impact of our approach.
China Southern Airlines Co., Ltd. (hereafter CSAIR) is a major airline
in China. As of 2020, the annual passenger traffic of CSAIR ranks first
in Asia and second in the world, and its fleet size ranks first in Asia and
third in the world in 2017.2 Over the past decade, CSAIR has seen rapid
growth in its customer base, and its operating fleet size has surged over
800, which presents a tremendous challenge for the company to meet
growing demand while managing costs. In 2015, CSAIR started to focus
on the next-generation decision-making system for aircraft (including
2
6.1. Challenges
Besides the complexity of managing engine maintenance for an
aircraft fleet discussed in Section 1, engineers and fleet managers face
unique challenges in their respective roles.
For engineers, they take charge of the submission of maintenance
requests based on professional expertise and engine statuses. Engineers
need to consider multiple factors such as LLP, BSI, and exhaust gas
temperature margin (EGTM). While indicators like the remaining cycle
For details, see https://www.csairgroup.cn/cn/index/index.html.
968
European Journal of Operational Research 321 (2025) 958–973
M. Zhang et al.
of an LLP are deterministic, others, such as crack development detected
through BSI, pose uncertainties even to senior engineers. In practice,
engineers may have to extrapolate these indicators based on the current
engine status to take preventive actions. Moreover, a workscope can
only be finalized at the workshop, which leads to a gap between
the final workscope given by the workshop and the initial proposal
put forth by the engineer. This gap may also result in variations in
turnaround time and maintenance fees.
Different from an engineer, a fleet manager takes engine maintenance management as a systematic project, combining long-term
strategies and ad hoc operational requirements. As overhauls may only
take place once every few years, they can only be properly addressed
in a long-term schedule. The main purpose of long-term planning is to
minimize the total cost of the fleet over its entire life cycle. In contrast,
short-term scheduling focuses on a more operational level, considering
operations like swapping engines between two aircraft that can be
carried out if necessary, with the long-term plan as the foundation to
follow.
To summarize, we would like to highlight a few challenges that
EMMS was designed to solve.
model to get an implementable schedule for the near future. Below, we
will introduce the specific content of the four modules respectively.
Health status prediction module (HSP). The HSP module plays a key
role in accurately forecasting the status of an engine. It consists of two
prediction models: BSI prediction and blade scrap ratio prediction. For
BSI prediction, a single damage model tracks the deterioration trend
of key BSI damage and trains a model by gradient-boosted decision
tree (GBDT). Based on the single damage model, a composite damage
model considers overall BSI damage and predicts the on-wing life of
vulnerable parts while monitoring engine status. It uses a combination
of random forest and boosting methods, incorporating features like BSI
history, engine operating conditions, and recent maintenance records.
The blade scrap rate model predicts the scrap rate interval of blades at
all levels. The model is based on GBDT and comprehensively considers
the basic usage information of the blade (such as cycle hours, batch
number, base, and thrust) and the workscope.
Maintenance policy generation module (MPG). The MPG module evolves
from previous workscope management experiences. It quantifies the
past deviations from the draft workscope to the finalized implemented
workscope to reduce revision time. It also includes an information
system to strictly follow the workscope planning guide. For instance,
the MPG module first creates policies for V2500 engines with major
levels such as Hot Section Refurbishment (HSR), Miscellaneous Repair
(MR), Project Visit (PV), and Core Performance Restoration (CPR).
Based on current engine performance data, maintenance policies are
developed using the embedded workscope planning guide, which is
then customized to meet specific operational requirements. Finally,
estimation models are built for the maintenance fee and TAT alongside
the policy. The maintenance policy generation process is summarized
as a flowchart in Fig. 7.
• Stochasticity in engine status: the development of engine status is
stochastic and there is no reliable prediction. More accurate predictions obtained by machine learning can provide better support
for the data required by the decision model.
• Initial and final workscope discrepancies: discrepancies between
the final workscope given by the workshop and the initial proposal put forth by the engineer affect the quality of decisionmaking, which calls for a refined maintenance policy generation
process.
• Complexity in constraints and restrictions: numerous factors such
as large fleet size, long life cycle of engines and uncertainty
of the external environment lead to intricate constraints and
restrictions on managing aircraft fleet engine maintenance. It is
difficult to optimize from a global perspective through traditional
management methods.
• Long-term v.s. short-term balance: long-term and short-term considerations for aircraft fleet engine maintenance management are
different. Long-term planning focuses on total cost minimization
over the life cycle, while short-term scheduling is more concerned
with executability to keep the fleet operational.
The MPG module is typically used to generate a candidate set of
policies aligned with specific maintenance targets, such as ‘‘estimated
remaining on-wing time’’ or ‘‘estimated maintenance fee’’. These policies can be utilized in the subsequent planning process to meet the
desired targets.
Life cycle optimization module (LCO). The life cycle of an engine refers
to the time from its entering to exiting the fleet. The long-term planning
deals with the chief part of expenditure in the engine maintenance.
However, the management of all engines in a fleet throughout their
life cycle, involving hundreds of engines over more than twenty years,
becomes an impossible manual task for CSAIR as the business continues
to blossom. To this ends, the LCO module is introduced to answer the
call.
To address these challenges, the EMMS utilizes operations research
and machine learning methods presented as follows.
6.2. The overall framework
The LCO module carries out overall planning for the entire life
cycle of engines in the fleet from a strategic perspective, laying a
foundation for considering implementable engine schedules in the SMS
module. In the LCO module, we mainly focus on minimizing the total
expected discounted cost over the life cycle. The stochastic dynamic
programming model is an appropriate tool for solving the multi-stage
problem with uncertainty. In Section 3, we have already established a
modeling framework which is followed by Algorithm 1 based on SDDP
in Section 4.
EMMS is a comprehensive framework designed to optimize aircraft
fleet engine maintenance decisions. EMMS mainly consists of four
interconnected modules: the health status prediction (HSP) module, the
maintenance policy generation (MPG) module, the life cycle optimization (LCO) module, and the short-term maintenance scheduling (SMS)
module. The overall framework is shown in Fig. 6.
The HSP module and MPG module form the descriptive and predictive step, which provides inputs needed to optimize engine fleet maintenance decisions. The HSP module uses machine learning techniques
to predict the state of the engine while the MPG module generates and
evaluates maintenance policies according to guidelines and targets.
The prescriptive step is composed of LCO module and SMS module.
It obtains engine maintenance plans based on the results of the descriptive and predictive steps. The LCO module mainly uses the dynamic
model and its solution methodology proposed in this paper to give the
engine maintenance plan for up to 20 years. Its purpose is to optimize
the total cost of the fleet throughout the entire life cycle of the engine
and to avoid short-sighted strategies. Given the recommended longterm plan, the SMS module establishes a mixed integer programming
As an integrated module to cooperate with other parts in the EMMS,
the LCO module includes extra options and considerations to meet the
practical needs. First, besides cost minimization, the stability of the
cover rate over time is a prioritized measurement (the cover rate is the
ratio of handy engines over demand). If the cover rate oscillates heavily
over time, resulting from either a good deal of simultaneous shop visits
or the introduction of plentiful leasing engines, then it will introduce
great operational challenges to the fleet. Second, a feasible LCO plan
should also consider the exit of extant engines and the introduction
of new ones. Besides the exits of self-owned aging engines, the rented
engines must be repaired to a certain level to close a lease contract.
969
European Journal of Operational Research 321 (2025) 958–973
M. Zhang et al.
Fig. 6. The Overall Framework of EMMS.
Fig. 7. The Maintenance Policy Generation Process for V2500 Engines.
Thus, the LCO module sets the exit periods and lower bounds on the
engine status to fit the business requirements.
Once we have a preliminary plan based on the LCO module, we
use a simulation system to help with monitoring various scenarios,
where the LCO plan can be (re-)computed and evaluated with different
sets of parameters like capital interest rate and damage probability to deal with the inaccuracy of these estimates. Furthermore, the
choice of parameters can also be used to reflect different managerial
preferences.
contracts, contingencies, and budgets, and gives a feasible short-term
schedule. More details are given in supplementary materials.
Short-term maintenance scheduling module (SMS). The LCO module provides long-term maintenance plans. For daily operations, more detailed
short-term scheduling is also required, due to specific engine activities,
such as swapping between two aircraft or adjusting thrust to maximize
the utilization of fleet resources. However, these operations cannot be
anticipated in the long-term planning. To address this, the SMS module
establishes a mixed integer programming model to create fine-grained
schedules with the long-term plan serving as a guideline in the form of
soft constraints. It considers more practical restrictions from operations,
6.3.1. Reliable predictions by HSP and MPG
The EMMS revolutionizes fleet engine management by offering
enhanced engine health monitoring and maintenance policies. The HSP
module significantly improves the prediction accuracy of BSI damage
and remaining on-wing time. Using datasets of V2500-A5 engines
from 2016 to 2020, the prediction of BSI damage achieves a mean
absolute percentage error (MAPE) of less than 15% and the prediction
of remaining on-wing time demonstrates an average accuracy of 72.5%.
Specifically, when the remaining on-wing time is less than 1000 h, the
6.3. Performance of EMMS
The EMMS has been systematically deployed in CSAIR. In the
following, we present how engine fleet management in CSAIR benefits
from EMMS.
970
European Journal of Operational Research 321 (2025) 958–973
M. Zhang et al.
Fig. 8. Comparisons of the Cumulative Maintenance and Rental Costs.
average accuracy of the prediction is 80.9%. The MPG module involves
a TAT estimation model to obtain more realistic maintenance policies.
The TAT evaluation model shows an error distribution clustered within
10 days, with a MAPE of 20.57%. The above accuracies all improve
from the current practice.
rate. To summarize, these findings demonstrate the effectiveness of the
LCO module in improving the CSAIR decision rule’s performance and
providing a more stable and reliable maintenance scheduling.
6.3.3. Short-term schedule aided by long-term plan
To evaluate the performance of the SMS module in the EMMS in
comparison to the previous expert system used in CSAIR (which we
refer to as the last generation scheme or LGS), we conduct a comprehensive backtest from May 26, 2021 to October 28, 2021. To ensure
a fair comparison, we use the same input and simulate both schedules
with data from the backtest period. The SMS module involves a mixed
integer programming model with about 80,000 decision variables and
72,000 constraints.
We focus on the spare levels under different methods. The spare
level refers to the number of available engines remaining after fulfilling
the flight demand. Maintaining an appropriate spare level is crucial
for effective short-term scheduling, as it ensures the fleet’s operations
in the face of unforeseen emergencies. While temporary leasing can
also be an alternative, it can be costly and unresponsive. However,
excessive spare engine levels can reduce fleet engine utilization and
increase unnecessary inventory costs. Therefore, a good short-term
schedule should pursue a reasonable and consistent spare level. As the
LGS relies on expert rules, engineers often complement it with manual
adaptations to achieve the desired balance in spare levels in practice.
To this end, we present both the original suggestion by LGS and the
one with adaptation.
The daily spare level comparisons between the SMS and the LGS
with and without adaptation are shown in Fig. 10. Note that when
there is a negative spare level, it often indicates a need for temporary
leases. We can observe that the LGS starts to fluctuate wildly after
two months, first reaching an excessively high spare level and then
rapidly falling to a negative value with a large gap. Due to the lack of
long-term consideration, the LGS is suboptimal and requires frequent
adjustments. Without mathematical programming models, it is also
difficult to adjust to changing operational constraints while providing
optimality guarantees.
In contrast, the SMS module guarantees a steady performance of
spare levels throughout the planning period, with rare occurrences of
negative or excessive spare levels. The SMS module helps smooth fleet
operations while optimizing costs and can be directly utilized for fleet
management.
6.3.2. Effective long-term plans by LCO
Prior to the introduction of the EMMS, fleet managers and engineers
relied on a rule-based expert system, which we refer to as CSAIR
decision rule and consider as a benchmark. In order to demonstrate the
superior performance of the LCO module within EMMS compared to
the CSAIR decision rule, we conduct 1,000 simulations starting at the
same initial engine levels to assess cost and cover rate. In the following
figures, each decision method is represented by a distinct colored series,
and the shaded area corresponds to the 95% confidence interval.
Fig. 8 presents a reduction of costs of the LCO over CSAIR decision
rule. Note that all cost values mentioned in this section have been
scaled to ensure confidentiality. Fig. 8(a) shows that the cumulative
maintenance costs of both LCO and the CSAIR decision rule continue
to rise over time, but the costs associated with the CSAIR decision
rule consistently remain higher than those of the LCO. As shown in
Fig. 8(b), for cumulative rental costs, there is a significant disparity
between LCO and the CSAIR decision rule. The CSAIR decision rule
initiates a substantial amount of short leases at the beginning and
continues to incur new leases throughout the decision period, resulting
in a continuous increase in cumulative rental costs. In contrast, the LCO
experiences a few leasing engines only at the beginning. This illustrates
how LCO, through sound planning, minimizes short-term leases and
consequently reduces costs.
The cover rate for the LCO module and the CSAIR decision rule are
given in Fig. 9. Recall that the cover rate πΉ is the ratio of handy engines
over demand. Clearly, if πΉ is under 100%, then the fleet cannot support
itself, and extra engines have to be rented. Meanwhile, a cover rate
far greater than 100% is undesirable since excessive engines on hand
should be avoided. It can be observed that the LCO outperforms the
CSAIR decision rule in terms of stability and reliability of the cover
rate. The results demonstrate that the LCO achieves a cover rate of over
100% in 95.80% of the periods, with the highest cover rate reaching
107.28%. In contrast, the CSAIR decision rule provides a more volatile
cover rate across periods. It achieves a cover rate exceeding 100%
in only 89.08% of the periods, with the highest cover rate reaching
116.61%.
Note that the shortage of engines due to shop visits necessitates
the use of rental engines, which affects not only the availability of
engines in the current period but also in subsequent periods. This
cumulative effect contributes to the fluctuations observed in the cover
6.4. The impact and beyond
The benefit of the EMMS is apparent. First, the EMMS leverages
machine learning tools to estimate the engine status and damage development accurately. The HSP module gives the engineers better
971
European Journal of Operational Research 321 (2025) 958–973
M. Zhang et al.
Fig. 9. Cover Rate Comparison.
Fig. 10. Spare Level Comparison.
statistical support in their daily surveillance duty. The MPG module then helps to provide reliable recommendations for maintenance
policies. Secondly, built upon these modules, the EMMS provides reasonable long-term and short-term engine maintenance schedules with
stochastic dynamic programming and mixed-integer programming, dramatically reducing temporary expensive leases while achieving a stable
cover rate and spare level. Thirdly, the EMMS translates a large proportion of experiences, from engineering and fleet management, into
descriptive analytics. Last but not least, in the actual implementation
of the system, the management team is allowed to configure different settings to simulate and compare multiple versions of the engine
maintenance plan.
In the one-year backtest, the EMMS can save approximately 30% of
the short-term rental days and result in an estimated cost reduction of
more than $2,000,000.
other approaches in numerical experiments. It also shows superior
performance in a real-world implementation.
CRediT authorship contribution statement
Miao Zhang: Formal analysis, Methodology, Writing – original
draft, Writing – review & editing. Jingyuan Yang: Formal analysis,
Writing – original draft, Writing – review & editing. Chuwen Zhang:
Conceptualization, Formal analysis, Methodology, Writing – original
draft, Writing – review & editing. Simai He: Methodology, Supervision. Huikang Liu: Formal analysis, Supervision. Jinshen Wang:
Conceptualization, Funding acquisition, Project administration, Supervision. Zizhuo Wang: Conceptualization, Funding acquisition, Project
administration, Supervision.
7. Conclusion
Acknowledgements
This paper studies a long-term aircraft fleet engine maintenance
problem. The complexity of this problem arises from the intricacy of
maintenance policies and stochastic engine deteriorations. To tackle
these challenges, we propose a modeling framework with a graph-based
approach of modeling engine statuses and a multi-stage stochastic integer program that integrates decisions on maintenance timing, policy
as well as short-term leasing. We design an approximate dynamic
programming algorithm that adapts the classical SDDP for endogenous uncertainty and integer solutions, which is further enhanced by
dynamic graph generation and policy-sifting techniques to achieve
dimension reduction. Our method establishes a clear advantage over
We thank the editor and the anonymous referees for helpful comments, and suggestions in the review process. The authors want to
thank Shuosen Li and Keye Wang for helpful discussions. Chuwen
Zhang’s research is partially supported by the National Natural Science Foundation of China (NSFC) [Grant NSFC-72150001, 72225009,
72394360, 72394365]. Simai He’s research is partially supported by
National Natural Science Foundation of China (NSFC) [Grant NSFC72192830, 72192832, 71825003]. Zizhuo Wang’s research is partially
supported by the National Natural Science Foundation of China (NSFC)
[Grant NSFC-72394361, 72425013], and the Guangdong Key Lab of
Mathematical Foundations for Artificial Intelligence.
972
European Journal of Operational Research 321 (2025) 958–973
M. Zhang et al.
Appendix A. Further technical results, experiments, and descriptions
Lei, Y., Li, N., Guo, L., Li, N., Yan, T., & Lin, J. (2018). Machinery health prognostics:
A systematic review from data acquisition to RUL prediction. Mechanical Systems
and Signal Processing, 104, 799–834.
Lemaréchal, C., Nemirovskii, A., & Nesterov, Y. (1995). New variants of bundle
methods. Mathematical Programming, 69(1), 111–147.
Luo, F., & Mehrotra, S. (2020). Distributionally robust optimization with decision
dependent ambiguity sets. Optimization Letters, 14(8), 2565–2594.
Lv, Z., Wang, J., Zhang, G., & Jiayang, H. (2015). Prognostics health management of
condition-based maintenance for aircraft engine systems. In 2015 IEEE conference
on prognostics and health management (pp. 1–6).
Mattila, V., & Virtanen, K. (2011). Scheduling fighter aircraft maintenance with
reinforcement learning. In Proceedings of the 2011 winter simulation conference (pp.
2535–2546).
McKone, K. E., & Weiss, E. N. (1998). TPM: Planned and autonomous maintenance: Bridging the gap between practice and research. Production and Operations
Management, 7(4), 335–351.
Nohadani, O., & Sharma, K. (2018). Optimization under decision-dependent uncertainty.
SIAM Journal on Optimization, 28(2), 1773–1795.
Painter, M. K., Erraguntla, M., Hogg, G. L., & Beachkofski, B. (2006). Using simulation,
data mining, and knowledge discovery techniques for optimized aircraft engine
fleet management. In Proceedings of the 2006 winter simulation conference (pp.
1253–1260). IEEE.
Pereira, M. V., & Pinto, L. M. (1991). Multi-stage stochastic optimization applied to
energy planning. Mathematical Programming, 52, 359–375.
Philpott, A. B., Wahid, F., & Bonnans, J. F. (2020). MIDAS: A mixed integer dynamic
approximation scheme. Mathematical Programming, 181, 19–50.
Powell, W. B. (2011). Approximate Dynamic Programming: Solving the Curses of
Dimensionality, In Wiley series in probability and statistics, (2nd ed.). Hoboken, NJ:
Wiley.
Powell, W. B., & Topaloglu, H. (2005). Fleet management. In Applications of stochastic
programming (pp. 185–215).
Ramirez-Hernandez, J., Oakley, S., Zhang, M., & Scalise, A. (2016). A simulationbased method for inventory ownership planning of aircraft spare engines and parts.
International Journal of Simulation and Process Modelling, 11(6), 477–491.
Razavi, B., Einafshar, A., & Sassani, F. (2015). Decision analysis model for optimal
aircraft engine maintenance policies using discrete event simulation. In Integrated
systems: innovations and applications (pp. 69–87).
Sanchez, D. T., BoyacΔ±, B., & Zografos, K. G. (2020). An optimisation framework
for airline fleet maintenance scheduling with tail assignment considerations.
Transportation Research, Part B (Methodological), 133, 142–164.
Shapiro, A. (2011). Analysis of stochastic dual dynamic programming method. European
Journal of Operational Research, 209(1), 63–72.
Simao, H., & Powell, W. (2009). Approximate dynamic programming for management
of high-value spare parts. Journal of Manufacturing Technology Management, 20(2),
147–160.
Tilmant, A., & Kelman, R. (2007). A stochastic approach to analyze trade-offs and
risks associated with large-scale water resources systems. Water Resources Research,
43(6), W06425.
Vance, P. H., Barnhart, C., Johnson, E. L., & Nemhauser, G. L. (1997). Airline crew
scheduling: A new formulation and decomposition algorithm. Operations Research,
45(2), 188–200.
Wolsey, L. A. (2021). Integer programming (2nd ed.). Hoboken, NJ: Wiley.
Wu, Y., Wang, S., Zhen, L., Laporte, G., Tan, Z., & Wang, K. (2023). How to operate ship
fleets under uncertainty. Production and Operations Management, 32(10), 3043–3061.
Yu, G., & Hillier, F. S. (Eds.), (1998). Operations research in the airline industry. Boston,
MA: Springer US.
Yu, X., & Shen, S. (2022). Multistage distributionally robust mixed-integer programming
with decision-dependent moment-based ambiguity sets. Mathematical Programming,
196, 1025–1064.
Zhou, H., Lopes Genez, T. A., Brintrup, A., & Parlikad, A. K. (2022). A hybrid-learning
decomposition algorithm for competing risk identification within fleets of complex
engineering systems. Reliability Engineering & System Safety, 217, Article 107992.
Zou, J., Ahmed, S., & Sun, X. A. (2018). Multistage stochastic unit commitment using
stochastic dual dynamic integer programming. IEEE Transactions on Power Systems,
34(3), 1814–1823.
Zou, J., Ahmed, S., & Sun, X. A. (2019). Stochastic dual dynamic integer programming.
Mathematical Programming, 175, 461–502.
Supplementary material related to this article can be found online
at https://doi.org/10.1016/j.ejor.2024.10.008.
References
Ackert, S. (2011). Engine maintenance concepts for financiers. Aircraft Monitor, 1–43.
Adamides, E., Stamboulis, Y., & Varelis, A. (2004). Model-based assessment of military
aircraft engine maintenance systems. Journal of the Operational Research Society,
55(9), 957–967.
Ahmed, S. (2000). Strategic planning under uncertainty: Stochastic integer programming
approaches (PhD thesis), University of Illinois at Urbana-Champaign.
Ahmed, S., Cabral, F. G., & Freitas Paulo da Costa, B. (2022). Stochastic Lipschitz
dynamic programming. Mathematical Programming, 191, 755–793.
Almgren, T., Andréasson, N., Patriksson, M., Strömberg, A.-B., Wojciechowski, A., &
Önnheim, M. (2012). The opportunistic replacement problem: Theoretical analyses
and numerical tests. Mathematical Methods of Operations Research, 76(3), 289–319.
Barnhart, C., & Talluri, K. T. (1997). Airline operations research. In Design and operation
of civil and environmental engineering systems (pp. 435–469). New York: Wiley.
Bazargan, M. (2010). Airline operations and scheduling (2nd ed.). Farnham: Ashgate.
Benders, J. F. (1962). Partitioning procedures for solving mixed-variables programming
problems. Numerische Mathematik, 4(1), 238–252.
Bollapragada, S., Gupta, A., & Lawsirirat, C. (2007). Managing a portfolio of long term
service agreements. European Journal of Operational Research, 182(3), 1399–1411.
Clarke, L., Johnson, E., Nemhauser, G., & Zhu, Z. (1997). The aircraft rotation problem.
Annals of Operations Research, 69, 33–46.
Cros, G. (2022). Airline maintenance cost executive commentary (FY2021 data).
Delage, E., & Ye, Y. (2010). Distributionally robust optimization under moment
uncertainty with application to data-driven problems. Operations Research, 58(3),
595–612.
DomitroviΔ, A., Bazijanac, E., & Δala, I. (2008). Optimal replacement policy of jet
engine modules from the aircarrier’s point of view. Promet-Traffic&Transportation,
20(1), 1–9.
Feo, T. A., & Bard, J. F. (1989). Flight scheduling and maintenance base planning.
Management Science, 35(12), 1415–1432.
Ge, D., Huangfu, Q., Wang, Z., Wu, J., & Ye, Y. (2022). Cardinal optimizer (COPT) user
guide.
Goel, V., & Grossmann, I. E. (2006). A class of stochastic programs with decision
dependent uncertainty. Mathematical Programming, 108, 355–394.
Guigues, V. (2017). Dual dynamic programing with cut selection: Convergence proof
and numerical experiments. European Journal of Operational Research, 258(1),
47–57.
Hamilton, J. D. (2020). Time series analysis. Princeton University Press.
Hopp, W. J., & Kuo, Y.-L. (1998). Heuristics for multicomponent joint replacement: Applications to aircraft engine maintenance. Naval Research Logistics, 45(5),
435–458.
Hu, Y., Miao, X., Zhang, J., Liu, J., & Pan, E. (2021). Reinforcement learning-driven
maintenance strategy: A novel solution for long-term aircraft maintenance decision
optimization. Computers & Industrial Engineering, 153, Article 107056.
Huang, Y., Tao, J., Sun, G., Zhang, H., & Hu, Y. (2022). A prognostic and health
management framework for aero-engines based on a dynamic probability model
and LSTM network. Aerospace, 9(6), 316.
Johnson, A. P. e., & Fernandes, V. (1978). Simulation of the number of spare engines
required for an aircraft fleet. Journal of the Operational Research Society, 33–38.
Jonsbråten, T. W., Wets, R. J.-B., & Woodruff, D. L. (1998). A class of stochastic
programs with decision dependent random elements. Annals of Operations Research,
82, 83–106.
Kennet, D. M. (1994). A structural model of aircraft engine maintenance. Journal of
Applied Econometrics, 9(4), 351–368.
Kozmík, V., & Morton, D. P. (2015). Evaluating policies in risk-averse multi-stage
stochastic programming. Mathematical Programming, 152, 275–300.
973