zlktree: implement ACD and its transform
A quick and dirty implementation of the Alternating Cycle Decomposition of the casares.21.icalp paper. * spot/twaalgos/genem.cc, spot/twaalgos/genem.hh (maximal_accepting_loops_for_scc): New function. * spot/twaalgos/sccinfo.cc, spot/twaalgos/sccinfo.hh (scc_and_mark_filter): Add a possibility to specify a mask of transition to filter. * spot/twaalgos/zlktree.hh, spot/twaalgos/zlktree.cc (acd): New class. (acd_transform): New function. * python/spot/__init__.py: Add SVG rendering for acd. * tests/python/_zlktree.ipynb: Play with acd and acd_transform. * tests/python/toparity.py: Add more tests to compare the sizes of acd_transform and to_parity. * NEWS: Mention this new feature.
This commit is contained in:
parent
8c5bb6c2eb
commit
26f2179805
10 changed files with 4657 additions and 144 deletions
12
NEWS
12
NEWS
|
|
@ -232,9 +232,15 @@ New in spot 2.9.8.dev (not yet released)
|
|||
have been merged (and therefore removed from the automaton).
|
||||
|
||||
- spot::zielonka_tree is a new class that can be constructed from
|
||||
any acceptance condition to help paritizing it. This is based on
|
||||
a paper by Casares et al. (ICALP'21). Its python binding will
|
||||
display the tree graphically.
|
||||
any acceptance condition to help paritizing it.
|
||||
spot::zielonka_tree_transform() will paritize an automaton using
|
||||
the Zielong Tree of its acceptance. Similarly, spot::acd class
|
||||
implement the Alternating Cycle Decomposition of any automaton.
|
||||
The spot::acd_transform() function uses it to paritize any
|
||||
automaton optimally. These two transformations are based on a
|
||||
paper by Casares et al. (ICALP'21). The python bindings for
|
||||
spot.zielonka_tree and spot.acd will display those structure
|
||||
graphically, making it easier to explore those concepts.
|
||||
|
||||
Python:
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue