Title: ESI 6912 Advanced Network Optimization
1ESI 6912Advanced Network Optimization
Ravindra K. Ahuja Professor, Industrial Systems
Engg. University of Florida Gainesville
ahuja_at_ufl.edu Office (352) 392-1464 ext
2004 Cell (352) 870-8401 www.ise.ufl.edu/ahuja
2Lecture Overview
- Me
- Arvind Kumar (arvind_at_InnovativeScheduling.com)
- Education PhD, Industrial Engineering,
University of Florida - Current Project Manager, Locomotive Scheduling
Optimizer, - Innovative Scheduling, Gainesville, FL.
- Problem Introduction
- Mathematical Formulation
- Solution Methodology
- Additional Issues
3Goals of this presentation
- An important point which I want to bring home
- Network representation is a good way to
facilitate communication between you and the
customer. - In business, communication is everything. In this
example, I will show you how for an OR
professional, a picture is worth thousand words. - Remember, even if you are not solving the problem
as a network flow, it aids in understanding and
explaining the formulation. - It makes both your Left and Right side of brain
work. ?
4Goals of this presentation (contd..)
- Introduce an important transportation problem
- Locomotive Planning
- Why is it important?
- Each locomotive costs almost 1 Million.
- A railroad owns a fleet of around 5,000
locomotives. - Every year, a railroad buys over 100 new
locomotives. - The problem we are dealing with has a potential
of saving millions of dollars even if we reduce
the expenditure by just 5.
5Locomotive Optimization
6Locomotive Optimization, Inputs
- Train Schedule
- Train origin, destination, arrival time,
departure time - Train power requirement
- Locomotive Availability
- Types of locomotives, pulling power
- Locomotive sets (CONSISTS) Allowed
- Example locomotive type SD40, CW40, CW60
- Example Allowed consists 2xSD40,
SD40CW40, 2xCW40CW60
7Locomotive Optimization, Decision Variables
- Train Locomotive Assignment
- Assigning locomotive consists to trains which
provide enough power to pull the train. - The set of locomotives should meet some other
basic requirements - Lower bound on total number of locomotives on a
train - Upper bound on total number of locomotives on a
train - Train-locomotive preference
- Train-Train Connection
- Connecting locomotives on a train arriving at a
station to a train departing at the station while
making sure that - The connection time should be in the range of
min/max time allowed - Some connections are preferred over another
8Locomotive Optimization, Decision Variables
Train 1
Train 4
Train 2
Time
Train 5
Train 3
Train 6
Ground Nodes
9Locomotive Optimization, Decision Variables
- The number of locomotives in/out of a station is
dependent on the train moves and their power
requirement. - If the total power requirement on inbound trains
is not equal to the total power requirements on
outbound trains, the flow cannot be balanced. - Locomotives are allowed to DEADHEAD on a train
while meeting certain requirements. - At most 12 locomotives allowed on a train.
- Not all locomotive types are allowed on a train.
- Deadheading causes extra fuel to burn, thus
adding to the operational cost.
10Locomotive Optimization, Constraints
- Do not perform consist busting
- Do not bust any consist. Assign consists from one
train to another without busting them. - A locomotive based formulation versus consist
based formulation. - Locomotive assignment to be consistent
- A train should be assigned the same consist each
day it runs. It is a soft requirement. - Phase-wise approach.
11Locomotive Optimization, Constraints (contd.)
- Locomotives must be balanced
- The number of incoming locomotives of each type
into a station must equal the number of outgoing
locomotives of that type at that station. - Flow balance constraints
- Plan should be repeatable
- The status of locomotives at the end of the plan
should be same as the beginning of the plan. - By connecting the trains on the last day to the
trains on first day, and solving the flow problem
in the cycle.
12Locomotive Optimization, Constraints (contd.)
- Honor fleet size requirements
- The number of assigned locomotives of each type
used is at most the number of available
locomotives of that type. A railroad can provide
the number of locomotives available of each type.
- How will you find the total number of locomotives
used over the week? - Option 1 By summing up the locomotive-minutes
spent by locomotives on all the arcs and divide
it by number of minutes in week - Option 2 By counting the number of locomotives
in an appropriate cut. What is a cut here?
13Locomotive Optimization Model Summary
Objective Function
- Consist
- Assignment
- Active/Deadhead
- Light travel
- Shop power
- Run-through power
Innovative Locomotive Planning Optimizer
Train Schedules, Tonnages HP
Standard Consists
Cycle Reports
Shop, Servicing Fueling Locations
Locomotive Fleet Description
- Yard Reports
- Dwell time
- Daily supply-demand inventory
- Train-to-train connections
Constraints
14Locomotive Planning Engine
- Decision Variables
- Active consist assignment
- Deadhead consist assignment
- Light travel assignment
- Train-train connections
- Positioning of locomotives
- Objective Function
- Active locomotive cost
- Deadhead cost
- Light travel cost
- Single locomotive consist cost
- Consist-busting cost
Locomotive Planning Optimizer
Parameter Settings
User-Defined Policies
- Hard Constraints
- Meet horsepower tonnage req.
- Satisfy active axle requirements
- Balance locomotive flow
- Assign acceptable locos to trains
- Honor geographical constraints
- Assure cab signal requirements
- Meet foreign power constraints
- Satisfy shop power constraints
- Soft Constraints
- Consistency of the consist assignment
- Consistency of train-train connections
- Simplicity of the planning solution
15Mathematical formulation
- Multi-commodity integer program on the space-time
network - Let
- l a train
- k a locomotive type
- c a consist type
- Binary variable representing the number of
active consists of type c on arc l - Integer variable representing the number of
non-active (idle or deadhead) consists of type c
on arc l - Integer variable indicating the number of
unused locomotives of type k
16Mathematical Formulation (contd.)
17Isnt this slide easier to explain than the
previous one?
Plan should be repeatable
Train 1
Train 4
Train 2
Time
Train 5
Train 3
Train 6
Must get a compatible active consist. UB on total
locomotives
Flow should be balanced on all nodes.
Ground Nodes
18Solving complex real-life problems?
- Think decomposition !!
- Many real-life problems are very large scale in
nature. - It is tough to solve the whole problem in one
shot. - Use decomposition approaches.
- Decompose the problem in several tractable
steps, where each of the steps add substantial
value to the final solution. - The decomposition should be done in a way so that
you do not lose the global picture.
19Solution Methodology Two-Stage Optimization
One-Day Locomotive Optimizer
Seven-Day Locomotive Optimizer
Input Data
Solution
- Stage 1 considers only the trains with high
frequencies (say, trains which run over four
times a week) and creates a target locomotive
plan for these trains. - Stage 2 makes adjustment to the target locomotive
plan to power trains with low frequencies.
20Two stage optimization Killing two birds with
an arrow
- Makes the problem tractable by making a
justifiable assumption - Consistency of the locomotive plan implies that a
train gets the same consist type each day it
runs. - Obtaining a consistent locomotive plan when the
train schedule is inconsistent is a computational
challenge. We accomplish it using a two-stage
approach.
21Solution Methodology
- One-day locomotive optimizer
- Constructs the one-day train network
- Solves the multi-commodity flow problem in this
one-day network using mixed integer programming. - Seven-day locomotive optimizer
- Constructs the seven-day train network.
- Uses the flow in one-day trains as the target in
seven day. - Solves the multi-commodity flow problem in this
seven-day network using mixed integer programming.
22Homework A Research Issue
- Balancing locomotive over the network by
deadheading - Restricted by train schedule
- Locomotives deadheading on the train
unnecessarily wait while train is performing work
at intermediate stops. - Resolution Allow LIGHT travel
- Allowing group of locomotive to travel together
independently - Faster travel time and flexible schedule
- Each Light travel must contain at least 4
locomotives. (Fixed charge) - What light travel to run and when?
23 24Outputs of the Locomotive Optimization
- Train locomotive assignments Which consist types
are assigned to which train. - Train-to-train connections How do consists
connect between trains.
2?AC44
2?AC44
CW40CW66
CW40CW66
3?SD40
3?SD40
25A Potential Problem with our Solution
- Locomotives need to be fuelled and serviced
regularly. - Our plan ignores these two issues.
- The plan generated by planning optimizer is not
guaranteed to be fueling and servicing compliant
and might not be implementable. - The solution does not account for fueling costs
since fueling costs are location dependent.
26An Example
- Locomotive Optimization could generate
connections of the following kind
A, 800 miles
F
B, 300 miles
F
Blue location Supports fueling, Red Does not
support fueling Suppose a locomotive cannot
travel more than 900 miles without fueling. Then,
in this solution, it runs out of fuel
Conclusion We need a method that generates
implementable planning solutions.
27Fueling and Servicing Friendly Routing
- Feasibility requirements
- Every locomotive is routed in such a way that it
has at least one fueling opportunity for every
900 miles of travel. - Every locomotive is routed in such a way that it
has at least one servicing opportunity for every
3,000 miles of travel. - Every locomotive is routed in a fueling and
servicing friendly rotations or cycles. - Cost requirements
- Minimize the total fueling cost
- Minimize the total servicing cost
28Fueling and Servicing Add-On Module
Locomotive Planning Optimizer
Fueling and Servicing Post-processor
Solution
- Fueling and Servicing Inputs
- Fueling locations
- Servicing locations
- Fueling time at each location
- Servicing time at each location
- Fueling and servicing capacities
- Fuel and service costs
29Post-Processor Module
- Take the output of the Locomotive Optimization as
an input - Fix the assignments of locomotives to trains as
per the output and then re-structure
train-to-train connections of locomotives to
enforce fuel and service feasibility - Decision problem in this module Connection of
locomotives between trains!!
30Post-Processor Module (contd.)
- Importance of good connections
F
A, 500 miles
B, 300 miles
F
D, 300 miles
F
C, 500 miles
F
Blue nodes Fueling nodes, Red nodes
Non-fueling nodes Sequences A B, D B, D - C
Fueling feasible Sequence A - C Fueling
infeasible
31Solution Methodology
S
A, 500 miles
X 1
B, 300 miles
F
X 1
C, 300 miles
F
X 1
D, 500 miles
S
X 1
32Post-Processor Module Steps
- Enumerate the set of service (and fuel) feasible
sequences of trains in the network using a
dynamic programming enumeration algorithm. - Decompose the output of the Locomotive
Optimization into flows on service sequences
while minimizing cost (decomposition). - Assemble the service (and fuel) feasible
sequences into fuel and service friendly cycles.
33What are Fuel and Service Sequences
- What is a fuel feasible sequence (or string)?
- It is a sequence of connected trains starting and
ending at fuel locations - Sequence is such that any locomotive that is
assigned on the sequence will not run out of fuel - What is a service feasible sequence (or string)?
- Sequence of connected trains starting and ending
at maintenance locations - Sequence is such that any locomotive that flows
on the sequence can be serviced before it is due - Every service feasible sequence is also fuel
feasible gt Service feasible sequence is made up
of fuel feasible sub-sequences
34Illustration of Fuel Service Sequences
A, 500 miles
S
F
B, 300 miles
C, 400 miles
F
S
D, 450 miles
Orange nodes Support servicing and fueling Blue
nodes Support only fueling Red nodes Support
neither Service sequence A B C D is hence
made up of two fuel friendly sub-sequences A B
and C D
35Solution Methodology Recap
S
A, 500 miles
X 1
B, 300 miles
F
X 1
C, 300 miles
F
X 1
D, 500 miles
S
X 1
36Post-processor String decomposition
- Definition Decomposition of a locomotive
schedule into flow on service feasible sequences - Decision variables Flow on service feasible
sequences - Strings are enumerated using dynamic programming
- Integer programming problem on space-time network
- Research issue
- How do we integrate fuel and service issues in
the main locomotive optimization formulation? - Post-processor does not guarantee a fuel-service
feasible plan. What will you do if the plan is
not feasible yet?
37Conclusion
- We solved a tough real life problem using a
network based formulation. - The formulation used decomposition methods to
address many business requirements. - Network representation are powerful tool to
facilitate communication !! - Dont forget your homework
- Light Travel
- Integrating fuellingservicing with locomotive
optimization formulation.