CHAPTER 5 MODELLING COMPUTATION

CHAPTER 5
MODELLING COMPUTATION
BCT 2083 DISCRETE STRUCTURE AND APPLICATIONS
SITI ZANARIAH SATARI
FIST/FSKKP UMP I0910
5.1
5.2
5.3
5.4
5.5
Languages and Grammars
Finite-State Machines with Output
Finite-State Machines with No Output
Language Recognition (not cover)
Turing Machines (not cover)
CHAPTER 5 MODELLING COMPUTATION
CONTENT
•
Models of computation help us to answer the following
questions:
1. Can a task be carried out using computer?
2. If YES, How can the task be carried out?
•
Three types of structures used in models computation:
1. Grammars
– Used to generate words of a language and determine
whether a word is in a language.
2. Finite-state Machines
– Used in modeling a problem.
3. Turing Machines
– Used to classify problems as tractable/intractable and
solvable/unsolvable.
CHAPTER 5 MODELLING COMPUTATION
Introduction
5.1 LANGUAGE AND GRAMMARS
Understand language and grammars in
models of computation
•
Construct derivation tree
CHAPTER 5 MODELLING COMPUTATION
•
►Natural Language is spoken language.
►It is not possible to specify all the rules of syntax (form) in
Natural language
►One of the rules is English grammars.
►Formal Language which are generated by grammars, provide
models for both natural languages and programming languages.
►Formal Language specified by a well defined set of rules/syntax.
►Grammars help us answer the following questions:
 How can we determine whether a combination of words is a
valid sentence in a formal language?
 How can we generate the valid sentences of a formal
language?
5.1 LANGUAGE AND GRAMMARS
Natural Language & Formal Language
► A vocabulary/alphabet, V is a finite nonempty set of elements
called symbols.
• Example: V = {a, b, c, A, B, C, S}
► A word/sentence over V is a string of finite length of elements
of V.
• Example: Aba
► The empty/null string, λ is the string with no symbols.
► V* is the set of all words over V.
• Example: V* = {Aba, BBa, bAA, cab …}
► A language over V is a subset of V*.
• We can give some criteria to a word to be in a language.
• Example: cab is a subset in V* and is a language.
5.1 LANGUAGE AND GRAMMARS
Basic Terminologies
► A Phrase-Structure Grammars G = (V, T, S, P) consists of:
1. a vocabulary V,
2. a subset T of V consisting of terminal elements
3. a start symbol S from V
4. a finite set of productions P
► Elements of N = V – T are called nonterminal symbols.
► Every production in P must contain at least one nonterminal on its
left side.
► EXAMPLE:
 Let G = (V, T, S, P), where V = {a, b, A, B, S}, T = {a, b}, S is a
start symbol and P = {S → ABa, A → BB, B → ab, A → Bb}.
Then, G is a Phrase-Structure Grammar.
5.1 LANGUAGE AND GRAMMARS
Phrase-Structure Grammars
► Suppose w and w’ are words over the vocabulary set V of a grammar
G. Then:
► We write w ⇒ w’ if w’ can be obtained from w by using one of
the productions
► We write w ⇒ ⇒ w’ if w’ can be obtained from w by using a
finite number of productions
► The language of G consists of all words in terminal set T that can be
obtained from the start symbol S by the above process:
► L (G) = { w Є T*: S ⇒ ⇒ w}
► EXAMPLE:
Let G = (V, T, S, P), where V = {a, b, A, S}, T = {a, b}, S is a start symbol
and P = {S → aA, S → b, A → aa}.
The language of this grammar is given by L (G) = {b, aaa}; since we can
derive aA from using S → aA, and then derive aaa using A → aa. We can
also derive b using S → b.
5.1 LANGUAGE AND GRAMMARS
Language L(G) of a Grammar G
1. Let G = (V, T, S, P), where V = {a, b, A, B, S}, T = {a, b}, S is a
start symbol and P = {S →AB, A →Aa, B →Bb, A →a, B →b}.
What is L(G), the language of this grammar?
2. Find the language L(G) over {a, b, c} generated by the
grammar G with the productions
P = {S →aSb, aS →Aa, Aab →c}.
3.Let V = {a, b, A, B, S}, and T = {a, b}. Find the language L(G)
generated by the grammar G = (V, T, S, P), with S is a start
symbol and a set of productions P = {S →AA, S →B, A →aaA,
A →aa, B →bB, B →b}.
5.1 LANGUAGE AND GRAMMARS
EXERCISE 5.1
TYPE
RESTRICTIONS ON PRODUCTION w ⇒ w’
0
No restrictions
1
Contextsensitive
Every production is of the form α → β where |α|≤ β
or of the form α → λ
2
Context- free
Every production is of the form A → β where the left
side is a nonterminal
3
regular
Every production is of the form A → a or A → aB
where the left side is a single nonterminal and the
right side is a single terminal or a terminal followed
by a terminal or, of the form S → λ
Every Type 3 grammar is a Type 2 grammar.
Every Type 2 grammar is a Type 1 grammar.
Every Type 1 grammar is a Type 0 grammar.
5.1 LANGUAGE AND GRAMMARS
Types of Grammars
► Represents the language using an ordered rooted tree.
► Root represents the starting symbol.
► Internal vertices represent the nonterminal symbol that
arise in the production.
► Leaves represent the terminal symbols.
► If the production A → w arise in the derivation, where w
is a word, the vertex that represents A has as children
vertices that represent each symbol in w, in order from
left to right.
5.1 LANGUAGE AND GRAMMARS
Derivation Tree of Context-Free Grammar
► Let G be a context-free grammar with the productions
P = {S →aAB, A →Bba, B →bB, B →c}. The word w = acbabc
can be derived from S as follows:
S ⇒ aAB →a(Bba)B ⇒ acbaB ⇒ acba(bB) ⇒ acbabc
Thus, the derivation tree is given as follows:
S
a
A
B
c
b
B
a
b
B
c
5.1 LANGUAGE AND GRAMMARS
Example: Derivation Tree
4. The word w = cbab belongs to the language generated by the
grammar G = (V, T, S, P), where V = {a, b, c, A, B, C, S}, T = {a, b, c},
S is the start symbol and P = {S →AB, A →Ca, B →Ba, B →Cb, B →b
, C →cb, C →b}. Construct the derivation tree for w.
5. The production rules of a grammar for simple arithmetic
expression are:
‹ expression › ::= ‹ digit ›| (‹ expression ›) |
+ (‹ expression ›) | − (‹ expression ›) |
‹ expression › ‹ operator › ‹ expression ›
‹ digit › ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
‹ operator › ::= + | − | * | / | ↑
Construct a derivation tree for arithmetic expression (2 ↑ 5 ) − 8
and (3 * 7) / (9 + 1).
5.1 LANGUAGE AND GRAMMARS
EXERCISE 5.1
PAGE : 793, 794, 795 and 796
Rosen K.H., Discrete Mathematics & Its Applications,
(Seventh Edition), McGraw-Hill, 2007.
5.1 LANGUAGE AND GRAMMARS
EXERCISE 5.1 : EXTRA
5.2
FINITE-STATE MACHINE WITH OUTPUT
• Draw state diagrams for finite state
machines with output.
• Construct state table for finite state
machines with output.
CHAPTER 5 MODELLING COMPUTATION
• Understand finite state machines with
output.
• A Finite State Machine are used
– to model many kinds of machine (computer components,
vending machine)
– as the basis for programs for spell checking, grammar
checking, indexing or searching large bodies of text,
recognizing speech, transforming text and network
protocol.
• A Finite State Machine include
– a finite set of states, with a designated starting state, an
input alphabet
– a transition function that assigns a next state to every
state and input pair.
• A Finite State Machine can produce output or no output.
5.2 FINITE-STATE MACHINES WITH OUTPUT
Finite State Machines
• A Finite State Machine, M = (S, I, O, f, g, s0) consists of:
1. A finite set S of states
2. A finite input alphabet I
3. A finite output alphabet O
4. A transition function f that assigns to each state and
input pair a new state
5. An output functions g that assigns to each state and
input pair an output
6. An initial state s0
• A Finite State Machine can be represented by
– State TABLE
– State DIAGRAM (a directed graph with labeled edge,
state represented by a circle)
5.2 FINITE-STATE MACHINES WITH OUTPUT
Finite State Machines with Output
• State TABLE
represents the values
of the transaction
function f and the
output function g for
all pairs of states and
input.
• State DIAGRAM is a
directed graph with
labeled edge. Each
state represented by a
circle. Arrows labeled
with the input and
output pair are shown
for each transition
f
g
Input
0
1
Input
0
1
s0
s1
s0
1
0
s1
s3
s0
1
1
s2
s1
s2
0
1
s3
s2
s1
0
0
State
S = {s0, s1, s2, s3}, I = {0, 1}, O = {0, 1}
1,0
0,1
s1
0,1
1,0
s0
1,1
s3
0,0
0,0
s2
1,1
5.2 FINITE-STATE MACHINES WITH OUTPUT
State Table and State Diagram
1. Draw the state diagrams for the finite state machines with the
following tables.
f
g
Input
0
1
Input
0
1
s0
s1
s0
1
1
s1
s2
s0
0
s2
s0
s3
s3
s1
s2
State
TABLE 1
f
g
Input
0
1
Input
0
1
s0
s1
s0
0
0
0
s1
s0
s2
0
1
1
0
s2
s1
s1
1
0
0
1
State
TABLE 2
5.2 FINITE-STATE MACHINES WITH OUTPUT
EXERCISE 5.2
2. Construct the state tables for the finite state machines with the
following state diagrams.
0,0
0,0
1,0
0,0
s0
s1
0,1
s0
s1
s2
1,1
1,0
0,1
0,1
1,0
0,0
1,0
s2
s3
1,1
FIGURE 1
FIGURE 2
1,0
5.2 FINITE-STATE MACHINES WITH OUTPUT
EXERCISE 5.2
• Given the following finite state machine;
f
g
Input
0
1
Input
0
1
s0
s1
s0
1
0
s1
s3
s0
1
1
s2
s1
s2
0
1
s3
s2
s1
0
0
State
S = {s0, s1, s2, s3}, I = {0, 1}, O = {0, 1}
1,0
0,1
s1
0,1
1,0
s0
1,1
s3
0,0
0,0
s2
1,1
• If the input string is 0111 then the output string is 1100.
• If the input string is 11011011 then the output string is
00110110.
5.2 FINITE-STATE MACHINES WITH OUTPUT
Input and Output String
3. Given the finite state machines with the following state table
and state diagrams. Determine the output for each of the
following input strings.
0,0
s0
s1
0,1
1,0
1,0
0,0
s2
s3
g
Input
a
b
Input
a
b
s0
s0
s2
3
2
s1
s0
s2
2
1
s2
s1
s2
1
3
State
0,1
1,1
f
1,1
FIGURE 1
a) 1010 b) 11011011
c) 1010001001
TABLE 1
w = abaabbababaa
5.2 FINITE-STATE MACHINES WITH OUTPUT
EXERCISE 5.2
PAGE : 802 and 803
Rosen K.H., Discrete Mathematics & Its Applications,
(Seventh Edition), McGraw-Hill, 2007.
5.2 FINITE-STATE MACHINES WITH OUTPUT
EXERCISE 5.2 : EXTRA
SUMMARY
What NEXT?
FINAL EXAMINATION
THAT’S ALL ; THANK YOU
CHAPTER 5 MODELLING COMPUTATION
• Grammars, finite state machine and Turing machines are three
structures used in models of computation