doc: more doc about determinization
* doc/org/autfilt.org: Here.
This commit is contained in:
parent
0288aaa304
commit
1e52d2a7a8
1 changed files with 44 additions and 3 deletions
|
|
@ -204,7 +204,7 @@ autfilt --help | sed -n '/Output automaton type:/,/^$/p' | sed '1d;$d'
|
||||||
#+RESULTS:
|
#+RESULTS:
|
||||||
: -B, --ba Büchi Automaton (with state-based acceptance)
|
: -B, --ba Büchi Automaton (with state-based acceptance)
|
||||||
: -C, --complete output a complete automaton
|
: -C, --complete output a complete automaton
|
||||||
: --generic any acceptance is allowed (default)
|
: -G, --generic any acceptance is allowed (default)
|
||||||
: -M, --monitor Monitor (accepts all finite prefixes of the given
|
: -M, --monitor Monitor (accepts all finite prefixes of the given
|
||||||
: property)
|
: property)
|
||||||
: -S, --state-based-acceptance, --sbacc
|
: -S, --state-based-acceptance, --sbacc
|
||||||
|
|
@ -240,8 +240,49 @@ defaults to =--high= (unless specified otherwise). If a simplification
|
||||||
level is given without specifying any goal, then the goal default to =--small=.
|
level is given without specifying any goal, then the goal default to =--small=.
|
||||||
|
|
||||||
So if you want to reduce the size of the automaton, try =--small= and
|
So if you want to reduce the size of the automaton, try =--small= and
|
||||||
if you want to try to make (or keep) it deterministic (there is to
|
if you want to try to make (or keep) it deterministic use
|
||||||
guaranty of result, this is only a preference) try =--deterministic=.
|
=--deterministic=.
|
||||||
|
|
||||||
|
Note that the =--deterministic= flag has two possible behaviors
|
||||||
|
depending on the constraints on the acceptance conditions:
|
||||||
|
- When =autfilt= is configured to work with generic acceptance (the
|
||||||
|
=--generic= option, which is the default), then the
|
||||||
|
=--deterministic= flag will do whatever it takes to output a
|
||||||
|
deterministic automaton, and this includes changing the acceptance
|
||||||
|
condition if needed (see below).
|
||||||
|
- If options =--tgba= or =--ba= are used, the =--deterministic= option
|
||||||
|
is taken as a /preference/: =autfilt= will try to favor determinism
|
||||||
|
in the output, but it may not always succeed and may output
|
||||||
|
non-deterministic automata. Note that if =autfilt --deterministic
|
||||||
|
--tgba= fails to output a deterministic automaton, it does not
|
||||||
|
necessarily implies that a deterministic TGBA does not exist: it
|
||||||
|
just implies that =autfilt= could not find it.
|
||||||
|
|
||||||
|
|
||||||
|
** Determinization
|
||||||
|
|
||||||
|
Spot has basically two ways to determinize automata, and that it uses
|
||||||
|
when =--deterministic= is passed.
|
||||||
|
|
||||||
|
- Automata that express obligation properties (this can be decided),
|
||||||
|
can be *determinized and minimized* into weak Büchi automata, as
|
||||||
|
discussed by [[http://www.daxc.de/eth/paper/atva07.pdf][Dax at al. (ATVA'07)]].
|
||||||
|
|
||||||
|
- Büchi automata (preferably with transition-based acceptance) can be
|
||||||
|
determinized into parity automata using a Safra-like procedure close
|
||||||
|
to the one presented by [[http://www.romanredz.se/papers/FI2012.pdf][Redziejowski (Fund. Inform. 119)]], with a few
|
||||||
|
additional tricks. This procedure does not necessarily produce a
|
||||||
|
minimal automaton.
|
||||||
|
|
||||||
|
When =--deterministic= is used, the first of these two procedures is
|
||||||
|
attempted on any supplied automaton. (It's even attempted for
|
||||||
|
deterministic automata, because that might reduce them.)
|
||||||
|
|
||||||
|
If that first procedure failed, and the input automaton is not
|
||||||
|
deterministic and =--generic= (the default for =autfilt=) is used,
|
||||||
|
then the second procedure is used. In this case, automata will be
|
||||||
|
first converted to transition-based Büchi automata if their condition
|
||||||
|
is more complex.
|
||||||
|
|
||||||
* Transformations
|
* Transformations
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue