Application Center - Maplesoft

App Preview:

State machines 1- automatons background

You can switch back to the summary page by clicking here.

Learn about Maple
Download Application


 

State Machines I - Automatons Background

Notions and Their Implementation in the aut Package

by Gyorgy Maroti, Zenon Computer Engineering and Trading Ltd., Hungary, maroti@zenon.hu,

< 2000 Gyorgy Maroti, Zenon Computer Engineering and Trading Ltd.>

NOTE: This woksheet gives a short introduction to the usage of the aut package. It summarizes the most important notions of automata theory and shows how they are implemented in Maple. Althought several procedures of the package are touched, this presentation is neither a tutorial, nor a coursebook. The procedures appear in this worksheet are used in their simplest form. All of them have several options (extra parameters), which make the usage of the procudures easier and more flexible.

Introduction: Definition of Automata

Automaton is a five element list Xi=[S, X, [Maple Math] , Q, F], where

1. S is a finite nonempty set. The elements of S are called the states of automaton Xi.

2. X is a finite nonvoid set of type alphabet . The elements of X are called the input signals of automaton Xi.

3. [Maple Math] is a table (in Maple sence), which desribes a pactial function Sx(X union {e}) -> P(S). [Maple Math] is called the transition
function of automaton
Xi.
If
[Maple Math] [a,v]=A for some state `a` and input signal `v`, then we call A the next set of possible states . Notice, A is
not necessarily defined. On the other hand A may be defined as the empty set.
If
[Maple Math] [a,e]=A for some state `a`, then we say the automaton has [Maple Math] - transitions , i.e. the automaton is able to change its
state without getting input signal.

4. Q is an (empty or nonempty) subsetof S, the set of initial states .

5. F is an (empty or nonempty) subset of S, the set of final states .

Section I: Establishing Automaton `by hand` - Never Again !

> restart;libname;

[Maple Math]

> with(aut):

Note: the aut.m file that is available for download must be placed in one of your recognized "lib" directories.

Define the set of state ...

> S:={a,b,c};

[Maple Math]

... and the set of input signals...

> X:={x,y};type(X,alphabet);

[Maple Math]

[Maple Math]

... and the transition funtion (a table in Maple sence)...

> delta[a,x]:={a,b};
delta[a,y]:={b};
delta[b,e]:={a};
delta[b,x]:={c};

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

... and the automaton itself by creating a five element list.

> Xi:=[S,X,delta,{a},{c}];

[Maple Math]

Our effort is successful, as Maple recognizes Xi as a type automaton .

> type(Xi,automaton);

[Maple Math]

Section II: aut Package Offers the Procedure genaut

The process above is not only time consuming, but also the steps we made had redundancy. Indeed, the transition fuction [Maple Math] itself contains the relevant states and input signals.The independent listing of states and input signal seems not to be necessary. The procedure genaut collects all the states and input signals, which appear in [Maple Math] , and creates the set of states and the set of input signals.

> Phi:=genaut(delta,a,c);

[Maple Math]

The result is automaton Phi...

> type(Phi,automaton);

[Maple Math]

...whose details can be seen on its transition matrix.

> printaut(Phi);

[Maple Math]

[Maple Math]

[Maple Math]

>

Section III: Different Types of Automata

The aut package contains three futher types concerning automata: emptyfree, deterministic, complete.
If the transition function of automaton Xi is a pactial function SxX->P(S) then Xi is called emptyfree .

If the automaton is emptyfree and the image set for all pairs of SxX has at most one element or not defined, then we call the automaton deterministic .

If the image set for all pairs of SxX has at least one element, then we call the automaton complete .
As an example let see the properties of automaton Xi, defined above.

Xi is not emptyfree, as it has one [Maple Math] -transition.

> type(Xi,emptyfree);

[Maple Math]

Xi is not deterministic, as delta(a,x) has two elements.

> type(Xi,deterministic);

[Maple Math]

Xi is not complete, as e.g. delta(b,y) is not defined.

> type(Xi,complete);

[Maple Math]

All these properties can be easily checked by displaying the transition graph of Xi. We use the plotaut procedure of aut package.

> plotaut(Xi);

[Maple Plot]

>

Section IV: How to describe the operation of automata?

Before answering the question above, we have to introduce the notion of [Maple Math] - closure .
Let A be a subset of states. If we form the union of A and sets
[Maple Math] [a,e] for all state a of A, we obtain the set A[1] which contains A. Repeat the process for A[1], and create the set A[2], etc. In this way we obtain a sequence of sets

A < A[1] < A[2] <...

As all of these sets are subset of S, wich is finite, there must be an index i such that

A < A[1] < A[2] <...< A[i] = A[i+1] =...

The set C:=A[i] is called the [Maple Math] -closure of the set A. Notice that [Maple Math] -closure consists of all states, which are reachable from the states of A through one ore more [Maple Math] -transitions.

The [Maple Math] -closure of the set A can be created by the procedure closure .

> closure(Phi,{b});

[Maple Math]

If there is no [Maple Math] -transition defined for the states belong to a set A, then the [Maple Math] -closure of A equals to itself.

> closure(Phi,{c});

[Maple Math]

>

The operation of an automaton is described by procedure Delta .

1. Delta is a function of three argument:

Xi - automaton,

A - subset of the set of states of Xi,

w - word over the input signals of Xi.

2. Delta (Xi, A, [Maple Math] ) equals to the closure (Xi, A), i.e. [Maple Math] -closure of the set A.
3. For the input signal x,
Delta (Xi, A, x) equals to the [Maple Math] -closure of the union of sets [Maple Math] [s, x], where s is elemet of
Delta (Xi, A, [Maple Math] ).

4. If w=px then Delta (Xi, A, w) equals to Delta (Xi, Delta(Xi, A, p), x).

As our notion of automaton is nondeteministic, we speak about sets of possible states . At the very beginning of operation the set of possible states S[0] equals to Q, the set of initial states. The first input signal v1 comes and we define the next set S[1] of possible states as S[1]:= Delta (Xi, S[0], v1). Obtaining the next input signal v2, we define S[2]:= Delta (Xi, S[1], v2) as the next set of possible states, etc.

As an example we show the sequence of possible states, when the automaton [Maple Math] gets the input word `xyx`.

Let S0, the set of first possible state, equal to the set of initial states.

> S0:={b};

[Maple Math]

The first input signal is x comes and the next set of possible states is S1.

> S1:=Delta(Phi,S0,x);

[Maple Math]

The second input signal is y comes and the next set of possible states is S2.

> S2:=Delta(Phi,S1,y);

[Maple Math]

In the end the third input signal is x again and the resulting set of possible states is S3.

> S3:=Delta(Phi,S2,x);

[Maple Math]

These three steps can be evaluated in one step.

> Delta(Phi,S0,xyx);

[Maple Math]

Delta becomes moe communicativ, if we give the option trace1. More specifically, with trace1 Delta lists of all sets of possible states.

> Delta(Phi,S0,xyx,trace1);

-Delta begins with {b}

-Delta({b, a},x) = {b, a, c}

-Delta({b, a, c},y) = {b, a}

-Delta({b, a},x) = {b, a, c}

[Maple Math]

[Maple Math]

We obtain futher details of the computation by using the option trace2.

> Delta(Phi,S0,xyx,trace2);

-Delta begins with {b}

 .{b},closure ->{b, a}

-Delta({b},e) = {b, a}

 .b,x->{c}

 .a,x->{b, a}

-Delta({b, a},x) = {b, a, c}

 .a,y->{b}

 .{b},closure ->{b, a}

-Delta({b, a, c},y) = {b, a}

 .b,x->{c}

 .a,x->{b, a}

-Delta({b, a},x) = {b, a, c}

[Maple Math]

[Maple Math]

>

Section V: Accepting Language by Automaton

We say the automaton Xi accepts the word w if the intersection of sets Delta (Xi, X[4], w) and Xi[5] (the set of final state) is nonvoid. In other words, the automaton begins its operation with the set of initial states. This is the first set of possible states. After that Delta (Xi, X[4], w) determines the set of possible states by processing the word w. If this set of possible states possesses at least one final state, we say that w is accepted . Otherwise w is said not to be accepted by Xi. The language L accepted by automaton Xi consists of all words accepted by Xi.These functionalities are implemented by the procedures accept and genlang.

Automaton Phi accepts the word xyy.

> accept(Xi,xyx);

[Maple Math]

If we want to show the details of computation, we use options trace1 and show of accept .

> accept(Xi,xyx,trace1,show);

-Delta begins with {a}

-Delta({a},x) = {b, a}

-Delta({b, a},y) = {b, a}

-Delta({b, a},x) = {b, a, c}

[Maple Math]

Result of Delta:

[Maple Math]

[Maple Math]

Result of accept:

[Maple Math]

The process of recognition can be vizualise by using the option animate. The animation below show how the automaton process the input word xyx. In order to be able to see the different action, it is practical to see the pictures step by step.

> accept(Xi,xyx,animate);

[Maple Plot]

[Maple Math]

The word xy is not accepted by automaton [Maple Math] .

> accept(Xi,xy,trace2,show);

-Delta begins with {a}

 .a,x->{b, a}

-Delta({a},x) = {b, a}

 .a,y->{b}

 .{b},closure ->{b, a}

-Delta({b, a},y) = {b, a}

[Maple Math]

Result of Delta:

[Maple Math]

[Maple Math]

Result of accept:

[Maple Math]

The language accepted by automaton is not necessarily finite. For that reason the procedure langaut work in such a way that it shows a finite subset of the accepted language.

> langaut(Phi);

[Maple Math]

By default langaut dislpays the words of length less then or equal to 3. We can, however, control not only the length of words, but also the way of ordering.

> langaut(Phi,2..4,lexorder);

[Maple Math]

>