+ All Categories
Home > Documents > Building Maintainable Scheduling & Resource Allocation Engines: LILCO Experience

Building Maintainable Scheduling & Resource Allocation Engines: LILCO Experience

Date post: 05-Jan-2016
Category:
Upload: lelia
View: 36 times
Download: 3 times
Share this document with a friend
Description:
Building Maintainable Scheduling & Resource Allocation Engines: LILCO Experience. Jacob Feldman, IntelEngine, CTO Phone: (732) 287-1531 E-Mail: [email protected]. Workforce Scheduling. - PowerPoint PPT Presentation
34
INFORMS Montreal 1998 Meeting Building Maintainable Scheduling & Resource Allocation Engines: LILCO Experience Jacob Feldman, IntelEngine, CTO Phone: (732) 287-1531 E-Mail: [email protected]
Transcript
Page 1: Building Maintainable Scheduling & Resource Allocation Engines:  LILCO Experience

INFORMS Montreal 1998 Meeting

Building Maintainable Scheduling & Resource Allocation Engines: LILCO Experience

Jacob Feldman, IntelEngine, CTOPhone: (732) 287-1531 E-Mail: [email protected]

Page 2: Building Maintainable Scheduling & Resource Allocation Engines:  LILCO Experience

INFORMS Montreal 1998 Meeting

Workforce Scheduling

• IntelEngine, Inc. uses a constraint-based OO-technology (ILOG) to build customized intelligent engines for workforce scheduling systems

• Two major workforce scheduling projects:– Public Utility Scheduling Engines (LILCO)– Resource Allocation Engine for Strategic

Compliance Planning System (IRS)

Page 3: Building Maintainable Scheduling & Resource Allocation Engines:  LILCO Experience

INFORMS Montreal 1998 Meeting

Workforce Scheduling Engines

• A workforce scheduling system usually allocates workforce to workloads satisfying real-world constraints and optimization objectives

• At the heart of such systems are specialized constraint-based engines that should be:– maintainable– extendable– customizable

Page 4: Building Maintainable Scheduling & Resource Allocation Engines:  LILCO Experience

INFORMS Montreal 1998 Meeting

Utility Scheduler™

Provides required level of service and skills while minimizing workforce expenses

Schedules jobs based on their priorities, resource availability and different optimization goals

Allocates human, equipment and other resources to jobs satisfying user-defined constraints and preferences

Page 5: Building Maintainable Scheduling & Resource Allocation Engines:  LILCO Experience

INFORMS Montreal 1998 Meeting

LILCO Corporate Resource Management System

• More than 1 million customers in Long Island, NY

• More than 5000 employees

• Service territory 1,230 square miles • Hundreds jobs per day

• Job requires a mix of people skills, vehicles and equipment

Page 6: Building Maintainable Scheduling & Resource Allocation Engines:  LILCO Experience

INFORMS Montreal 1998 Meeting

Multi-objective Work Planning and Scheduling

• Travel time minimization• Resource load levelization• Skill utilization (use the least

costly skills/equipment)• Schedule jobs ASAP• Honor user-defined preferences

Page 7: Building Maintainable Scheduling & Resource Allocation Engines:  LILCO Experience

INFORMS Montreal 1998 Meeting

Family of Scheduling Engines

• Construction Scheduling Engine (CSE)

• Designer Scheduling Engine (DSE)

CRMS

CSE

DSE

New Engine

LIBRARY

Page 8: Building Maintainable Scheduling & Resource Allocation Engines:  LILCO Experience

INFORMS Montreal 1998 Meeting

Library of C++ classes forPublic Utility Scheduling

• Utility Scheduler™ as a Library for Public Utility Scheduling Engines

• Architecture Components

• Logical Components

• Graphical Components

• Design Patterns

LIBRARY

Page 9: Building Maintainable Scheduling & Resource Allocation Engines:  LILCO Experience

INFORMS Montreal 1998 Meeting

Application, Interface, Engine

APPLICATION

Interface

Intelligent

Engine

Page 10: Building Maintainable Scheduling & Resource Allocation Engines:  LILCO Experience

INFORMS Montreal 1998 Meeting

(Anti)Pattern “Batch Engine”:Typical Architecture

J1 J2 J3

R1 R2 R3

ENGINE

DB

INTERFACE

DB

GUI

Application

Page 11: Building Maintainable Scheduling & Resource Allocation Engines:  LILCO Experience

INFORMS Montreal 1998 Meeting

Batch Constraint Satisfaction:Pros and Cons

• Pros:– Simplified development– Clear demarcation between the engine’s

developer and actual customer problems (pros?)

• Cons:– Inconsistency (uncontrolled manual overrides)– Inefficiency (schedule “all”)– Redundant Functionality (for GUI and Engine)– Difficulties to interpret scheduling results

Page 12: Building Maintainable Scheduling & Resource Allocation Engines:  LILCO Experience

INFORMS Montreal 1998 Meeting

Architecture with Multiple Engines

ENGINE-N

INTERFACEAPPLICATION

J2

R1

J1

R3

J3

R2ENGINE-2

ENGINE-1

Page 13: Building Maintainable Scheduling & Resource Allocation Engines:  LILCO Experience

INFORMS Montreal 1998 Meeting

Scheduling Reality means Instant Changes

• When it comes to managing jobs and resources, change is the name of the game

• Users want to: – make changes quickly and easily– update and fine-tune schedule in a flash,

whether they’re altering jobs’ start time/duration or adjusting resources.

• Solution: from “batch” to “interactive”

Page 14: Building Maintainable Scheduling & Resource Allocation Engines:  LILCO Experience

INFORMS Montreal 1998 Meeting

Pattern “Interactive Engine”: Typical Architecture

J1 J2 J3

R1 R2 R3

ENGINE

DB

GUI

Persistency Service

Consistent Constrained Core

Live Constrained Objects and Constraints

Page 15: Building Maintainable Scheduling & Resource Allocation Engines:  LILCO Experience

INFORMS Montreal 1998 Meeting

Interactive Scheduling in LILCOUNIX/NT Server

DB

DesignerEngine

ConstructionEngine

“Thin”Windows Client

MainFrame

MIS

Logical View(DB)

LiveConstrained

Objects

LiveBusinessObjects

ReservationEngine

LogicalViews(GUI)

Graphical

CRMSViews

Con

sist

ent

Con

stra

ined

Cor

e

LogicalView(MIS)

Page 16: Building Maintainable Scheduling & Resource Allocation Engines:  LILCO Experience

INFORMS Montreal 1998 Meeting

Interactive Constraint Satisfaction: Pros and Cons

• Pros:– Tight integration between GUI and Engines– Efficiency– What-if analysis support – Ability of manual scheduling with controlled

constraint propagation– Simplified interpretation of scheduling results

• Cons:– Complex development

Page 17: Building Maintainable Scheduling & Resource Allocation Engines:  LILCO Experience

INFORMS Montreal 1998 Meeting

Requirements

User Involvement

• Development-time involvementAn end user should be involved during the entire life-cycle of the constraint-based system

• Run-time involvement

Specification

Implementation

Actual Use

Foundation

Page 18: Building Maintainable Scheduling & Resource Allocation Engines:  LILCO Experience

INFORMS Montreal 1998 Meeting

Maintainability Patterns

• Several Popular Patterns– Pattern “Configurator”

– Pattern “Strategy”

– Pattern “Time versus Quality”

– Pattern “Multiple Objectives”

– Pattern “What if”

Page 19: Building Maintainable Scheduling & Resource Allocation Engines:  LILCO Experience

INFORMS Montreal 1998 Meeting

Pattern “Configurator”

• Intent– Handling data not specific to the problem but to

the way it is going to be solved or optimized

• Also Known As– Tweaker, Fine-Tuner

• Motivation– Need to take into account user specific, and data

specific information. As well, the end-user may help choosing the strategy.

Page 20: Building Maintainable Scheduling & Resource Allocation Engines:  LILCO Experience

INFORMS Montreal 1998 Meeting

Pattern “Configurator”: Applicability

• Iterative solution improvements• Options of specific constraints• Alternative search or improvement

strategies• Alternative objective• Fine tuning• What-if analysis

Page 21: Building Maintainable Scheduling & Resource Allocation Engines:  LILCO Experience

INFORMS Montreal 1998 Meeting

Pattern “Configurator”

• Configuration parameters definition via:– User profile– Environment variables– Configuration file (ini-file)– Run-time parameters– GUI

Page 22: Building Maintainable Scheduling & Resource Allocation Engines:  LILCO Experience

INFORMS Montreal 1998 Meeting

Pattern “Configurator”:Sample

WEIGHT_OF_LSD=4

WEIGHT_OF_PRIORITY=20

WEIGHT_OF_TRAVEL=75

TRAVEL_MAX=200

WEIGHT_OF_HUMAN_EXCESS=30

WEIGHT_OF_VEHICLE_EQUIP_EXCESS=10

WEIGHT_QUALIFICATION_DISTANCE=10

Page 23: Building Maintainable Scheduling & Resource Allocation Engines:  LILCO Experience

INFORMS Montreal 1998 Meeting

Pattern “Strategy”

• Intent– definition of family of algorithms

• Also Known As– Policy

• Motivation– Common encapsulation tackling different

situations

• Confer Gamma’s Strategy

Page 24: Building Maintainable Scheduling & Resource Allocation Engines:  LILCO Experience

INFORMS Montreal 1998 Meeting

Pattern “Strategy”:Structure

Strategy

AlgorithmInterface()

Context

ContextInterface()

StrategyA

AlgorithmInterface()

StrategyB

AlgorithmInterface()

StrategyC

AlgorithmInterface()

Page 25: Building Maintainable Scheduling & Resource Allocation Engines:  LILCO Experience

INFORMS Montreal 1998 Meeting

Pattern “Strategy” :Sample

• Two strategies from LILCO engines:– Assign Resources to Jobs

• Select the next most important job

• Choose the cheapest resource for this job

– Assign Jobs to Resources• For the latest scheduled crew of resources find the

most important job this crew can do next

Page 26: Building Maintainable Scheduling & Resource Allocation Engines:  LILCO Experience

INFORMS Montreal 1998 Meeting

• Intent– Setting an artificial limit to stop a search

• Also Known As– Watchdog

• Motivation– Need to be protected against problem not fitting

the tried heuristic,– Often, a problem is too hard and need to be

considered as a problem without solution.

Pattern “Time versus Quality” (1)

Page 27: Building Maintainable Scheduling & Resource Allocation Engines:  LILCO Experience

INFORMS Montreal 1998 Meeting

Pattern “Time versus Quality” (2)

• Applicability– Iterative improvements– Optimization by iterative relaxation

• Implementation– Based on the CPU time– Based on the backtrack count– Based on the “tried” percentage– Prorated enumeration– User interrupt

Page 28: Building Maintainable Scheduling & Resource Allocation Engines:  LILCO Experience

INFORMS Montreal 1998 Meeting

Pattern “Multiple Objectives”(1)

• Intent – Giving the respective importance to different

optimization objectives• Also Known As

– Weighted Cost• Motivation

– When your objective is clearly decomposed into comparable/incomparable sub-objective, you want to give the user an opportunity of tuning what his/her real objective is.

Page 29: Building Maintainable Scheduling & Resource Allocation Engines:  LILCO Experience

INFORMS Montreal 1998 Meeting

Pattern “Multiple Objectives”(2)

• Applicability– Aggregation of the quality of the solution– Several objectives without clear prioritization

• Sample Implementations– GUI Sliders (input) – Pie Chart, Bar Chart (output)

Page 30: Building Maintainable Scheduling & Resource Allocation Engines:  LILCO Experience

INFORMS Montreal 1998 Meeting

• Applicability– How to compare “White” and “Sweet”

• Objective Weights– Cost = w[I] * cost[I] i

Incomparable Objectives

0 100%White:Sweet:Heavy:

Page 31: Building Maintainable Scheduling & Resource Allocation Engines:  LILCO Experience

INFORMS Montreal 1998 Meeting

Pattern “What if”

• Intent– Allow the user helping in the solution search

• Also Known As– Driver

• Motivation– Combine the end-user expertise with the

computation power– Limit exhaustive search, add “determinism”– Take into account preferences not expressed in

the model

Page 32: Building Maintainable Scheduling & Resource Allocation Engines:  LILCO Experience

INFORMS Montreal 1998 Meeting

Pattern “What if”

• Implementation

– change weights and re-run the Engine– set frozen assignments and re-run the Engine– request a “different” solution

Page 33: Building Maintainable Scheduling & Resource Allocation Engines:  LILCO Experience

INFORMS Montreal 1998 Meeting

Over-Constrained Problems

• “...rather than searching for a solution to a problem, we must, in a sense, search for a problem we can solve” (Eugene Freuder)

• Patterns for Partial Constraint Satisfaction could be found in “Over-Constrained Systems”, 1996, ISBN 3-540-61479-6

• Check also www.ilog.com: see PACT’98 tutorial “Design Patterns for Constraint Programming”

Page 34: Building Maintainable Scheduling & Resource Allocation Engines:  LILCO Experience

INFORMS Montreal 1998 Meeting

Conclusion

• Consider a Family of customizable multi-objective intelligent engines

• Be prepared for the migration from Batch to Interactive Scheduling

• Keep users involved during the entire system life-cycle

• Use common design patterns


Recommended