Loading...

PPT – Fair Cycle Detection: A New Algorithm and a Comparative Study PowerPoint presentation | free to download - id: 6cb84e-MzViM

The Adobe Flash plugin is needed to view this content

Fair Cycle DetectionA New Algorithm and a

Comparative Study

- Fabio Somenzi
- University of Colorado at Boulder

Acknowledgement

- This talk is the conflation of
- Kavita Ravi, Roderick Bloem, and Fabio Somenzi,

A comparative study of symbolic algorithms for

the computation of fair cycles - Roderick Bloem, Hal Gabow, and Fabio Somenzi, An

algorithm for strongly connected component

analysis in n log n symbolic steps - Both presented at FMCAD00

Model Checking

- Given
- A finite state transition structure
- A property (set of admissible behaviors) usually

specified as - Temporal logic formula
- ?-regular automaton
- Decide whether initial states of structure

satisfy property

Properties

- Safety properties
- violation described as finite path
- Liveness properties
- infinite path (cycles)
- ?-regular automata acceptance, fairness
- Büchi, Muller, Rabin, Streett, L-process

SCC Decomposition

- Find all sets of nodes that can reach each other

(Strongly Connected Components) - SCC is trivial if it contains no edges
- Central graph problem
- Tarjans algorithm is linear, but explicit
- Find a good implicit algorithm

Motivation

- Fair cycle detection algorithms
- Symbolic vs. explicit state search
- Many symbolic algorithms, no systematic

comparisons - What really makes the difference?
- Can we improve over O(n2) ?

Outline

- Motivation
- Introduction
- Fair cycle algorithms
- A general framework
- Lockstep algorithm
- How do the different algorithms fare?
- Conclusions

Büchi Emptiness

- A Büchi automaton accepts at least a word if it

has a nontrivial SCC that contains an accepting

state - Used in
- LTL model checking (Spin, SMV)
- Fair CTL model checking (VIS, SMV)
- Language-containment checking (COSPAN)
- If language not empty, produce witness

Notation

- CTL
- EX, EU, EG, EF (future tense, backward)
- EY, ES, EH, EP (past tense, forward)
- Fixpoint operators
- ?, ?

Symbolic Algorithms

- Sets are represented by their characteristic

functions - No loops over the elements of sets
- Instead
- Union, intersection, complementation
- Check for equality (emptiness)
- (Choice of one element)
- Image (EY), preimage (EX)

Symbolic Complexity

- Number of variables is important
- Sets of nodes have 1 set of variables
- Transition relation has 2 sets
- Number of variables sets for operations
- Boolean operations 1 set
- Image, preimage 2 sets
- Transitive closure 3 sets
- Our Measure is number of steps image and

preimage - Keep transition relation constant!

Known Complexity

- Measured in nodes (n)
- Known results (symbolic)
- SCC decomposition O(n2) Xie Beerel 99
- Büchi emptiness O(n2) Emerson Lei 86
- We also measure number of steps as function of

number of nodes, but

Interesting Parameters

- n number of states
- d Diameter of the graph
- Largest (finite) of the shortest distances

between two nodes - h Height of the SCC quotient graph
- How many SCCs we can have along a path
- N Number of SCCs
- N Number of nontrivial SCCs
- C Number of fairness constraints

Outline

- Motivation
- Introduction
- Fair cycle algorithms
- A general framework
- Lockstep algorithm
- How do the different algorithms fare?
- Conclusions

Symbolic Fair Cycle Computations

SCC Hull Algorithms

- Generic SCC Hull algorithm (GSH)
- Emerson-Lei
- Hojati et al.
- Kesten et al.
- Hardin et al.

Generic SCC Hull Algorithm (GSH)

- SCC hull a set of states that contains all fair

SCCs - Operators
- TB EX(Z), E(Z U Z?c)
- TF EY(Z), E(Z S Z?c)
- Algorithm start with all states, at every

iteration - choose and apply an operator from TB or TF

(operator schedules) - converge when no change in state set under TB OR

TF operators (weaker condition)

Instances of GSH Different operator schedules

SCC Quotient Graph

Trivial

Non-trivial

6

7

15

3

2

8

1

14

4

9

16

10

5

13

11

12

SCC Quotient Graph

Trivial

Non-trivial

Emerson-Lei, Hojati

6

7

15

3

2

8

1

14

4

9

16

10

5

13

11

12

SCC Quotient Graph

Trivial

Non-trivial

Hojati, Kesten

6

7

15

3

2

8

1

14

4

9

16

10

5

13

11

12

SCC Quotient Graph

Trivial

Non-trivial

Hojati, Hardin

6

7

15

3

2

8

1

14

4

9

16

10

5

13

11

12

SCC Quotient Graph

Trivial

Non-trivial

GSH (TF convergence)

6

7

15

3

2

8

1

14

4

9

16

10

5

13

11

12

GSH (TB convergence)

Generic SCC-Hull Algorithm

- TB EX(Z), E(Z U Z?ci)
- TF EY(Z), E(Z S Z?ci)

GSH (G, I, TB ,TF ) do Z Z ? PICK

(TB - ? , TF - ? ) Z ? (Z) until

(CONVERGED(Z, Z, TB ,TF , ?, ?))

Generic SCC-Hull Algorithm

CONVERGED (Z, Z, TB ,TF, ?, ?)) if (Z ?

Z) ? return FALSE

else ? ? ? ? return TB ? ?

? TF ? ?

Complexity in Steps

- n number of states
- C number of fairness constraints
- d diameter of graph
- N Number of SCCs (N non-trivial)
- h height of the SCC quotient graph

O(Cn2) complexity

Symbolic SCC Enumeration Algorithms

- Xie-Beerel
- IXB
- Bloem

Symbolic SCC Enumeration

- Find an SCC
- pick a state v
- compute the SCC of v as (EP(v)?EF(v))
- Check if SCC is fair
- Recur on the partitions

Symbolic SCC enumeration

- Xie-Beerel
- v is randomly chosen
- EF(v), EP(v) are SCC-closed sets
- Partition the state space
- EG(partition) applied to trim
- Complexity O(dN)

6

7

15

3

2

8

14

1

4

9

16

10

5

13

11

12

Symbolic SCC enumeration

- Improvements to Xie-Beerel
- trim with EH(partition) in addition to

EG(partition) - Improves complexity
- v is chosen from a priority queue
- Shortens prefix of counterexample

6

7

15

3

2

8

14

1

4

9

16

10

5

13

11

12

Outline

- Motivation
- Introduction
- Fair cycle algorithms
- A general framework
- Lockstep algorithm
- How do the different algorithms fare?
- Conclusions

Lockstep Algorithm

- Same basic approach as in Xie-Beerel
- Choose node v
- Search backward and forward, SCC of v is

intersection - Perform two searches simultaneously for n log n

performance

Lockstep by Example

Stage 1 Search forward and backward

until one converges Stage 2 Complete search

to find SCC Stage 3 Recursion

Lockstep by Example

Stage 1 Search forward and backward

until one converges Stage 2 Complete search

to find SCC Stage 3 Recursion

Lockstep by Example

Stage 1 Search forward and backward

until one converges Stage 2 Complete search

to find SCC Stage 3 Recursion

Lockstep by Example

Stage 1 Search forward and backward

until one converges Stage 2 Complete search

to find SCC Stage 3 Recursion

Lockstep by Example

Stage 1 Search forward and backward

until one converges Stage 2 Complete search

to find SCC Stage 3 Recursion

Backwards search converged!

Lockstep by Example

Stage 1 Search forward and backward

until one converges Stage 2 Complete search

to find SCC Stage 3 Recursion

Lockstep by Example

Stage 1 Search forward and backward

until one converges Stage 2 Complete search

to find SCC Stage 3 Recursion

Lockstep by Example

Stage 1 Search forward and backward

until one converges Stage 2 Complete search

to find SCC Stage 3 Recursion

Lockstep by Example

Stage 1 Search forward and backward

until one converges Stage 2 Complete search

to find SCC Stage 3 Recursion

Picture of Search Space

- Recur on Black and Blue White both are

SCC-closed - One of Black and Blue White has lt n/2 nodes.

This is S

V

Analysis Charging

- Amortized analysis charge to nodes and count

total charge - In Stage 1 at most S C steps
- Charge 1 to every node in S and C
- In Stage 2 at most C steps
- Charge 1 to every node in C

Analysis Total Charge

V1

- Every node goes down only one branch
- Stage 1 Every node is charged ? log n times
- Stage 2 Every node is charged ? 1 time
- Total charge n log n n O(n log n)

S1 lt V1/2

V2

S2 lt V2/2 lt V1/4

Sharper Analysis

- For Emerson-Lei O(dh)
- For Lockstep O(n log(dN/n))
- N is number of SCCs
- With optimization O(dNN) and O((dh)N)

Complexity Comparison

Symbolic SCC enumeration

SCC-Hull

O(Cn2) complexity

O(n log n)

O(n2)

N Number of non-trivial SCCs

Counterexamples

- Symbolic SCC enumeration algorithms
- Only one fair SCC
- Shortest prefix can be generated with onion rings

- SCC hull algorithms
- counterexample procedure depends on the computed

hull i.e., location of fair SCCs

Counterexamples

Length of counterexample depends on the SCC hull

Summary

- SCC-hull algorithms
- Symbolic SCC enumeration algorithms
- Lockstep
- Performance depends on
- N, N, d, h, C
- Number of fair SCCs, location of the fair SCCs
- BDD factors?

Outline

- Motivation
- Introduction
- Fair cycle algorithms
- A general framework
- Lockstep algorithm
- How do the different algorithms fare?
- Conclusions

Experiments

- Implemented 5 algorithms in COSPAN
- Emerson-Lei, Hojati/Kesten, Hojati/Hardin, IXB,

Lockstep - Measured time, number of steps, length of

counter-examples

Experiments No Fair Cycles

Experiments Fair Cycles

Experiments Length of Counterexamples

Experiments Summary

- Emerson-Lei seems no worse than others
- IXB, Lockstep designed to produce short

counterexamples - BDDs play a large role in actual performance

On-The-Fly Lockstep

- For example WV
- Lockstep takes 5779 s
- The fair path is very short (3,2)
- One (large) SCC is examined
- Stop as soon as B(v) ? F(v) intersects all fair

sets - A fair cycle is guaranteed in B(v) ? F(v)

Outline

- Motivation
- Introduction
- Fair cycle algorithms
- A general framework
- Lockstep algorithm
- How do the different algorithms fare?
- Conclusions

Conclusions

- Compared various symbolic algorithms
- provided a classification, generalized some

algorithms - Studied performance with experiments
- Future work
- Forward vs. Backward, BDD effects
- Streett acceptance
- Hybrid algorithms?

Conclusions

- n log n symbolic algorithm for
- SCC decomposition,
- Büchi emptiness,
- Streett emptiness,
- measured in images/preimages
- Improves n 2 previously known bounds
- When measured more sharply Lockstep incomparable

with EL

Conclusions

- Lockstep useful for counterexample generation
- Future work parallelizing algorithms that change

transition relation or even use extra variables