Add an option to use WDBA only if it reduces the size of the automaton.
* src/tgba/tgbaexplicit.hh (num_states): New method. * src/tgbaalgos/minimize.hh, src/tgbaalgos/minimize.cc (minimize_obligation): Add a reject_bigger option. * src/tgbatest/ltl2tgba.cc (-RM): New option. * src/tgbatest/spotlbtt.test: Test -RM. * bench/ltl2tgba/algorithms: Include -RM in addition to -Rm, and replace -RDS by -RIS. * NEWS: Mention this.
This commit is contained in:
parent
f7af4e65f6
commit
60ec3acea0
7 changed files with 77 additions and 12 deletions
|
|
@ -210,6 +210,9 @@ syntax(char* prog)
|
|||
<< std::endl
|
||||
<< " -Rm attempt to WDBA-minimize the automaton" << std::endl
|
||||
<< std::endl
|
||||
<< " -RM attempt to WDBA-minimize the automaton unless the "
|
||||
<< "result is bigger" << std::endl
|
||||
<< std::endl
|
||||
|
||||
<< "Automaton conversion:" << std::endl
|
||||
<< " -M convert into a deterministic minimal monitor "
|
||||
|
|
@ -341,6 +344,7 @@ main(int argc, char** argv)
|
|||
bool graph_run_tgba_opt = false;
|
||||
bool opt_reduce = false;
|
||||
bool opt_minimize = false;
|
||||
bool reject_bigger = false;
|
||||
bool opt_bisim_ta = false;
|
||||
bool opt_monitor = false;
|
||||
bool containment = false;
|
||||
|
|
@ -682,6 +686,11 @@ main(int argc, char** argv)
|
|||
{
|
||||
opt_minimize = true;
|
||||
}
|
||||
else if (!strcmp(argv[formula_index], "-RM"))
|
||||
{
|
||||
opt_minimize = true;
|
||||
reject_bigger = true;
|
||||
}
|
||||
else if (!strcmp(argv[formula_index], "-RT"))
|
||||
{
|
||||
opt_bisim_ta = true;
|
||||
|
|
@ -1025,7 +1034,7 @@ main(int argc, char** argv)
|
|||
if (opt_minimize)
|
||||
{
|
||||
tm.start("obligation minimization");
|
||||
minimized = minimize_obligation(a, f);
|
||||
minimized = minimize_obligation(a, f, 0, reject_bigger);
|
||||
tm.stop("obligation minimization");
|
||||
|
||||
if (minimized == 0)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue