automated reasoning for situational awareness
play

Automated Reasoning for Situational Awareness Peter Baumgartner, - PowerPoint PPT Presentation

Automated Reasoning for Situational Awareness Peter Baumgartner, Alexander Krumpholz Supply Chain Integrity Digital Mission www.data61.csiro.au Situational Awareness - Systems of Interest Factory Floor - Are the operations carried out


  1. Automated Reasoning for Situational Awareness Peter Baumgartner, Alexander Krumpholz Supply Chain Integrity Digital Mission www.data61.csiro.au

  2. Situational Awareness - Systems of Interest • Factory Floor - Are the operations carried out according to the schedule? • Food Supply Chain Are goods delivered within 3 hours and stored below 25 ℃ ? - - Why is the truck late? - Where did the strawberries/honey come from? • Data Cleansing - Does the database have complete, correct, accurate and relevant data?

  3. Situational Awareness - Systems of Interest • Factory Floor - Are the operations carried out according to the schedule? • Food Supply Chain Are goods delivered within 3 hours and stored below 25 ℃ ? - - Why is the truck late? - Where did the strawberries/honey come from? • Data Cleansing - Does the database have complete, correct, accurate and relevant data? Build a system that automatically derives such analysis?

  4. Situational Awareness - Systems of Interest • Factory Floor - Are the operations carried out according to the schedule? • Food Supply Chain Are goods delivered within 3 hours and stored below 25 ℃ ? - - Why is the truck late? - Where did the strawberries/honey come from? • Data Cleansing - Does the database have complete, correct, accurate and relevant data? Build a system that automatically derives such analysis?

  5. Automated Reasoning for Situational Awareness Events… GPS coordinates Why is the truck late? ? Temp sensor Are the tomatoes still fresh? Paperwork Log DB

  6. Automated Reasoning for Situational Awareness Events… GPS coordinates Why is the truck late? ? Temp sensor Are the tomatoes still fresh? Paperwork Log DB Why this is hard Incomplete/noisy/erroneous data Need domain knowledge (“fresh”?)

  7. Automated Reasoning for Situational Awareness Events… GPS coordinates Why is the truck late? ? Temp sensor Are the tomatoes still fresh? Paperwork Log DB Why this is hard + + Incomplete/noisy/erroneous data Need domain knowledge (“fresh”?)

  8. Automated Reasoning for Situational Awareness Events… GPS coordinates Why is the truck late? ? Temp sensor Are the tomatoes still fresh? Paperwork Log DB Why this is hard + + Incomplete/noisy/erroneous data Need domain knowledge (“fresh”?) Stuck at warehouse / fresh Our logic -based approach OR Domain modelling (first principles) Traffic jam / not fresh What-if reasoning and explanations

  9. Automated Reasoning for Situational Awareness Events… GPS coordinates Why is the truck late? ? Temp sensor Are the tomatoes still fresh? Paperwork Log DB Why this is hard + + Incomplete/noisy/erroneous data Need domain knowledge (“fresh”?) Stuck at warehouse / fresh Our logic -based approach OR Domain modelling (first principles) Traffic jam / not fresh What-if reasoning and explanations Implemented in the Fusemate system

  10. Demo Observation: truck is in Sydney at the warehouse T

  11. Demo Observation: truck is in Sydney at the warehouse T

  12. Demo Observation: tomatoes are loaded T

  13. Demo Observation: tomatoes are loaded T

  14. Demo Assumption as per schedule: truck is on the road T

  15. Demo Assumption as per schedule: truck is on the road T T+1

  16. Demo Report: truck is on the road T T+1

  17. Demo Report: truck is on the road T T+1 T+2

  18. Demo Conclusion: truck is on the road for too long - tomatoes are no longer fresh T T+1 T+2

  19. Demo Conclusion: truck is on the road for too long - tomatoes are no longer fresh T T+1 T+2

  20. Demo Report: actually, at T+1 truck was still in Sydney warehouse T T+1 T+2

  21. Demo Report: actually, at T+1 truck was still in Sydney warehouse T T+1 T+2

  22. Demo Conclusion: tomatoes are still fresh at T+2 T T+1 T+2

  23. Demo Conclusion: tomatoes are still fresh at T+2 T T+1 T+2

  24. Demo No information at T+3 ? T T+1 T+2 T+3

  25. Demo T+3: What if truck is on the road? T T+1 T+2 T+3

  26. Demo T+3: What if truck is on the road? T T+1 T+2 T+3

  27. Demo T+3: What if truck is on the road? At Canberra warehouse? OR T T+1 T+2 T+3

  28. Demo Report: truck at Canberra warehouse T T+1 T+2 T+3

  29. Demo Report: truck at Canberra warehouse T T+1 T+2 T+3

  30. Fusemate in more detail…

  31. Fusemate Model = If-Then Rules Time T1 T2

  32. Fusemate Model = If-Then Rules NO! Time T1 T1 < T ≤ T2 T2

  33. Fusemate Model = If-Then Rules NO! ✔ Time T1 T1 < T ≤ T2 T2

  34. Fusemate Model = If-Then Rules NO! If and then Time T1 T1 < T ≤ T2 T2

  35. Fusemate Model = If-Then Rules NO! If and then Time T1 T1 < T ≤ T2 T2 If in(T1, B, C) & T1 < T2 NOT exists T s.th. T1 < T ≤ T2 & unload(T, B, C) then in(T2, B, C)

  36. Fusemate Model = If-Then Rules NO! If and then Time T1 T1 < T ≤ T2 T2 If in(T1, B, C) & T1 < T2 NOT exists T s.th. T1 < T ≤ T2 & unload(T, B, C) then in(T2, B, C) default reasoning: “not known” ( ≠ “known not”)

  37. � � Fusemate Model = If-Then Rules NO! If and then Time T1 T1 < T ≤ T2 T2 If in(T1, B, C) & T1 < T2 NOT exists T s.th. T1 < T ≤ T2 & unload(T, B, C) then in(T2, B, C) default reasoning: “not known” ( ≠ “known not”) 🠩 If at T1 and at T2 then 🠩 revise: or revise:

  38. � � Fusemate Model = If-Then Rules NO! If and then Time T1 T1 < T ≤ T2 T2 If in(T1, B, C) & T1 < T2 NOT exists T s.th. T1 < T ≤ T2 & unload(T, B, C) then in(T2, B, C) default reasoning: “not known” ( ≠ “known not”) 🠩 If at T1 and at T2 then 🠩 revise: or revise: A model is a set of if-then rules plus …

  39. Model = If-Then Rules + Scala Class Hierarchy abstract class Item { val perishable: Boolean } S c a abstract class Fruit extends Item { val perishable = true } l a c o d e abstract class Vehicle { val speed: Int } case class Truck(id: Int, time: DateTime, load: Set[Item]) extends Vehicle with LogicFact { val speed = 80 val rules = List( Truck(id, t, load - item) :- Unload(id, t, item), … ) def hasPerishableLoad = load contains { _.perishable = true } }

  40. Model = If-Then Rules + Scala Class Hierarchy abstract class Item { val perishable: Boolean } S c a abstract class Fruit extends Item { val perishable = true } l a c o d e abstract class Vehicle { val speed: Int } case class Truck(id: Int, time: DateTime, load: Set[Item]) extends Vehicle with LogicFact { val speed = 80 If-then rule extension val rules = List( Truck(id, t, load - item) :- Unload(id, t, item), … ) def hasPerishableLoad = load contains { _.perishable = true } }

  41. Model = If-Then Rules + Scala Class Hierarchy case class Truck(id: Int, time: DateTime, load: Set[Item]) … { … @rules(id, time, load) val rules = List( Fail :- Unload(id, time, item), IF (! load contains items) Truck(id, next, load - item) :- Step(next, time), Unload(id, time, item), NOT(t < time, Unload(id, t, item) ) ) }

  42. Model = If-Then Rules + Scala Class Hierarchy Scala library “set” case class Truck(id: Int, time: DateTime, load: Set[Item]) … { … @rules(id, time, load) val rules = List( Fail :- Unload(id, time, item), IF (! load contains items) Truck(id, next, load - item) :- Step(next, time), Unload(id, time, item), NOT(t < time, Unload(id, t, item) ) ) }

  43. Model = If-Then Rules + Scala Class Hierarchy Scala library “set” case class Truck(id: Int, time: DateTime, load: Set[Item]) … { … Macro annotation @rules(id, time, load) val rules = List( Fail :- Unload(id, time, item), IF (! load contains items) Truck(id, next, load - item) :- Step(next, time), Unload(id, time, item), NOT(t < time, Unload(id, t, item) ) ) }

  44. Model = If-Then Rules + Scala Class Hierarchy Scala library “set” case class Truck(id: Int, time: DateTime, load: Set[Item]) … { … Macro annotation @rules(id, time, load) val rules = List( case (Step(next, time1), Unload(id1, time2, item)) if Fail :- time1 == time && time2 == time && id1 == id Unload(id, time, item), ! (model exists { IF (! load contains items) case Unload(id2, t, item1) if id2 == id && 
 t < time && item1 == item => true Truck(id, next, load - item) :- case _ => false Expansion Step(next, time), } Unload(id, time, item), }) => Truck(id, next, load - item) NOT(t < time, Unload(id, t, item) ) ) }

  45. Modelling Paradigm Summary 👎 D Inferences on basis of incomplete information e c l Rules a r Derive multiple plausible explanations a t i v e Fix erroneous event data and revise explanations 👎 Infrastruture Rich data structures Scala Java connectivity Inference engine

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend