SlideShare ist ein Scribd-Unternehmen logo
1 von 11
Installation plan
Tomas Drencak
The problem
● Create installation plan for customer
requesting Cable TV with Internet
● Order contains:
– Technology (optic, regular)
– TV/Internet/Phone
– Address
– Etc...
The solution
● Backward composition of directed acyclic
graph
● Root node is customer order
● Each other node is installation instruction
● Edge means that parent can't be executed
before child
Example #1
Order
DSL
entry point
Configure
DSL modem
Wire
Segment 1
Wire
Segment 2
Composition
● Backward composition
● Each node is of certain type and can connect
to only certain nodes
● Nodes types are stored in DB
● Evaluate which nodes can connect to the node
● Node instances are instantiated from node
types in runtime
Example #2
● Algorithm:
Incomplete = [order_node]
While not incomplete.is_empty():
for node in incomplete:
node_types = db.find_suitable_node_types(node)
For child_type in node_types:
If child_type.can_expand(node):
child_node = child_type.expand(node)
Incomplete.add(child_node)
If node.is_complete():
Incomplete.remove(node)
Database
parent_type type Condition
Order DslEntryPoint Parent.technology == 'DSL'
DslEntryPoint OpticFibre parent.technology == 'DSL' &&
parent.order.medium = 'optic'
DslEntryPoint Modem
Configuration
Parent.technology == 'DSL' &&
Exists('OpticFibre', 'EntryPoint')
Example of node
class DslEntryPoint:
def can_expand(node):
return evaluate(this.condition, parent=node)
def expand(parent):
child = new DslEntryPoint(parent.address)
parent.add_child(child)
return child
Graph prunning
Summary
● Backward graph composition
● Graph prunning (inverse)
● Condition evaluation
● Polymorphism/interfaces
Thank you!
Any questions?

Weitere ähnliche Inhalte

Ähnlich wie Installation plan

Navodaya R Experience resume
Navodaya R Experience resumeNavodaya R Experience resume
Navodaya R Experience resume
Navodaya R
 
E. Saif Ababseh CV
E. Saif Ababseh CVE. Saif Ababseh CV
E. Saif Ababseh CV
Ababseh Saif
 
digital camera image capturing technique
digital camera image capturing techniquedigital camera image capturing technique
digital camera image capturing technique
Sindhu Mani
 
Intro to GPGPU Programming with Cuda
Intro to GPGPU Programming with CudaIntro to GPGPU Programming with Cuda
Intro to GPGPU Programming with Cuda
Rob Gillen
 
Resume_8years-Exp_Embedded
Resume_8years-Exp_EmbeddedResume_8years-Exp_Embedded
Resume_8years-Exp_Embedded
Vijayraj Hada
 
Nada_CV_no_table_boarder
Nada_CV_no_table_boarderNada_CV_no_table_boarder
Nada_CV_no_table_boarder
nada abdellatif
 

Ähnlich wie Installation plan (20)

Basic Understanding about TCP/IP Addressing system
Basic Understanding about TCP/IP Addressing systemBasic Understanding about TCP/IP Addressing system
Basic Understanding about TCP/IP Addressing system
 
Introduction to om ne t++
Introduction to om ne t++Introduction to om ne t++
Introduction to om ne t++
 
Overview
OverviewOverview
Overview
 
Navodaya R Experience resume
Navodaya R Experience resumeNavodaya R Experience resume
Navodaya R Experience resume
 
Networking in Telecommunication (signalling, tcp, ucp, ss7, sctp, sigtran)
Networking in Telecommunication (signalling, tcp, ucp, ss7, sctp, sigtran)Networking in Telecommunication (signalling, tcp, ucp, ss7, sctp, sigtran)
Networking in Telecommunication (signalling, tcp, ucp, ss7, sctp, sigtran)
 
How to Store and Visualize CAN Bus Telematic Data with InfluxDB Cloud and Gra...
How to Store and Visualize CAN Bus Telematic Data with InfluxDB Cloud and Gra...How to Store and Visualize CAN Bus Telematic Data with InfluxDB Cloud and Gra...
How to Store and Visualize CAN Bus Telematic Data with InfluxDB Cloud and Gra...
 
Informix Expedition Through Connectivity
Informix Expedition Through ConnectivityInformix Expedition Through Connectivity
Informix Expedition Through Connectivity
 
CISSP Week 7
CISSP Week 7CISSP Week 7
CISSP Week 7
 
Resume_new1_may
Resume_new1_mayResume_new1_may
Resume_new1_may
 
E. Saif Ababseh CV
E. Saif Ababseh CVE. Saif Ababseh CV
E. Saif Ababseh CV
 
technical report presents a comprehensive study. .pptx
technical report presents a comprehensive study. .pptxtechnical report presents a comprehensive study. .pptx
technical report presents a comprehensive study. .pptx
 
What's Inside Cloudflare Mobile SDK
What's Inside Cloudflare Mobile SDKWhat's Inside Cloudflare Mobile SDK
What's Inside Cloudflare Mobile SDK
 
digital camera image capturing technique
digital camera image capturing techniquedigital camera image capturing technique
digital camera image capturing technique
 
Intro to GPGPU Programming with Cuda
Intro to GPGPU Programming with CudaIntro to GPGPU Programming with Cuda
Intro to GPGPU Programming with Cuda
 
Presentation Cable Project Cad Adc
Presentation Cable Project Cad AdcPresentation Cable Project Cad Adc
Presentation Cable Project Cad Adc
 
Resume_8years-Exp_Embedded
Resume_8years-Exp_EmbeddedResume_8years-Exp_Embedded
Resume_8years-Exp_Embedded
 
Bangladesh Computer Council Networking Project
Bangladesh Computer Council Networking ProjectBangladesh Computer Council Networking Project
Bangladesh Computer Council Networking Project
 
Node-RED
Node-REDNode-RED
Node-RED
 
CS4961-L9.ppt
CS4961-L9.pptCS4961-L9.ppt
CS4961-L9.ppt
 
Nada_CV_no_table_boarder
Nada_CV_no_table_boarderNada_CV_no_table_boarder
Nada_CV_no_table_boarder
 

Kürzlich hochgeladen

Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
UXDXConf
 
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
FIDO Alliance
 

Kürzlich hochgeladen (20)

TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
 
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
 
TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024
 
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfIntroduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
 
AI mind or machine power point presentation
AI mind or machine power point presentationAI mind or machine power point presentation
AI mind or machine power point presentation
 
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
 
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
 
Microsoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireMicrosoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - Questionnaire
 
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The InsideCollecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
 
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
 
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
 
Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024
 
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdf
 
WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024
 
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties ReimaginedEasier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
 

Installation plan

  • 2. The problem ● Create installation plan for customer requesting Cable TV with Internet ● Order contains: – Technology (optic, regular) – TV/Internet/Phone – Address – Etc...
  • 3. The solution ● Backward composition of directed acyclic graph ● Root node is customer order ● Each other node is installation instruction ● Edge means that parent can't be executed before child
  • 4. Example #1 Order DSL entry point Configure DSL modem Wire Segment 1 Wire Segment 2
  • 5. Composition ● Backward composition ● Each node is of certain type and can connect to only certain nodes ● Nodes types are stored in DB ● Evaluate which nodes can connect to the node ● Node instances are instantiated from node types in runtime
  • 6. Example #2 ● Algorithm: Incomplete = [order_node] While not incomplete.is_empty(): for node in incomplete: node_types = db.find_suitable_node_types(node) For child_type in node_types: If child_type.can_expand(node): child_node = child_type.expand(node) Incomplete.add(child_node) If node.is_complete(): Incomplete.remove(node)
  • 7. Database parent_type type Condition Order DslEntryPoint Parent.technology == 'DSL' DslEntryPoint OpticFibre parent.technology == 'DSL' && parent.order.medium = 'optic' DslEntryPoint Modem Configuration Parent.technology == 'DSL' && Exists('OpticFibre', 'EntryPoint')
  • 8. Example of node class DslEntryPoint: def can_expand(node): return evaluate(this.condition, parent=node) def expand(parent): child = new DslEntryPoint(parent.address) parent.add_child(child) return child
  • 10. Summary ● Backward graph composition ● Graph prunning (inverse) ● Condition evaluation ● Polymorphism/interfaces