0% found this document useful (0 votes)
18 views

Lecture 1

This document provides an overview of CSE-233: Week 1 during the Summer 2020 semester. It introduces key areas of automata theory including complexity theory, computability theory, and automata theory. It discusses what automata theory is and provides examples of simple "computers" modeled as abstract computational devices or automata. These include devices with switches and light bulbs to model computations. The document outlines some automata models that will be covered, like finite automata, pushdown automata, and Turing machines. It also previews highlights of topics that will be discussed, such as formalizing problems, representing inputs as strings over alphabets, and preliminaries of automata theory.

Uploaded by

Samia Mumu
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views

Lecture 1

This document provides an overview of CSE-233: Week 1 during the Summer 2020 semester. It introduces key areas of automata theory including complexity theory, computability theory, and automata theory. It discusses what automata theory is and provides examples of simple "computers" modeled as abstract computational devices or automata. These include devices with switches and light bulbs to model computations. The document outlines some automata models that will be covered, like finite automata, pushdown automata, and Turing machines. It also previews highlights of topics that will be discussed, such as formalizing problems, representing inputs as strings over alphabets, and preliminaries of automata theory.

Uploaded by

Samia Mumu
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 23

CSE-233 : Week 1

Summer 2020

Reference: Md. Saidul Hoque Anik


Book Chapter 1.5 [email protected]
Mathematics Computers Hardware
Circuits
Key areas:

1. Complexity Theory
2. Computability Theory
3. Automata Theory
What is automata theory
• Automata theory is the study of abstract
computational devices.
• Abstract devices are (simplified) models of real
computational devices like computer.
• Computations happen everywhere: On your laptop,
on your cell phone, …
A simple computer

BATTERY

input: switch
output: light bulb
actions: flip switch
states: on, off
Another simple “computer”

BATTERY start off on

input: switch
output: light bulb bulb is on if and only if
there was an odd number
actions: f for “flip switch” of flips
states: on, off
Another “computer”
1
1 start off off
1

2 2 2 2
BATTERY
1
2
off on
1

inputs: switches 1 and 2


actions: 1 for “flip switch 1” bulb is on if and only if
actions: 2 for “flip switch 2” both switches were flipped
an odd number of times
states: on, off
A design problem
1 4

?
5
BATTERY

Can you design a circuit where the light is on if and


only if all the switches were flipped exactly the same
number of times?
A design problem
• Such devices are difficult to reason about, because
they can be designed in an infinite number of ways.
• By representing them as abstract computational
devices, or automata, we will learn how to answer
such questions
These devices can model many
things
• They can describe the operation of any “small
computer”, like the control component of an
alarm clock or a microwave.
• They are also used in lexical analyzers to
recognize well formed expressions in
programming languages:

ab1 is a legal name of a variable in C


5u= is not
Some devices we will see
finite automata Devices with a finite amount of
memory.
Used to model “small” computers.
push-down Devices with infinite memory that can
automata be accessed in a restricted way.
Used to model parsers, etc.
Turing Machines Devices with infinite memory.
Used to model any computer.
time-bounded Infinite memory, but bounded running
Turing Machines time.
Used to model any computer
program that runs in a “reasonable”
amount of time.
Some highlights of the course
• Finite automata
• We will understand what kinds of things a device with
finite memory can do, and what it cannot do
• Introduce simulation: the ability of one device to
“imitate” another device
• Introduce nondeterminism: the ability of a device to
make arbitrary choices
• Types
• Deterministic Finite Automata(DFA).
• Non-Deterministic Finite Automata(NFA).
Preliminaries of automata theory
• How do we formalize the question.
• First, we need a formal way of describing the
problems that we are interested in solving.
Problems
• Examples of problems we will consider
• Given a word s, does it contain the subword “food”?
• Given a number n, is it divisible by 7?
• Given a pair of words s and t, are they the same?
• Given an expression with brackets, e.g. (()()), does
every left bracket match with a subsequent right
bracket?
• All of these have “yes/no” answers.
• There are other types of problems, that ask “Find
this” or “How many of that” but we won’t look at
those.
Alphabets and strings
• A common way to talk about words,
number, pairs of words, etc. is by
representing them as strings
• To define strings, we start with an alphabet

An alphabet is a finite set of symbols.


• Examples
S1 = {a, b, c, d, …, z}: the set of letters in English
S2 = {0, 1, …, 9}: the set of (base 10) digits
S3 = {a, b, …, z, #}: the set of letters plus the
special symbol #
S4 = {(, )}: the set of open and closed brackets
Strings
A string over alphabet S is a finite sequence
of symbols in S.
• Σ* denotes this set of strings.
• The empty string will be denoted by e
• Examples
abfbz is a string over S1 = {a, b, c, d, …, z}
9021 is a string over S2 = {0, 1, …, 9}
ab#bc is a string over S3 = {a, b, …, z, #}
))()(() is a string over S4 = {(, )}
Strings
• {0,1}* = {ε, 0, 1, 00, 01, 10, 11, 000, 001, . . . }
• Length of a string
• Number of symbols in a string
• |s|
• |0110| = 4
• | e |= 0
Powers of an Alphabet
• S = {0,1}
• S k = the set of strings of length k, each of whose
symbols is in S.
Powers of an Alphabet
Kleene Star
Concatenation

You might also like