Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
RANDAUT(1)			 User Commands			    RANDAUT(1)

NAME
       randaut - generate random automata

SYNOPSIS
       randaut [OPTION...] N|PROP...

DESCRIPTION
       Generate	random connected automata.

       The  automata  are built	over the atomic	propositions named by PROPS...
       or, if N	is a nonnegative number, using N arbitrary names.  If the edge
       density is set to D, and	the number of states to	Q, the degree of  each
       state  follows  a  normal  distribution with mean 1+(Q-1)D and variance
       (Q-1)D(1-D).  In	particular, for	D=0 all	states have a  single  succes-
       sor, while for D=1 all states are interconnected.

   Generation:
       -a, --acc-probability=FLOAT
	      probability that an edge belongs to one acceptance set (0.2)

       -A, --acceptance=ACCEPTANCE
	      specify the acceptance type of the automaton

       -b, --buchi, --Buchi
	      build a Bchi automaton (same as --acceptance=Buchi)

       -B, --sba, --ba
	      build  a state-based Buchi automaton (implies --acceptance=Buchi
	      --state-acc)

       --colored
	      build an automaton in which each edge (or	state if combined with
	      -S) belong to a single acceptance	set

       -D, --deterministic
	      build a complete,	deterministic automaton

       -e, --density=FLOAT
	      density of the edges (0.2)

       -n, --automata=INT
	      number of	automata to output (1) use a negative  value  for  un-
	      bounded generation

       -Q, --states=RANGE
	      number of	states to output (10)

       --seed=INT
	      seed for the random number generator (0)

       -S, --state-based-acceptance, --sbacc
	      used state-based acceptance

       -u, --unique
	      do  not  output the same automaton twice (same in	the sense that
	      they are isomorphic)

       RANGE may have one  of  the  following  forms:  'INT',  'INT..INT',  or
       '..INT'.	 In the	latter case, the missing number	is assumed to be 1.

       ACCEPTANCE may be either	a RANGE	(in which case generalized Bchi	is as-
       sumed),	  or	an    arbitrary	   acceptance	 formula    such    as
       'Fin(0)|Inf(1)&Fin(2)' in the same syntax as in the HOA format, or  one
       of the following	patterns:

	      none   all   Buchi  co-Buchi  generalized-Buchi  RANGE  general-
	      ized-co-Buchi RANGE Rabin	RANGE Streett RANGE  generalized-Rabin
	      INT  RANGE RANGE ... RANGE parity	(min|max|rand) (odd|even|rand)
	      RANGE random RANGE random	RANGE PROBABILITY

       The random acceptance condition uses each set only once,	unless a prob-
       ability (to reuse the set again every time it is	used) is given.

   Output format:
       -8, --utf8
	      enable UTF-8  characters	in  output  (ignored  with  --lbtt  or
	      --spin)

       --check[=PROP]
	      test  for	 the additional	property PROP and output the result in
	      the HOA format (implies -H).  PROP may be	some prefix  of	 'all'
	      (default),  'unambiguous',  'stutter-invariant', 'stutter-sensi-
	      tive-example', 'semi-determinism', or 'strength'.

       -d, --dot[=1|a|A|b|B|c|C(COLOR)|e|E|f(FONT)|h|i(ID)|k|K|n|N|o|r|R|s|t|
       u|v|y|+INT|<INT|#]
	      GraphViz's format.  Add letters for (1) force  numbered  states,
	      (a)  show	 acceptance  condition	(default), (A) hide acceptance
	      condition, (b) acceptance	sets as	bullets,  (B)  bullets	except
	      for  Bchi/co-Bchi	 automata, (c) force circular nodes, (C) color
	      nodes with COLOR,	(d) show origins when known, (e) force	ellip-
	      tic  nodes, (E) force rEctangular	nodes, (f(FONT)) use FONT, (g)
	      hide edge	labels,	(h) horizontal layout, (i) or (i(GRAPHID)) add
	      IDs, (k) use state labels	when possible, (K) use transition  la-
	      bels  (default), (n) show	name, (N) hide name, (o) ordered tran-
	      sitions, (r) rainbow colors for acceptance sets, (R)  color  ac-
	      ceptance	sets  by  Inf/Fin,  (s)	 with  SCCs, (t) force transi-
	      tion-based acceptance, (u) hide true states, (v)	vertical  lay-
	      out,  (y)	 split universal edges by color, (+INT)	add INT	to all
	      set numbers, (<INT) display at most INT states, (#) show	inter-
	      nal edge numbers

       -H, --hoaf[=1.1|i|k|l|m|s|t|v]
	      Output  the  automaton  in HOA format (default).	Add letters to
	      select (1.1) version 1.1 of the format, (b) create an alias  ba-
	      sis if >=2 AP are	used, (i) use implicit labels for complete de-
	      terministic  automata,  (s)  prefer  state-based acceptance when
	      possible [default], (t) force transition-based  acceptance,  (m)
	      mix  state and transition-based acceptance, (k) use state	labels
	      when possible, (l) single-line output, (v) verbose properties

       --lbtt[=t]
	      LBTT's format (add =t to force transition-based acceptance  even
	      on Bchi automata)

       --name=FORMAT
	      set the name of the output automaton

       -o, --output=FORMAT
	      send  output  to a file named FORMAT instead of standard output.
	      The first	automaton sent to a file truncates  it	unless	FORMAT
	      starts with '>>'.

       -q, --quiet
	      suppress all normal output

       -s, --spin[=6|c]
	      Spin  neverclaim	(implies  --ba).   Add	letters	 to select (6)
	      Spin's 6.2.4 style, (c) comments on states

       --stats=FORMAT, --format=FORMAT
	      output statistics	about the automaton

   Any FORMAT string may use the following interpreted sequences:
       %%     a	single %

       %a     number of	acceptance sets

       %c, %[LETTERS]c
	      number of	SCCs; you may filter the SCCs to count using the  fol-
	      lowing  LETTERS,	possibly  concatenated:	(a) accepting, (r) re-
	      jecting, (c) complete, (v) trivial, (t) terminal,	(w) weak, (iw)
	      inherently weak. Use uppercase letters to	negate them.

       %d     1	if the output is deterministic,	0 otherwise

       %e, %[LETTER]e
	      number of	edges (add one LETTER to  select  (r)  reachable  [de-
	      fault], (u) unreachable, (a) all).

       %F     seed number

       %g, %[LETTERS]g
	      acceptance  condition  (in HOA syntax); add brackets to print an
	      acceptance name instead and LETTERS to tweak the format: (0)  no
	      parameters,  (a) accentuated, (b)	abbreviated, (d) style used in
	      dot  output,  (g)	 no  generalized  parameter,   (l)   recognize
	      Street-like and Rabin-like, (m) no main parameter, (p) no	parity
	      parameter, (o) name unknown acceptance as	'other', (s) shorthand
	      for 'lo0'.

       %h     the  automaton  in  HOA  format on a single line (use %[opt]h to
	      specify additional options as in --hoa=opt)

       %L     automaton	number

       %l     serial number of the output automaton (0-based)

       %m     name of the automaton

       %n     number of	nondeterministic states	in output

       %p     1	if the output is complete, 0 otherwise

       %r     wall-clock time elapsed in seconds (excluding parsing)

       %R, %[LETTERS]R
	      CPU time (excluding parsing), in seconds;	 add  LETTERS  to  re-
	      strict  to(u) user time, (s) system time,	(p) parent process, or
	      (c) children processes.

       %s, %[LETTER]s
	      number of	states (add one	LETTER to select  (r)  reachable  [de-
	      fault], (u) unreachable, (a) all).

       %t, %[LETTER]t
	      number  of  transitions  (add one	LETTER to select (r) reachable
	      [default], (u) unreachable, (a) all).

       %u, %[e]u
	      number of	states (or [e]dges) with universal branching

       %u, %[LETTER]u
	      1	if the automaton contains some universal branching (or a  num-
	      ber of [s]tates or [e]dges with universal	branching)

       %w     one word accepted	by the output automaton

       %x, %[LETTERS]x
	      number  of  atomic  propositions declared	in the automaton;  add
	      LETTERS to list atomic propositions with (n) no quoting, (s) oc-
	      casional double-quotes with C-style  escape,  (d)	 double-quotes
	      with  C-style  escape,  (c) double-quotes	with CSV-style escape,
	      (p) between parentheses, any  extra  non-alphanumeric  character
	      will be used to separate propositions

   Miscellaneous options:
       --help print this help

       --version
	      print program version

       Mandatory  or  optional arguments to long options are also mandatory or
       optional	for any	corresponding short options.

EXAMPLES
       This builds a random neverclaim with 4 states and labeled using the two
       atomic propositions "a" and "b":

	      %	randaut	--spin -Q4 a b

       This builds three random, complete, and deterministic TGBA with 5 to 10
       states, 1 to 3 acceptance sets, and three atomic	propositions:

	      %	randaut	-n3 -D -H -Q5..10 -A1..3 3

       Build 3 random, complete, and deterministic Rabin automata with 2 to  3
       acceptance  pairs,  state-based acceptance, 8 states, a high density of
       edges, and 3 to 4 atomic	propositions:

	      %	randaut	-n3 -D -H -Q8 -e.8 -S -A 'Rabin	2..3' 3..4

REPORTING BUGS
       Report bugs to <spot@lrde.epita.fr>.

COPYRIGHT
       Copyright (C) 2024 by the Spot authors, see the AUTHORS	File  for  de-
       tails.	License	GPLv3+:	GNU GPL	version	3 or later <http://gnu.org/li-
       censes/gpl.html>.
       This is free software: you are free  to	change	and  redistribute  it.
       There is	NO WARRANTY, to	the extent permitted by	law.

SEE ALSO
       genltl(1), genaut(1), randltl(1), autfilt(1)

randaut	(spot) 2.12.1		September 2024			    RANDAUT(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=randaut&sektion=1&manpath=FreeBSD+Ports+14.3.quarterly>

home | help