slights documentation changes around direct simulation
* src/tgbaalgos/simulation.hh: Mention the fact that this is a "direct" simulation. * wrap/python/ajax/ltl2tgba.html: Likewise, and change the key to "ds". * wrap/python/ajax/protocol.txt, wrap/python/ajax/spot.in: Adjust.
This commit is contained in:
parent
cdd576458c
commit
7ba4ab7931
4 changed files with 15 additions and 16 deletions
|
|
@ -30,20 +30,19 @@ namespace spot
|
||||||
/// \addtogroup tgba_reduction
|
/// \addtogroup tgba_reduction
|
||||||
/// @{
|
/// @{
|
||||||
|
|
||||||
/// \brief Tries to reduce the automaton by merging states whose
|
/// \brief Attempt to reduce the automaton by direct simulation
|
||||||
/// recognizes similar language.
|
|
||||||
///
|
///
|
||||||
/// When the language recognized by one state is included in the
|
/// When the language recognized by one state is included in the
|
||||||
/// language recognized by an another one, the first one is merged
|
/// language recognized by an another one, the first one is merged
|
||||||
/// with the second. The algorithm is based on the following
|
/// with the second. The algorithm is based on the following
|
||||||
/// paper:
|
/// paper, but generalized to handled TGBA directly.
|
||||||
///
|
///
|
||||||
/// \verbatim
|
/// \verbatim
|
||||||
/// @InProceedings{ etessami.00.concur,
|
/// @InProceedings{ etessami.00.concur,
|
||||||
/// author = {Kousha Etessami and Gerard J. Holzmann},
|
/// author = {Kousha Etessami and Gerard J. Holzmann},
|
||||||
/// title = {Optimizing {B\"u}chi Automata},
|
/// title = {Optimizing {B\"u}chi Automata},
|
||||||
/// booktitle = {Proceedings of the 11th International Conference on
|
/// booktitle = {Proceedings of the 11th International Conference on
|
||||||
/// Concurrency Theory (Concur'00)},
|
/// Concurrency Theory (Concur'00)},
|
||||||
/// pages = {153--167},
|
/// pages = {153--167},
|
||||||
/// year = {2000},
|
/// year = {2000},
|
||||||
/// editor = {C. Palamidessi},
|
/// editor = {C. Palamidessi},
|
||||||
|
|
@ -54,9 +53,9 @@ namespace spot
|
||||||
/// }
|
/// }
|
||||||
/// \endverbatim
|
/// \endverbatim
|
||||||
///
|
///
|
||||||
/// \param automaton The automaton to simulate.
|
/// \param automaton the automaton to simulate.
|
||||||
/// \return a new automaton which is at worst a copy of the received
|
/// \return a new automaton which is at worst a copy of the received
|
||||||
/// one.
|
/// one
|
||||||
tgba* simulation(const tgba* automaton);
|
tgba* simulation(const tgba* automaton);
|
||||||
|
|
||||||
/// @}
|
/// @}
|
||||||
|
|
|
||||||
|
|
@ -445,8 +445,8 @@ an identifier: <span class="formula">aUb</span> is an atomic proposition, unlike
|
||||||
<INPUT type="checkbox" name="as" value="wd">
|
<INPUT type="checkbox" name="as" value="wd">
|
||||||
minimize obligation properties
|
minimize obligation properties
|
||||||
</label><br>
|
</label><br>
|
||||||
<label class="rtip" title="<b>Direct Simulation</b> tries to reduce the automaton with simulation reduction.">
|
<label class="rtip" title="Attempt to reduce the automaton by using <b>direct simulation</b>. This might also improve the determinism as a side effect.">
|
||||||
<INPUT type="checkbox" name="as" value="rs">
|
<INPUT type="checkbox" name="as" value="ds">
|
||||||
direct simulation
|
direct simulation
|
||||||
</label><br>
|
</label><br>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -71,4 +71,4 @@ Automaton simplifications (pick many)
|
||||||
|
|
||||||
as=ps Prune SCC
|
as=ps Prune SCC
|
||||||
as=wd WDBA minimiztion
|
as=wd WDBA minimiztion
|
||||||
as=rs Simulation reduction
|
as=ds Direct Simulation reduction
|
||||||
|
|
|
||||||
|
|
@ -411,14 +411,14 @@ if output_type == 'm':
|
||||||
# Automaton simplifications
|
# Automaton simplifications
|
||||||
prune_scc = False
|
prune_scc = False
|
||||||
wdba_minimize = False
|
wdba_minimize = False
|
||||||
simul_minimize = False
|
direct_simul = False
|
||||||
for s in form.getlist('as'):
|
for s in form.getlist('as'):
|
||||||
if s == 'ps':
|
if s == 'ps':
|
||||||
prune_scc = True
|
prune_scc = True
|
||||||
elif s == 'wd':
|
elif s == 'wd':
|
||||||
wdba_minimize = True
|
wdba_minimize = True
|
||||||
elif s == 'rs':
|
elif s == 'ds':
|
||||||
simul_minimize = True
|
direct_simul = True
|
||||||
|
|
||||||
if output_type == 'a':
|
if output_type == 'a':
|
||||||
buchi_type = form.getfirst('af', 't')
|
buchi_type = form.getfirst('af', 't')
|
||||||
|
|
@ -450,9 +450,9 @@ if wdba_minimize:
|
||||||
minimized = 0
|
minimized = 0
|
||||||
degen = False # No need to degeneralize anymore
|
degen = False # No need to degeneralize anymore
|
||||||
issba = True
|
issba = True
|
||||||
simul_minimize = False # No need to simulate anymore
|
direct_simul = False # No need to simulate anymore
|
||||||
|
|
||||||
if simul_minimize:
|
if direct_simul:
|
||||||
automaton = spot.simulation(automaton)
|
automaton = spot.simulation(automaton)
|
||||||
|
|
||||||
if degen or neverclaim:
|
if degen or neverclaim:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue