1 / 34

Business Process Redesign using planning

Business Process Redesign using planning. Abstract.

emery
Download Presentation

Business Process Redesign using planning

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. Business Process Redesign using planning

  2. Abstract • Business process redesign is being increasingly considered as difficult. Because modification of model not only involves in fixing bugs or satisfying requirements, but also needs to consider costs, impact to the existing model and minimum changes. Furthermore, changes often cause other bugs which significantly increase spending. The purpose of this research is to offer a framework to design the better and optimized models based on the exist model or modify the original model which is not compliant to be compliant by considering business processes described in the industry standard BPMN notation.

  3. Abstract Purpose: Given a BPMN model, redesign it to provide better models or modify non-compliant models to be compliant. Steps: • Exact the effects in BPMN model and translate it to planning operators. Take and transform the goal in BPMN model as planning goal. • Let planners design models based on planning language. • Transform plans generated by planners to BPMN models. • Check proximity between BPMN models and the original model. Find which model is closest to the original model.

  4. Automated Composition Do Planning

  5. Business Process Modeling Notation • Business Process Modeling Notation (BPMN) • BPMN provides businesses with the capability of defining and understanding their internal and external business procedures through a Business Process Diagram, which will give organizations the ability to communicate these procedures in a standard manner.

  6. BPMN with effects Effects Receive Order: (have order) Fill order: (knows order accepted) Send invoice: (invoice sent) Make payment: (make payment) Effects in BPMN model can be used in planning to generate plans.

  7. Planning • In recent years research in the planning community has moved increasingly towards application of planners to realistic problems involving both time and many types of resources. • Planning involves the representation of actions and world models, reasoning about the effects of actions, and techniques for efficiently searching the space of possible plans. 

  8. Example -- Farmer's Dilemma Problem A classic AI problem • The point is to get the farmer, the fox the cabbage and the goat across a stream. But the boat only holds 2 items. If left alone with the goat, the fox will eat it. If left alone with the cabbage, the goat will eat it. What can I do?

  9. Planning Solution Transform domain knowledge to planning language and set up necessary rules. Then planner can help to do the rest of things! • Solution 1: • tFarmer moves with goat to shore-2. • tFarmer moves alone to shore-1. • tFarmer moves with fox to shore-2. • tFarmer moves with goat to shore-1. • tFarmer moves with cabbage to shore-2. • tFarmer moves alone to shore-1. • tFarmer moves with goat to shore-2. • Solution 2: • tFarmer moves with goat to shore-2. • tFarmer moves alone to shore-1. • tFarmer moves with cabbage to shore-2. • tFarmer moves with goat to shore-1. • tFarmer moves with fox to shore-2. • tFarmer moves alone to shore-1. • tFarmer moves with goat to shore-2. The effects in BPMN model can be transformed into planning language and set up necessary business rules. Planners can help us to design business solutions according to business rules.

  10. PDDL2.1 PDDL is the standard language for the encoding of the planning domains. • Domain Definition • (define (domain A1-dom) • (:requirements :conditional-effects :sensing) • (:types object) • (:constants letter address email start ready success - object) • (:predicates (have ?o - object) • (be ?o - object) • (know ?o - object) • (at ?o - object) • (execute ?o - object) • (send ?o - object))

  11. Operator Definition • (:action go-to-western-at-A • :parameters () • :precondition (at start) • :effect (and (on western) (on belmont) (not (at start)))) • (:action check-traffic-on-western • :precondition () • :effect (observes (and (on western) (traffic-bad)))) • (:action drive-truck • :parameters (?truck - truck ?loc-from ?loc-to - location • ?city - city) • :precondition (and (at ?truck ?loc-from) • (loc-at ?loc-from ?city) • :effect (and (forall (?x - obj) • (when (and (in ?x ?truck)) • (and (not (at ?x ?loc-from)) • (at ?x ?loc-to))))))

  12. Goal Definition • (define (problem A1-prob) (:domain A1-dom) • (:init (at start) • (not (on western)) (not (on belmont)) (not (on ashland)) • (not (at evanston)) • (uncertain (traffic-bad)) • (not (error))) • (:goal (and (at destination) (not (error))))) • (define (problem A2-prob) (:domain A2-dom) • (:objects pkg1 pkg2) • (:init (at pkg1 rug) • (at pkg2 rug) • (oneof (contains-bomb pkg1) (contains-bomb pkg2)) • (not (bomb-disarmed)) • (not (error))) • (:goal (and (bomb-disarmed) (not (error)))))

  13. Planner • A computer software to help do the planning and design based on planning algorithm and planning languages. • Sensing action • (:action check-traffic-on-western • :precondition () • :effect (observes (and (on western) (traffic-bad)))) • Conditional Plan Is Conditional Plan like a BPMN model?

  14. Planners Help for Reasoning • Support extended goals: • Do Reach p (“strong goal”): (af p) • Try Reach p (“weak goal”): (ef p) • Do Maintain p: (ag p) • Try Maintain p: (eg p)

  15. Planners Help for Reasoning • Planners support planning with uncertainty. • (define (problem p) • (:init (and (P1) (oneof (and (P3)) (P4)) (unknown (P5)))) ) •  (:action dunk • :parameters (?pkg ?toilet) • :precondition (toilet ?toilet) • (:effect (and (P1) (oneof (and (P2) (P3)) (P4)) (unknown (P5))))    ....)

  16. Recall - Automated Composition Do Planning Transformation Transformation

  17. Transformation between Planning Language and BPMN Model • Transform BPMN Task, Start Event and End Event to Planning Operator • An operator in planning is an expression of the form (Name Parameters(−!v ) Precondition Effect) where • Name = Name_Type. Type=(Task, Start Event or End Event) • Parameters: Variables needed for effects of Task, Start Event or End Event • Effect: Intermediate Effect of Task, Start Event or End Event.

  18. Transform BPMN Intermediate Event to a WHEN clause and an operator which can be triggered by the WHEN clause. • An example: • Operators have conditional effects. Exception

  19. (:action disarmBomb • :parameters (?pkg ?bomb) • :precondition (and (bomb ?bomb) • (object ?pkg)) • :effect (and (disarm bomb) (when (have exception) • (and (stop process) (trigger CompensationA)))) • (:action CompensationA_triggerByEventXXX • precondition (trigger CompensationA) • effect (and (prepare support ) (offer help) )

  20. Transform BPMN exclusive gateway to a sensing action. • Sensing action generates conditional plan • A staff wants to inform students either by email or by letter. We assume he has either students’ email address or accommodation address, but not both. • MBP sensing action • (:observation contactemail - boolean • (imply (= contactemail 0) (not (have email))) • (imply (= contactemail 1) (have email))) • (:observation contactaddress - boolean • (imply (= contactaddress 0) (not (have address))) • (imply (= contactaddress 1) (have address))) • Initial State • (:init (at start) • (oneof (have address) (have email) ) • )

  21. A example • Domain Definition • (define (domain notification) • (:types object) • (:constants letter address email start ready successful error - object) • (:predicates (have ?o - object) • (be ?o - object) • (at ?o - object) • (send ?o - object) • (execute ?o - object) • (inform ?o - object)) • (:action receivenotification • :precondition (at start) • :effect (and (be ready) (not (at start))))

  22. (:action sendletter • :precondition (and (be ready) (have address)) • :effect (and (when (and (be ready) (have address)) • (and (send letter) )) • (when (or (not (have address) ) (send letter)) • (execute error)))) • (:action sendemail • :precondition (and (be ready) (have email) ) • :effect (and (when (and (be ready) (have email) ) • (and (send email) )) • (when (or (not (have email)) (send email) ) • (execute error)))) • (:action informok • :precondition (or (send letter) (send email) ) • :effect (and (when (or (send letter) (send email) ) (inform successful)))) • (:observation contactemail - boolean • (imply (= contactemail 0) (not (have email))) • (imply (= contactemail 1) (have email))) • (:observation contactaddress - boolean • (imply (= contactaddress 0) (not (have address))) • (imply (= contactaddress 1) (have address))) • )

  23. Goal Definition • (define (problem notification_problem) • (:domain notification) • (:init (at start) • (oneof (have address) (have email) ) • ) • (:postronggoal (and (inform successful) (not (execute error)) ) ))

  24. Plan (define (plan ___undefined___) (:problem notification_problem) (:domain notification) (:body (sequence (action (receivenotification)) (switch (case (contactdetail ) (sequence (action (sendletter)) (action (informok)) (done) ) ) (case (not (contactdetail)) (sequence (action (sendemail)) (action (informok)) (done) )))))

  25. Transform inclusive gateway to a sensing action and also assign all the combination of conditions of inclusive gate way in the initial state. • (define (problem notification_problem) (:domain notification) • (:init (at start) • (oneof (and (have address) (have email)) (and (have address) (not (have email))) (and (have email) (not (have address))) )) • (:postronggoal (and (execute success) (not (execute error)) ) )) • Sensing Action - MBP • (:observation contactemail - boolean • (imply (= contactemail 0) (not (have email))) • (imply (= contactemail 1) (have email))) • (:observation contactaddress - boolean • (imply (= contactaddress 0) (not (have address))) • (imply (= contactaddress 1) (have address)))

  26. Use previous example • The only difference is that we can have email address or accommodation address or both of them. • We can use the previous domain and problem definition, but assign three probabilities in the initial state. • (define (problem notification_problem) • (:domain notification) • (:init (at start) • (oneof (and (have address) (have email)) • (and (have address) (not (have email))) • (and (have email) (not (have address))) • ) ) • (:postronggoal (and (execute success) (not (execute error)) ) ))

  27. (define (plan ___undefined___) (:problem notification_problem) (:domain notification) (:body (sequence (action (receivenotification)) (switch (case (contactaddress) (sequence (action (sendletter)) (switch (case (contactemail) (sequence (action (sendemail)) (action (informok)) (done) ) ) (case (not (contactemail)) (sequence (action (informok)) (done) ) ) ) ) ) (case (not (contactaddress)) (sequence (action (sendemail)) (action (informok)) (done) ) ) ) ) ))

  28. Transform Parallel (AND) gateway • Some planners can generate partial-ordered plans which can be modeled as Parallel (AND) gateway. • An example ( (((DOMAINS::RECEIVENOTIFICATION))) (((DOMAINS::SENDEMAIL)) ((DOMAINS::SENDLETTER))) (((DOMAINS::INFORMOK))) )

  29. Transform Activity Looping to an operator including a forall clause or many forall clauses. • An operator can include many forall clauses and forall causes can be nested in forall clauses. • (:action open_device • :parameters (?d - engine_no, ?d - engine_power) • :precondition (closed ?d) • (forall (?e1 - engine_no) • (forall (?e2 - engine_no) • (ag (not (> (engine_power ?e1) (+ (engine_power ?e2) 1))))))))) • (forall (?door - Door) • (open door))

  30. Check Proximity • To reduce costs and save time, we should make sure that a process model is being minimally modified to keep it as closer as possible to this original one. The more we change, the more errors models have and the more we invest. • Check proximity between variants and the original model. Select the one which is closest to the original one. • I build a tool based on the following paper to check proximity. Auditing Business Process Compliance(Aditya Ghose and George Koliadis)

  31. Check Proximity

  32. An Example - Check Proximity

  33. An Example - Check Proximity • Edge Distance:6 • Reject Order-->Merge (SequenceEdge) • Ship Order-->Merge (SequenceEdge) • Merge-->Close Order (SequenceEdge) • Accepted or Rejected-->Reject Order (SequenceEdge) • Accepted or Rejected-->Inform Customer Order Rejected (SequenceEdge) • Ship Order-->Close Order (SequenceEdge) • Node Distance:3 • Reject Order (Task) • Merge (GatewayParallel) • Inform Customer Order Rejected (EventEndMessage) • Effect Distance:1 • Inform Customer Order Rejected (EventEndMessage) • Metric Distance:1.9

  34. Thank you

More Related