* src/tgbaalgos/se05.hh, src/tgbaalgos/tau03.hh: Typo.

* src/tgbaalgos/tau03.cc: Suppress optimisations, the algorithm is now
the original one.
* src/tgbaalgos/tau03opt.hh, src/tgbaalgos/tau03opt.cc: New files
implementing most of all the optimisations of tau03.
* src/tgbaalgos/Makefile.am: Add them.
* src/tgbatest/ltl2tgba.cc, src/tgbatest/randtgba.cc: Make them public.
* src/tgbatest/tba_samples_from_spin.test: Test them.
This commit is contained in:
Denis Poitrenaud 2004-11-18 16:09:41 +00:00
parent 321177331d
commit 121d582480
10 changed files with 635 additions and 77 deletions

View file

@ -38,6 +38,7 @@
#include "tgbaalgos/magic.hh"
#include "tgbaalgos/se05.hh"
#include "tgbaalgos/tau03.hh"
#include "tgbaalgos/tau03opt.hh"
#include "tgbaalgos/gtec/gtec.hh"
#include "tgbaalgos/gtec/ce.hh"
#include "tgbaparse/public.hh"
@ -128,7 +129,8 @@ syntax(char* prog)
<< std::endl
<< " bsh_se05_search_repeated[(heap size in MB - 10MB"
<< " by default)]" << std::endl
<< " tau03_search" << std::endl;
<< " tau03_search" << std::endl
<< " tau03_opt_search" << std::endl;
exit(2);
}
@ -147,8 +149,8 @@ main(int argc, char** argv)
int output = 0;
int formula_index = 0;
std::string echeck_algo;
enum { None, Couvreur, Couvreur2, MagicSearch, Se05Search, Tau03Search }
echeck = None;
enum { None, Couvreur, Couvreur2, MagicSearch, Se05Search,
Tau03Search, Tau03OptSearch } echeck = None;
enum { NoneDup, BFS, DFS } dupexp = NoneDup;
bool search_many = false;
bool bit_state_hashing = false;
@ -415,6 +417,10 @@ main(int argc, char** argv)
{
echeck = Tau03Search;
}
else if (echeck_algo == "tau03_opt_search")
{
echeck = Tau03OptSearch;
}
else
{
std::cerr << "unknown emptiness-check: " << echeck_algo << std::endl;
@ -669,6 +675,18 @@ main(int argc, char** argv)
{
ec = spot::explicit_tau03_search(a);
}
case Tau03OptSearch:
if (a->number_of_acceptance_conditions() == 0)
{
std::cout << "To apply tau03_opt_search, the automaton must "
<< "have at least on accepting condition. "
<< "Try with another algorithm." << std::endl;
}
else
{
ec = spot::explicit_tau03_opt_search(a);
}
break;
}