Column Generation Method for an Agent Scheduling Problem

Similar documents
3 No-Wait Job Shops with Variable Processing Times

Approximation Algorithms

Outline. Column Generation: Cutting Stock A very applied method. Introduction to Column Generation. Given an LP problem

Column Generation: Cutting Stock

An Integer Programming Approach to Packing Lightpaths on WDM Networks 파장분할다중화망의광경로패킹에대한정수계획해법. 1. Introduction

Algorithms for Integer Programming

Recursive column generation for the Tactical Berth Allocation Problem

The MIP-Solving-Framework SCIP

Mathematical and Algorithmic Foundations Linear Programming and Matchings

Modeling and Solving Location Routing and Scheduling Problems

Solving lexicographic multiobjective MIPs with Branch-Cut-Price

Advanced Operations Research Prof. G. Srinivasan Department of Management Studies Indian Institute of Technology, Madras

/ Approximation Algorithms Lecturer: Michael Dinitz Topic: Linear Programming Date: 2/24/15 Scribe: Runze Tang

1 Linear programming relaxation

Theorem 2.9: nearest addition algorithm

Approximation Algorithms

Construction of Minimum-Weight Spanners Mikkel Sigurd Martin Zachariasen

9.4 SOME CHARACTERISTICS OF INTEGER PROGRAMS A SAMPLE PROBLEM

Column Generation and its applications

Advanced Operations Research Prof. G. Srinivasan Department of Management Studies Indian Institute of Technology, Madras

Unit.9 Integer Programming

MVE165/MMG631 Linear and integer optimization with applications Lecture 9 Discrete optimization: theory and algorithms

Fundamentals of Integer Programming

Copyright 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin Introduction to the Design & Analysis of Algorithms, 2 nd ed., Ch.

56:272 Integer Programming & Network Flows Final Examination -- December 14, 1998

Algorithms for Decision Support. Integer linear programming models

Integer Programming Theory

GENERAL ASSIGNMENT PROBLEM via Branch and Price JOHN AND LEI

Chapter 15 Introduction to Linear Programming

Integer Programming ISE 418. Lecture 7. Dr. Ted Ralphs

3 INTEGER LINEAR PROGRAMMING

CS 580: Algorithm Design and Analysis. Jeremiah Blocki Purdue University Spring 2018

Crew Scheduling Problem: A Column Generation Approach Improved by a Genetic Algorithm. Santos and Mateus (2007)

Framework for Design of Dynamic Programming Algorithms

Advanced Operations Research Prof. G. Srinivasan Department of Management Studies Indian Institute of Technology, Madras

FUTURE communication networks are expected to support

12.1 Formulation of General Perfect Matching

Two-stage column generation

Lecture 4: Primal Dual Matching Algorithm and Non-Bipartite Matching. 1 Primal/Dual Algorithm for weighted matchings in Bipartite Graphs

Computational Integer Programming. Lecture 12: Branch and Cut. Dr. Ted Ralphs

11.1 Facility Location

The Encoding Complexity of Network Coding

11. APPROXIMATION ALGORITHMS

The Heuristic (Dark) Side of MIP Solvers. Asja Derviskadic, EPFL Vit Prochazka, NHH Christoph Schaefer, EPFL

MVE165/MMG630, Applied Optimization Lecture 8 Integer linear programming algorithms. Ann-Brith Strömberg

LP-Modelling. dr.ir. C.A.J. Hurkens Technische Universiteit Eindhoven. January 30, 2008

Approximation Algorithms

5.3 Cutting plane methods and Gomory fractional cuts

NEW METHODS USING COLUMN GENERATION: AN EXAMPLE - ASSIGNING JOBS TO IDENTICAL MACHINES

NP-Hardness. We start by defining types of problem, and then move on to defining the polynomial-time reductions.

Primal Heuristics for Branch-and-Price Algorithms

Primal Dual Schema Approach to the Labeling Problem with Applications to TSP

Vehicle Routing for Food Rescue Programs: A comparison of different approaches

Parameterized graph separation problems

TIM 206 Lecture Notes Integer Programming

Linear Programming. them such that they

56:272 Integer Programming & Network Flows Final Exam -- December 16, 1997

The complement of PATH is in NL

Integer Programming. Xi Chen. Department of Management Science and Engineering International Business School Beijing Foreign Studies University

In the classical vehicle-routing problem (VRP) the objective is to service some geographically scattered customers

Primal Heuristics in SCIP

Reload Cost Trees and Network Design

/633 Introduction to Algorithms Lecturer: Michael Dinitz Topic: Approximation algorithms Date: 11/27/18

Methods and Models for Combinatorial Optimization Exact methods for the Traveling Salesman Problem

4 Integer Linear Programming (ILP)

A Column Generation based Heuristic for Maximum Lifetime Coverage in Wireless Sensor Networks

BCN Decision and Risk Analysis. Syed M. Ahmed, Ph.D.

CS599: Convex and Combinatorial Optimization Fall 2013 Lecture 14: Combinatorial Problems as Linear Programs I. Instructor: Shaddin Dughmi

Last topic: Summary; Heuristics and Approximation Algorithms Topics we studied so far:

Using Column Generation for the Bus Line Planning Problem

Column Generation in the Integral Simplex Method

COVERING POINTS WITH AXIS PARALLEL LINES. KAWSAR JAHAN Bachelor of Science, Bangladesh University of Professionals, 2009

Algorithm Design and Analysis

1. Lecture notes on bipartite matching February 4th,

CMPSCI611: The Simplex Algorithm Lecture 24

Solutions to Assignment# 4

Parallel Auction Algorithm for Linear Assignment Problem

2386 IEEE TRANSACTIONS ON INFORMATION THEORY, VOL. 52, NO. 6, JUNE 2006

1. Lecture notes on bipartite matching

Approximation Algorithms: The Primal-Dual Method. My T. Thai

AMATH 383 Lecture Notes Linear Programming

Lecture notes on the simplex method September We will present an algorithm to solve linear programs of the form. maximize.

College of Computer & Information Science Fall 2007 Northeastern University 14 September 2007

Steiner Trees and Forests

Notes for Lecture 24

General properties of staircase and convex dual feasible functions

Branching approaches for integrated vehicle and crew scheduling

Graph Coloring via Constraint Programming-based Column Generation

CS675: Convex and Combinatorial Optimization Spring 2018 Consequences of the Ellipsoid Algorithm. Instructor: Shaddin Dughmi

CS 4100 // artificial intelligence

Branch-and-Price for Service Network Design with Asset Management Constraints

Discrete Optimization. Lecture Notes 2

Accelerating Column Generation for a Survivable Network Design Problem

Algorithms Exam TIN093/DIT600

Principles of Optimization Techniques to Combinatorial Optimization Problems and Decomposition [1]

Solutions for Operations Research Final Exam

Constraint Satisfaction Problems (CSPs)

What is Search For? CSE 473: Artificial Intelligence. Example: N-Queens. Example: N-Queens. Example: Map-Coloring 4/7/17

Multiple-Depot Integrated Vehicle and Crew Scheduling

Part 4. Decomposition Algorithms Dantzig-Wolf Decomposition Algorithm

Transcription:

Column Generation Method for an Agent Scheduling Problem Balázs Dezső Alpár Jüttner Péter Kovács Dept. of Algorithms and Their Applications, and Dept. of Operations Research Eötvös Loránd University, Budapest, Hungary Abstract This paper discusses a real life problem of daily schedule planning for customer visiting agents. An optimization scheme using a combination of column generation and rounding techniques is proposed for solving this problem. In order to realize an efficient implementation, a polynomial time algorithm is presented for the column generation subproblem. Some technical implementation issues are also discussed and finally, experimental results are shown on real-life problem instances. An implementation of the presented solution is currently in production use by one of the leading contact center service providers of Hungary. Keywords: resource planning, scheduling, column generation 1 Introduction The problem discussed in this paper is the planning of the daily program of customer visiting agents. Consider an insurance company employing hundreds of agents in order to personally persuade potential customers to take out an insurance. To do that, they first call the potential customers by phone to make an appointment, then one of the agents will go to the place of the meeting at the right time. For the sake of flexibility, every agent makes phone calls and visits customers, but an appointment will not necessarily be assigned to the same agent who contacted the customer. 1 Email: deba@inf.elte.hu, alpar@cs.elte.hu, kpeter@inf.elte.hu 2 This work was supported by OTKA grant K060802

Organizing a marketing campaign of this scale is far from being trivial. The traditional way of doing it manually is typically suboptimal and very inflexible. Instead, this paper proposes an optimization method for designing the schedule for all agents at once taking the various constraints and objectives into accounts. The presented solution is currently in production use by one of the leading contact center service provider of Hungary. A more formal definition of the optimization problem is the following. We are given a set A of business agents who have to meet customers. Let M denote the set of meeting requests. Each request has a given time, duration and location. In addition, when the agents are not visiting customers, they have to do other jobs in their office (e.g. they contact potential customers by phone). Our task is to plan the work schedule of the agents for a single day. The workday starts when the agent arrives at the office or at place of the first meeting. Between the meetings or office shifts, they have to travel to the next location (or to the office) either by car or by public transport depending on the agent. Furthermore, the schedules must satisfy various constraints in order to meet the working regulations and ensure the acceptable working conditions of the agents. The agents must be provided with a 30-minute free lunch sometime between 12:00 and 14:00. (These parameters are in fact configurable.) The working time of the agents is limited. The idle time of the agents and the traveling time between any two locations are also limited. There is a given minimum allowed duration of the office work. The objective function of the optimization task comprises various quality criteria of the proposed schedule. Namely, The productive activities of the agents should be maximized, therefore negative cost is assigned to the meetings and the office work. Meetings have a priority over office work, hence the cost of them is less. The traveling time should also be minimized, therefore an extra penalty is assigned to traveling times. We prefer bigger blocks of the same working type, thus a penalty is applied when an agent switches between office work and meeting participation. The rest of the paper is organized as follows. Section 2 presents an ILP formulation of the problem (of exponential size) and also defines an LP relaxation of it. Then Section 3 discusses how to solve this enormous ILP problem

efficiently. Finally, Section 4 summarizes some practical experiences about the performance of the solution. 2 ILP Formulation This section presents a column generation based heuristic algorithm for the optimization problem. The column generation approach is extensively used in resource planning problems [1]. The master problem (MP) is formalized as an integer program of exponential size. Let A be the set of the agents and V be the set of visiting requests. Let S a be the set of the feasible schedules of the agent a, and c sa is the cost of a schedule s a S a. Then the integer programming formulation is the following. min s. t. a A c sa x sa s a S a (1a) s a S a x sa = 1 a A (1b) m s a x sa = 1 m M (1c) x sa {0, 1} a A, s a S a (1d) The cost c sa can be calculated from the properties of the schedule. If the agent travels in t t minutes, waits for meetings in t r minutes and works in t w minutes in the office, moreover there are n c changes between meetings and office shifts, then we can compute the overall cost with the following expression: c sa = C t t t + C r t r B w t w + C c n c (2) We assign a binary variable x sa to each possible schedule s a of each agent a. The constraints enforce that each meeting is fulfilled by exactly one agent and each agent has exactly one work schedule. In addition, let RMP denote the following linear programming relaxation of the above formulation with the introduction of slack variables for constraints (1c) in order to ensure that the problem is always feasible. min c sa x sa + Hy m (3a) a A s a S a m M s. t. x sa = 1 a A (3b) s a S a

x sa + y m = 1 m M (3c) v s a x sa 0 a A, s a S a (3d) y m 0 m M (3e) where H is a sufficiently large number. The dual linear program of RMP is the following. max a A w a + m M z m (4a) s. t. w a + m s a z m c sa a A, s a S a (4b) 3 Solution Method y m H m M (4c) w a R a A (4d) z m R m M (4e) The proposed solution is based on an iterative rounding of the LP relaxation of the above formulation. We fix the schedule of one agent in each iteration. For this, (a) we find an (approximate) solution to RMP, then based on this solution, we choose an agent and (b) fix a schedule for her by rounding the corresponding fractional variables x sa, s a S a. Then we delete this agent and the requests covered by her schedule from the problem and repeat steps (a) and (b) until we find a schedule for each agent. 3.1 Solving RMP To deal with the fact that the size of RMP can be enormous (exponential in the number of the meeting requests), we use the usual column generation approach [6], as briefly described below. Instead of keeping the whole problem in the memory, we maintain a reasonably sized subset of the columns, i.e. a limited number of possible schedules S a S a for each agent a A. Then we find a solution x sa to this subset of RMP together with the corresponding dual solution w a, y m. Now, we check whether (4b) holds for all agents a A and for all schedules s a S a. If yes, then x sa is in fact the optimal solution. If not, then we add the column corresponding the failed dual constraint to the problem and iterate the above steps until the optimum is found or a certain time limit is reached.

Therefore the core of this scheme is the subroutine that checks the feasibility of a dual solution and finds a failed constraint if it is not feasible. 3.1.1 Column Generation with Dynamic Programming Method During the algorithm, we have to find feasible schedules which violate the inequality (4b). It can be done by searching the schedule with the smallest reduced cost for agent a, i.e. min c sa w a + m s a z m (5) The problem can be formulated as finding a resource constrained shortest path. Let us define a directed graph G = (V, E) as follows. We assign a node in the graph to each meeting request. Between two meetings m 1 and m 2, the agents can do only a couple of different things. We add a directed edge m 1 m 2 to each of these actions whenever it is feasible (parallel edges are allowed), and assign the cost corresponding to the action. Namely, the choices are the following. The agent can go directly to the place of m 2. If there is enough time between the meetings, she can go to the office for internal work. The agent can also have a lunch time between the meetings. So, the traveling time is calculated between every pair of meetings m 1 and m 2, both directly and through the office location. The travel time has to fit in to the time gap, and the travel lengths must be shorter than a threshold value. Moreover, if the agent goes to the office, she has to stay there for at least a certain time period, which is necessary to do effective work. Each path in this graph almost determines a schedule, but the periods before the first and after the last requests are not fixed. Therefore additional edges are assigned to the graph which belong to the exterior schedule. The schedules must consist of an internal path and from an external edge between the same starting and finishing nodes. A cost function c : E R is defined on the edges, which can be calculated based on equation (2). The cost of a schedule can be determined as the total cost on the corresponding path and external edge. To get the reduced cost of a schedule, we have to subtract the dual values z m from the path cost. The agents working time must include the lunch time. Thus we assign another function r : E {0, 1} to the edges depending on whether it includes a lunch period (the external edge may include a lunch period, as well).

Claim 3.1 The optimal schedule is the minimum cost feasible combination of the internal paths and external edges for all pairs of nodes. We use label setting resource constrained shortest path algorithm [4] for finding a schedule with minimum cost and exactly one lunch period. Since both an internal path and an external edge have to be find, we calculate the shortest paths on the internal edges between each pair of nodes in the graph. Note that the edges are directed from an earlier event to a later one, thus the walks obtained by the label setting algorithm are simple paths. The label setting method is not polynomial in general, but in our case, the resource function has only two values, which ensures the polynomiality. Claim 3.2 The dynamic programming algorithm for column generation runs in polynomial time. If n is the number of the meeting requests, then the graph can have O(n 2 ) edges. Therefore the shortest paths from an arbitrary starting node can be calculated in O(n 2 ) time. This yields O(n 3 ) total running time for finding the optimal schedule. 3.2 Rounding Phase Once we have a solution for RMP, the rounding phase is easy. We simply evaluate each of the K largest primal variables, and compute the increase in the cost function when this variable is set to 1 and all others for the corresponding agent are set to 0. We choose the one resulting in the least increment and fix the corresponding schedule s a for the agent a. Then we remove agent a and all covered requests from the problem and repeat the column generation and rounding phases until the schedule of each agent is fixed. Similar greedy rounding technique is used in airline crew scheduling, as well [2]. 3.3 Implementation Details This optimization problem came from the real life and the proposed solution is currently in production use. To develop a reliable and efficient solution, a couple of technical issues must be dealt with. Because of running time efficiency, the algorithm was implemented in C++ language, and several third party libraries were used. For example, various minor tools of LEMON [5] turned out to be very useful, as well as its highlevel and solver independent LP and MIP interface. The GLPK LP solver library [3] was used as the back-end. Estimating the travel times between the geographical locations is a major

difficulty in practice. Accurate values can be obtained using on-line route planner services, but it is a costly operation, both in terms of money and in terms of time. Therefore a mixed strategy was developed for this purpose. First, a simple straight line distance based estimation is used in the dynamic programming algorithm (using a pessimistic calibration), but the accurate travel times are queried when a column is added to the problem. Moreover, once a travel time between two locations has been queried, this value is stored and it will be used even in the dynamic programming method later on. 4 Experimental Results The algorithm has been evaluated with respect to the running time and objective value aspects using 10 real-life input instances. In these test cases, the number of the agents is between 75 and and 95, and the number of meeting requests is between 100 and 185. Fig. 1(a) shows the change of the objective value in the improvement phase. For numerical comparison, the optimal solution of the relaxed problem was also calculated. Our experiments show that the gap between this value and the obtained integer solution is quite small. It also means that the optimal fractional and integer solutions are usually close to each other for this problem. 5e+06 objective value 570000 objective value fixing points 4.5e+06 560000 4e+06 550000 3.5e+06 540000 3e+06 530000 2.5e+06 520000 2e+06 1.5e+06 510000 1e+06 500000 500000 490000 0 0 200 400 600 800 1000 1200 (a) Improvement phase 480000 Fig. 1. Change in the objective value 0 100 200 300 400 500 600 (b) Rounding phase Fig. 1(b) shows a typical result of the rounding phase. Most of the fixations do not raise the objective value, therefore they follow each other directly. On the other hand, some fixations increase the objective value significantly, but it can be decreased back close to its original value by some improvement steps. The algorithm was tuned by setting the maximum number of generated new columns per rounding phase in order to meet the customer s request. For usual input sizes, the results are obtained within a couple of minutes. This running time is dominated by the web service access.

5 Concluding Remarks During the real life application of the presented method, various new requirements was requested by the customer. We conclude the paper by shortly sketching how these extensions could be integrated into the original framework. A general goal is that a balanced schedule has to be achieved, i.e. both office and visit shifts should be assigned to each agent. Additionally, the experienced agents should get more meetings in a day, while at most one visit should be assigned to the beginners. These requirements are assumed to be soft constraints, thus they are encoded into the objective function. Such constraints can be handled easily with introducing new resources in the dynamic programming algorithm. The number of meetings and the existence of an office shift are registered in the labels. If the meeting number exceeds or does not reach the limit, then the cost of the schedule is increased proportionally to the deficit or the surplus. Moreover, if the agent does not have office or meeting shift, an additional constant is added to the schedule cost value. Since the number of meetings is limited by a small constant, which is independent of the number of agents and requests, the modified algorithm is also polynomial. References [1] Barnhart, C., E. L. Johnson, G. L. Nemhauser, M. W. P. Savelsbergh and P. H. Vance, Branch-and-price: Column generation for solving huge integer programs, Oper. Res. 46 (1998), pp. 316 329. [2] Borndörfer, R., U. Schelten, T. Schlechte and S. Weider, A column generation approach to airline crew scheduling, Technical report, Konrad Zuse Institute, Berlin (2005). [3] GLPK GNU Linear Programming Kit, http://www.gnu.org/software/glpk/ (2009). [4] Irnich, S. and G. Desaulniers, Shortest path problems with resource constraints, Column Generation (2005), pp. 33 65. [5] LEMON Library for Efficient Modeling and Optimization in Networks, http: //lemon.cs.elte.hu/ (2009). [6] Lübbecke, M. E. and J. Desrosiers, Selected topics in column generation, Oper. Res. 53 (2005), pp. 1007 1023.