2. Plan
• Firing a transition
• Evaluating a state predicate
• Managing the state space
• Organizing search
• Detecting strongly connected components
3. Firing transitions
Marking changed via list of pre-, list of post-
places effort does not depend on size of
net
After firing, only some transitions are checked
for enabledness
previously enabled transitions that lost
tokens
previously disabled transitions that gained
tokens
... managed through explicitly stored lists
4. Checking state predicates
• predicate = boolean combination of
• p {><=≤≥≠} k
• stored in negation-free normal form
φ
φ φ
φ φ
5. Managing the state space
1st state = bit vector
other states = bit vector +decision record
6. Managing the state space
find/insert a marking: one integrated process
dive down into decision tree
on mismatch:
at decision point: switch to next vector
at end: found, no insert
between decision points: insert at point of mismatch
decision records form tree
7. Organizing search
General remarks
Search consists of
- fire transitions ✔
- find/insert marking ✔
- backtracking: fire transition backwards
only „constant“ time
search stack consists of reference to
transition +
list of enabled transitions
state space is „write-only“ memory
8. Organizing search
b) Depth-first search: ability to detect SCC
c) Breadth-first search:
Simulated by bounded depth-first search with
incrementally increased bound
Update of current marking, list of enabled
transitions, etc. through sequence of transition
occurrences
12. Stubborn Sets
• Crucial: Core principle
• Simple method:
– If t enabled, add conflicting transitions
– If t disabled, add pre-transitions of some
unmarked pre-place
place pre-transitions
must be included
transition conflicting
updated at enabledness check
13. The sweep-line method
• constant change successors lie in a small window of
progress values
14. Calculation of Symmetries
7 5 0 2 A1 ∪.... ∪ An = V
A1 B1
9 4 B1 ∪....∪ Bn = V
A2 1 4 3
2 6 B2 σ satisfies C iff
6 9 8
σ(Ai) = Bi (for all i)
07
3 7 B3 13
A3 0 29
5 35
48
..... 50
66
An Bn
8 1 74
81
92
C
17. Abstract Permutation – Examples
PP all permutations that
TT respect node type
{p1} {p1}
...... Elements of some orbit
{pi-1} {pi-1} wrt. Ui in Ui-1
{pi} {pk}
others1 others2
18. Abstract Permutation – Examples
PP all permutations that
TT respect node type
{p1} {p1}
...... Elements of some orbit
{pi-1} {pi-1} wrt. Ui in Ui-1
{pi} {pk}
others1 others2
New problem: given.: abstract permutation C
compute an automorphism that satisfies C
... equivalent to graph isomorphism
19. REFINE
Choose A-B, A’-B’ and arc multiplicity c
# c-neighbors in A’ #c-neighbors in B’
3 2 1 0 0 1 2 3
A B
8 9 8 6
6 1
0 5 4 2
1 2 4 3 7 0
8 7
2 5 4 B’
A’ 1 0
3
20. REFINE
Choose A-B, A’-B’ and arc multiplicity c
# c-neighbors in A’ #c-neighbors in B’
3 2 1 0 0 1 2 3
A B
8 9 8 6
6 1
0 5 4 2
1 2 4 3 7 0
8 7
2 5 4 B’
A’ 1 0
3
Every automorphism that satisfies A-B, satisfies all resulting
constraints
23. DEFINE
Choose A-B,
p ∈A 2 5 1 2
3 8 4 5
2 5 1 2 2 5 1 2
3 8 4 5 3 8 4 5
2 5 1 2 2 5 1 2
3 8 4 5 3 8 4 5
Every automorphism tat satisfies A-B,
satisfies one of the new constraints
24. Computation tree
4 3
2
poly
1 8 1
6 7 8
5
a b f a
e c
R*
D
R* R* R*
D D
R* R* R* R* R*
2 3 2 3
3 8 3 8
c c c c
exp
= #Ai ! #Bi is rare. That is, often polynomial run time