Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
| Download
GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it
Project: cocalc-sagemath-dev-slelievre
Views: 4183461[1X1 [33X[0;0YIntroduction[133X[101X23[33X[0;0YIn many situations an automaton is conveniently described through a diagram4like the following[133X56[33X[0;0YThis diagram describes a (deterministic) automaton with [22X3[122X states (the7elements of the set [22X{1,2,3}).[122X The arrow pointing to the state [22X1[122X indicates8that [22X1[122X is the initial state and the two circles around state [22X3[122X indicate that9[22X3[122X is a final or accepting state. The set [22X{a,b}[122X is the [13Xalphabet[113X of the10automaton; its elements are called [13Xletters[113X and are the labels of the edges11of the diagram. The words [22Xa[122X , [22Xab^2[122X , [22Xb^5a^3b[122X are examples of words12recognized by the automaton since they are labels of paths from the initial13to the final state.[133X1415[33X[0;0YThe set of words recognized by an automaton is called the [13Xlanguage[113X of the16automaton. It is a rational language and may be represented through a17rational expression. For instance,[133X1819[4X[32X Example [32X[104X20[4X[28X(aUb)(a(aUb)Ub(aUb))*[128X[104X21[4X[32X[104X2223[33X[0;0Yis a rational expression representing the language of the above automaton.[133X2425[33X[0;0YKleene's Theorem states that a language is rational if and only if it is the26language of a finite automaton. Both directions of Kleene's Theorem can be27proved constructively, and these algorithms, to go from an automaton to a28rational expression and [13Xvice-versa[113X, are implemented in this package.[133X2930[33X[0;0YOf course, one has to pay attention to the size of the output produced. When31producing a deterministic automaton equivalent to a given rational32expression one can obtain an optimal solution (the minimal automaton) using33standard algorithms [AHU74].[133X3435[33X[0;0YWhen producing a rational expression for the language of an automaton, and36taking into account some reasonable measure for the size of a rational37expression, to determine a minimal one is apparently computationally38difficult. We use here some heuristic methods (to be published elsewhere)39which in practice lead to very reasonable results.[133X4041[33X[0;0YThe development of this work has benefited from the existence of AMoRE42[MMPTV95], a package written in [10XC[110X to handle Automata, Monoids and Regular43Expressions. In fact, its manual has been very useful and some of the44algorithms implemented here are those implemented in AMoRE. In this package,45unlike what happened with AMoRE, we do not have to worry about the monoid46part in order to make it useful to semigroup theorists, since monoids are47already implemented in [5XGAP[105X and we may take advantage of this fact. We just48need a function to compute the transition semigroup of an automaton.[133X4950[33X[0;0YThe parts of this package that have not so directly to do with automata or51rational expressions are put into appendices in this manual. Some words52about these appendices follow.[133X5354[33X[0;0YUsing the external program Graphviz [DEGKNW02] to graph visualization, one55can visualize automata. This very convenient tool presently works easily56under LINUX.[133X5758[33X[0;0YGiven a finitely generated subgroup of the free group it is possible to59compute a flower automaton and perform Stallings foldings over it in order60to obtain an inverse automaton corresponding to the given subgroup.[133X61626364