i-DMSS for Bus Rental in Seoul, Korea

advertisement
i-DMSS for Bus Rental in Seoul, Korea
Katta G. Murty
Dept. IOE, U. of Michigan
Ann Arbor, MI-48109-2117, USA
e-mail: murty@umich.edu
and
Woo-Je Kim
Dept. of IISE, Seoul National University of Technology
172 Gongneung 2-dong, Nowon-gu, Seoul 139-743, South Korea
e-mail: wjkim@snut.ac.kr
Work done for Arirang in Seoul, South Korea,
which rents buses (with drivers) to groups

n = up to 100 customer requests daily

Each request called job specifies
Start location pi
Start time t
i
End location q
_
End time ti
i
Group size

D = (dij) is distance data matrix for day

Each job involves travel (possibly with stops),
driver has to be available to group continuously

Two bus types:
45 seat (20 available, for large groups)
15 seat (5 available, for small group)
Stationed at two separate depots

Company can also borrow buses from other vendors

Duration of job = end time - start time

Varies from half hour to 20 hours

For 75% of jobs, duration is less than five hours

Job Number: Serially in increasing order of start




Work-sequence: Sequence of jobs handled by a bus in a day
Necessary condition for i1, ... ir to be a work- sequence:
_
t {s+1} - ts > driving time from qs to p{s+1} for s = 1 to r-1
In this work sequence, the driver of bus from qs to p{s+1}
for s = 1 to r called empty load drives

_
Duration of this work-sequence: (depends on depot of bus) = tr - t1 + (driving
time from depot to p1) + (driving time from qr to depot)

Drivers prefer long duration work-sequences (more money). But company has
safety limit = 12 hours.

But 10% jobs are long > 11 hour duration. They are OK, because they have
intermediate stops when driver can rest. Only long duration work-sequences with
continuous driving (fatigue causing) problematic
Decisions to be made:


Partition trips into work-sequences,
each for a bus
Allocate buses from two depots, (and
outside vendors if necessary) to worksequences
Objectives to Optimize



min OBJ1 = number of buses to handle
jobs = number work-sequences into
which jobs partitioned
min OBJ2 = total cost of empty load
driving
Keep OBJ3 = % of long duration worksequences below 50 as far as possible
Representation Using Network G







Each trip a node
N = set of nodes
Include arc (i, j) if bus
can handle trip j after
completing trip i
A = set of arcs
Leave long duration
trips as isolated nodes
G = (N, A) acyclic
network (no directed
cycles)
Each work-sequence is a
chain in G, and each
chain (including single
node chains) in G can
be a work-sequence
5
8
2
4
1
0
7
1
3
6
9
1
1
How to minimize OBJ1?


Can be
minimized by
finding a min
chain cover for
nodes of G
(i.e., smallest
number of chains
containing all
nodes)
This problem
transformed into
a max bipartite
matching
problem, can be
solved very
efficiently
How to minimize OBJ2?
OBJ2 = OBJ2.1
+ OBJ2.2,
OBJ2.1 is cost
of empty load
drives between
consecutive
jobs in worksequence,
OBJ2.2 is
empty load
drives from, to,
depot
i1
i2
i3
..
ir



OBJ2.1 depends only on how jobs
portioned into work-sequences for buses
OBJ2.2 depends on from which source
(depot 1, 2, outside vendor) buses
allocated to work-sequences
We minimize OBJ2.1, 2.2 in separate
stages
How to minimize OBJ1, OBJ2.1
simultaneously?


Find a min
cost max
matching in
bipartite
network, and
use it to form
worksequences
Can be solved
efficiently
using
assignment
algorithm
How to Handle OBJ3?



OBJ3 makes problem hard. Even simpler problem of forming
work-sequences with no long duration work sequences has
been proved hard. Handle OBJ3 heuristically, manually
(interactively)
Removing longest arc, reapplying algorithm usually reduces %
of long duration work sequences, while increasing OBJ1 only
slightly
Breaking some longest duration multi-trip work-sequences into
two of reasonable durations, exchanging trips at beginning or
end of some long duration ones to others, always yields good
set, to implement
How to Minimize OBJ 2.2



Let WS1,..., WSs be work-sequences in final solution
set
Let Depot 1, 2, OV (Outside Vendor) be sources of
buses
Knowing WSt, we can easily calculate value of OBJ
2.2 (cost of driving from source to starting location of
first trip + from ending location of last trip back to
source) for allocating bus from source to WSt, and
model this problem as a 3 x s transportation
problem
Strategy for the problem




Our strategy is a 2-stage hierarchical process
Stage 1: Select work sequences to implement, to min
OBJ1, OBJ 2.1 simultaneously, by solving min cost max
matching in bipartite network
Modify work sequences obtained to satisfy OBJ 3
interactively by heuristic techniques
Stage 2: Allocate buses from sources to selected worksequences to min OBJ 2.2 by solving transportation model
How to Handle 2 Bus Sizes?
5 small 15 seat buses
 On days when more small buses needed, much cheaper to
use one of company's large 45 seat buses than renting small
bus
 Use following procedure:
1. Consider only small group jobs. Use algorithm to allocate
small buses to these, up to 5 available
2. If any small group jobs unallocated, combine them with set
of large group jobs and use algorithm to allocate large buses
to this set

Results




Previously decisions made manually, took two
people
Using DSS, solution time reduced to a few manhours each day
OBJ1 reduced by 15% from manual approach
OBJ2 reduced by 10% from manual approach
Download