0% found this document useful (0 votes)
79 views15 pages

Formal Languages & Finite Theory of Automata: BS Course

The document provides an introduction to finite automata. It discusses what finite automata are, examples of how they can be used to model software, and how they can be represented as graphs. It then provides examples of finite automata that recognize specific patterns in strings, and explains how to manually code a finite automaton to check strings. Finally, it discusses general comments about what types of patterns finite automata can easily check and some that are impossible.

Uploaded by

Asim Raza
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
79 views15 pages

Formal Languages & Finite Theory of Automata: BS Course

The document provides an introduction to finite automata. It discusses what finite automata are, examples of how they can be used to model software, and how they can be represented as graphs. It then provides examples of finite automata that recognize specific patterns in strings, and explains how to manually code a finite automaton to check strings. Finally, it discusses general comments about what types of patterns finite automata can easily check and some that are impossible.

Uploaded by

Asim Raza
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 15

Formal Languages & Finite

Theory of Automata
BS Course

Slide # : 01(b)
Muhammad Faizan Tahir
Finite Automata

Motivation
Examples

2
Informal Explanation
• Finite automata are finite collections of
states with transition rules that take you
from one state to another.
• Original application was sequential
switching circuits, where the “state” was
the settings of internal bits.
• Today, several kinds of software can be
modeled by Finite Automata.
3
Representing Finite Automata
• Simplest representation is often a
graph.
• Nodes = states.
• Arcs indicate state transitions.
• Labels on arcs tell what causes the
transition.

4
Example: Recognizing Strings
Ending in “ing”
Not i or g

Not i Not i or n i

nothing Saw i Saw in Saw ing


i n g

Start i
i

Not i
5
Automata to Code (by hand)
• In C/C++/Java:
1. Initialize state q to start state.
2. Loop through the string one character at
a time.
3. Make a switch statement with a case for
each state for q, where each case sets q
according to the transitions for that state.
4. Accept if you end in a final state.

6
Example in Java
Scanner scan = new Scanner(System.in);
String s = scan.next();
int q = 0;
Start state
for (char c : s.toCharArray()) { Loop through string s
switch (q) {
case 0: q = (c=='i')? 1 : 0; break;
case 1: q = (c=='n')? 2 : ((c=='i')? 1 : 0); break; Transitions
case 2: q = (c=='g')? 3 : ((c=='i')? 1 : 0); break;
case 3: q = (c=='i')? 1 : 0;
}
} 0 1 2 3
Final state
if (q==3)
System.out.println("accept.");
else
7
System.out.println("reject.");
Automata to Code – General
• It would be nice to have an automatic
way to generate such code…
• Rather than do it by hand, a code
generator takes a “regular expression”
describing the pattern(s) you are
looking for and produces the code for it.
• Example: .*ing works in grep.

8
Example: An Even Number of 1’s

0 0
1
even odd

Start 1

• How would it look to accept a number


of 1’s that is a multiple of 3?
9
Password/Keyword Example

any character

any character
This is sometimes
called a dead state.

BTW, there is a potential security risk on the password application if


this finite automaton reports failure too quickly. 10
Exactly Two a’s

11
At Least Two b’s

12
Exactly two a’s and at least two
b’s

13
Containing Substrings or Not
• Contains baba:

• Does not contain baba:

14
General Comments
• Some things are easy with finite automata:
• Substrings (…abcabc…)
• Subsequences (…a…b…c…b…a…)
• Modular counting (odd number of 1’s)
• Some things are impossible with finite
automata (we will prove this later):
• An equal number of a’s and b’s
• More 0’s than 1’s
• But when they can be used, they are fast.
15

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy