SEPRO
System for modeling and simulation
of qualitative network dynamics
Stefan Urbanek – stefan.urbanek@gmail.com – @Stiivi Jan 2018
INSPIRATION
▪︎ Biochemistry – receptors
OBJECTIVES
▪︎ Test alternative approach for simulation of network problems
▪︎ Examine possibility of purely qualitative approach
▪︎ Find primitives of non-conventional computation of network
problem solving
▪︎ Develop a simulator prototype and set of models that demonstrate
the system
SYSTEM DESIGN PRINCIPLES
▪︎ Completeness and clarity of model description
▪︎ Minimal set of assumptions
▪︎ No explicit control flow
▪︎ Iterative simulation and parallel in nature
THE MODEL
Basic Concepts
Model
observation initial structure
concepts
(symbol semantics)
actuators
graph
probes
metadata
MODEL
▪︎ Simulated universe is a directed graph of objects
▪︎ Objects have only qualitative properties
▪︎ State transition is triggered either by existing state or potential
interaction of two objects
▪︎ State changes can happen only locally* to the transitioning or
interacting objects
* graph distance of 1; see “Local Context” later
OBJECT
slot
s3
s2
s1
t3
t1
t2
t4
tags
Indivisible entity representing an instance of
relevant concept within simulated universe.
TAG
t3
t1
t2
t4
tags
Qualitative property of an object.
State of an object is denoted by a set of tags.
SLOT
slot
s3
s2
s1
Slots are properties of an objects that reference other objects.
Slots represent a directed labelled edge of the object graph.
NETWORK STRUCTURES
chain
triplet
tree
cycle
STRUCT
slot west
slot south
target
west
south
Examples
MODEL DYNAMICS
object state changes and graph modification
CONCEPTS
▪︎ Actuator – atomic description of state change
▪︎ Selector – match pattern for objects subject to transition
▪︎ Transition/Modifier – description of state change
affects either object’s state or local* relationships
* graph distance of 1; see “Local Context” later
“LOCAL” CONTEXT
p
selected a
c
b
indirect a
indirect b
out of sight
out of sight
out of sight
q
r
Design limitation (intentional):
Object state and graph transitions can happen only within distance of 1 from the selected object.
ACTUATORS
selector
this
WHERE DO modifiers control
selector modifiersselector
this other
controlWHERE ON DO
unary
binary
transition of object’s state and local* relationships based on previous object’s state
transition of state of either of two objects based on states of objects in a tuple
from a cartesian product of specific objects
SELECTOR
evaluated
t1
t2
t1
t2
may be selected
tested
dereferenced
slot
WHERE IN …
evaluated
may be selected
t1
t2
tested
…
evaluated
WHERE …
SET tags
UNSET tags
BOUND slots
UNBOUND slots
direct indirect – distance 1
SELECTOR TESTS
▪︎ SET: all of selector tags are associated with an object
true if selector’s tags ⊂ object’s tags
▪︎ UNSET: none of selector tags are associated with an object
true if object’s tags ∩ selector’s tags = ∅
▪︎ BOUND: graph contains an edge from selector’s slots
▪︎ UNBOUND: graph does not contain an edge from selector’s slots
MODIFIERS
State and structure mutation
STATE MODIFIER
▪︎ SET tags: associate set of tag symbols with an object
result = object tags ∪ modifier tags
▪︎ UNSET tags: disassociate set of tag symbols with an object
result = object tags - modifier tags
GRAPH EDGE MODIFIERS
▪︎ BIND slot reference → target
create an edge in the graph
▪︎ UNBIND slot reference
remove an edge in the graph
UNARY BINDING MODIFIER
unbind
direct subject
u IN t
s
s
t
t
s
s
t
t
s
t
u
s
u IN ts
t
u
s -> THIS
s -> t
s -> t.u
THISthis this
this this
this
t
this
t
u
u
t t
s -> NONE
self-bind
clone
pull
t
unbind
indirect subject
s
u
t
u
this.t
s
s.u -> THIS
s.u -> t
this this.s
s
uthis s
this
this.s
t
u
this.t
s
this
s
back-self
connect
BINARY BINDING MODIFIER
direct subject
sshand handother otherjoin other IN LEFT s -> OTHER
IN RIGHT s -> OTHER
Intentionally unavailable state transitions of binary modifiers by design:
unbind – combination of binary state change and unary modifier
indirect – combination of binary direct subject, state change and unary modifier
OF MODIFIERS
▪︎ Proposed modifiers are assumed to be sufficient to achieve any
potential graph configuration.
▪︎ All state changes beyond distance of 1 from the selected object
must be composed of multiple transitions that propagate through
the network.
▪︎ Susceptibility to being affected by other actuators along the way is
intended design feature.
ACTUATORS – PRINCIPLES
▪︎ Order of applying actuators is not predetermined
▪︎ Order of actuators being applied might affect some simulations
CONTROL SIGNALLING
▪︎ NOTIFY: signal (symbols) to the simulator without interruption
Use case: monitor reached goals; trigger/start/stop measurement; visualize a state of interest
▪︎ TRAP: signal (symbols) and interrupt the simulator (resumable)
Use case: goal reached and user interaction is expected; a product has been created
▪︎ HALT: signal to the simulator and interrupt (non-resumable)
Use case: invalid state has been reached, resuming the simulation might yield non-sensical results
MODIFIERS SUMMARY
BIND slot → NONE
BIND slot → OTHER
BIND slot → OTHER.target_slot
BIND indirect.slot → NONE
BIND indirect.slot → OTHER
BIND indirect.slot → OTHER.target_slot
BIND slot → NONE
BIND slot → SELF
BIND slot → target_slot
BIND slot → t.w
BIND indirect.slot → NONE
BIND indirect.slot → SELF
BIND indirect.slot → target_stlot
BIND indirect.s → t.w
binary
unary
EXAMPLE: “LINKER”
Model example in Sepro 2014-16 prototype
Objective:
Build a chain of elements.
Components:
- links to be chained
- object binding two links together
Catch:
Introduce fake link component and observe what happens.
OBJECTS
linker
left right
link
next
CONCEPT linker
TAG ready
SLOT left, right
CONCEPT link
TAG free
SLOT next
CONCEPT fault
# We pretend to be a link, but there is no 'next' slot
TAG link, free
Sepro 2016
ACTUATORS
WHERE linker AND NOT BOUND left ON link, free DO
BIND left TO other
IN other UNSET free
SET one
WHERE one ON link AND free DO
BIND right TO other
IN other UNSET free
UNSET one
SET two
Reminder: although this model works as it is, we don’t know how it will behave when composed with other actuators.
WHERE two DO
IN this.left BIND next TO this.right
UNSET two
SET advance
WHERE advance DO
BIND left TO this.right
UNSET advance
SET cleanup
WHERE cleanup DO
UNBIND right
UNSET cleanup
SET one
Sepro 2016
WORLD
WORLD main
OBJECT fault
OBJECT link * 35
OBJECT linker * 3
Sepro 2016
RESULT1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
REJECTED IDEAS
COUNTERS
slot
s3
s2
s1
t3
t1
t2
t4
c1
c2
c3
counters
tags t1 t3t2
…
c1 c2
Tags:
Counters:
Slots: s1 s2 s3
c3
↓ ↓ ↓
qualitative
quantitative
relational
REJECTED
Quantitative properties
ROOT OBJECT
▪︎ Single object referred to as ROOT from anywhere in the simulation.
▪︎ Can be tested for and can be acted upon.
▪︎ Rejected due to potential abuse for globally accessible state which
would defeat the whole purpose of the system to be based on local
interactions.
REJECTED
SEPRO 2018
SEPRO 2018 GOALS
▪︎ Simplified and formalized selectors and modifiers
▪︎ Removed redundancy – focus on primitives
▪︎ Prototype/referential implementation
Unary Actuator
Binary Actuator
Selector
Structure
Relationship
[Symbol:Prototype]prototypes
relationships
Prototype
{Symbol}tags
Relationship
Symbol
Symbol
Symbol
to
slot
from
Unary Actuator
Control
[Subject Mode: Unary Transition]
Selector
control
selector
transitions
Control
Bool
{Symbol}
{Symbol}
halts
traps
notifications
Selector ∑
Selector Patternmatch
all
match
Unary Target ∑
Slot
subject
indirect
in subject
unbind
slot
Slotin Slotslot
Unary Transition
[Symbol:Unary Target]
Symbol Mask
bindings
tags
Constraint: if Effective Slot is indirect, target
mode must not be indirect.
Binary Transition
[Symbol:Binary Target]
Symbol Mask
bindings
tags
Binary Actuator
Control
[Subject Mode: Binary Transition]
[Subject Mode: Binary Transition]
Selector
Selector
control
right transitions
left transitions
left selector
right selector Binary Target ∑
Slot
other
in other
unbind
slot
Model
[Symbol:Binary Actuator]
[Symbol:SymbolType]
[Symbol:Unary Actuator]
[Symbol:Structure]
binary actuators
symbols
unary actuators
structures
Presence ∑
present
absent
s → none
s → self
s → t
s → t.w
i.s → none
i.s → self
i.s → t
i.s → t.w
s → none
s → other
s → other.t
i.s → none
i.s → other
i.s → other.t
Structure
{Type}
[Type:Type]
[Type]
Type?
Type
set
dictionary
array
optional
base
Sum Type ∑
case 2
case 1
Symbol Type ∑
slot
tag
label
Legend
Sepro-18 Entities
Selector Pattern
Symbol Mask
Symbol Mask
slots
tags
Symbol Mask
[Symbol:Presence]mask
Subject Mode ∑
Slotindirect
direct
slot
left right
controlWHERE ON IN LEFT IN RIGHT
left target right target
transitions transitionsselector selector
this
WHERE IN THIS controlselector transition
this target
FUTURE
▪︎ Model composition
Merging actuators and concepts from multiple models together into one.
▪︎ Constraints
Spatial or other constraints for selectors, for example grids.
▪︎ Symbol abstraction/inheritance
Classification of symbols (primarily for tags) into hierarchies. Example: test for liquid would
match water if such hierarchical association exists.
“SCI-FI”
▪︎ establish equivalence of Sepro primitives (virtual) and physical
systems

Sepro - introduction

  • 1.
    SEPRO System for modelingand simulation of qualitative network dynamics Stefan Urbanek – stefan.urbanek@gmail.com – @Stiivi Jan 2018
  • 2.
  • 3.
    OBJECTIVES ▪︎ Test alternativeapproach for simulation of network problems ▪︎ Examine possibility of purely qualitative approach ▪︎ Find primitives of non-conventional computation of network problem solving ▪︎ Develop a simulator prototype and set of models that demonstrate the system
  • 4.
    SYSTEM DESIGN PRINCIPLES ▪︎Completeness and clarity of model description ▪︎ Minimal set of assumptions ▪︎ No explicit control flow ▪︎ Iterative simulation and parallel in nature
  • 5.
  • 6.
    Model observation initial structure concepts (symbolsemantics) actuators graph probes metadata
  • 7.
    MODEL ▪︎ Simulated universeis a directed graph of objects ▪︎ Objects have only qualitative properties ▪︎ State transition is triggered either by existing state or potential interaction of two objects ▪︎ State changes can happen only locally* to the transitioning or interacting objects * graph distance of 1; see “Local Context” later
  • 8.
    OBJECT slot s3 s2 s1 t3 t1 t2 t4 tags Indivisible entity representingan instance of relevant concept within simulated universe.
  • 9.
    TAG t3 t1 t2 t4 tags Qualitative property ofan object. State of an object is denoted by a set of tags.
  • 10.
    SLOT slot s3 s2 s1 Slots are propertiesof an objects that reference other objects. Slots represent a directed labelled edge of the object graph.
  • 11.
  • 12.
    MODEL DYNAMICS object statechanges and graph modification
  • 13.
    CONCEPTS ▪︎ Actuator –atomic description of state change ▪︎ Selector – match pattern for objects subject to transition ▪︎ Transition/Modifier – description of state change affects either object’s state or local* relationships * graph distance of 1; see “Local Context” later
  • 14.
    “LOCAL” CONTEXT p selected a c b indirecta indirect b out of sight out of sight out of sight q r Design limitation (intentional): Object state and graph transitions can happen only within distance of 1 from the selected object.
  • 15.
    ACTUATORS selector this WHERE DO modifierscontrol selector modifiersselector this other controlWHERE ON DO unary binary transition of object’s state and local* relationships based on previous object’s state transition of state of either of two objects based on states of objects in a tuple from a cartesian product of specific objects
  • 16.
    SELECTOR evaluated t1 t2 t1 t2 may be selected tested dereferenced slot WHEREIN … evaluated may be selected t1 t2 tested … evaluated WHERE … SET tags UNSET tags BOUND slots UNBOUND slots direct indirect – distance 1
  • 17.
    SELECTOR TESTS ▪︎ SET:all of selector tags are associated with an object true if selector’s tags ⊂ object’s tags ▪︎ UNSET: none of selector tags are associated with an object true if object’s tags ∩ selector’s tags = ∅ ▪︎ BOUND: graph contains an edge from selector’s slots ▪︎ UNBOUND: graph does not contain an edge from selector’s slots
  • 18.
  • 19.
    STATE MODIFIER ▪︎ SETtags: associate set of tag symbols with an object result = object tags ∪ modifier tags ▪︎ UNSET tags: disassociate set of tag symbols with an object result = object tags - modifier tags
  • 20.
    GRAPH EDGE MODIFIERS ▪︎BIND slot reference → target create an edge in the graph ▪︎ UNBIND slot reference remove an edge in the graph
  • 21.
    UNARY BINDING MODIFIER unbind directsubject u IN t s s t t s s t t s t u s u IN ts t u s -> THIS s -> t s -> t.u THISthis this this this this t this t u u t t s -> NONE self-bind clone pull t unbind indirect subject s u t u this.t s s.u -> THIS s.u -> t this this.s s uthis s this this.s t u this.t s this s back-self connect
  • 22.
    BINARY BINDING MODIFIER directsubject sshand handother otherjoin other IN LEFT s -> OTHER IN RIGHT s -> OTHER Intentionally unavailable state transitions of binary modifiers by design: unbind – combination of binary state change and unary modifier indirect – combination of binary direct subject, state change and unary modifier
  • 23.
    OF MODIFIERS ▪︎ Proposedmodifiers are assumed to be sufficient to achieve any potential graph configuration. ▪︎ All state changes beyond distance of 1 from the selected object must be composed of multiple transitions that propagate through the network. ▪︎ Susceptibility to being affected by other actuators along the way is intended design feature.
  • 24.
    ACTUATORS – PRINCIPLES ▪︎Order of applying actuators is not predetermined ▪︎ Order of actuators being applied might affect some simulations
  • 25.
    CONTROL SIGNALLING ▪︎ NOTIFY:signal (symbols) to the simulator without interruption Use case: monitor reached goals; trigger/start/stop measurement; visualize a state of interest ▪︎ TRAP: signal (symbols) and interrupt the simulator (resumable) Use case: goal reached and user interaction is expected; a product has been created ▪︎ HALT: signal to the simulator and interrupt (non-resumable) Use case: invalid state has been reached, resuming the simulation might yield non-sensical results
  • 26.
    MODIFIERS SUMMARY BIND slot→ NONE BIND slot → OTHER BIND slot → OTHER.target_slot BIND indirect.slot → NONE BIND indirect.slot → OTHER BIND indirect.slot → OTHER.target_slot BIND slot → NONE BIND slot → SELF BIND slot → target_slot BIND slot → t.w BIND indirect.slot → NONE BIND indirect.slot → SELF BIND indirect.slot → target_stlot BIND indirect.s → t.w binary unary
  • 27.
    EXAMPLE: “LINKER” Model examplein Sepro 2014-16 prototype
  • 28.
    Objective: Build a chainof elements. Components: - links to be chained - object binding two links together Catch: Introduce fake link component and observe what happens.
  • 29.
    OBJECTS linker left right link next CONCEPT linker TAGready SLOT left, right CONCEPT link TAG free SLOT next CONCEPT fault # We pretend to be a link, but there is no 'next' slot TAG link, free Sepro 2016
  • 30.
    ACTUATORS WHERE linker ANDNOT BOUND left ON link, free DO BIND left TO other IN other UNSET free SET one WHERE one ON link AND free DO BIND right TO other IN other UNSET free UNSET one SET two Reminder: although this model works as it is, we don’t know how it will behave when composed with other actuators. WHERE two DO IN this.left BIND next TO this.right UNSET two SET advance WHERE advance DO BIND left TO this.right UNSET advance SET cleanup WHERE cleanup DO UNBIND right UNSET cleanup SET one Sepro 2016
  • 31.
    WORLD WORLD main OBJECT fault OBJECTlink * 35 OBJECT linker * 3 Sepro 2016
  • 32.
    RESULT1 2 34 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
  • 33.
  • 34.
    COUNTERS slot s3 s2 s1 t3 t1 t2 t4 c1 c2 c3 counters tags t1 t3t2 … c1c2 Tags: Counters: Slots: s1 s2 s3 c3 ↓ ↓ ↓ qualitative quantitative relational REJECTED Quantitative properties
  • 35.
    ROOT OBJECT ▪︎ Singleobject referred to as ROOT from anywhere in the simulation. ▪︎ Can be tested for and can be acted upon. ▪︎ Rejected due to potential abuse for globally accessible state which would defeat the whole purpose of the system to be based on local interactions. REJECTED
  • 36.
  • 37.
    SEPRO 2018 GOALS ▪︎Simplified and formalized selectors and modifiers ▪︎ Removed redundancy – focus on primitives ▪︎ Prototype/referential implementation
  • 38.
    Unary Actuator Binary Actuator Selector Structure Relationship [Symbol:Prototype]prototypes relationships Prototype {Symbol}tags Relationship Symbol Symbol Symbol to slot from UnaryActuator Control [Subject Mode: Unary Transition] Selector control selector transitions Control Bool {Symbol} {Symbol} halts traps notifications Selector ∑ Selector Patternmatch all match Unary Target ∑ Slot subject indirect in subject unbind slot Slotin Slotslot Unary Transition [Symbol:Unary Target] Symbol Mask bindings tags Constraint: if Effective Slot is indirect, target mode must not be indirect. Binary Transition [Symbol:Binary Target] Symbol Mask bindings tags Binary Actuator Control [Subject Mode: Binary Transition] [Subject Mode: Binary Transition] Selector Selector control right transitions left transitions left selector right selector Binary Target ∑ Slot other in other unbind slot Model [Symbol:Binary Actuator] [Symbol:SymbolType] [Symbol:Unary Actuator] [Symbol:Structure] binary actuators symbols unary actuators structures Presence ∑ present absent s → none s → self s → t s → t.w i.s → none i.s → self i.s → t i.s → t.w s → none s → other s → other.t i.s → none i.s → other i.s → other.t Structure {Type} [Type:Type] [Type] Type? Type set dictionary array optional base Sum Type ∑ case 2 case 1 Symbol Type ∑ slot tag label Legend Sepro-18 Entities Selector Pattern Symbol Mask Symbol Mask slots tags Symbol Mask [Symbol:Presence]mask Subject Mode ∑ Slotindirect direct slot left right controlWHERE ON IN LEFT IN RIGHT left target right target transitions transitionsselector selector this WHERE IN THIS controlselector transition this target
  • 39.
  • 40.
    ▪︎ Model composition Mergingactuators and concepts from multiple models together into one. ▪︎ Constraints Spatial or other constraints for selectors, for example grids. ▪︎ Symbol abstraction/inheritance Classification of symbols (primarily for tags) into hierarchies. Example: test for liquid would match water if such hierarchical association exists.
  • 41.
    “SCI-FI” ▪︎ establish equivalenceof Sepro primitives (virtual) and physical systems