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