Date post: | 14-Jan-2016 |
Category: |
Documents |
Upload: | samuel-sanders |
View: | 214 times |
Download: | 0 times |
Ekkart Kindler
A framework for the definition ofvariants of high-level Petri nets
Ekkart KindlerDTU Informatics, Technical University of Denmark
Laure PetrucciLIPN, Université Paris 13
Towards a …
Ekkart Kindler
2A framework for the definition of variants of high-level Petri nets
Situation
Many different versions of high-level nets
Conceptually, many differences in the data types only
Technically, the differences are more scattered
Definitions structurally different Difficult to compare different versions Difficult to define (and understand) new versions
Ekkart Kindler
3A framework for the definition of variants of high-level Petri nets
Quest
Generic definition of high-level netsthat allows for the definition of variants
Ekkart Kindler
4A framework for the definition of variants of high-level Petri nets
Minimal distance algorithm: set of agents A connected by network N AA distinguished root agents R A
Example of a high-level net
DAWN approach(mid 90ties)
Ekkart Kindler
5A framework for the definition of variants of high-level Petri nets
Example: Net Scheme
[ x ]
[ x ]
[ (x,0) ]
[ (x,d) ]
M(x,d+1)
[ (x,d) ]
M(x,1) [ (x,d) ] [ (x,n) ]
M(x,d+1)
[ (x,d) ]
d<n
R
I
rootagents:AGENT
inneragents:AGENT
distances:AGENT x nat
x: AGENTd: natn: nat
messages:AGENT x nat
Ekkart Kindler
6A framework for the definition of variants of high-level Petri nets
Algebra IN = { 0, 1, 2, 3, ... } A A IN
addition on IN tupling M(a,n) = [ (b,n), (c,n) ]
MS(A)
Example: Algebra
Signature nat AGENT AGENTxnat
. + . ( . , . ) M
(ms,AGENT)
b
ca
Ekkart Kindler
7A framework for the definition of variants of high-level Petri nets
Example
[x]
[x]
[ (x,0) ]
[ (x,d) ]
M(x,d+1)
[ (x,d) ]
M(x,1) [ (x,d) ] [ (x,n) ]
M(x,d+1)
[ (x,d) ]
d<n
R
I
rootagents:AGENT
inneragents:AGENT
distances:AGENT x nat
x: AGENTd: natn: nat
“standard sorts”
“custom sorts”
messages:AGENT x nat
“standard
constructs on
arbitrary sorts”
“standard
operations”
“custom operators”
Ekkart Kindler
8A framework for the definition of variants of high-level Petri nets
Algebra IN = { 0, 1, 2, 3, ... } A A IN
addition on IN tupling M(a,n) = [ (b,n), (c,n) ]
MS(A)
Example
Signature nat AGENT AGENTxnat
. + . ( . , . ) M
(ms,AGENT)
“standard
interpretation”
“custom
interpretation”
“standard
interpretation”
“custom
interpretation”
“standard
interpretation”
Ekkart Kindler
9A framework for the definition of variants of high-level Petri nets
Algebraic net scheme
= ( N, SIG, sort, vars, l, c, i) a net scheme: N = (P,T,F) a net SIG = (S,OP) a signature sort: P S vars: T VSIG
l: F TSIG(VSIG ) such that for all aF with a = (p,t) or a = (t,p): l(a) T(ms, sort(p))(vars(t))
c: T TSIG(VSIG ) such that for all tT: c(t) T(bool)(vars(t))
i: P TSIG() such that for all pP: i(p) T(ms, sort(p))()
All sets of possible
variable sets for
SIG.
A term of the
multiset sort over
the places sort.
A term of sort bool
(condition).
A ground term of
the multiset sort
over the places
sort.
Compare: Jensen & Kristensen, Def. 4.2, p. 87
Ekkart Kindler
10A framework for the definition of variants of high-level Petri nets
Algebraic net
A net scheme = ( N, SIG, sort, vars, l, c, i)
together with a SIG-Algebra A is a algebraic net.
+ some restrictions on A
Ekkart Kindler
11A framework for the definition of variants of high-level Petri nets
Questions (1)
Which “standard sorts”, “standard constructs” on sorts, “and “standard operations” are there?
What do they mean?
What are the possible legal interpretations for the “custom sorts” and “custom operators” (if they are possible at all)?
Answer these questions, and you have defined a new version of high-level nets
In particular, which
multiset constructs
may be used in the
arc labels?
Ekkart Kindler
12A framework for the definition of variants of high-level Petri nets
Question (2)
Technically, all standard sorts, operations and their interpretations need to be explicitly included into every algebraic net!
Effort without any benefit!
Even worse: we must make sure that this is done in the right way (bool are the Booleans, nat are the naturals, ms are multisets, ...)
Effort without any benefit!
Can’t we avoid that?
Ekkart Kindler
13A framework for the definition of variants of high-level Petri nets
Idea: Generators
Give a signature and algebrafor the custom parts only!
”Generate” all the standard stuffon top of this
Generator A generator defines all the standard
sorts and operations, along with their
interpretation.
This generator defines what the standard
constructs are.
Ekkart Kindler
14A framework for the definition of variants of high-level Petri nets
Generator
A generator is a pair of mapping (GS,GA): GS maps a signature to a signature such that
GS(SIG) SIG
GA maps an algebra to an algebra such thatfor every SIG-algebra AGA(A ) is a GS(SIG)-algebra with GA(A ) A
Ekkart Kindler
15A framework for the definition of variants of high-level Petri nets
Generator: Examples
TRUE adds the booleans but only with the constant true (no other operators).
BOOL adds the booleans with their standard operators
DOT adds the sort dot which represents the set { ● }
PROD adds all products over all existing sorts(non recursively)
MULT adds all multisets over all existing sorts(non recursively)
Ekkart Kindler
16A framework for the definition of variants of high-level Petri nets
Generator constructions
Union of generators e.g. BOOL DOT
Sequential application ○ e.g. PROD ○ (BOOL DOT)
Recursive application * e.g. PROD* ○ (BOOL DOT)
Ekkart Kindler
17A framework for the definition of variants of high-level Petri nets
Combining generators
GBT = (PROD)* ○ BOOL
GMT = MULT
GBT = (MULT PROD)* ○ BOOL
GMT = ID
GBT = DOT TRUE
GMT = MULT
Reisig’s Algebraic
Nets 1991
Algebraic nets with
flexible arc weights
1996/1998
P/T-net restriction of
algebraic nets
Ekkart Kindler
18A framework for the definition of variants of high-level Petri nets
Net scheme of kind (GBT,GMT)
= ( N, SIG, sort, vars, l, c, i) a net scheme: N = (P,T,F) a net SIG a signature sort: P SGBT(SIG)
vars: T VGBT(SIG)
l: F TGMT(GBT(SIG))(VGBT(SIG) ) such that for all aF with a = (p,t) or a = (t,p): l(a) T(ms, sort(p))(vars(t))
c: T TGMT(GBT(SIG))(VGBT(SIG) ) such that for all tT c(t) T(bool)(vars(t))
i: P TGMT(GBT(SIG))() such that for all pP i(p) T(ms, sort(p))()
Signature with
basic sorts and
operations
Signature with
additional sorts
and operators (in
part. multisets)
Ekkart Kindler
19A framework for the definition of variants of high-level Petri nets
Net scheme of kind (GBT,GMT)
= ( N, SIG, sort, vars, l, c, i) a net scheme: N = (P,T,F) a net SIG a signature sort: P SGBT(SIG)
vars: T VGBT(SIG)
l: F TGMT(GBT(SIG))(VGBT(SIG) ) such that for all aF with a = (p,t) or a = (t,p): l(a) T(ms, sort(p))(vars(t))
c: T TGMT(GBT(SIG))(VGBT(SIG) ) such that for all tT c(t) T(bool)(vars(t))
i: P TGMT(GBT(SIG))() such that for all pP i(p) T(ms, sort(p))()
Signature with
basic sorts and
operations
Signature with
additional sorts
and operators (in
part. multisets)
Ekkart Kindler
20A framework for the definition of variants of high-level Petri nets
Questions (1)
Which “standard sorts”, “standard constructs” on sorts, “and “standard operations” are there?
What do they mean?
What are the possible legal interpretations for the “custom sorts” and “custom operators” (if they are possible at all)?
Ekkart Kindler
21A framework for the definition of variants of high-level Petri nets
Construct: Examples
Linearly ordered set:
LO = (LOSIG, { (bool) }, {o, lt} , Ao) withLOSIG = ( { o, (bool) }, { lt: o o (bool) } ) and for every algebra A in Ao we have
A(o) is a finite set and A(lt) is linear order over A(o)
Equality:
EQ = (EQSIG, { (bool) }, { } , Ae) withEQSIG = ( { e, (bool) }, { eq: o o (bool) } ) and for every algebra A in Ae we have
A(eq) is a equality on A(e)
fixed disjoint
fixed disjoint
Ekkart Kindler
22A framework for the definition of variants of high-level Petri nets
Construct
A construct CON = (SIG, F, D, A) is a signature SIG, two subset of F and D symbols of SIG, and a class of SIG-algebras A.
F symbols with a fixed interpretation (via some generator, e.g. (bool), (ms, s), …)
D disjoint symbols (may not overlap with other constructs)
A legal interpretations
Ekkart Kindler
23A framework for the definition of variants of high-level Petri nets
Construct mapping
In a legal algebra A with respect to a set of constructs C, all parts must be constructed from constructs C only.
Definition is a bit technical; we
do not go into details here!
Ekkart Kindler
24A framework for the definition of variants of high-level Petri nets
Algebraic net
An algebraic net scheme
= ( N, SIG, sort, vars, l, c, i) of kind (GBT, GMT)
together with a SIG-algebra A that is constructed from constructs C only is an
algebraic net of kind K = (GBT,GMT,C).
Ekkart Kindler
25A framework for the definition of variants of high-level Petri nets
Kinds of nets
GBT = (PROD)* ○ BOOL
GMT = MULT
GBT = (MULT PROD)* ○ BOOL
GMT = ID
GBT = DOT TRUE
GMT = MULT
Symmetric nets (well-
formed nets) 1991
Algebraic nets with
flexible arc weights
1996/1998
P/T-net restriction of
algebraic nets
C = { LO, EQ, UO, CS, PAR }
C = { }
CGBT
Reisig’s Algebraic
Nets 1991
CGBT
Ekkart Kindler
26A framework for the definition of variants of high-level Petri nets
Conclusion
Details of the mathematics “behind the scenes”: see paper
With the predefined generators and constructors and constructs, it is easy to define new kinds of high-level Petri nets
without changing the definition of high-level Petri nets
How to define Coloured
Petri Nets?