Merge transitions in tgba_tba_proxy.
With this change the output of ltl2tgba -f -x -k -DS "GF(p_1) & ... & GF(p_n) uses less than (n+1)^2 transitions when it used exactly (n+1)*(2^n) transitions before. * src/tgba/tgbatba.cc (tgba_tba_proxy_succ_iterator): Merge transitions going to the same states if they are both accepting or if neither are. (state_ptr_bool_t, state_ptr_bool_less_than): Helper type to store a transition in tgba_tba_proxy_succ_iterator. * src/tgba/tgbatba.cc, src/tgba/tgbatba.hh (tgba_tba_proxy::transition_annotation): Remove. We cannot implement this method if transitions are merged.
This commit is contained in:
parent
87ee1cfe7d
commit
01843379a3
4 changed files with 135 additions and 89 deletions
|
|
@ -84,8 +84,14 @@ for opt in '' -D -DS; do
|
|||
grep 'transitions: 15$' stdout
|
||||
grep 'states: 6$' stdout
|
||||
done
|
||||
|
||||
# Note: this is worse with -R3f.
|
||||
../ltl2tgba -ks -f -R3f -DS "$f" > stdout
|
||||
grep 'transitions: 17$' stdout
|
||||
grep 'states: 7$' stdout
|
||||
|
||||
# Make sure 'GFa & GFb & GFc & GFd & GFe & GFf'
|
||||
# has 7 states and 34 transitions after degeneralization.
|
||||
f='GFa & GFb & GFc & GFd & GFe & GFg'
|
||||
../ltl2tgba -ks -DS -x -f $opt "$f" > stdout
|
||||
grep 'transitions: 34$' stdout
|
||||
grep 'states: 7$' stdout
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue