randaut: rename -S as -Q for consistency
This way -S means --state-based-acc like with other tools producing automata. This fixes #82. * src/bin/randaut.cc: Rename -S as -Q, rename --state-acc as --state-based-acc (with --sbacc as a synonym), and declare -S as the short version of --state-based-acc. * doc/org/autfilt.org, doc/org/oaut.org, doc/org/randaut.org, src/tests/isomorph.test, src/tests/randaut.test, src/tests/randtgba.test, src/tests/readsave.test, src/tests/uniq.test, wrap/python/tests/randaut.ipynb: Adjust all calls to randaut.
This commit is contained in:
parent
a6ef24567e
commit
0ac35a1591
10 changed files with 89 additions and 89 deletions
|
|
@ -99,22 +99,22 @@ statistics.
|
|||
|
||||
|
||||
#+BEGIN_SRC sh :results verbatim :exports both
|
||||
randaut --hoa -n 10 -A0..2 -S10..20 -d0.05 2 |
|
||||
randaut --hoa -n 10 -A0..2 -Q10..20 -d0.05 2 |
|
||||
autfilt --stats='%s states, %e edges, %a acc-sets, %c SCCs, det=%d'
|
||||
#+END_SRC
|
||||
|
||||
#+RESULTS:
|
||||
#+begin_example
|
||||
16 states, 27 edges, 1 acc-sets, 2 SCCs, det=0
|
||||
12 states, 20 edges, 1 acc-sets, 2 SCCs, det=0
|
||||
11 states, 15 edges, 0 acc-sets, 4 SCCs, det=1
|
||||
16 states, 29 edges, 0 acc-sets, 2 SCCs, det=0
|
||||
15 states, 30 edges, 2 acc-sets, 1 SCCs, det=0
|
||||
11 states, 17 edges, 1 acc-sets, 2 SCCs, det=0
|
||||
11 states, 16 edges, 1 acc-sets, 1 SCCs, det=1
|
||||
17 states, 28 edges, 1 acc-sets, 1 SCCs, det=0
|
||||
19 states, 36 edges, 0 acc-sets, 3 SCCs, det=0
|
||||
11 states, 16 edges, 2 acc-sets, 6 SCCs, det=0
|
||||
16 states, 28 edges, 1 acc-sets, 1 SCCs, det=0
|
||||
19 states, 37 edges, 0 acc-sets, 1 SCCs, det=0
|
||||
16 states, 24 edges, 1 acc-sets, 1 SCCs, det=0
|
||||
12 states, 16 edges, 0 acc-sets, 5 SCCs, det=0
|
||||
12 states, 17 edges, 2 acc-sets, 3 SCCs, det=0
|
||||
15 states, 21 edges, 2 acc-sets, 5 SCCs, det=0
|
||||
10 states, 12 edges, 0 acc-sets, 4 SCCs, det=1
|
||||
10 states, 14 edges, 1 acc-sets, 1 SCCs, det=0
|
||||
19 states, 27 edges, 1 acc-sets, 1 SCCs, det=0
|
||||
11 states, 12 edges, 1 acc-sets, 9 SCCs, det=1
|
||||
#+end_example
|
||||
|
||||
The following =%= sequences are available:
|
||||
|
|
|
|||
|
|
@ -871,23 +871,23 @@ density 0.2, and just count the number of edges in each automaton. Then
|
|||
use =R= to summarize the distribution of these values:
|
||||
|
||||
#+BEGIN_SRC sh :results verbatim :exports both
|
||||
randaut -d 0.2 -S 10 -n 1000 a --stats %e > size.csv
|
||||
randaut -d0.2 -Q10 -n1000 a --stats %e > size.csv
|
||||
R --slave -e "summary(read.csv('size.csv', header=FALSE, col.names='edges'))"
|
||||
#+END_SRC
|
||||
|
||||
#+RESULTS:
|
||||
: edges
|
||||
: Min. :17.00
|
||||
: 1st Qu.:25.00
|
||||
: Median :28.00
|
||||
: Mean :27.96
|
||||
: 3rd Qu.:30.00
|
||||
: Max. :42.00
|
||||
: Min. :14.00
|
||||
: 1st Qu.:22.00
|
||||
: Median :25.00
|
||||
: Mean :24.72
|
||||
: 3rd Qu.:27.00
|
||||
: Max. :36.00
|
||||
|
||||
|
||||
For $S=10$ states and density $D=0.2$ the expected degree of each
|
||||
state $1+(S-1)D = 1+9\times 0.2 = 2.8$ so the expected number of edges
|
||||
should be 10 times that.
|
||||
For $Q=10$ states and density $D=0.2$ the expected degree of each
|
||||
state is $1+(Q-1)D = 1+9\times 0.2 = 2.8$, so the expected number of
|
||||
edges should be 10 times that.
|
||||
|
||||
|
||||
* Naming automata
|
||||
|
|
@ -1006,7 +1006,7 @@ automaton is deterministic. We can generate 20 random automata, and
|
|||
output them in two files depending on their determinism:
|
||||
|
||||
#+BEGIN_SRC sh :results verbatim :exports both
|
||||
randaut -n 20 -S2 -d1 1 -H -o out-det%d.hoa
|
||||
randaut -n 20 -Q2 -d1 1 -H -o out-det%d.hoa
|
||||
autfilt -c out-det0.hoa # Count of non-deterministic automata
|
||||
autfilt -c out-det1.hoa # Count of deterministic automata
|
||||
#+END_SRC
|
||||
|
|
@ -1024,7 +1024,7 @@ deterministic automata, it may look like we produced more
|
|||
than 20 automata:
|
||||
|
||||
#+BEGIN_SRC sh :results verbatim :exports both
|
||||
randaut -D -n 20 -S2 -d1 1 -H -o out-det%d.hoa
|
||||
randaut -D -n 20 -Q2 -d1 1 -H -o out-det%d.hoa
|
||||
autfilt -c out-det0.hoa # Count of non-deterministic automata
|
||||
autfilt -c out-det1.hoa # Count of deterministic automata
|
||||
#+END_SRC
|
||||
|
|
@ -1039,6 +1039,6 @@ previous execution, while =out-det1.hoa= has been overwritten.
|
|||
In the case where you want to append to a file instead of overwriting
|
||||
it, prefix the output filename with =>>= as in
|
||||
|
||||
: randaut -D -n 20 -S2 1 -H -o '>>out-det%d.hoa'
|
||||
: randaut -D -n 20 -Q2 1 -H -o '>>out-det%d.hoa'
|
||||
|
||||
(You need the quotes so that the shell does not interpret '>>'.)
|
||||
|
|
|
|||
|
|
@ -69,22 +69,22 @@ instead of giving a list of atomic propositions.
|
|||
|
||||
* States and density
|
||||
|
||||
The numbers of states can be controlled using the =-S= option. This
|
||||
option will accept a range as argument, so for instance =-S3..6= will
|
||||
The numbers of states can be controlled using the =-Q= option. This
|
||||
option will accept a range as argument, so for instance =-Q3..6= will
|
||||
generate an automaton with 3 to 6 states.
|
||||
|
||||
The number of edges can be controlled using the =-d= (or
|
||||
=--density=) option. The argument should be a number between 0 and 1.
|
||||
In an automaton with $S$ states and density $d$, the degree of each
|
||||
state will follow a normal distribution with mean $1+(S-1)d$ and
|
||||
variance $(S-1)d(1-d)$.
|
||||
In an automaton with $Q$ states and density $d$, the degree of each
|
||||
state will follow a normal distribution with mean $1+(Q-1)d$ and
|
||||
variance $(Q-1)d(1-d)$.
|
||||
|
||||
In particular =-d0= will cause all states to have 1 successors, and
|
||||
=-d1= will cause all states to be interconnected.
|
||||
|
||||
#+NAME: randaut2
|
||||
#+BEGIN_SRC sh :results verbatim :exports code
|
||||
randaut -S3 -d0 2
|
||||
randaut -Q3 -d0 2
|
||||
#+END_SRC
|
||||
|
||||
#+RESULTS: randaut2
|
||||
|
|
@ -114,7 +114,7 @@ $txt
|
|||
|
||||
#+NAME: randaut3
|
||||
#+BEGIN_SRC sh :results verbatim :exports code
|
||||
randaut -S3 -d1 2
|
||||
randaut -Q3 -d1 2
|
||||
#+END_SRC
|
||||
|
||||
#+RESULTS: randaut3
|
||||
|
|
@ -191,20 +191,20 @@ randaut --help | sed -n '/^ \(ACCEPTANCE\|RANGE\)/,/^$/p'
|
|||
|
||||
- =-a= (or =--acc-probability=) controls the probability that any
|
||||
transition belong to a given acceptance set.
|
||||
- =--state-acc= requests that the automaton use state-based
|
||||
- =-S= (or =--state-acc=) requests that the automaton use state-based
|
||||
acceptance. In this case, =-a= is the probability that a /state/
|
||||
belong to the acceptance set. (Because Spot only deals with
|
||||
transition-based acceptance internally, this options force all
|
||||
transitions leaving a state to belong to the same acceptance sets.
|
||||
But if the output format allows state-acceptance, it will be used.)
|
||||
|
||||
In addition, =-B= (or =--ba=) is a shorthand for =-A1 --state-acc=,
|
||||
In addition, =-B= (or =--ba=) is a shorthand for =-A1 -S=,
|
||||
ans =-s= (or =--spin=) implies =-B=.
|
||||
|
||||
|
||||
#+NAME: randaut4
|
||||
#+BEGIN_SRC sh :results verbatim :exports code
|
||||
randaut -S3 -d0.5 -A3 -a0.5 2
|
||||
randaut -Q3 -d0.5 -A3 -a0.5 2
|
||||
#+END_SRC
|
||||
|
||||
#+RESULTS: randaut4
|
||||
|
|
@ -237,7 +237,7 @@ $txt
|
|||
|
||||
#+NAME: randaut5
|
||||
#+BEGIN_SRC sh :results verbatim :exports code
|
||||
randaut -S3 -d0.4 -B -a0.7 2
|
||||
randaut -Q3 -d0.4 -B -a0.7 2
|
||||
#+END_SRC
|
||||
|
||||
#+RESULTS: randaut5
|
||||
|
|
@ -268,7 +268,7 @@ $txt
|
|||
|
||||
#+NAME: randaut5b
|
||||
#+BEGIN_SRC sh :results verbatim :exports code
|
||||
randaut -S6 -d0.4 --state-acc -a.2 -A 'Streett 1..3' 2 --dot=.a
|
||||
randaut -Q6 -d0.4 --state-acc -a.2 -A 'Streett 1..3' 2 --dot=.a
|
||||
#+END_SRC
|
||||
|
||||
#+RESULTS: randaut5b
|
||||
|
|
@ -284,27 +284,27 @@ digraph G {
|
|||
node[style=filled, fillcolor="#ffffa0"] edge[arrowhead=vee, arrowsize=.7]
|
||||
I [label="", style=invis, width=0]
|
||||
I -> 0
|
||||
0 [label="0"]
|
||||
0 [label=<0>]
|
||||
0 -> 2 [label=<!p0 & !p1>]
|
||||
0 -> 1 [label=<!p0 & !p1<br/><font color="#FAA43A">â·</font>>]
|
||||
0 -> 5 [label=<!p0 & !p1>]
|
||||
1 [label="1"]
|
||||
1 -> 0 [label=<!p0 & p1<br/><font color="#5DA5DA">â¿</font><font color="#FAA43A">â·</font>>]
|
||||
1 -> 3 [label=<!p0 & !p1>]
|
||||
2 [label="2"]
|
||||
2 -> 5 [label=<!p0 & !p1<br/><font color="#F17CB0">â¶</font>>]
|
||||
2 -> 3 [label=<p0 & !p1<br/><font color="#5DA5DA">â¿</font>>]
|
||||
2 -> 2 [label=<!p0 & p1<br/><font color="#5DA5DA">â¿</font>>]
|
||||
0 -> 1 [label=<!p0 & !p1>]
|
||||
0 -> 3 [label=<!p0 & !p1>]
|
||||
1 [label=<1>]
|
||||
1 -> 5 [label=<!p0 & p1>]
|
||||
2 [label=<2<br/><font color="#5DA5DA">â¿</font><font color="#FAA43A">â·</font>>]
|
||||
2 -> 0 [label=<!p0 & p1>]
|
||||
2 -> 4 [label=<!p0 & !p1>]
|
||||
3 [label="3"]
|
||||
3 -> 2 [label=<p0 & p1<br/><font color="#F17CB0">â¶</font>>]
|
||||
4 [label="4"]
|
||||
4 -> 3 [label=<!p0 & !p1>]
|
||||
4 -> 5 [label=<!p0 & p1<br/><font color="#5DA5DA">â¿</font><font color="#F17CB0">â¶</font>>]
|
||||
5 [label="5"]
|
||||
5 -> 0 [label=<p0 & p1>]
|
||||
5 -> 3 [label=<p0 & p1>]
|
||||
5 -> 2 [label=<!p0 & p1<br/><font color="#B276B2">â¸</font>>]
|
||||
3 [label=<3>]
|
||||
3 -> 1 [label=<!p0 & !p1>]
|
||||
3 -> 2 [label=<p0 & !p1>]
|
||||
3 -> 5 [label=<!p0 & !p1>]
|
||||
3 -> 4 [label=<p0 & !p1>]
|
||||
4 [label=<4<br/><font color="#B276B2">â¸</font>>]
|
||||
4 -> 2 [label=<p0 & !p1>]
|
||||
4 -> 5 [label=<!p0 & !p1>]
|
||||
4 -> 3 [label=<!p0 & p1>]
|
||||
5 [label=<5<br/><font color="#F17CB0">â¶</font>>]
|
||||
5 -> 3 [label=<!p0 & p1>]
|
||||
5 -> 1 [label=<p0 & p1>]
|
||||
}
|
||||
#+end_example
|
||||
|
||||
|
|
@ -331,7 +331,7 @@ therefore deterministic and complete.
|
|||
|
||||
#+NAME: randaut6
|
||||
#+BEGIN_SRC sh :results verbatim :exports code
|
||||
randaut -D -S3 -d0.6 -A2 -a0.5 2
|
||||
randaut -D -Q3 -d0.6 -A2 -a0.5 2
|
||||
#+END_SRC
|
||||
|
||||
#+RESULTS: randaut6
|
||||
|
|
@ -366,7 +366,7 @@ $txt
|
|||
|
||||
Note that in a deterministic automaton with $a$ atomic propositions,
|
||||
it is not possible to have states with more than $2^a$ successors. If
|
||||
the combination of =-d= and =-S= allows the situation where a state
|
||||
the combination of =-d= and =-Q= allows the situation where a state
|
||||
can have more than $2^a$ successors, the degree will be clipped to
|
||||
$2^a$. When working with random deterministic automata over $a$
|
||||
atomic propositions, we suggest you always request more than $2^a$
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue