#### Transcript Number Systems and Codes

# Finite-state Recognizers

Zvi Kohavi and Niraj K. Jha 1

### Deterministic Recognizers

Treat FSM as a recognizer that classifies input strings into two classes: strings it accepts and strings it rejects Tape 1 0 0 1 0 0 1 1 Head Finite control Finite-state recognizer: • Equivalent to a string of input symbols that enter the machine at successive times • Finite-state control: Moore FSM • States in which output symbol is 1 (0): accepting (rejecting) states • A string is accepted by an FSM: if and only if the state the FSM enters after having read the rightmost symbol is an accepting state • Set of strings recognized by an FSM: all input strings that take the FSM from its starting state to an accepting state 2

### Transition Graph

Example: a machine that accepts a string if and only if the string begins and ends with a 1, and every 0 in the string is preceded and followed by at least a single 1

*A*

1 0 0 0,1 1

*C B*

(

*a*

) Deterministic state diagram.

1

*A*

1 0

*B*

(

*b*

) Transition graph.

Transition graph: consists of a set of vertices and various directed arcs connecting them • At least one of the vertices is specified as a starting vertex • Arcs are labeled with symbols from the input alphabet • A vertex may have one or more

*I i*

-successors or none • It accepts a string if the string is described by at least one path emanating from a starting vertex and terminating at an accepting vertex • It may be deterministic or non-deterministic 3

### Example

Example: 1110 and 11011 accepted by the transition graph below, but 100 rejected 1

*A*

0 1 1

*D B*

1

*C*

0 0 Equivalent transition graphs: set of strings two or more graphs that recognize the same • Each graph below accepts a string: least two 0’s if and only if each 1 is preceded by at 0 0 0 0 0 0

*A B C A B C*

1 1 4

-transitions: when no input symbol is used to make the transition Example: Graph that recognizes a set of strings that start with an even number of 1’s, followed by an even number of 0’s, and end with substring 101 1

*B*

0

*D A*

1

*C*

0 1 0

*E*

(

*a*

) A graph containing a -transition.

*F*

1

*G*

1

*B A*

1 0 0

*D C*

0 1 1

*E*

0

*F*

(

*b*

) An equivalent graph without -transitions.

1

*G*

5

### Converting Nondeterministic into Deterministic Graphs

Example: Transition graph and its transition table 0,1 •

*A*

1 0 0

*C*

1

*A B C*

0

*C*

1

*AB AC A B*

(

*a*

) Transition graph.

(

*b*

) Transition table.

Successor table and deterministic graph: 0

*AB C*

0 1 0 1

*AB C AC*

1

*C AB A*

1

*AC A AC ABC A*

1

*A C*

0

*ABC ABC AC ABC*

0 0 0,1 (

*a*

) Successor table.

(

*b*

) State diagram of an equivalent deterministic machine.

6

### Theorem

Theorem: Let

*S*

be a set of strings that can be recognized by a nondeterministic transition graph

*G n*

. Then

*S*

can also be recognized by an equivalent deterministic graph

*G d*

. Moreover, if

*G n G d*

will have at most 2

*p*

vertices has

*p*

vertices, 7

### Regular Expressions

Example: Sets of strings and the corresponding expression • • • Graph (

*a*

) recognizes set {101}: expression denoted as

**101**

Graph (

*b*

) recognizes set {01,10}: expression =

**01**

+

**10**

Graph (

*c*

) recognizes {0111,1011}: expression =

**0111**

+

**1011**

• – Concatenation of

**01**

Graph (

*d*

+

**10**

and

**11**

expression =

**1***

1 0 1 (

*a*

) 0 1 0 1 1 0 (

*b*

) 1 1 0 1 1 (

*d*

) (

*c*

) 8

### Regular Expressions (Contd.)

Example: 01(01)* = 01 + 0101 + 010101 + 01010101 + … •

**R***

**R**

+

**R 2**

+

**R 3**

+ … Example: Set of strings on {0,1} beginning with a 0 and followed only by 1’s:

**01***

Example: Set of strings on {0,1} containing exactly two 1’s:

**0*10*10***

Example: Set of all strings on {0,1}: (

**0**

+

**1**

**0**

+

**1**

+

**00**

+

**01**

+

**10**

+

**11**

+

**000**

+ … Example: Set of strings on {0,1} that begin with substring 11:

**11**

(

**0**

+

**1**

)* Example: Transition graphs and the sets of strings they recognize 1

*B*

0

*A*

0 1

*D*

1

*E A B*

1 1

*C*

0 9 (

*a*

)

**(01 **

+

** 10)*11**

.

(

*b*

)

**(10*)***

.

### Definition and Basic Properties

Let

*A*

= {

*a*

1 ,

*a*

2 ,…,

*a p*

} be a finite alphabet: expressions over alphabet

*A*

then the class of regular is defined recursively as follows: • Any symbol,

*a*

and empty set

**1**

,

*a*

**2**

, …,

*a p*

alone is a regular expression: • If

**P**

and

**Q**

are regular expressions: their union

**P**

+

**Q**

then so is their concatenation

**PQ**

and – If

**P**

is a regular expression: then so is its closure

**P***

• No other expressions are regular: unless they can be generated in a finite number of applications of the above rules

*A B*

(

*a*

) A graph accepting .

(

*b*

) A graph accepting .

10

### Identities

**R R**

+

**R**

=

**R**

=

**R**

**R**

=

**R**

* = * = Set of strings that can be described by a regular expression: regular set • Not every set of strings is regular • Set over {0,1}, which consists of

*k*

in turn by

*k*

0’s, is not regular:

**010**

0’s (for all

*k*

), followed by a 1, followed +

**00100**

+

**0001000**

+ … +

**0 k 10 k**

+ … – Requires an infinite number of applications of the union operation • However, certain infinite sums are regular – Set consisting of alternating 0’s and 1’s, starting and ending with a 1:

**1**

(

**01**

)* 11

### Manipulating Regular Expressions

A regular set may be described by more than one regular expression • Such expressions are called equivalent Example: Alternating 0’s and 1’s, starting and ending with 1 •

**1**

(

**01**

)* or (

**10**

)*

**1**

Let

**P**

,

**Q**

, and

**R**

be regular expressions: then

**R **

+

**R **

=

**R PQ **

+

**PR = P**

(

**Q**

+

**R**

)

**; PQ **

+

**RQ **

= (

**P **

+

**R**

)

**Q R*R* **

=

**R* RR* **

=

**R*R**

(

**R***

)

*** **

= +

**R* RR* **

=

**R***

(

**PQ**

)

***P **

=

**P**

(

**QP**

)

*****

(

**P **

+

**Q**

)

*** **

= (

**P*Q***

)

*** **

= (

**P* **

+ + (

**P + Q**

)

***Q **

= (

**P*Q**

)

*** Q***

)

*** **

=

**P***

(

**QP***

)

*** **

= (

**P*Q**

)

***P***

12

### Examples

Example: Prove that the set of strings in which every 0 is immediately followed by at least two 1’s can be described by both

**R 1**

and

**R 2**

, where

**R 1**

**1***

(

**011**

)

*****

(

**1***

(

**011**

)

*****

)

*****

Proof:

**R 2**

= (

**1 + 011**

)

*** R 1 1***

(

**011**

)

*****

(

**1***

(

**011**

)

*****

)

*****

= (

**1*(011**

)

*****

)

*****

= (

**1 + 011**

)

*** = R 2**

Example: Prove the identity Proof: (

**1**

+

**00*1**

) + (

**1**

+

**00*1**

)(

**0**

+

**10*1**

)

*****

(

**0**

LHS = (

**1**

+

**00**

*

**1**

**0**

**00***

)

**1**

**0**

+

**10*1**

)

*****

(

**0**

+

**10*1**

)

*****

(

**0**

+

**10*1**

) =

**0*1**

(

**0**

+

**10*1**

)] +

**10*1**

)] +

**10*1**

)

*****

=

**0*1**

(

**0**

+

**10*1**

)

*****

13

### Transition Graphs Recognizing Regular Sets

Theorem: Every regular expression

**R**

can be recognized by a transition graph Proof: i (

*a*

)

**R**

= .

(

*b*

)

**R **

= .

(

*c*

)

**R**

= .

*G G H*

(

*a*

) Graphs recognizing

**P**

and

**Q**

.

*H*

(

*b*

) A graph recognizing

**P**

+

**Q**

.

*G*

(

*c*

) A graph recognizing

**PQ**

.

*H G*

(

*d*

) A graph recognizing

**P***

.

14

### Example

Example: Construct a transition graph recognizing

**R**

= (

**0**

+

**1**

(

**01**

)

*****

)

*****

0

**P**

*A B C A B C A*

(

*a*

)

**R**

=

**P*; P **

=

** 0 **

+

** 1**

(

**01**

)

***.**

0

*B C*

**Q**

(

*b*

)

**P**

=

**0**

+

**Q; Q **

=

**1**

(

**01**

)

***.**

*A*

1

**T**

*D*

(

*c*

)

**Q**

=

**1T; T **

= (

**01**

)

***.**

0

*B*

1 1

*D E C*

(

*d*

) Final step

**.**

0

*F*

15

### Example (Contd.)

Example: Prove that (

**P**

+

**Q**

)

*****

=

**P***

(

**QP***

)

*****

*P Q P*

(

*a*

) Graph recognizing

**P*(QP*)***

.

*P*

,

*Q Q Q P P P*

(

*b*

) Equivalent graph with no -transitions.

*P*

,

*Q*

(

*a*

) Equivalent deterministic graph recognizing

**(P**

+

**Q)***

.

16

### Informal Techniques

Example: Construct a graph that recognizes

**P**

= (

**01**

+ (

**11**

+

**0**

)

**1*0**

)

***11**

1

*B*

1 1 Graph for

**Q **

= (

**11 **

+

**0**

)

**1*0**

*A C*

0 0

*D*

Graph for

**P**

*D*

0 1

*A*

1

*E*

1 0 1

*B*

1 0

*C*

1

*F*

17

### Example

Example: Construct a graph that recognizes

**R**

= (

**1**

(

**00**

)

***1 + 01*0**

)

*****

1 1 0 0 0

*B C*

0

*B*

0

*A A*

0 1 1 1

*D*

1

*F*

1

*D*

1 0 0

*E*

0 (

*a*

) Partial graph.

*E*

0 (

*b*

) Complete graph.

*C F*

18

### Regular Sets Corresponding to Transition Graphs

The set of strings that can be recognized by a transition graph (hence, an FSM) is a regular set Theorem: Let

**Q**

,

**P**

, and

**R**

Then, if

**P**

be regular expressions on a finite alphabet. • Equation

**R**

=

**Q**

+

**RP**

has a unique solution given by

**R**

=

**QP***

• Equation

**R**

=

**Q**

+

**PR**

has a unique solution given by

**R**

=

**P*Q**

19

### Systems of Equations

Example: Derive the set of strings derived by the following transition graph 0 1 1 0

*A B C*

**A**

**A0**

+

**B1 B**

=

**A0**

+

**B1**

+

**C0 C**

=

**B0**

Substituting (3) into (2): (1) 0 (2) (3) 0

**B**

=

**A0**

+

**B1**

+

**B00**

=

**A0**

+

**B**

(

**1**

+

**00**

) (4) From the theorem:

**B**

=

**A0**

(

**1**

+

**00**

)

*****

(5) Substituting (5) into (1):

**A**

**A0**

+

**A0**

(

**1**

+

**00**

)

***1**

**A**

(

**0**

+

**0**

(

**1**

+

**00**

)

***1**

) (6) From the theorem:

**A**

**0**

+

**0**

(

**1**

+

**00**

)

***1**

)

*****

= (

**0**

+

**0**

(

**1**

+

**00**

)

***1**

)

*****

Hence, solution

**C**

from (7), (5) and (3): (7)

**C**

= (

**0**

+

**0**

(

**1**

+

**00**

)

***1**

)

***0**

(

**1**

+

**00**

)

***0**

20

### Theorem

Theorem: The set of strings that take an FSM

*M*

from an arbitrary state

*S i*

to another state

*S j*

is a regular set • Combining the two theorems: – An FSM recognizes a set of strings if and only if it is a regular set Applications: the correspondence between regular sets and FSMs enables us to determine whether certain sets are regular Example: Let

**R**

in

**R**

denote a regular set on alphabet

*A*

that can be recognized by machine

*M*

1 • Complement

**R’**

: set containing all the strings on

*A*

that are not contained •

**R’**

describes a regular set: which is obtained from

*M*

1 since it can be recognized by a machine

*M*

2 , by complementing the output values associated with the states of

*M*

1 21

### Examples

Example: Let

**P&Q**

represent the intersection of sets

**P**

and

**Q**

• • Prove

**P&Q**

is regular Since

**P’**

and

**Q’**

–

**P’**

+

**Q’**

are regular: is regular – – Hence, (

**P’**

Since

**P&Q**

+

**Q’**

) = (

**P’ ’**

is regular +

**Q’**

)

**’**

:

**P&Q**

is regular Regular expressions containing complementation, intersection, union, concatenation, closure: extended regular expressions Example: Consider the set of strings on {0,1} s.t. no string in the set contains three consecutive 0’s • • Set can be described by: [(

**0**

+

**1**

)

***000**

(

**0**

+

**1**

)

*****

]

**’**

More complicated expression if complementation not used: (

**1**

+

**01**

+

**001**

)

*****

**0**

+

**00**

) 22

### Example

Example: Let

*M*

be an FSM whose input/output alphabet is {0,1}. Assume the machine has a designated starting state. Let

*z*

1

*z*

2 …

*z n*

the output sequence produced by

*M*

denote in response to input sequence

*x*

1

*x*

2 …

*x n*

. Define a set

*S M*

, which consists of all the strings

*w w*

=

*z*

1

*x*

1

*z*

2

*x*

2 …

*z n x n*

regular.

for any

*x*

1

*x*

2 …

*x n*

in (

**0**

+

**1**

)

*****

. Prove that

*S M*

s.t. is • Given the state diagram of

*M*

: replace each directed arc with two directed arcs and a new state, as shown in the figure • Retain the original starting state: designate all the original states as accepting states • The resulting nondeterministic graph recognizes

*S M*

: thus

*S M*

is regular

*x/z z x*

Replace

*A B*

with

*A B*

23

### Example (Contd.)

Example (contd.): Derive

*S N*

for machine

*N*

shown below 1/0 0/1

*A B*

0/0 1/1 1

*C*

0

*E*

1

*A*

1 1 0

*B*

0 1

*F*

(

*a*

) Transition graph.

0

*D A*

0

*DF*

1 0 0,1 0 1

*CE B*

1 (

*b*

) Equivalent deterministic form.

0 24

### Two-way Recognizers

Two-way recognizer (or two-way machine): consists of a finite-state control coupled through a head to a tape • Initially: the finite-state control is in its designated starting state, with its head scanning the leftmost square of the tape • • The machine then proceeds to read the symbols of the tape: one at a time In each cycle of computation: the machine examines the symbol currently scanned by the head, shifts the head one square to the right or left, and then enters a new (not necessarily distinct) state • If the machine eventually moves off the tape on the right end entering an accepting state: the tape is accepted by the machine • • • A machine can reject a tape: either by moving off its right end while entering a rejecting state or by looping within the tape the absence of an input tape or by a completely blank tape its starting state is an accepting state 25

### Example

Example: A two-way machine recognizing set

**100***

*c A B*

0

*A A B*

(

*a*

) A loop.

*c A*

1

*A*

1

*B D D D D*

(

*b*

) Rejection of a tape.

26

### Convenience of Using Two-way Machines

Two-way machines are as powerful as one-way machines w.r.t the class of tapes they can recognize • However, for some computations: it is convenient to use two-way machines since they may require fewer states Example: Consider the two-way machine shown in the table, which accepts a tape if and only if it contains at least three 1’s and at least two 0’s • The minimal one-way machine that is equivalent to the two-way machine has 12 states: since it must examine the tapes for the appropriate number of 0’s and 1’s simultaneously

*c A*

1

*A*

0

*B*

0

*B*

1

*B*

0

*C*

0

*C C*

(

*a*

) Rejecting a tape.

*c A D*

1

*A*

0

*B*

1

*B*

1

*C*

0

*D D D E E F F*

(

*b*

) Accepting a tape.

*F*

0

*G G*

27