1 / 34

Building Maintainable Scheduling & Resource Allocation Engines: LILCO Experience

Building Maintainable Scheduling & Resource Allocation Engines: LILCO Experience. Jacob Feldman, IntelEngine, CTO Phone: (732) 287-1531 E-Mail: feldman@ilog.com. Workforce Scheduling.

lelia
Download Presentation

Building Maintainable Scheduling & Resource Allocation Engines: LILCO Experience

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Building Maintainable Scheduling & Resource Allocation Engines: LILCO Experience Jacob Feldman, IntelEngine, CTO Phone: (732) 287-1531 E-Mail: feldman@ilog.com

  2. 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)

  3. 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

  4. 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

  5. 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

  6. 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

  7. Family of Scheduling Engines • Construction Scheduling Engine (CSE) • Designer Scheduling Engine (DSE) CRMS L I B R A R Y CSE DSE NewEngine

  8. 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 L I B R A R Y

  9. Application, Interface, Engine

  10. (Anti)Pattern “Batch Engine”:Typical Architecture DB I N T E R F A C E DB J2 J1 J3 R1 R2 R3 GUI ENGINE Application

  11. 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

  12. Architecture with Multiple Engines I N T E R F A C E ENGINE-1 J2 J1 J3 R3 R1 ENGINE-2 R2 Business Objects APPLICATION ENGINE-N

  13. 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”

  14. Pattern “Interactive Engine”: Typical Architecture GUI ENGINE DB J2 J1 J3 Consistent Constrained Core R1 R2 R3 Persistency Service Live Constrained Objects and Constraints

  15. Interactive Scheduling in LILCO UNIX/NT Server “Thin” Windows Client Construction Engine Designer Engine Reservation Engine Live Constrained Objects Graphical CRMS Views Logical Views (GUI) Live Business Objects Consistent Constrained Core Logical View (MIS) MainFrame Logical View (DB) MIS DB

  16. 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

  17. User Involvement • Development-time involvement An end user should be involved during the entire life-cycle of the constraint-based system • Run-time involvement Specification Implementation Requirements Foundation Actual Use

  18. Maintainability Patterns • Several Popular Patterns • Pattern “Configurator” • Pattern “Strategy” • Pattern “Time versus Quality” • Pattern “Multiple Objectives” • Pattern “What if”

  19. 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.

  20. Pattern “Configurator”: Applicability • Iterative solution improvements • Options of specific constraints • Alternative search or improvement strategies • Alternative objective • Fine tuning • What-if analysis

  21. Pattern “Configurator” • Configuration parameters definition via: • User profile • Environment variables • Configuration file (ini-file) • Run-time parameters • GUI

  22. 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

  23. Pattern “Strategy” • Intent • definition of family of algorithms • Also Known As • Policy • Motivation • Common encapsulation tackling different situations • Confer Gamma’s Strategy

  24. Pattern “Strategy”:Structure Context Strategy ContextInterface() AlgorithmInterface() StrategyA StrategyB StrategyC AlgorithmInterface() AlgorithmInterface() AlgorithmInterface()

  25. 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

  26. Pattern “Time versus Quality” (1) • 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.

  27. 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

  28. 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.

  29. 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)

  30. Incomparable Objectives • Applicability • How to compare “White” and “Sweet” • Objective Weights • Cost =  w[I] * cost[I] i 0 100% White: Sweet: Heavy:

  31. 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

  32. Pattern “What if” • Implementation • change weights and re-run the Engine • set frozen assignments and re-run the Engine • request a “different” solution

  33. 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”

  34. 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

More Related