spot 2.3.1

- Main Page
- Related Pages
- Modules
- Classes
- Files

All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
Modules | Functions
TωA algorithms
TωA (Transition-based ω-Automata)

## Modules
| TωA on-the-fly algorithms
| Input/Output of TωA
| Translating LTL formulas into TωA
| Algorithm patterns
| TωA simplifications
| Miscellaneous algorithms on TωA
| Emptiness-checks

## Functions
twa_graph_ptr | spot::tgba_determinize (const const_twa_graph_ptr &aut, bool pretty_print=false, bool use_scc=true, bool use_simulation=true, bool use_stutter=true)
| Determinize a TGBA. More...

## Detailed Description

## Function Documentation

twa_graph_ptr spot::tgba_determinize | ( | const const_twa_graph_ptr & | aut,
|  | bool | pretty_print = `false`,
|  | bool | use_scc = `true`,
|  | bool | use_simulation = `true`,
|  | bool | use_stutter = `true`
| ) |  |

`#include <spot/twaalgos/determinize.hh>`

Determinize a TGBA.

The main algorithm works only with automata using Büchi acceptance (preferably transition-based). If generalized Büchi is input, it will be automatically degeneralized first.

The output will be a deterministic automaton using parity acceptance.

This procedure is based on an algorithm by Roman Redziejowski (Fundamenta Informaticae 119, 3-4 (2012)). Redziejowski's algorithm is similar to Piterman's improvement of Safra's algorithm, except it is presented on transition-based acceptance and use simpler notations. We implement three additional optimizations (they can be individually disabled) based on

- knowledge about SCCs of the input automaton
- knowledge about simulation relations in the input automaton
- knowledge about stutter-invariance of the input automaton

The last optimization is an idea described by Joachim Klein & Christel Baier (CIAA'07) and implemented in ltl2dstar. In fact, ltl2dstar even has a finer version (letter-based stuttering) that is not implemented here.

Parameters

  aut | the automaton to determinize
  pretty_print | whether to decorate states with names showing the paths they track (this only makes sense if the input has Büchi acceptance already, otherwise the input automaton will be degeneralized and the names will refer to the states in the degeneralized automaton).
  use_scc | whether to simplify the construction based on the SCCs in the input automaton.
  use_simulation | whether to simplify the construction based on simulation relations between states in the original automaton.
  use_stutter | whether to simplify the construction when the input automaton is known to be stutter-invariant. (The stutter-invariant flag of the input automaton is used, so it might be worth to call spot::check_stutter_invariance() first if possible.)

Please direct any question, comment, or bug report to the Spot mailing list at spot@lrde.epita.fr.