Jacob feldman ph d jacobfeldman@openrules com 732 662 7233 nj office 732 306 0685 cell
1 / 42

Jacob Feldman, Ph.D. jacobfeldman@openrules.com 732-662-7233 NJ office 732-306-0685 cell - PowerPoint PPT Presentation

  • Uploaded on

Experience with CP Products & Applications. Jacob Feldman, Ph.D. jacobfeldman@openrules.com 732-662-7233 NJ office 732-306-0685 cell. Outline. Customer’s CP Applications Brief Review Two examples of workforce management apps

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'Jacob Feldman, Ph.D. jacobfeldman@openrules.com 732-662-7233 NJ office 732-306-0685 cell' - azuka

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Jacob feldman ph d jacobfeldman@openrules com 732 662 7233 nj office 732 306 0685 cell l.jpg

Experience with

CP Products & Applications

Jacob Feldman, Ph.D.


732-662-7233 NJ office

732-306-0685 cell

Outline l.jpg

  • Customer’s CP Applications

    • Brief Review

    • Two examples of workforce management apps

    • From Batch to Interactive Engines

  • Interactive Constrained Environments

    • Architecture

    • Constrained GUI and Interactive Constraint Engine

    • Practical Examples

Selected customer s applications l.jpg
Selected Customer’s Applications

  • IRS, Washington DC

    • Strategic Workforce Planning: integrated use of constraint and linear programming. The objective: maximize long-term revenue given an initial workforce, potential workload, and expected budget.

  • Major Wall Street Institutions

    • Decision engine for a wealth management system

    • Minimization of Rules Violations

    • Rule Processing System for large financial portfolios integrated with ILOG CPLEX

  • Keyspan Energy, Long Island

    • Interactive Scheduling engines for maintenance and construction jobs

  • FAA, Maryland

    • Decision Support Tool for the Reduced Vertical Separation Minimum.RVSM was intended to increase airspace capacity, improve aircraft operating efficiency at the minimum cost.  Developed a Logistic Simulator to monitor airspace operations that allocated scarce resources to flights and airports in a way to provide the required coverage of flights over a fixed period. 

  • Selected customer s applications 2 l.jpg
    Selected Customer’s Applications (2)

    • Exigen Group

      • Optimal selection of calling plans for telecom vertical solution

      • Insurance underwriting

  • CPRail, Canada

    • Grain Train Configuration and Scheduling

  • Sandia National Labs, New Mexico

    • Supply Chain Scheduling for textile industry

  • FastMan (Ottawa) / Manugistics

    • Manufacturing Scheduling Engine for a supply-chain software vendor

  • Solution Dynamics / I2 Technologies

    • Optimal Container Loading for Warehouse management systems

  • CNN, Atlanta

    • Advertisement/Show Scheduling

  • MCI, Colorado Springs

    • Configuration and scheduling system for teleconferencing

  • Solution Dynamics, NJ

    • Transportation routing with different business constraints to possible routes

  • Irs strategic compliance planning model l.jpg
    IRS Strategic Compliance Planning Model

    • Internal Revenue Service (IRS): 150,000 people nationwide, virtually unlimited workload, limited yearly budget. US Government wants to make IRS more revenue-driven while satisfying many other constraints and policies

    • The objective of the SCPM is to identify that allocation of resources by location, position, and grade for each year of a defined planning period which will tend to maximize the collection of taxes owed (including direct and indirect revenues).

    • In two words: Reshape workforce to maximize revenue over years

    Generic object model l.jpg
    Generic Object Model

    TRANSACTIONS CareerLadder, Transfer, Fire



    Examples of constraints l.jpg
    Examples of Constraints

    • Expected annual budgets

    • Allocation of funds to non-compliance activities

    • IRS personnel rules and practices

    • Attrition

    • Minimum coverage

    • Minimum staff size (geographically dependent)

    • “Front-loaded" funding

    Examples of constraints 2 l.jpg
    Examples of Constraints (2)

    • Geographic movement of employees

    • Transfer between positions (e.g., Revenue Agent to Appeals)

    • Competitive promotions

    • Reductions in force

    • Annual comparability pay increase

    • Locality pay

    • Base salaries

    • Training requirements

    Limitations l.jpg

    • The amount of money available

      • nationwide

      • per location

    • The availability of work bundles

    • The direct time resources needed to work each bundle

    • The time and expense required to obtain needed skills

    Workforce measurements l.jpg
    Workforce Measurements

    • Capacity: Hours / FTEs / Cost

    • Max Requirement: Hours / FTEs / Revenue

    • Min Requirement (to support min coverage)

    • After each Workload-Driven Engine Run:

      • Workload Requirement:

        • Required Hours / FTEs

        • Produced Revenue

      • Workforce Surplus: Hours / FTEs / Cost

    Workload measurements l.jpg
    Workload Measurements

    • For each year and total:

      • Coverage Percent

      • Total Yield

      • Required Workforce Hours / FTEs / Cost

      • Produced Revenue based on actual Y/toC

    Transitions between positions and grades l.jpg
    Transitions Between Positions and Grades

    • Engine generates “vertical” and “horizontal” transitions to cover missing FTEs required by selected workload bundles

    • One more dimension: locations











    Scpm framework l.jpg
    SCPM Framework

    • Hybrid use of CP (Solver/Constrainer) and LP (CPLEX/GLPK) for optimal workload/workforce allocations

    • Interactive Workforce Modifications with automatic constraint propagation

    • Using rule engine for workload forecasting and generation

    • “Small” and “Big” engines working under control of the same constraints

    • Live Demo

    Scheduling and resource allocation for a utility company l.jpg
    Scheduling and Resource Allocation for a Utility Company

    • LILCO – gas and electric utility

    • Batch constraint-based engine that allocates resources (teams of specialists, equipment, vehicles) to different field services jobs under control of constraints/rules

      • Initial success

      • A practical need for constant customer interaction

      • Scheduling Engine as a company employee that constantly “learns and adjusts” to the real-world situations

    • “Big” and “small” constraint engines working under control of the same constraints

    • Live Demo

    Cp products l.jpg
    CP Products

    • Horizontal CP Products

      • ILOG Solver/Scheduler™ (used)

      • Java Constrainer™ (developed, transferred to Exigen)

    • Vertical Products

      • Utility Scheduler™ (developed)

        • Resource Allocation & Scheduling engines for service and utility jobs

    • Load Optimizer (developed, transferred to I2)

      • Truck loading software

    Java constrainer l.jpg
    Java Constrainer

    • Integer, Boolean, and Floating-point constrained variables with very efficient domain implementations

    • All major Constraints and Constrained Expressions

    • Ability to handle Symbolic Expressions (!)

    • Generic reversible environment

    • Efficient event notification and constraint propagation mechanisms

    • Predefined search Goals and Selectors

    • Ability to write problem specific constraints and search algorithms

    • Basic scheduling classes (jobs, resources) and constraints on them

    Java constrainer vs c solver expressiveness l.jpg
    Java Constrainer vs. C++ Solver:Expressiveness

    • The same logical constraint in:

      • ILOG C++ Solver:

        • IlcIfThen(IlcAbs(x-5)>10, x*z<IlcPower(y,5))

      • Pure Java Constrainer:

        • x.sub(5).abs().more(10).imply((x.mul(z).less(y.power(5)))

      • Java Constrainer with symbolic expressions:

        • “|x-5|>10 -> x*z<y**5”

    • Samples with Sources

    Java constrainer vs c solver efficiency l.jpg
    Java Constrainer vs. C++ Solver:Efficiency

    • "100 queens": C++ = 0.12 Java = 0.13

    • "500 queens": C++ = 3.72 Java = 3.40

    • "1000 queens": C++ = 18.93 Java = 17.31

    Interactive constraint satisfaction l.jpg
    Interactive Constraint Satisfaction

    • Interactive Constrained Environments

      • Architecture

      • Problems

      • Approaches

    Interactive problem definition l.jpg
    Interactive Problem Definition

    • A Quote from 1999 Constrainer’s Brochure: “AI increasingly confronts real world problems, in expert systems and robotics, for example, we are increasingly likely to encounter situations where, rather than searching for a solution to a problem, we must, in a sense, search for a problem we can solve"

      • Eugene C. Freuder. Partial Constraint Satisfaction, 1996  

  • Today interactive problem definition under control of rules/constraints defined by business (non-technical!) people became even more important

  • Interactive constraint propagation l.jpg
    Interactive Constraint Propagation

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

    • Users want to update and fine-tune schedule in a flash, allowing:

      • a scheduling engine to react to the constant changes

      • inform them about possible consequences of manual overrides

      • automatically adjust the schedule  after manual changes

    • These problems are common whether you are trying to assign people to jobs, connect plants to the supply chain, or to minimize travel time for different field service crews

    • Dynamic constraint propagation becomes a must functionality of any practical constraint-based system. It assumes the ability to add and/or remove (!) constraints on the fly to redefine the problem and find the appropriate solution

    Between 0 to 100 scheduling automation l.jpg
    Between 0 to 100% Scheduling Automation

    • It is unreal to achieve 100% automation for scheduling:

      • Permanent changes in job priorities and resource availability

      • The efficiency and constraint satisfaction are crucial

      • Compromise between time and quality

  • 0% automation still should allow users to do scheduling better what they did before:

    • Warn a user about problems without being too “talkative”

    • Allow a user to violate constraints

  • A “Big” Scheduling Engine should be able to provide 100% automation, but with respect to manual overrides. There are no pure “advisory” or “manual” modes: always a combination!

  • Typical cp engine l.jpg
    Typical CP Engine

    Scheduling Engine uses a specialized search strategy to solve this CSP.

    It modifies the state of the constrained environment







    Scheduling Engine

    Batch scheduling engines l.jpg
    Batch Scheduling Engines









    Scheduling Engine

    Initial step to constrained graphical interface l.jpg
    Initial Step to Constrained Graphical Interface









    Scheduling Engine

    Java and


    C++ and ILOG

    Common core for both gui and scheduling engine l.jpg
    Common Core for both GUI and Scheduling Engine









    Scheduling Engine

    Interactive consistent constrained core ccc l.jpg
    InteractiveConsistent Constrained Core - CCC

    User Actions: ”Small” Engines

    Manual and automatic Actions modify the state of the constrained environment under control of the same constraints











    Action “Big Scheduling Engine”

    Ccc business constrained objects l.jpg
    CCC: Business & Constrained Objects

    • Business Objects

      • reflect the current state of the “visual” objects

      • allow non-monotonic changes

  • Constrained Object

    • only monotonic changes

    • when not in action, they are in the initial state with static constraints propagated

    • after actions executed, save their state in the business object and restore

  • Consistent constrainer core business constrained cores l.jpg
    Consistent Constrainer Core: Business & Constrained Cores

    • Constrained

    • Action

    • Business

    • Action

    • Request

    • Business

    • Core:

    • Job(s)

    • Resource(s)

    • Skill(s)

    • Assignment(s)

    • Constrained

    • Core:

    • Constrained

    • Job(s)

    • Constrained

    • Resource(s)

    Web Browser

    • Response

    • Question

    • Event


    Scheduling Clients

    Live Scheduling Server

    Constrained graphical interface vs interactive constraint engine l.jpg
    Constrained Graphical Interface vsInteractive Constraint Engine

    • Constrained Graphical Interface:

      • Constraint Engine “always” runs (demons are active)

      • Constraint Engine could handle GUI events

      • Immediate business actions can add/remove constraints

  • Interactive Constraint Engine:

    • Engine can run for a long time

    • Engine provides a GUI update every X sec

    • A user can pause/resume the Engine’s run

    • While the Engine is paused, a user can add/remove constraints, and “resume” engine execution or start it over

  • How to deactivate constraints l.jpg
    How to deactivate constraints?

    • Different approaches

      • Attempt to restore the state of constrained variables after a constraint removal

      • Restore everything

      • Differentiate between removable (soft) and frozen (hard) constraints defined by business users

      • Activation of a removable constraint creates a choice point

  • Recent new findings

    • Use of filtering algorithms for soft constraints (J-C Regin, J-F Puget, T. Petit) can dramatically improve efficiency

    • Latest ILOG Solver’ infeasible constraints can call a user-defined demon instead of causing a global failure. This allows an application to determine how to react to constraint failures. Can be used for constraint removal?

  • Looking for more discussions and further research

  • Interactive constraint engine l.jpg
    Interactive Constraint Engine

    • Implementation ideas:

      • Engine’s run is a special CCC goal “activate”

      • Check GUI events:

        • in a choice point

        • every 10 sec, after 200 failures, etc.

    • Pause:

      • saves the state of all decision variables in the business objects

  • Allow a user to modify the saved values

  • Resume:

    • Add saved values to the list of activated constraints

    • Activate the same goal

  • A user at a choice point l.jpg
    A User At a Choice Point

    Choice Point

    Choice Point

    Choice Point

    Choice Point

    Batch Search

    Interactive Search

    Chess as a model for the interactive csp 2 l.jpg
    Chess as a model for the Interactive CSP (2)

    • Man vs Computer


    Deep Blue

    Chess as a model for the interactive csp 3 l.jpg
    Chess as a model for the Interactive CSP (3)

    • (Man+Computer) vs (Man+Computer)

    • Analogies:

      • Racing (Formula-1)

      • Player = Scheduling Analyst, Plant Manager

      • Game = Process of Ongoing Improvements

    Choice point visualization l.jpg
    Choice Point Visualization

    • Any chess position (choice point) has a “shape” favorable or unfavorable at this particular moment to this particular player

    • “I can hear the moves” (V. Nabokov. “The defense”)

    • Dynamically configurable strategies

      • “They tuned it to play against me personally”

        • Kasparov about the “Deep Blue”

    Interaction in a choice point l.jpg
    Interaction in a Choice Point

    • A man with a computer in a choice point

    • What to present to a human about the current search situation:

      • Search Size Estimate

      • Search Time Estimate

      • Search Complexity Estimate

      • Preferable resulting positions (no knights, “boring” position, minimum inventory, minimized overtime, etc.)