Examples small enough to be solved by hand

Small problems and their solutions

The following automata are all non-empty with some generic acceptance condition. The first column (problem) show the automata as marked graphs. The fourth column (solution) highlight highlight one accepting lasso (i.e., an accepting cycle with a prefix that connect it to the initial state). There is no guarantee that the accepting cycle is unique.

problem states edges sets solution source product operands
aut1.pdf 11 23 8 aut1-acc.pdf aut1.hoa aut1-src.hoa
aut2.pdf 11 24 8 aut2-acc.pdf aut2.hoa aut2-src.hoa
aut3.pdf 10 21 8 aut3-acc.pdf aut3.hoa aut3-src.hoa
aut4.pdf 12 22 8 aut4-acc.pdf aut4.hoa aut4-src.hoa
aut5.pdf 7 14 8 aut5-acc.pdf aut5.hoa aut5-src.hoa
aut6.pdf 21 50 8 aut6-acc.pdf aut6.hoa aut6-src.hoa
aut7.pdf 20 44 8 aut7-acc.pdf aut7.hoa aut7-src.hoa
aut8.pdf 25 60 8 aut8-acc.pdf aut8.hoa aut8-src.hoa
aut9.pdf 21 30 8 aut9-acc.pdf aut9.hoa aut9-src.hoa
aut10.pdf 14 31 8 aut10-acc.pdf aut10.hoa aut10-src.hoa
aut11.pdf 12 23 16 aut11-acc.pdf aut11.hoa aut11-src.hoa
aut12.pdf 10 20 16 aut12-acc.pdf aut12.hoa aut12-src.hoa
aut13.pdf 21 57 16 aut13-acc.pdf aut13.hoa aut13-src.hoa
aut14.pdf 22 75 16 aut14-acc.pdf aut14.hoa aut14-src.hoa
aut15.pdf 11 13 16 aut15-acc.pdf aut15.hoa aut15-src.hoa
aut16.pdf 19 47 16 aut16-acc.pdf aut16.hoa aut16-src.hoa
aut17.pdf 14 30 16 aut17-acc.pdf aut17.hoa aut17-src.hoa
aut18.pdf 20 51 16 aut18-acc.pdf aut18.hoa aut18-src.hoa
aut19.pdf 18 39 16 aut19-acc.pdf aut19.hoa aut19-src.hoa
aut20.pdf 17 35 16 aut20-acc.pdf aut20.hoa aut20-src.hoa
aut21.pdf 18 34 16 aut21-acc.pdf aut21.hoa aut21-src.hoa
aut22.pdf 17 42 16 aut22-acc.pdf aut22.hoa aut22-src.hoa
aut23.pdf 16 32 16 aut23-acc.pdf aut23.hoa aut23-src.hoa
aut24.pdf 18 35 16 aut24-acc.pdf aut24.hoa aut24-src.hoa
aut25.pdf 15 32 16 aut25-acc.pdf aut25.hoa aut25-src.hoa

Sources

The rest of this page discuss the source of these examples.

Source in HOA format

The aut{1-25}.hoa files contain the corresponding automaton definition in HOA format.

To build autN.pdf and autN-acc.pdf from autN.hoa, do:

autfilt autN.hoa --dot='barf(Lato)g' |
    dot -T pdf > autN.pdf
autfilt autN.hoa --highlight-accepting-run=5 --dot='barf(Lato)g' |
    dot -T pdf > autN-acc.pdf

The --dot=g and --highlight-accepting-run options are new in Spot 2.8.

Sources as a product

All these automata where randomly generated as the product of two non-empty random automata, with constraints on the number of states and acceptance conditions listed below.

automata left operand right operand
1-5 4-state Streett-2 4-state Rabin-2
6-10 5-state Streett-2 5-state Rabin-2
11-15 5-state random 8 5-state parity min odd 8
16-25 5-state random 8 5-state parity min even 8

The random 8 acceptance used in the last 15 automata allows repetitions.

Those two sources automata are stored in aut{1-25}-src.hoa. The right operand appears befor the left operand in this file.

autN.hoa can be regenerated from autN-src.hoa as follows:

autfilt -Hl autN-src.hoa | sed 1d | autfilt - --product autN-src.hoa > autN.hoa

The combination of autfilt -Hl to display one automaton per line and sed 1d to delete the first line, actually outputs the second automaton and pipe it to the last autfilt that performs a --product with the first automaton in autN-src.hoa.

The product operand used were generated with different constraints:

Refresh

The following script regenerates all files using the commands described above.

for N in `seq 1 25`; do
    autfilt -Hl aut$N-src.hoa |
        sed 1d |
        autfilt - --product aut$N-src.hoa > aut$N.hoa

    autfilt aut$N.hoa --dot='barf(Lato)g' |
        dot -T pdf > aut$N.pdf

    autfilt aut$N.hoa --highlight-accepting-run=5 --dot='barf(Lato)g' |
        dot -T pdf > aut$N-acc.pdf
done