recursively enumerable recursive languagesmassey/teaching/cs301/restricted...3 we will prove: • if...
TRANSCRIPT
1
CS 301 - Lecture 23 Recursive and Recursively
Enumerable Languages
Fall 2008
Review • Languages and Grammars
– Alphabets, strings, languages • Regular Languages
– Deterministic Finite and Nondeterministic Automata – Equivalence of NFA and DFA Regular Expressions – Regular Grammars – Properties of Regular Languages – Languages that are not regular and the pumping lemma
• Context Free Languages – Context Free Grammars – Derivations: leftmost, rightmost and derivation trees – Parsing and ambiguity – Simplifications and Normal Forms – Nondeterministic Pushdown Automata – Pushdown Automata and Context Free Grammars – Deterministic Pushdown Automata – Pumping Lemma for context free grammars – Properties of Context Free Grammars
• Turing Machines – Definition, Accepting Languages, and Computing Functions – Combining Turing Machines and Turing’s Thesis – Turing Machine Variations – Universal Turing Machine and Linear Bounded Automata – Today: Recursive and Recursively Enumerable Languages
Recursively Enumerable and
Recursive Languages
Definition:
A language is recursively enumerable if some Turing machine accepts it
2
For string :
Let be a recursively enumerable language L
and the Turing Machine that accepts it M
Lw∈
w
if then halts in a final state M
Lw∉if then halts in a non-final state Mor loops forever
Definition: A language is recursive if some Turing machine accepts it and halts on any input string
In other words: A language is recursive if there is a membership algorithm for it
For string :
Let be a recursive language L
and the Turing Machine that accepts it M
Lw∈
w
if then halts in a final state M
Lw∉if then halts in a non-final state M
Turing acceptable languages and
Enumeration Procedures
3
We will prove:
• If a language is recursive then there is an enumeration procedure for it
• A language is recursively enumerable if and only if there is an enumeration procedure for it
(weak result)
(strong result)
Theorem:
if a language is recursive then there is an enumeration procedure for it
L
Proof:
MM~
Enumeration Machine
Accepts LEnumerates all strings of input alphabet
If the alphabet is then can enumerate strings as follows:
},{ baM~
abaaabbabbaaaaab......
4
Enumeration procedure
Repeat:
M~ generates a string
M
wchecks if Lw∈
YES: print to output wNO: ignore w
End of Proof
Example:
M~
abaaabbabbaaaaab......
)(ML
b
ab
bbaaa
......
,....},,,{ aaabbabbL =Enumeration
Output
b
ab
bbaaa
......
Theorem:
if language is recursively enumerable then there is an enumeration procedure for it
L
Proof:
MM~
Enumeration Machine
Accepts LEnumerates all strings of input alphabet
5
If the alphabet is then can enumerate strings as follows:
},{ baM~
abaaabbabbaaaaab
Enumeration procedure
Repeat: M~ generates a string
M
wchecks if Lw∈
YES: print to output wNO: ignore w
NAIVE APPROACH
Problem: If machine may loop forever
Lw∉M
M~
M
1w
executes first step on
BETTER APPROACH
1w
M~ Generates second string 2w
M executes first step on 2wsecond step on 1w
Generates first string M~ Generates third string 3w
M executes first step on 3wsecond step on 2w
third step on 1w
And so on............
6
1w 2w 3w 4w
1
Step in string
1 1 1
2 2 2 2
3 3 3 3
If for any string machine halts in a final state then it prints on the output
Miw
iw
End of Proof
Theorem:
If for language there is an enumeration procedure then is recursively enumerable
L
L
Proof:
wInput Tape
Enumerator for L
Compare
Machine that accepts L
7
Turing machine that accepts L
Repeat:
• Using the enumerator, generate the next string of L
For input string w
• Compare generated string with wIf same, accept and exit loop
End of Proof
We have proven:
A language is recursively enumerable if and only if there is an enumeration procedure for it
We will prove:
1. There is a specific language which is not recursively enumerable (not accepted by any Turing Machine)
2. There is a specific language which is recursively enumerable but not recursive
Recursive
Recursively Enumerable
Non Recursively Enumerable
8
Some Languages Are Not Recursively Enumerable
Proof Using Uncountable Sets
A set is uncountable if it is not countable
Definition:
Theorem:
Let be an infinite countable set
The powerset of is uncountable S2 S
SProof:
Since is countable, we can write S
},,,{ 321 …sssS =
Elements of S
9
Elements of the powerset have the form:
},{ 31 ss
},,,{ 10975 ssss
……
We encode each element of the power set with a binary string of 0’s and 1’s
1s 2s 3s 4s
1 0 0 0}{ 1s
Powerset element
Encoding
0 1 1 0},{ 32 ss
1 0 1 1},,{ 431 sss
Let’s assume (for contradiction) that the powerset is countable.
Then: we can enumerate the elements of the powerset
1 0 0 0 0
1 1 0 0 0
1 1 0 1 0
1 1 0 0 1
Powerset element Encoding
1t
2t
3t
4t
10
Take the powerset element whose bits are the complements in the diagonal
1 0 0 0 0
1 1 0 0 0
1 1 0 1 0
1 1 0 0 1
1t
2t
3t
4t
New element: …0011(birary complement of diagonal)
The new element must be some of the powerset
it
However, that’s impossible:
the i-th bit of must be the complement of itself
from definition of it
it
Contradiction!!!
Since we have a contradiction:
The powerset of is uncountable S2 S
11
An Application: Languages
Example Alphabet : },{ baThe set of all Strings:
},,,,,,,,,{},{ *…aabaaabbbaabaababaS λ==
infinite and countable
Example Alphabet : },{ baThe set of all Strings:
},,,,,,,,,{},{ *…aabaaabbbaabaababaS λ==
infinite and countable
A language is a subset of :
},,{ aababaaL =
S
Example Alphabet : },{ baThe set of all Strings:
},,,,,,,,,{},{ *…aabaaabbbaabaababaS λ==
infinite and countable
The powerset of contains all languages: }},,,}{,{},{},{{2 …aababaabaaS λ=
1L 2L 3L 4L
uncountable
S
Languages: uncountable
Turing machines: countable
1L 2L 3L kL
1M 2M 3M
?
There are more languages than Turing Machines
12
There are some languages not accepted by Turing Machines
(These languages cannot be described by algorithms)
Conclusion:
Languages Accepted by Turing Machines
Languages not accepted by Turing Machines
kL
A Language which is not
Recursively Enumerable
We want to find a language that is not Recursively Enumerable
This language is not accepted by any Turing Machine
13
Consider alphabet }{a
Strings: …,,,, aaaaaaaaaa
1a 2a 3a 4a
Consider Turing Machines that accept languages over alphabet }{a
They are countable:
…,,,, 4321 MMMM
Example language accepted by
},,{)( aaaaaaaaaaaaML i =
},,{)( 642 aaaML i =
iM
Alternative representation
1a 2a 3a 4a 5a 6a 7a
)( iML
0 1 1 10 0 0
1a 2a 3a 4a
)( 1ML
0 1 10
)( 2ML
)( 3ML
01 0 1
0 1 11
)( 4ML 0 10 0
14
Consider the language
)}(:{ iii MLaaL ∈=
L consists from the 1’s in the diagonal
1a 2a 3a 4a
)( 1ML
0 1 10
)( 2ML
)( 3ML
01 0 1
0 1 11
)( 4ML 0 10 0
},,{ 43…aaL =
Consider the language
)}(:{ iii MLaaL ∈=
L consists of the 0’s in the diagonal
)}(:{ iii MLaaL ∉=
L
1a 2a 3a 4a
)( 1ML
0 1 10
)( 2ML
)( 3ML
01 0 1
0 1 11
)( 4ML 0 10 0
},,{ 21…aaL =
15
Theorem:
Language is not recursively enumerable LProof:
is recursively enumerable LAssume for contradiction that
There must exist some machine that accepts
kML
LML k =)(
1a 2a 3a 4a
)( 1ML
0 1 10
)( 2ML
)( 3ML
01 0 1
0 1 11
)( 4ML 0 10 0
Question: ?1MMk =
1a 2a 3a 4a
)( 1ML
0 1 10
)( 2ML
)( 3ML
01 0 1
0 1 11
)( 4ML 0 10 0
Answer: 1MMk ≠)(
)(
11
1
MLa
MLa k
∉
∈
16
1a 2a 3a 4a
)( 1ML
0 1 10
)( 2ML
)( 3ML
01 0 1
0 1 11
)( 4ML 0 10 0
Question: ?2MMk =
1a 2a 3a 4a
)( 1ML
0 1 10
)( 2ML
)( 3ML
01 0 1
0 1 11
)( 4ML 0 10 0
Answer: 2MMk ≠)(
)(
22
2
MLa
MLa k
∉
∈
1a 2a 3a 4a
)( 1ML
0 1 10
)( 2ML
)( 3ML
01 0 1
0 1 11
)( 4ML 0 10 0
Question: ?3MMk =
1a 2a 3a 4a
)( 1ML
0 1 10
)( 2ML
)( 3ML
01 0 1
0 1 11
)( 4ML 0 10 0
Answer: 3MMk ≠)(
)(
33
3
MLa
MLa k
∈
∉
17
Similarly: ik MM ≠
)(
)(
ii
ki
MLa
MLa
∈
∉
)(
)(
ii
ki
MLa
MLa
∉
∈
for any i
Because either:
or
Therefore, the machine cannot exist kM
Therefore, the language is not recursively enumerable
L
End of Proof
Observation:
There is no algorithm that describes L
(otherwise would be accepted by some Turing Machine)
L Recursive
Recursively Enumerable
Non Recursively Enumerable
L
18
What’s Next • Read
– Linz Chapter 1,2.1, 2.2, 2.3, (skip 2.4), 3, 4, 5, 6.1, 6.2, (skip 6.3), 7.1, 7.2, 7.3, (skip 7.4), 8, 9, 10, 11
– JFLAP Chapter 1, 2.1, (skip 2.2), 3, 4, 5, 6, 7, (skip 8), 9, (skip 10), 11 • Next Lecture Topics From 11.1, 11.2, 11.3, and 11.4
– More Recursive Languages, Unrestricted Grammars, Context Sensitive Grammars, and the Chomsky Hierarchy
• Quiz 3 in Recitation on Wednesday 11/12 – Covers Linz 7.1, 7.2, 7.3, (skip 7.4), 8, and JFLAP 5,6,7 – Closed book, but you may bring one sheet of 8.5 x 11 inch paper with any notes you
like. – Quiz will take the full hour
• Homework – Homework Due Thursday