160 likes | 333 Views
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.
E N D
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 ti End location q i _ End time ti 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 work- sequences
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 work- sequences below 50 as far as possible
2 5 8 4 1 10 7 3 6 9 11 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
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 work- sequence, OBJ2.2 is empty load drives from, to, depot i1 .. ir i2 i3
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 work-sequences • 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 work-sequences 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 man-hours each day • OBJ1 reduced by 15% from manual approach • OBJ2 reduced by 10% from manual approach