informs
Vol. 40, No. 5, September–October 2010, pp. 408–416
issn 0092-2102 eissn 1526-551X 10 4005 0408
®
doi 10.1287/inte.1100.0517
© 2010 INFORMS
Optimizing Helicopter Transport of
Oil Rig Crews at Petrobras
Fernanda Menezes, Oscar Porto, Marcelo L. Reis
Gapso Tecnologia da Decisão, Rio de Janeiro-RJ, 22290-160, Brazil
{fmenezes@gapso.com.br, oscar@gapso.com.br, marcelo@gapso.com.br}
Lorenza Moreno, Marcus Poggi de Aragão
Departamento de Informática, Pontificia Universidade Católica, Rio de Janeiro-RJ, 22451-900, Brazil
{lorenza@inf.puc-rio.br, poggi@inf.puc-rio.br}
Eduardo Uchoa
Departamento de Engenharia de Produção, Universidade Federal Fluminense,
Niteroi-RJ, 24210-240, Brazil, uchoa@producao.uff.br
Hernán Abeledo
Department of Engineering Management and Systems Engineering, George Washington University,
Washington, DC 20052, abeledo@gwu.edu
Nelci Carvalho do Nascimento
Serviços/Unidades de Serviços de Transporte e Armazenamento, Exploração e Produção,
Petrobras, Macaé, Rio de Janeiro-RJ, 27915-012, Brazil, nelcar.classic@petrobras.com.br
Petrobras produces nearly 90 percent of Brazil’s oil at about 80 offshore oil platforms. It transports approximately
1,900 employees daily between these platforms and four mainland bases, using more than 40 helicopters that
vary in capacity, operating costs, and performance characteristics. Each day, flight planners must select the
helicopter routes and schedules that satisfy passenger demands. We developed a system that requires less
than one hour to generate optimized flight plans that meet operational guidelines, improve travel safety, and
minimize operating costs. By using this system, Petrobras reduced its number of offshore landings by 18 percent,
total flight time by 8 percent, and flight costs by 14 percent, resulting in annual savings of more than $20 million.
Our optimization model is a large-scale mixed integer program that generalizes prior helicopter routing models.
We designed a column-generation algorithm that exploits the problem structure to overcome its computational
difficulties. As part of the solution method, we use a network flow model to optimally assign passengers to
selected routes.
Key words: helicopter scheduling; integer programming; column generation.
P
three decades, transforming the company into a world
leader in deep-water oil exploration and production.
Today, Brazil produces over 2 million barrels of oil
per day, roughly 90 percent of it extracted offshore
by Petrobras, and it ranks 13th among oil-producing
countries. In 2006, the country became self-sufficient
in oil and, in 2007, announced the discovery of a new
major ultra-deep-water site. Brazil now has the potential to become an important oil exporter thanks to the
initiatives and efforts of Petrobras.
Petrobras operates about 80 offshore oil-production
and exploration platforms in the Campos basin
etrobras, the largest corporation in Brazil, is one
of the world’s oil giants. It was created in 1953 as
a state monopoly with the mission of attaining energy
independence for Brazil. In 1998, Petrobras became
a mixed capital corporation under the management
of the national government. Although its monopoly
on oil production and exploration ceased, it remains
Brazil’s major oil producer.
An important milestone for Petrobras was the 1974
discovery of the Campos basin deposits off the coast of
the state of Rio de Janeiro. Petrobras made significant
investments in research and technology over the next
408
Menezes et al.: Optimizing Helicopter Transport of Oil Rig Crews at Petrobras
Interfaces 40(5), pp. 408–416, © 2010 INFORMS
Vitória
São Tomé
Macaé
Jacarepaguá
0
100 km
0
60 mi
Oil Rig
Figure 1: The map shows the location of Petrobras’ oil rigs and airport
bases.
(see Figure 1); it employs approximately 25,000 workers on these platforms. Each day, it transports approximately 1,900 workers by helicopter between the
platforms and four mainland bases, three of them
located in the state of Rio de Janeiro (Macaé, São
Tomé, and Jacarepaguá) and one in the state of
Espírito Santo (Vitória). Most workers complete a
two-week shift on a platform followed by three weeks
of rest. Based on its passenger volume, Petrobras
operates one of the largest nonmilitary helicopter
operations in the world.
Each airport base has a fleet of helicopters and its
own flight planners. Macaé is the largest base, with
about 65 daily flights and 33 helicopters; São Tomé
is next, with 30 daily flights and 7 helicopters; and
Jacarepaguá and Vitória are the smallest bases, with
about 15 daily flights and 5 helicopters each.
The flight planners program the helicopter flights
and passenger assignments one day in advance,
based on travel demands and helicopter availability.
A travel demand consists of all passenger requests
with the same destination and departure time. Passengers choose their departure time and destination from
a fixed timetable. This annually generated timetable
is designed so that bases can schedule independently
409
of each other without generating potential conflicts
between their flight plans.
Manually scheduling the flights is a complex task
because a limited number of helicopters are available and strict operational rules must be observed.
Eight types of helicopter, each with different operational characteristics and passenger capacities, are
in use. The helicopters are outsourced from several
providers with different contracts that determine their
flight costs.
Since 1985, Petrobras has repeatedly invested in
information technology (IT) to assist the manual planning of helicopter flights. The company also made
unsuccessful attempts to implement a decision support system. Galvão and Guimarães (1990) report that
their project failed in part because employees felt that
their jobs were threatened, although the proposed
system was not intended to automatically produce
a full schedule; it would require constant manual
input. Galvão and Guimarães also contend that the
client organization lacked experience in using quantitative methods; in addition, the project duration was
too short to overcome organizational distrust in OR
techniques.
In 2004, Petrobras contracted Gapso (http://www.
gapso.com.br), a Rio de Janeiro company that had
developed optimization systems for several major
Brazilian companies, to implement a helicopterscheduling system. Gapso also included in its project
team academic researchers with integer programming
expertise.
Gapso had two successive contracts with Petrobras.
The first, in 2005, was a 50-week contract that resulted
in an operational version of the scheduling system.
The second, a six-month contract in 2006, focused
on adding IT functionality to the system. The flightplanning optimization system, MPROG, was first put
into service at São Tomé in 2005, then at Macaé in
2006, and finally at Vitória and Jacarepaguá in 2008.
Gapso currently has a five-year contract to provide
support and to continue making improvements to the
system.
Gaining the scheduling staff’s confidence in the
MPROG system was crucial for the success of this
project. Detailed training courses and instruction
manuals were developed by Gapso with input from
the Petrobras training division. Analysts from Gapso
410
Menezes et al.: Optimizing Helicopter Transport of Oil Rig Crews at Petrobras
spent 10 months on-site, assisting the staff with
system use and documenting staff feedback. This led
to several improvements, including powerful graphical interfaces that allow users to analyze and modify
solutions interactively.
In the remainder of this paper, we describe the
business-decision problem we addressed, the related
literature, the optimization algorithm we developed,
and the impact and benefits to Petrobras.
Helicopter Scheduling at Petrobras
A complete schedule must be generated each day, at
each airport, detailing the flights of its helicopter fleet.
The description of a flight consists of its departure
time, its sequence of legs, and the list of passengers to
board or disembark at each stop. Most of the scheduling rules address safety aspects such as limiting the
number of helicopters that can be in the vicinity of
each platform. Some of the operational constraints are
unusual in the vehicle-routing literature. For example,
the number of flight legs per passenger is bounded;
furthermore, the passenger capacity of each helicopter
depends on the route length because of the weight
of the necessary fuel. Weather conditions also affect
helicopter capacities because additional reserve fuel
is required when visibility is low. A flight schedule
must satisfy these constraints:
1. Each flight starts and finishes at the same mainland base.
2. A helicopter flies at most five times per day.
3. A helicopter must be inspected before each
flight; therefore, it requires inspection time.
4. The number of platform landings for each flight
is bounded.
5. The number of flight legs for each individual
passenger is bounded.
6. For each departure time, the number of helicopters visiting the same platform is bounded.
7. Helicopters must stop for their pilots to eat
lunch.
8. Helicopter capacity cannot be exceeded.
9. The route length determines the number of passengers a helicopter can carry.
The scheduling of helicopter flights has several
objectives. The main goal is to serve all travel requests
to avoid compromising oil-production and exploration activities. Next, the schedule should strive to
Interfaces 40(5), pp. 408–416, © 2010 INFORMS
improve safety beyond the operational requirements
by reducing the total number of offshore landings.
Finally, minimizing the helicopter-operating costs is
important; in turn, this decreases the total flight time,
which is another safety goal. The objective function
in our optimization model uses weights to balance
these multiple goals. We note that the safety and cost
objectives are not actually in conflict because more
landings imply increased flight time and additional
operating costs.
We model the helicopter-scheduling problem as a
mixed integer program (MIP). The formulation can
be found in the appendix, as well as definitions of
the variables we discuss within this paper. The model
has billions of variables corresponding to all possible flights of each helicopter. The binary variable
xhf corresponds to flight f of helicopter h. As mentioned above, a flight f encompasses the departure
time, the route flown, and the passengers that board
and disembark at each stop. Safety issues and other
operational constraints are taken into account when
generating the xhf variables so that they represent
allowable flights. The remaining variables, sd and zhj ,
control passenger demands and pilot lunch breaks,
respectively.
The objective function (0) seeks to minimize the
number of landings and flight costs while also penalizing the unfulfilled travel demands. Constraints
(1) control the satisfaction of travel demands. Constraints (2) ensure that at most mL flights with departure time t will land on platform p. Constraints (3)
state that each helicopter h can have at most one flight
or one lunch break at each time instant i. Constraints
(4) ensure that the pilot of each helicopter has a lunch
break. The number of flights and number of flight
hours per helicopter are limited by constraints (5) and
(6), respectively.
In addition to its large-scale size, our optimization problem is computationally NP-hard because
it can easily be shown to be a generalization of
the split-delivery vehicle-routing problem (SDVRP),
which was proven to be NP-hard by Archetti et al.
(2005). In contrast, the SDVRP has a homogeneous
fleet, a single departure time, and, most important,
involves deliveries only.
Menezes et al.: Optimizing Helicopter Transport of Oil Rig Crews at Petrobras
411
Interfaces 40(5), pp. 408–416, © 2010 INFORMS
Related Work
Helicopter-routing problems often comprise pickups and deliveries of passengers. This characteristic
brings a set-packing aspect that is difficult to capture
in a routing problem. At Petrobras, the problem is further complicated by its time-scheduling features; passenger requests are for specific departure times, and
pilot lunch breaks must be determined.
Galvão and Guimarães (1990) also worked on this
problem at Petrobras. They proposed an algorithm
using different strategies to build routes for fixed
departure times. However, they did not intend the
system to be fully automated because users had to
choose the fleet used at each departure time. Other
helicopter-scheduling models in the literature are less
general than the one we consider in this paper.
For example, Fiala Timlin and Pulleyblank (1992)
designed heuristic algorithms to solve a problem
faced by Mobil. They were not concerned with time
factors such as honoring passenger requests, reusing
helicopters during the day, or scheduling pilot breaks.
Tjissen (2000) used the SDVRP to model helicopter
routing at a Dutch company where helicopter capacity
was constant; for each passenger a helicopter transported to an offshore platform, it picked up another
to go back to the continent. Good solutions were
found using rounding procedures to linear programming (LP) solutions. Hernadvolgyi (2004) considered
the case in which all demands must be satisfied by
only one helicopter.
Solution Methodology
The huge size of the Petrobras MIP problem, with
its billions of variables, makes it intractable to solve
directly with a commercial optimization solver. Furthermore, the output must be available to the flight
planners within one hour of run time to be operationally useful. We had to take advantage of the
problem structure to obtain good solutions within
an acceptable time. Our optimization method, which
Moreno et al. (2006) also described, is based on
an effective column-generation procedure that we
designed. This procedure relies on a network flow formulation to optimally assign passengers to previously
selected routes; it also employs heuristics.
Column Generation and Its Difficulties
The number of possible valid flights in our model is
huge. Moreover, foreseeing which decision variables
are used in good solutions is hard. These difficulties
exist because, in addition to the scheduling and routing of helicopters, passengers must be assigned to
flights. This gives some insight into the intricacy of
designing algorithms that implicitly consider all possible flights.
A column-generation procedure for our MIP model
presents the following challenge. When the dual variables associated with constraints (1) are positive, they
give the same weight to all passengers with the same
travel demand. This implies that, in any optimal solution of the column-generation subproblem, the route
of a helicopter will achieve the smallest reduced cost
by choosing the demands in decreasing order of their
dual variables, picking always the maximum possible
number of passengers for each demand. This suggests
that column coefficients adhf would often be either
equal to qd (the passenger demand) or to the remaining capacity in the helicopter. Therefore, the required
columns would have little chance of being generated.
We overcome this problem by disaggregating the
travel demands so that each passenger is now treated
as an independent demand. Consequently, adhf is now
a binary coefficient that indicates whether the corresponding passenger is on the flight or not. Although
this enlarges the problem size, it does not have a
noticeable effect on the LP resolution time.
Column-Generation Subproblem
Let d , pt , hi , h , and h be the dual variables associated with constraints (1), (2), (3), (5), and (6), respectively. To compute the reduced cost of variable xhf
associated with flight f and helicopter h, we define
hf and hf as follows:
hf = ch · dfhf +
lc−pt −
p∈P hf
and
hf =
d∈Dhf
i∈Ihf
−
hi − h − dfhf · h
d
where the index sets P (hf), I(hf), and D(hf) denote the
set of platforms visited by flight f , the set of time
instants during which flight f occurs, and the set of
passenger demands served, respectively. The reduced
412
Menezes et al.: Optimizing Helicopter Transport of Oil Rig Crews at Petrobras
cost of variable xhf is equal to ĉhf = hf + hf . Note
that hf depends only on the route taken by flight
f of helicopter h, whereas hf is determined by the
passenger demands that are attended.
The column-generation subproblem is to determine
the helicopter h and the flight f with minimum ĉhf
and that satisfy the following local constraints: (1) the
number of landings per passenger shall not exceed lp;
(2) the landings per flight cannot be more than lf;
and (3) given the duration of the flight, the maximum
number of passengers on the flight at any moment
cannot exceed mch . Our column-generation problem is
NP-hard because the prize-collecting traveling salesman problem (Balas 1989) is a special case of it in
which the constraints are disregarded and all the dual
variables, except for the d , are zero. Because our
practical goal is obtaining a good primal feasible solution, we use a heuristic procedure to find profitable
columns.
Column-Generation Procedure
Our column-generation procedure exploits the features of the optimization problem we are addressing.
In particular, most departure times in the timetable
serve a small number of platforms and each flight
can visit at most five platforms. Our heuristic procedure tackles the problem by separately seeking, for
each departure time and each helicopter h, profitable
flights serving a fixed number of platforms. The procedure begins by generating all possible routes with
one and two offshore landings. For three, four, and
five offshore landings, it starts from an initial random route and performs a neighborhood search by
exchanging the platform at each position in the route
with all other platforms to be served by flights leaving the mainland at the same departure time. For each
route R that is generated, we compute the value hf ,
which is valid for all flights f of helicopter h using
route R. We then solve a minimum-cost-flow problem (MCF) to find the optimal allocation of passengers for route R and helicopter h. The combination
of departure time, route, and allocated passengers
defines a flight f for helicopter h. By summing the
optimal value hf of the MCF to hf , we obtain the
reduced cost ĉhf of the variable xhf . All variables xhf
that are found with negative reduced cost are incorporated into the restricted integer program (RIP). The
Interfaces 40(5), pp. 408–416, © 2010 INFORMS
local search involving routes with three, four, and five
landings is stopped when a column with negative
reduced cost is found. When this is not the case, a
tabu search procedure using the same neighborhood
is launched.
The MCF network has two distinct sets of nodes:
stop nodes and demand nodes. Stop nodes are created
for each point of the flight route (base, platforms, and
back to the base). Each flight segment between consecutive landing points is represented by an arc from
its origin to destination. These arcs control the flow of
passengers on the route; therefore, arc capacities are
set equal to the capacity of the helicopter in this route
(which depends on the flight duration). Note that this
is a single-commodity network flow problem.
Demand nodes are created for each passenger who
can travel on this flight. Two arcs leave each demand
node d. One goes to the node corresponding to the
origin of the demand on the route with cost equal
to d . The other arc goes to the demand destination
with infinite capacity and zero cost. In this model,
all passengers can achieve their destinations by either
going from the demand node to the origin node,
traversing route segments of the flight when served
by the helicopter, or otherwise going directly from
the demand node to the destination point. Only passengers with positive associated dual variables d for
constraints (1) need to be considered, because we seek
a negative hf value. To obtain flights with as many
passengers as possible, we consider the zero-valued
dual variables d as slightly positive.
Figure 2 illustrates the MCF network. Each demand
node (D1–D5) has an incoming flow of one passenger. The outgoing flow of one unit is at its destination
node. Helicopter capacities are controlled by route
segment arcs linking two stop nodes. The optimum
flow value is hf . The reduced cost ĉhf is then found
by adding hf to the previously computed value hf .
Main Algorithm
Our approach for solving the helicopter-scheduling
problem is to decompose the problem into the generation of single flights for each available helicopter and
then to assemble these flights. The assembly is done
by an integer programming model that constructs a
sequence of flights for each helicopter, ensuring that
it meets all time-related constraints while covering
Menezes et al.: Optimizing Helicopter Transport of Oil Rig Crews at Petrobras
413
Interfaces 40(5), pp. 408–416, © 2010 INFORMS
q1
q2
D1
(∞,–∏D1)
(∞, –∏D2)
D2
(∞, 0)
B
q3
(∞,–∏D3)
D3
(∞, 0)
(∞, –∏D4)
P2
q1
q2
(∞, –∏D5)
(∞, 0)
D5
(∞, 0)
P3
(Caph′ 0)
(Caph′ 0)
q5
D4
(∞, 0)
P1
(Caph′ 0)
q4
B
(Caph′ 0)
q3 + q4 +q5
Figure 2: The diagram illustrates a minimum-cost flow network.
the transportation requests (see Figure 3). The algorithm starts by generating two sets of columns of
reasonable size. One column set has sets of flights
that comprise helicopter workdays; the other contains
sets of flights that completely serve departure times.
An RIP is initialized with these two sets of columns.
At this point, the column-generation phase is initiated. The LP relaxation of the RIP is repeatedly solved
to optimality. After each iteration, the dual values
are obtained and used in the column-generation procedure described above. A column is generated for
each departure time and helicopter pair. Because these
columns tend to be similar for different helicopters,
a tailing-off may occur. With this in mind, we added
a column-generation procedure that randomly creates
flights for randomly selected helicopters so that each
departure time is served. We generate a fixed number of flights and add the 20 percent with smallest
reduced cost to the RIP. Also, to allow complementary
flights to be added to the RIP, we add columns from
both generation procedures, even when their reduced
cost is positive.
The column-generation phase is interrupted after
15 minutes; then, an attempt to find good, or even
optimal, solutions to the current RIP is made for
45 minutes. Even when we provide an initial solution
to the problem, it converges very slowly, and integer
solutions are hard to find. To ease the solution of the
MIP, we relax constraints (1) from equations (set partitioning) to greater-than-or-equal-to inequalities (set
covering). That is, we allow the demand to be oversatisfied. However, with this change, it now becomes
necessary to check whether extra passengers are in
the solution.
The postoptimization procedure reassigns passengers to the selected flights to remove extra passengers
and to reduce the number of landings and flights. This
is done by solving another MIP, which we include in
the appendix. Although this problem is NP-hard, it
can be solved to optimality in a few seconds because
of its low dimension.
The objective function (8) maximizes the number
of transported passengers and minimizes the number of flights and landings. Constraints (9) guarantee
that flight f will visit landing point l if and only if
passengers are leaving or going to this point. Similarly, constraints (10) keep or eliminate flight f . Constraints (11) remove extra passengers because these
constraints control the number of passengers of each
demand on all flights. Constraints (12) force the number of passengers on each route segment to be less
than the helicopter capacity. Finally, the latest version
of CPLEX is used to solve the LP and MIP models.
Evaluation and Benefits
The Center for Logistical Studies of the Federal University of Rio de Janeiro did an independent appraisal
of MPROG in 2006. Using the passenger lists and
the manual flight plans for 354 days during 2004, the
appraisal compared the two approaches by running
the optimization algorithm on these data. The workstation used was an Intel Xeon 3.06 GHz processor
with 4 GB of RAM and ILOG CPLEX 9.0 software. The
results showed that the optimized flight plans would
have carried the same number of passengers but with
Menezes et al.: Optimizing Helicopter Transport of Oil Rig Crews at Petrobras
414
Interfaces 40(5), pp. 408–416, © 2010 INFORMS
Start
Find initial
set of flights
Solve LP
relaxation
Execute column
generation
Time
elapsed
Purchase answer to see full
attachment