Presentation is loading. Please wait.

Presentation is loading. Please wait.

INFORMS Montreal 1998 Meeting Building Maintainable Scheduling & Resource Allocation Engines: LILCO Experience Jacob Feldman, IntelEngine, CTO Phone: (732)

Similar presentations


Presentation on theme: "INFORMS Montreal 1998 Meeting Building Maintainable Scheduling & Resource Allocation Engines: LILCO Experience Jacob Feldman, IntelEngine, CTO Phone: (732)"— Presentation transcript:

1 INFORMS Montreal 1998 Meeting Building Maintainable Scheduling & Resource Allocation Engines: LILCO Experience Jacob Feldman, IntelEngine, CTO Phone: (732)

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

3 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

4 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

5 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

6 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

7 INFORMS Montreal 1998 Meeting Family of Scheduling Engines Construction Scheduling Engine (CSE) Designer Scheduling Engine (DSE) CRMS CSE DSE New Engine LIBRARYLIBRARY

8 INFORMS Montreal 1998 Meeting Library of C++ classes for Public Utility Scheduling Utility Scheduler™ as a Library for Public Utility Scheduling Engines Architecture Components Logical Components Graphical Components Design Patterns LIBRARYLIBRARY

9 INFORMS Montreal 1998 Meeting Application, Interface, Engine

10 INFORMS Montreal 1998 Meeting (Anti)Pattern “Batch Engine”: Typical Architecture J1 J2 J3 R1 R2R3 ENGINE DB I N T E R F A C E DB GUI Application

11 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

12 INFORMS Montreal 1998 Meeting Architecture with Multiple Engines ENGINE-N INTERFACEINTERFACE APPLICATION J2 R1 J1 R3 J3 R2 ENGINE-2 ENGINE-1

13 INFORMS Montreal 1998 Meeting Pattern “Engine Factory” Intent –Provide an interface for creating families of related engines Also Known As –Abstract Factory Motivation –Application can select an engine from the family without specifying its concrete classes

14 INFORMS Montreal 1998 Meeting Pattern “Engine Factory”: Structure Client ApplicationAbstractEngineFactory CreateEngineA() CreateEngineB() ConcreteEngineFactory CreateEngineA() CreateEngineB() AbstractEngineA run() appl() ConcreteEngineA run() appl()

15 INFORMS Montreal 1998 Meeting Pattern “Engine Factory”: Sample of the Main module ….. EngineFactory* factory = new IlogFactory(); Engine* engine = factory->makeEngine(&core); if (!engine->run()) core.print("Unsuccessful Engine Run"); else core.printl("Successful Engine Run"); delete engine; delete factory; …..

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

17 INFORMS Montreal 1998 Meeting Pattern “Interactive Engine”: Typical Architecture J1 J2 J3 R1 R2R3 ENGINE DB GUI Persistency Service Consistent Constrained Core Live Constrained Objects and Constraints

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

19 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

20 INFORMS Montreal 1998 Meeting Requirements 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 Actual Use Foundation

21 INFORMS Montreal 1998 Meeting Maintainability Patterns Several Popular Patterns –Pattern “Configurator” –Pattern “Strategy” –Pattern “Time versus Quality” –Pattern “Multiple Objectives” –Pattern “What if”

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

23 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

24 INFORMS Montreal 1998 Meeting Pattern “Configurator” Configuration parameters definition via: –User profile –Environment variables –Configuration file (ini-file) –Run-time parameters –GUI

25 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

26 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

27 INFORMS Montreal 1998 Meeting Pattern “Strategy”: Structure Strategy AlgorithmInterface() Context ContextInterface() StrategyA AlgorithmInterface() StrategyB AlgorithmInterface() StrategyC AlgorithmInterface()

28 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

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

30 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

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

32 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)

33 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:

34 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

35 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

36 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 Check also see PACT’98 tutorial “Design Patterns for Constraint Programming”

37 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


Download ppt "INFORMS Montreal 1998 Meeting Building Maintainable Scheduling & Resource Allocation Engines: LILCO Experience Jacob Feldman, IntelEngine, CTO Phone: (732)"

Similar presentations


Ads by Google