theory of computation - lecture 3 regular languages what is a computer? complicated, we need...

14
Theory of Computation - Lecture 3 Regular Languages What is a computer? Complicated, we need idealized computer for managing mathematical theories... Hence: Computational Models. Comp. Models vary, depending on the features we want them to focus on. Simplest Comp. Model is Finite State Machine, or Finite Automaton Dr. Maamoun Ahmed

Upload: aubrey-matthews

Post on 01-Jan-2016

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Theory of Computation - Lecture 3 Regular Languages What is a computer? Complicated, we need idealized computer for managing mathematical theories... Hence:

Theory of Computation - Lecture 3Regular Languages

What is a computer?

Complicated, we need idealized computer for managing mathematical theories...

Hence: Computational Models. Comp. Models vary, depending on the

features we want them to focus on. Simplest Comp. Model is Finite State

Machine, or Finite AutomatonDr. Maamoun Ahmed

Page 2: Theory of Computation - Lecture 3 Regular Languages What is a computer? Complicated, we need idealized computer for managing mathematical theories... Hence:

Finite Automaton

Good models for computers with extremely limited memories.

With such limited memories, what the computers can do? Give examples of such computers!

…..

Page 3: Theory of Computation - Lecture 3 Regular Languages What is a computer? Complicated, we need idealized computer for managing mathematical theories... Hence:

Example – Automatic Door

Do

or

Front pad Rear pad

Page 4: Theory of Computation - Lecture 3 Regular Languages What is a computer? Complicated, we need idealized computer for managing mathematical theories... Hence:

FSM/FA of Auto-door

CLOSED OPEN

FRONT

NEITHER

REARBOTH

NIETHER

FRONTREARBOTH

Page 5: Theory of Computation - Lecture 3 Regular Languages What is a computer? Complicated, we need idealized computer for managing mathematical theories... Hence:

Cont. How many bits required for auto-door

implementation? More examples: Elevator, what are the

states and inputs? Dishwasher, Washing machine,

Thermostats, digital watches and calculators, etc....

Finite Automata was in mind when all of above were designed!

Page 6: Theory of Computation - Lecture 3 Regular Languages What is a computer? Complicated, we need idealized computer for managing mathematical theories... Hence:

Closer look at Finite Automata

Abstracting, application-independent:

Example: A finite automaton called M1 with 3 states:

q1 q2 q3

1 0

0,1

0

1

State Diagram

State Diagram

Page 7: Theory of Computation - Lecture 3 Regular Languages What is a computer? Complicated, we need idealized computer for managing mathematical theories... Hence:

Closer Look – Cont. Start State Accept State Transitions

- When 1101 is entered from the input to Start State (one by one, L2R), the output will be either Accept/Reject or for now, Yes/No respectively.

Will 1101 output Accept or Reject in our example?

What about 1? 01?11?101001001?

What about 100? 0100? 1000000?

Page 8: Theory of Computation - Lecture 3 Regular Languages What is a computer? Complicated, we need idealized computer for managing mathematical theories... Hence:

What strings will M1 accept? What will it reject?

Can you describe the language consisting of all strings that M1 accepts?

…..Go on!

Page 9: Theory of Computation - Lecture 3 Regular Languages What is a computer? Complicated, we need idealized computer for managing mathematical theories... Hence:

Formal definition of a FAWhy do we need a formal definition?

1- It is precise: Uncertain whether some FA allowed to have 0 accept states or not? Formal definition helps you decide.

2- It provides Notations, and they help you think and express your thoughts clearly.

Formal definition says that FA is a list of five objects: Set of states, input alphabet, rules for moving, start state, and accept states

What do we call a list of 5 elements ?

Page 10: Theory of Computation - Lecture 3 Regular Languages What is a computer? Complicated, we need idealized computer for managing mathematical theories... Hence:

Formal definition of FA – cont.

We define a FA to be a 5-tuple consisting of these five parts.

Transition function ( δ) defines the rules of moving.

Ex.: 2 states x, y. and an arrow from x to y with a label=1, then moving from x to y is ruled by reading 1 as an input, which can be written as : δ(x,1)=y

Page 11: Theory of Computation - Lecture 3 Regular Languages What is a computer? Complicated, we need idealized computer for managing mathematical theories... Hence:

Formal definition of FA A finite automaton is a 5-tuple (Q, ∑ , δ, q0,

F) where: Q is a finite set called the states ∑ is a finite set called the alphabet δ:Q X ∑ → Q is the transition function q0 Q is the start state, and∈ F Q is the set of accept ⊆

states(sometimes called Final states).

Page 12: Theory of Computation - Lecture 3 Regular Languages What is a computer? Complicated, we need idealized computer for managing mathematical theories... Hence:

Example

Go back to slide no.6 (M1 FA), we can describe M1 formally by writing

M1 = (Q, ∑, δ, q1, F), where:

1. Q = {q1, q2, q3}

2. ∑ = {0,1}

3. δ is described as

0 1

q1 q1 q2

q2 q3 q2

q3 q2 q2

Page 13: Theory of Computation - Lecture 3 Regular Languages What is a computer? Complicated, we need idealized computer for managing mathematical theories... Hence:

Example – cont.

4. q1 is the start state, and

5. F = {q2} Note: A is a set of all strings that machine M

accepts, we say: A is the language of machine M and write L(M)=A. We say: M recognizes A.

A machine may accept several strings, but it always recognizes only one language.

If the machine accepts no strings, it still recognizes one language, the empty language ϕ

Page 14: Theory of Computation - Lecture 3 Regular Languages What is a computer? Complicated, we need idealized computer for managing mathematical theories... Hence:

Example – cont.

So, in our example let:

A = {w | w contains at least one 1 and an even number of 0s follows the last 1}.

Then L(M1) = A, or equivalently, M1 recognizes A.

Examples of FA (1.7 – 1.15) pages 37-40