Академический Документы
Профессиональный Документы
Культура Документы
Overview
Basic Problem What is expected Data provided Solution and Animation
Locomotive Problem
Input: -Railway map -Tasks to perform within a certain time -Locomotives available - Restrictions (maintenance, storage) Output: -Scheduling of the locomotive actions with lowest operation cost
Possible Actions
A locomotive can perform 4 types of activities -transport cargo => active -move without cargo => deadheading -enter storage => waiting -begin maintenance => maintenaing
Railway Map
Tasks Specification
Starting and terminal stations Duration Start time and deadline of a task Minimum attributes required for completion of task
Tonnage Horse Power Number of locomotives
Map of Tasks
Task Table
Task a b c d e f g h i j start time 1 5 5 22 22 1 1 18 23 1 deadline 20 15 25 42 60 55 40 43 27 60 duration tonnage horse power # locomotives 3 40000 3500 1 1 none 4000 1 3 10000 none none 2 18000 3750 none 7 none none 1 3 1000 1800 5 3 9000 2000 1 4 none 3500 1 1 2500 1000 2 12 none none 1
Locomotive Types
Each locomotive belongs to a certain type
Each type has particular attributes maximum tonnage maximum horse power
Important Observations
Task a b f start time 1 5 1 deadline 20 15 55 duration tonnage horse power # locomotives 3 40000 3500 1 1 none 4000 1 3 1000 1800 5
At least 2 locomotives need to participate in task a to meet the tonnage requirement At least 2 locomotives for task b to meet horse power requirement At least 5 locomotives needed for task f
Locomotive Properties
For each locomotive, 1) Type SD-90 or SD-70 2)Starting station 3)Terminal station 4) Countdown for critical locomotives
Time before which a locomotive needs repair A locomotive cannot travel if it is critical Needs to be stored until maintained
Locomotive Table
Locomotive Type Number 1 SD-70 1 2 SD-90 1 3 SD-90 1 4 SD-70 1 5 SD-90 1 Source Target Countdown Quebec Winnipeg 45 Montreal Toronto 12 Hamilton Toronto 30 Winnipeg Winnipeg 23 Calgary Toronto 2
Storage Capacity
Station Max Capacity Vancouver 4 Calgary 0 Saskatoon 0 Winnipeg 2 Thunder Bay 0 Windsor 0 London 0 Hamilton 0 Toronto 5 Kingston 0 Ottawa 0 Montreal 3 Quebec 0
Observations
Locomotives cannot be maintained in Saskatoon and Hamilton
Locomotives can only be stored in Vancouver, Winnipeg, Toronto and Montreal
Participation Cost
Each locomotive type has a cost associated to participating in a given task Not all locomotive types can do all tasks
Each locomotive type has a cost associated to deadheading on a particular track
Task a b c e g h i
Task a c d e f g h i j
Observations
SD-70 cannot do task d, f, j
Track Vancouver - Calgary Calgary - Saskatoon Saskatoon - Winnipeg Winnipeg - Thunder Bay Thunder Bay - Windsor Windsor - London London - Hamilton Hamilton - Toronto Toronto - Kingston Kingston - Ottawa Ottawa - Montreal
Cost ($) 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000
Main Assumptions
Every trip between two train stations takes unit time to complete SD-70 and SD-90 travel at the same speed A locomotive being repaired is inactive for a day There are 12 time units per day and the scheduling is for a week of 5 days => 60 time clicks
Solution
Good news : Feasible!
Minimum Cost
213 000 $ to accomplish the required tasks
Animation
Number 1 1 1 1 1
Countdown 45 12 30 23 2
Groups Type g1 "critical" SD-70 g2 "critical" SD-90 g3 "critical" SD-90 g4 "critical" SD-70 g5 "critical" SD-90 g6 "not-critical" SD-70 g7 "not-critical" SD-90
Number 1 1 1 1 1 0 0
Flow Conservation
We must make sure that flow is conserved at every time click
Tricky with maintenance and storage
Constraints
Non-trivial constraints: 1) Flow Conservation equations
Straigth forward constraints: 2) Task Requirements inequalities 3) Storage and Maintenance capacity bounds 4) Initial and terminal conditions
Task Requirements
1) Minimum horse power inequality for every task
2) Minimum tonnage inequality for every task
Objective Function
Minimize
CPLEX Solution
MIP presolve eliminated 1753 rows and 3591 columns Approximately 9 000 variables
8929 are zero
Implementation Procedure
1) Script to parse given data and generate the CPLEX .lp input file.
2) Parse CPLEX output to produce locomotive schedules 3) Animation in MATLAB
Time issues
maintenance (1 day inactive) duration of a task (groups disappear for that time)