Awali
Another Weighted Automata library
reduction.hh
Go to the documentation of this file.
1 // This file is part of Awali.
2 // Copyright 2016-2022 Sylvain Lombardy, Victor Marsault, Jacques Sakarovitch
3 //
4 // Awali is a free software: you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation, either version 3 of the License, or
7 // (at your option) any later version.
8 //
9 // This program is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU General Public License for more details.
13 //
14 // You should have received a copy of the GNU General Public License
15 // along with this program. If not, see <http://www.gnu.org/licenses/>.
16 
17 
18 /*****************************************************************************
19  /!\ Beware, the string below is used as a source for generating a page in
20  Doxygen in a md.
21 
22  A preprocessing is done that escape any <, >, [, ] or backslash
23  that appears outside of a block of code.
24  This exclude lines starting with 4 spaces and strings between backquote
25  and the character > if it is the very first character of a line.
26 
27  This process will fail if there is an odd number of backquotes on any
28  given line ! Also backquotes are doubled for technical reasons,
29  so do not use double backquotes.
30 
31  Please duplicate this warning if you use this file as a template.
32 ******************************************************************************/
33 
34 #ifndef AWALI_COMMON_DOCSTRING_TEMPLATEDOCFILE_HH
35 #define AWALI_COMMON_DOCSTRING_TEMPLATEDOCFILE_HH
36 
38 
39 namespace awali { namespace docstring {
40 
41 static entry_t reduction = {
42 /* Name: */ "reduction",
43 /* Description: */ "Presentation of the reduction algorithm",
44 /* Title: */ " Presentation of the reduction algorithm",
45 /* Content: */
46 R"---doxytoken---(
47 A `K`-automaton **A** over an alphabet `A` of dimension `Q` usually
48 written under its matrix form as **A**`=<I,E,T>` is more conveniently
49 described for the purpose of the reduction algorithm under its
50 'representation' form **A**`=<I,µ,T>`, where `µ` is the morphism from
51 `A^*` into `K^{QxQ}` defined by
52 
53  E = \sum_{a\in A} µ(a) a .
54 
55 If `K` is a field, **A** is said to be _controllable_ if the dimension of
56 the vector-space generated by the set of vectors `{ I.µ(w) | w \in A^* }`
57 is `Q` and **A** is said to be _observable_ if the dimension of the
58 vector-space generated by the set of vectors `{ µ(w).T | w \in A^* }` is
59 `Q`. Indeed, **A** is observable if the _transpose_ of **A** is
60 controllable.
61 
62 An automaton **A** is said to be _reduced_ if it is of minimal dimension
63 among all equivalent automata equivalent to **A**. The reduction algorithm
64 is then based on the two following results:
65 
66 Theorem 1 : _**A** is reduced if it is both controllable and observable._
67 
68 Theorem 2 : _Given **A**`= <I,µ,T>`, it is possible to compute effectively
69 an automaton **A'**`= <I',µ',T'>` which is 'conjugate' (hence equivalent)
70 to **A** and with the two properties:_
71  • _**A'** is controllable;_
72  • _if **A** is observable, so is **A'**._
73 
74 These results, hence the algorithm, may be generalized to _skew fields_, and
75 to _PID_ (Principal Ideal Domains) such as `Z`.
76 
77 The algorithm is due to M. P. Schützenberger, in his paper where he
78 introduced the notion of weighted automata ('On the definition of a family
79 of automata _Information & Control_ 1961'). More details and
80 bibliographical information can be found in 'J. Sakarovitch, Rational and
81 recognisable series, in _Handbook of Weighted Automata_, Springer, 2009'.
82 )---doxytoken---"
83 };
84 
85 }} //End of namespaces awali::docstring and awali
86 
87 
88 #endif
89 
static entry_t reduction
Definition: reduction.hh:41
Definition: entry.hh:24
Main namespace of Awali.
Definition: ato.hh:22