Using Nested Column Generation & Generic Programming to solve Staff Scheduling Problems:

Similar documents
Scheduling Doctors to Clinical and Surgical Time Slots: A Column Generation Approach

Transportation Timetabling

Solution of the Airline ToD Problem using Severely Limited Subsequence

Column Generation. A short Introduction. Martin Riedler. AC Retreat

Gateways Placement in Backbone Wireless Mesh Networks

Subsequence Generation for the Airline Crew Pairing Problem

10/5/2015. Constraint Satisfaction Problems. Example: Cryptarithmetic. Example: Map-coloring. Example: Map-coloring. Constraint Satisfaction Problems

A Student Scheduling System for Federal Law Enforcement Training Centers (FLETC)

THERE is a growing need for high-performance and. Static Leakage Reduction Through Simultaneous V t /T ox and State Assignment

Control of the Contract of a Public Transport Service

Link and Link Impedance 2018/02/13. VECTOR DATA ANALYSIS Network Analysis TYPES OF OPERATIONS

2 person perfect information

Part VII: VRP - advanced topics

Electronic Companion to Accompany. Long Range Planning for a West Texas Catholic Diocese

Relay Placement in Sensor Networks

Games and Adversarial Search II

Lecture 13 Register Allocation: Coalescing

Optimal Multicast Routing in Ad Hoc Networks

A GRASP HEURISTIC FOR THE COOPERATIVE COMMUNICATION PROBLEM IN AD HOC NETWORKS

ST NICHOLAS COLLEGE HALF YEARLY PRIMARY EXAMINATIONS. February YEAR 6 Mathematics (Written Paper) TIME: 1 h 15 min.

Locally Informed Global Search for Sums of Combinatorial Games

GMAT-Arithmetic-4. Counting Methods and Probability

MASSACHUSETTS INSTITUTE OF TECHNOLOGY

Adverserial Search Chapter 5 minmax algorithm alpha-beta pruning TDDC17. Problems. Why Board Games?

Constraint Satisfaction Problems: Formulation

CS 540-2: Introduction to Artificial Intelligence Homework Assignment #2. Assigned: Monday, February 6 Due: Saturday, February 18

Managing Time-Variant Data. Graham Witt

On the Combination of Constraint Programming and Stochastic Search: The Sudoku Case

Adversary Search. Ref: Chapter 5

Date. Probability. Chapter

Two-stage column generation and applications in container terminal management

MANUAL. PT Series 365 Day Annual Timer. Tel:

GTE LONG DISTANCE TELECOMMUNICATIONS SERVICE A. SPECIAL CONDITIONS 1 B. RATES 19

CS188 Spring 2014 Section 3: Games

Chapter 12. Cross-Layer Optimization for Multi- Hop Cognitive Radio Networks

22c:145 Artificial Intelligence

Branch-and-cut for a real-life highly constrained soccer tournament scheduling problem

An efficient and robust approach to generate high quality solutions for the Traveling Tournament Problem

Tutorial: Constraint-Based Local Search

Lectures: Feb 27 + Mar 1 + Mar 3, 2017

Introduction to Genetic Algorithms

Written examination TIN175/DIT411, Introduction to Artificial Intelligence

A GRASP heuristic for the Cooperative Communication Problem in Ad Hoc Networks

CIS 480/899 Embedded and Cyber Physical Systems Spring 2009 Introduction to Real-Time Scheduling. Examples of real-time applications

CS 188 Introduction to Fall 2014 Artificial Intelligence Midterm

WHAT TO EXPECT IN 20I8

SERIES Addition and Subtraction

Module 3. Problem Solving using Search- (Two agent) Version 2 CSE IIT, Kharagpur

Core Learning Standards for Mathematics Grade 1 SAMPLE. Mondays p. 58 #3 4 p. 67 #2 5 p. 76 #2 5

Gas Pipeline Construction

2.1. Pictograms. 2 Displaying data. GCSE LINKS AF: 12.1 Pictograms; BF: Unit Pictograms; S: 2.8 Pictograms. Key points

LIGHTING CONTROL PANEL

Blockage and Voltage Island-Aware Dual-VDD Buffered Tree Construction

Scheduling. Radek Mařík. April 28, 2015 FEE CTU, K Radek Mařík Scheduling April 28, / 48

Homework Assignment #1

Evaluation of Algorithm Performance /06 Gas Year Scaling Factor and Weather Correction Factor

Contents. MA 327/ECO 327 Introduction to Game Theory Fall 2017 Notes. 1 Wednesday, August Friday, August Monday, August 28 6

CSC 380 Final Presentation. Connect 4 David Alligood, Scott Swiger, Jo Van Voorhis

isudoku Computing Solutions to Sudoku Puzzles w/ 3 Algorithms by: Gavin Hillebrand Jamie Sparrow Jonathon Makepeace Matthew Harris

Core Learning Standards for Mathematics Grade 6

EMPLOYEE SELF SERVICE (ESS) The University of Wisconsin-Eau Claire Human Resource s Department

The most difficult Sudoku puzzles are quickly solved by a straightforward depth-first search algorithm

Automatic Package and Board Decoupling Capacitor Placement Using Genetic Algorithms and M-FDM

CS188 Spring 2010 Section 3: Game Trees

The Path Restoration Version of the Spare Capacity Allocation Problem with Modularity Restrictions: Models, Algorithms, and an Empirical Analysis

Spring 06 Assignment 2: Constraint Satisfaction Problems

CSCI 4150 Introduction to Artificial Intelligence, Fall 2004 Assignment 7 (135 points), out Monday November 22, due Thursday December 9

Maximum Contiguous Subarray Sum Problems

Uncertainty Feature Optimization for the Airline Scheduling Problem

Chapter 3 Chip Planning

Caching Search States in Permutation Problems

Pushing the rule engine to its limits with Drools Planner. Geoffrey De Smet

Module 7-4 N-Area Reliability Program (NARP)

Aircraft routing for on-demand air transportation with service upgrade and maintenance events: compact model and case study

physicsandmathstutor.com

W-CDMA network design. Joakim Kalvenes. Jeffery Kennington and Eli V. Olinick

: Principles of Automated Reasoning and Decision Making Midterm

Unit 12: Artificial Intelligence CS 101, Fall 2018

Rating and Generating Sudoku Puzzles Based On Constraint Satisfaction Problems

Generalized Game Trees

CS510 \ Lecture Ariel Stolerman

Lecture5: Lossless Compression Techniques

Automated Planning for Spacecraft and Mission Design

OPERATING INSTRUCTIONS ARE ON PAGE 5. SECTION 2 Technical Data Transmitter Unit. RVHT 2 MULTI-FIT Programmable R/F Thermostat-Pair SECTION 1

0:45. year. Use 2B or HB pencil only. Time available for students to complete test: 45 minutes

arxiv: v1 [cs.dm] 2 Jul 2018

Fast Placement Optimization of Power Supply Pads

Randomized Motion Planning for Groups of Nonholonomic Robots

Managing Metastability with the Quartus II Software

6.02 Introduction to EECS II Spring Quiz 1

A NUMBER THEORY APPROACH TO PROBLEM REPRESENTATION AND SOLUTION

Correlation of USA Daily Math Grade 2 to Common Core State Standards for Mathematics

Homework Assignment #2

37 Game Theory. Bebe b1 b2 b3. a Abe a a A Two-Person Zero-Sum Game

HIGH SCHOOL MATHEMATICS CONTEST Sponsored by THE MATHEMATICS DEPARTMENT of WESTERN CAROLINA UNIVERSITY. LEVEL I TEST March 23, 2017

Run-Length Based Huffman Coding

Online Supplement for An integer programming approach for fault-tolerant connected dominating sets

Performance Analysis of Cognitive Radio based on Cooperative Spectrum Sensing

SA-027HQ 365-Day Annual Timer

A. Rules of blackjack, representations, and playing blackjack

Transcription:

Using Nested Column Generation & Generic Programming to solve Staff Scheduling Problems: Using Compile-time Customisation to create a Flexible C++ Engine for Staff Rostering Andrew Mason & Ed Bulog Department of Engineering Science University of Auckland Anders Dohn Technical University of Denmark Department of Management Engineering Integer Programming Down Under: Theory, Algorithms and Applications July 6 8, 2011 Newcastle NSW Australia Andrew Mason a.mason@auckland.ac.nz Anders Dohn - adh@imm.dtu.dk 1

OpenSolver Open source linear programming in Excel using COIN-OR s CBC engine www.opensolver.org

OpenSolver Free Open Source Excel plugin Solver-compatible LP/IP Solver Excel 2003 and later No artificial size limits Uses COIN-OR BCP Faster than Solver Advanced Features Model visualisation Equation view of model Command line control of CBC... AutoModel and better GUI Next release

OpenSolver On-sheet Model Visualisation Available at: opensolver.org

Using Nested Column Generation & Generic Programming to solve Staff Scheduling Problems: Using Compile-time Customisation to create a Flexible C++ Engine for Staff Rostering Andrew Mason & Ed Bulog Department of Engineering Science University of Auckland Anders Dohn Technical University of Denmark Department of Management Engineering Integer Programming Down Under: Theory, Algorithms and Applications July 6 8, 2011 Newcastle NSW Australia Andrew Mason a.mason@auckland.ac.nz Anders Dohn - adh@imm.dtu.dk 5

Optimised Dynamic Rosters Rosters are constructed just in time to match a particular period s requirements m t w t f s s m t w t f s s m t w t f s s m t w t f s s Peter D D D D D N N N N N N D D D D D D N Paul D D D D N N N N N N D D D D D? D N N N N Jo N N N N D D D D D D N N N N N N Mike N N A A A A D D D D D D N N N N N N D Sue N N N A A A D D D N N N N N N D D D D Tom D D D D D D N N N N N N D D D D D D Applications for Dynamic Optimised Rosters: Nurse Rostering Casinos Call Centres Airlines etc 7

Example Nurse Rostering 28 day roster period Five different shifts a day: M, A, N, 6, 8 All shifts 8 hours in duration Contract specifies paid hours requirements: 80, 72, 64, 56, 40, 32, 30, or 28 hours/fortnight Management specifies work requirements: Week Days Weekends M A N 6 8 M A N 6 8 4 10 9 =13 =4 =8 =3 6 =8

Example Nurse Rostering Complex rules and quality measures Max number of days on in succession or in a week. Some combinations of on/off days prohibited. A minimum rest period after a shift is required. Specific shift transitions are not allowed. Split weekends are undesirable. Single days-on / days-off are undesirable. Staff members can have individual preferences for shifts, days-on, days off Ignore: staff skills, shifts of different lengths, and work requirements relating to overlapped shifts 14

Example Solution 28 day Roster 1 2 3 4 5 6 7 8 9 10 11 12 13 14 M T W Th F Sa Su M T W Th F Sa Su Nurse 1 M M M M N N N N N Nurse 2 N N N N N N M M M M Nurse 3 6 6 6 6 8 8 8 8 N N Nurse 86 A A A A D D D D 15 16 17 18 19 20 21 22 23 24 25 26 27 28 M T W Th F Sa Su M T W Th F Sa Su Nurse 1 6 6 6 6 6 6 6 6 A A A A Nurse 2 M M M M M M M A A A Nurse 3 N N N N N N N Nurse 86 N N N N A A A A Hrs 72 80 56 64 Hrs 72 80 56 64 Each nurse works their own personalised 28-day roster-line

Set Partitioning Formulation Nurse 1 Nurse 2 Nurse n Nurse 1 1 1 1 = 1 Nurse 2 1 1 1 = 1 Nurse n 1 1 1 = 1 Mon M 1 1 1 1 4 A 1 10 N 5 8 1 1 9 6 1 1 1 13 Tue M 1 4 A 1 1 10 N 1 1 5 8 1 1 9 6 1 1 1 13 Sun M 1 4 A 1 1 10 N 1 1 5 8 1 1 9 6 1 1 1 13 24

Nested Column Generation Approach An individual staff member s roster line is composed of work-stretches... M T W Th F Sa Su M T W Th F Sa Su M M M N N N N N N Work-stretch Work-stretch Roster-line quality sum of work-stretch qualities Use a nested column generation approach: Problem 1: Generate many good work-stretches Problem 2: Combine work-stretches to generate a roster-line (i.e. an entering column) 25

Generating Columns: Step 1- Build Work-stretches Find most negative reduced cost workstretches for staff member i One best workstretch for each combination of: start day end day hours worked (any other resources) Need to solve resource constrained shortest path problems M Tu W Th F Sa Su M Tu 6 6 6 6 6 6 6 6 M M M M M M M M M M M A 6 6 6 6 6 6 8 A A A fast to solve as nested 27 A N N N N 6 6 6 6 6

Step 2 - Combine work-stretches to form the best roster-line M T W Th F SaSu M T W Th F SaSu A A A Solve resource 6 6 constrained shortest path problem from day 1 to 28 through work-stretch arcs Produces an entering column (if one exists) Nested two step process is more efficient than 28 solving a single large problem M M M M

Progressing towards Generality Engineering Science Dept contributions Mark Smith Nurse Rostering Introduced nested column generation Hard to generalise for a new problem fast run times David Nielsen TabCorp rostering (Melbourne Cup) Introduced an internal rule modeling language easier to generalise Did not use column generation, so suited to small problems only. Faram G. Engineer Flexible C++ Rostering Engine Combines nested column generation with rule modelling flexibility Proven ability to solve a wide range of problems Implements a more nested column generator 33

Nested Column Generation Work-stretch Roster-line Off-stretch On-stretch Off-stretch On-stretch Shift Shift Shift Shift Shift Nurse 1 Nurse 2 Nurse 3 Nurse 4 Min req. 1 4 3 1 4 3 1 4 3 1 4 3 1 4 3 1 2 1 1 2 1 0:00 8:00 16:00 0:00 8:00 16:00 Monday Tuesday 0:00 8:00 16:00 0:00 8:00 16:00 0:00 8:00 16:00 0:00 8:00 16:00 0:00 8:00 16:00 0:00 Wednesday Thursday Friday Saturday Sunday 34

Nested Column Structure Consider a roster line: M T W T F S S M T W T F S S M T W T F S S M T W T F S S Nurse 1 M M - N - M M M - - N N - - M M M M M M - - - - M M M N Constructing this line might include the steps:

Nested Column Structure Consider a roster line: M T W T F S S M T W T F S S M T W T F S S M T W T F S S Nurse 1 M M - N - M M M - - N N - - M M M M M M - - - - M M M N Constructing this line might include the steps: OnStretch + Shift OnStretch: M M + M M M M

Nested Column Structure Consider a roster line: M T W T F S S M T W T F S S M T W T F S S M T W T F S S Nurse 1 M M - N - M M M - - N N - - M M M M M M - - - - M M M N Constructing this line might include the steps: OnStretch + Shift OnStretch: M M + M M M M OnStretch + OffStretch Work Stretch: M M M + - - M M M - -

Nested Column Structure Consider a roster line: M T W T F S S M T W T F S S M T W T F S S M T W T F S S Nurse 1 M M - N - M M M - - N N - - M M M M M M - - - - M M M N Constructing this line might include the steps: OnStretch + Shift OnStretch: M M + M M M M OnStretch + OffStretch Work Stretch: M M M + - - M M M - - Roster line + Work Stretch (Longer) Roster line: M M - N - + M M M - - M M - N - M M M - -

Nested Column Structure Could construct lists of all possible entities, hence giving the best roster-line (=entering column) OnStretch + Shift OnStretch: M M + M M M M OnStretch + OffStretch Work Stretch: M M M + - - M M M - - Roster line + Work Stretch (Longer) Roster line: M M - N - + M M M - - M M - N - M M M - - But, if we store these cleverly introducing states & dominance rules, and keeping only the best - we have a nested dynamic programming framework for solving resource constrained shortest paths. 42

Nested Column Structure Legality rules and roster quality measures can be expressed in terms of these entities and associated attribute (resource) values Example: The paid hours must be 72 in each fortnight To enforce this, we have to track the paid hours within each fortnight 43

Attribute Value Calculations Example: Paid Hours attribute: OnStretch + Shift OnStretch: M M + M M M M 16 + 8 24 Roster line + Work Stretch (Longer) Roster line: M M - N - + M M M - - M M - N - M M M - - 24 + 24 48 More complex calculations needed for other attributes Attributes allow us to determine: Determine legality and quality (ie cost) of entities, and Implement dominance rules

Software Implementations Faram Engineer s C++ Code: Shifts, on-stretch, off-stretch, work-stretch, roster-line classes Well defined rules for creating sets of these User defined attributes, with rules for calculating values & dominance Powerful, but lots of C++ run-time overhead Anders Dohn s Generic Programming C++ Code: Compile-time Customisation = Generic Programming (eg STL) Customised C++ code produced for each new problem Customisation uses #define language and Boost extensions Uses #defines as the roster modelling language A single include file defines a roster problem Customised code fully optimised at compile time - fast 46

New Customised Code Framework User wants a shift to have start-time, end-time, & paid-hours: # define SHIFT_ATTRIBUTES \ ATT( (starttime, int, "Starttime"), \ ATT( (endtime, int, "Endtime"), \ ATT( (paidhours, int, "PaidHours"), \ END ))) This is compiled to give C++ code with these attributes: class Shift { public: Attribute<10, int,... > starttime; Attribute<11, int,... > endtime; Attribute<12, int,... > paidhours; } 47

New Customised Code Framework User wants an OnStretch to have a paidhours... ATT( (paidhours, int, "paidhours",..., o.paidhours + s.paidhours,...) \.. to be calculated by adding paidhours: OnStretch + Shift OnStretch: M M + M M M M 16 + 8 24 The user s calculation defined above is inserted into the code: OnStretch() { paidhours = o.paidhours + s.paidhours; } 49

New Customised Code Framework Value of paidhours can control feasibility, dominance & cost: ATT( (paidhours, int, "paidhours", feas_all, domi_exact, cost_none, o.paidhours + s.paidhours, s.paidhours) \ The highlighted terms determine: feas_all: What values are feasible for this attribute domi_exact: Controls dominance within the column generator cost_none: How this attribute contributes to the cost (quality) of the on-stretch 50

Results Implemented in COIN-OR BCP framework Tested on 3 real problems Successfully modelled all rostering rules Restricted generation runs => heuristic Problem NZ Denmark1 Denmark2 Number of Staff 85 28 40 Number of Shift Types 5 4 18 Scheduling Period 4 weeks 4 weeks 4 weeks Heuristic root node LP value 19.667 288.822 1.5 Heuristic first integer solution value 23 296 12 Heuristic best feasible integer value 23 281 1 Seconds in root node 7.5 89.63 73.48 Seconds to find 1st integer solution 23.95 180.77 509.92 Seconds to find best integer solution 23.95 186.2 532.64 Total runtime 26.91 192.56 552.16 Runtime Split: Solving LP 41.30% 10.20% 79.10% Branching 1.20% 0.20% 0.20% Overhead 13.10% 3.80% 4.30% Pricing 44.50% 85.80% 16.40% Pricing Time Split: Setup 5.00% 1.40% 0.80% On-stretch 6.10% 0.70% 5.90% Work-stretch 25.70% 1.20% 8.60% Rosterline 7.70% 82.60% 1.10% Tree size 771 371 675 Max depth 383 185 280 Pricing problems solved 4,445 1,489 4,800 Columns generated 1,919 7,982 19,576 True root LP value 19.667 234 1 Optimal IP solution value 23 (235) 1 Seconds to find true root LP value 8.08 2,024.72 2,639.36 52 Seconds to find optimal IP solution 27.48 > 10 h 5,652.58

First International Nurse Rostering Competition 2010 See www.kuleuven-kortrijk.be/nrpcompetition CODeS research group, Katholieke Universiteit Leuven, Belgium SINTEF research group in Norway University of Udine, Italy. Results presented at PATAT 2010. Random rostering problem instances: Sprint Instances (about 10 seconds allowed) Medium Distance Instances (about 10 minutes allowed) Long Distance Instances (about 10 hours allowed) Only two hard constraints to satisfy: All shift demands must be met at equality Each nurse can work at most one shift (starting) on each day Other soft constraints violations penalised in objective 53

First International Nurse Rostering Competition 2010 The objective is to minimise the weighted sum of all soft-constraint violations, which may include: Min/Max number of total shift assignments consecutive shift assignments and consecutive days off consecutive working weekends Max working weekends in four weeks Complete working weekends Identical shift types during a weekend Exclusion of unwanted patterns of shifts For example, working a Night shift before a free weekend Successfully modelled all of these using our system 54

Reducing Run Times Local Search using Neighbourhood Column Generation Apply neighbourhood restrictions within generator Perhaps better for problems with large IP gaps? Elastic Constraint Branches Prevent fractionation across multiple optimal solutions Dual Stabilisation Add this to the COIN-OR BCP software (work in progress) What is the state of the art for the update regime? 58

Neighbourhood Column Generation Each nurse is assigned an incumbent roster-line from some initial feasible solution Neighbourhood column generation For each person, generate roster-lines which differ by at most N shifts from their current incumbent roster-line Solve to find any better integer solution and then update incumbent Repeat until no improvement found 60

Objective Neighbourhood Column Generation: Objective Function Values against Time 300 250 Option 2: Run each neighbourhood constrained problem until any better integer solution is found, update incumbent and repeat. Solution time without the local search: 3833s 200 150 100 50 331s - a 91% reduction 1252s - a 33% reduction 0 0 200 400 600 800 1000 1200 1400 Time (s) 1 Change 2 Changes 3 Changes 5 Changes Optimal 63

Elastic Constraint Branches There are many equivalent columns for each employee Caused by equivalent shift choices facing each employee Introduce small random costs (preferences) for each employee-shift assignment Allows generator to differentiate between shifts Gives different shifts to different staff Small cost perturbations do not affect the optimal solution, but guide solution towards a particular optimal solution These are elastic constraint branches as implemented when extending Wedelin Algorithm to rostering problems 64

900 800 LP Objective and Incumbent Solution against Time (No Random Perturbations) 700 600 500 400 300 200 100 0 0 200000 400000 600000 800000 1000000 1200000 1400000 LP-value Incumbent (Upper bound) 900 800 LP Objective and Incumbent Solution against Time (With Random Perturbations) 700 600 500 400 300 200 100 0 0 200000 400000 600000 800000 1000000 1200000 1400000 LP-value Incumbent (Upper bound) 65

5 Dual for Shift Constraint #10 (No Random Perturbations) 4 3 2 1 0-1 0 500 1000 1500 2000-2 -3-4 -5 5 Time (s) Dual for Shift Constraint #10 (With Random Perturbations) 4 3 2 1 0-1 0 500 1000 1500 2000-2 -3-4 -5 Time (s) 70

Competition Problem Results Instance Name sprint01 sprint02 sprint03 medium01 medium02 medium03 long01 long02 long03 Our Standard Approach Random Cost Perturbations Neighbourhood Column Generation 3 change neighbourhood 5 change neighbourhood Neighbourhood Col Gen and Random Cost Perturbation 3 change 5 change neighbourhood neighbourhood 56* 56* 57 57 56* 56* (1709s) (618s) (192s) (149s) (579s) (588s) 58* 58* 62 58* 59 59 (2087s) (1339s) (191s) (609s) (473s) (495s) 51* 51* 55 51* 53 51* (1555s) (691s) (188s) (2065s) (1121s) (1777s) 240* 240* 243 242 246 240* (1265s) (541s) (754s) (1316s) (3222s) (1193s) 240* 240* 244 240* 243 240* (1372s) (456s) (451s) (684s) (4509s) (728s) 236* 236* 242 237 238 236* (2619s) (976s) (599s) (528s) (5264s) (1745s) out of 197* 206 197* 201 197* memory (777s) (832s) (1956s) (5402s) (1356s) out of 219* 230 221 228 220 memory (827s) (678s) (5580s) (7576s) (2447s) out of 240* 241 240* 240* 240* memory (760s) (1039s) (1147s) (7303s) (1483s) Instance Number Number Number Number of Number Number of Number of Number of Type of Staff of Rows of Days Shift Types of Shifts Contracts Patterns Requests sprint 10 162 28 4 152 4 3 450 medium 31 639 28 4 608 4 0 682 long 49 749 28 5 700 3 3 2695 Legend Objective *=optimal (Time to find best integer solution) Best performer 79

Conclusions Flexible rostering software developed Powerful modelling framework Complex attribute handling to model roster rules Can model all problems tested Efficient nested column generator Exploits problem structure, but still easy to customise Framework implemented using generic programming Compile-time customisation => 20x faster Neighbourhood column generation Faster solve times for some problems Elastic constraint branches help integrality 80