• Non ci sono risultati.

Languages and Finite State Automata Design

N/A
N/A
Protected

Academic year: 2021

Condividi "Languages and Finite State Automata Design"

Copied!
24
0
0

Testo completo

(1)

Languages and Finite State Automata Design

Alessandro Barenghi

Dipartimento di Elettronica, Informazione e Bioingegneria Politecnico di Milano

alessandro -dot- barenghi -at- polimi -dot- it

March 4, 2021

(2)

Languages

Quick recap

An alphabet is a finite set of symbols

A language is a set of sequences of symbols from an alphabet Sequences go by the names: word, string, phrase

A language is not necessarily a finite set The empty word  may be part of a language

Sometimes in this course we will specify a language in natural language: effective for our purposes, but rather informal

Example: given an alphabet I = {a, b}, consider the language L of all strings with an even number of a

(3)

Languages

Notation (examples on I = {a, b})

The concatenation operator is often omitted: a.b becomes ab It is defined on letters, naturally extended on words

Iterated concatenation is written as exponentiation: aaaa becomes a4 (mimics multiplication)

But concat does not commute: a2b2= aabb 6= abab = (ab)2 Languages are sets, we write them enclosed in curly braces:

Enumerating them: L = {ab, aaba}, L = {}

In natural language:

L = {s, where s is a string with an odd number of a}

Something in between L = {an, n ∈ N and n > 3}

N.B. abab is a word, {abab} is a set of words (language)

(4)

Set operations

Union ∪, Intersection ∩ and difference \

What’s {a4} ∪ {a2n, n ∈ N} ? {a2n, n ∈ N}

What’s {a2n+1n ∈ N} ∪ {a2n, n ∈ N} ? {an, n ∈ N}

What’s {a6} ∩ {a2n, n ∈ N} ? {a6} What’s {b} ∩ {a2n, n ∈ N} ? {}

What’s {an, n ∈ N} ∩ {bn, n ∈ N} ? {}

What’s {a4} \ {a2n, n ∈ N} ? {}

What’s {a2n, n ∈ N} \ {a4} ? {a2n, n ∈ N \ {2}}

(5)

Language concatenation

From an operative standpoint

L1.L2= the language of all the strings obtained concatenating a string from L1 and a string from L2 in this order

Warm-up: L1= {(ab)n, n ∈ N}, L2= {anbn, n ∈ N}

What is L1.L2?

What is (L1.L2) ∩ L1 ? L1

What is (L1.(L2\ {})) ∩ L1 ? L1\ {} = {(ab)n, n ∈ N \ {0}}

What is L1.L1? L1

What is L2.L2? {anbnambm, n ∈ N, m ∈ N}

(6)

Looking at the stars

On an alphabet

Applied to a set of letters, yields an (infinite) set of words It generates the set of all the words writeable with the alphabet N.B. I = {a}, I= {an, n ∈ N}, I is a language

We denote I\ {} as I+ On a language

L is the union of all the elements of Ln, n ∈ N

What is L with L = {, aa, ab, ba, bb}? {a, b}\ {a, b}

Complement

The complement ¯L (also ¬L) of L over the alphabet I is I\ L

(7)

Regular expressions

A compact way to describe languages

A regular expression R denotes a language L(R):

a constant:∅ (empty language), , or a letter in I R.S : L(R).L(R)

R|S : L(R) ∪ L(R)

(round) parentheses enforce precedence R : L(R)

R+: L(R)+

As expressive as finite state automata (we will not prove it...

in this course): can algorithmically be transformed in them Really handy to describe in a compact fashion a language

(8)

Finite State Automata

What are FSAs?

Finite State Automata (Automi a Stati Finiti ASF) are the simplest among abstract computing models we’ll see They are still able to describe a good deal of useful systems They are characterized by a finite memory capacity

In a sense, every real world computing machine is a FSA (as it only has a finite number of memory elements)

However modeling it as such is nota good idea (too many states, roughly 2243 ' 10300000000000 for a common PC)

(9)

Formalization

A recognizerFSA is formally defined as a quintuple (Q, I, δ, q0, F), where:

Q, is the set of states of the automata

I is the alphabet of the input string which will be checked δ : Q × I 7→ Q the transition function

q0∈ Q the (unique) initial state from where the automaton starts

F ⊆ Q the set of final accepting states of the automaton

(10)

A first recognizer

Let’s analyze a recognizer to understand the language it recognizes

q0

start q1

0

1

0

Recognizes (1|00)0 δ(q1, 1) is undefined here!

(11)

The error state

The previous FSA does not explicitly represent error states As this may result in issues when performing operation among automata, we’ll add it

q0

start q1 error

0

1

0

1

0 | 1

The δ(·, ·) function is now complete

(12)

Complement

How-To

Given a recognizer FSA for the language L, the one recognizing the complement of the language ¯L can be obtained flipping the termination condition

Basically: all the accepting states become non accepting and vice-versa

Take care: the error state is nothing more than a common non accepting state and must be included in the process.

A safe way to take it into account is to complete the automaton beforebuilding the complementary one

(13)

Complement

Let’s take as an example the recognizer for L = 0(0|1) The recognizer looks like this :

Partial δ(·, ·)

q0 start

q1 0

0

1

Complete δ(·, ·)

q0 start

q1

error 0

1

0 | 1

0 | 1

(14)

Complement

The recogniser for ¯L is thus : Recogniser for (0|1)∗ \ L

q0

start q1 error

0

1

0 | 1 0 | 1

(15)

Intersection

The recogniser automaton for the intersection of two languages L ∩ M can be built starting from the ones recognising them

The steps to be followed are :

1 Build the state set as the Cartesian product of the state sets (hint: label the states with the combination of the two original labels, that is hli, mii)

2 Set the initial state to the one obtained via the Cartesian product of l0 and m0

3 Start deriving the δ function from the initial state: simply check the original deltas and choose the destination state obtained as the product of the destinations. If at least one of the two original deltas is undefined, than δ is undefined too.

4 Mark as final only the states obtained as the product of two final states: hli, mii ∈ F if and only if li∈ Fl∧ mi∈ Fm

(16)

Example intersection

We want to obtain a recogniser for L ∩ M Recogniser for L

l0

start

l1

0

0 | 1

Recogniser for M

m0

start

m1

1

0 | 1

(17)

Intersection Automaton

Resulting automaton (including unreachable states) l0, m0

start l0, m1

l1, m0 l1, m1

0

1 0 | 1

(18)

Union

It is possible to use complement and intersection to compute the recognizer automaton for L ∪ M

The key idea is to exploit De Morgan’s Law applied to set operations: ¬(a ∪ b) = (¬a) ∩ (¬b)

It is thus possible to derive

a ∪ b = ¬(¬(a ∪ b)) = ¬((¬a) ∩ (¬b))

Therefore , applying in sequence two complements an intersection and another complement we obtain the union automaton

(19)

Extra Material

(20)

Modeling a real object

An oven knob

We will start looking at the design for a simple automaton representing an oven knob

The oven may be On, Off or on Grill position.

The knob turns left and right: left raises the temperature, right lowers it.

Our FSA will recognize only the sequences of turns defining a

“good” operating sequence

(21)

A first attempt

Off On Grill

l

r

l

r But this oven starts in an undefined state...

(22)

A first attempt

start Off On Grill

l

r

l

r

This one’s better, but we’d like to accept only when we remembered to turn it off at the end of the cooking...

(23)

A first attempt

start Off On Grill

l

r

l

r

Ok, but what if the knob is turned further left (resp. right) when it’s already on the “Grill” (resp.“Off”) position?

(24)

A first attempt

start Off On Grill

l

r

r

l

l r

Great. What sequences of actions (language strings) does this recognize? L = (r | l (l (l )r )r ) = (r | l (l+r )r )

Riferimenti

Documenti correlati

The sample A shows the lowest emission factor for total PM x (6.97 μg/g of burnt wax), confirming the trends obtained for the other pollutants; in particular, a very low amount

We present a method for the preparation of bulk molybdenum tips for Scanning Tunneling Microscopy and Spectroscopy (STM-STS) and we assess their potential in performing high

We therefore propose to use a localization algorithm based on visible light. We demonstrate experimentally that the local- ization accuracy obtained by our solution is fully

their protection are fundamental for the establishment of legitimate institutions, but it is also assumed that no obligations are given but those which correspond to the safeguard

In the present study, we combined this information with the actual movement intention to select, for each intention, two subsets of movements: (i) high-informative movements (N = 50,

By using the term “residents” then the Palestinians of WBGS were treated by the Israeli occupation forces as foreign nationals and aliens, who just happened to be present in