ללא כותרת שקופית

Download Report

Transcript ללא כותרת שקופית

Complexity and Computability
Theory I
Lecture #14
Instructor: Rina Zviel-Girshin
Lea Epstein
Computation & Complexity/Y. Moses
1
Formally:
(Q, , , , q0, qaccept, qreject)
•
•
•
•
Q is the set of states.
 is the input alphabet _  .
 is the tape alphabet, _ and .
:Qx  Qxx{R,L} the transition
function.
• q0, qaccept, qreject the start, accept and reject
states.
qaccept  qreject
Computation & Complexity/Y. Moses
2
Example of TM Computing
a Function
f1(w)=0|w|
For every , (q0, )=(q0,0,R)
(q0,_)=(q1,_,R).
(q1,_)=(qaccept,_,L).
1 2 3 4 5

2 3 4 5
qaccept





Computation & Complexity/Y. Moses
3
Computing the Function:
f2(w)=w
For every , (q0, )=(q0, ,R)
(q0,_)=(q1,_,R).
(q1,_)=(qaccept,_,L).
Computation & Complexity/Y. Moses
4
States as Memory of Symbols
• For each  there exists a state q.
• M that returns n of the input
w= 12 ...n.
–
–
–
–
–
1 2 3 4 5
(q0, i)=(qi,#,R)
mark left
cell+ remember first cell.
q1
(qi, j)=(qj,_,R)
erase and remember the current cell.
# 2 3 4 5
(qi, _)=(q’i,_,L) end-of-tape + return the last cell.
q5
# with last cell.
(q’i, _)=(q’i,_,L) go backward
q5 left cell
(q’i, #)=(qaccept, i,R)
detect

write right cell+ stop.
qf
5Moses
Computation & Complexity/Y.
5
M that Computes the Right
Cyclic Transformation:
f(12 ...n)= n12 ...n-1
• Remember the left cell (using a state), mark it with
# and move Right.
• Until right-end, _, write the previous cell value,
remember the current value, and move right.
• When reach the right end, remember the value by
the state and move left until reach the first cell, #.
• Write the last cell value in the first cell and stop.
Computation & Complexity/Y. Moses
6
B={w#w|w{0,1}*}
Computation & Complexity/Y. Moses
7
Summary
•
•
•
•
TM: formal definition (Q, , , , q0, qaccept, qreject)
TM: input.
TM: output.
Some examples.
Computation & Complexity/Y. Moses
8
A “Stay” Move
Can use:
(q0,_)=(q1,_,R)
(q1,_)=(qaccept,_,L)
• :Qx  Qxx{R,L,S}
Computation & Complexity/Y. Moses
9
Computing the Function:
f2(w)=w
For every , (q0, )=(q0, ,R)
(q0,_)=(qaccept,_,S).
Computation & Complexity/Y. Moses
10
Computers and Intuitive
Computation
• Every computer has a set of “simple” steps
that change the environment.
• Can every function be computed by some
computer?
• Formally: Can every function
f:{0,1}* :{0,1}*
be computed?
Computation & Complexity/Y. Moses
11
Class 2
•
•
•
•
TM Configurations
A Decider
A Language of a TM
More Examples of TM’s
Computation & Complexity/Y. Moses
12
Formally:
(Q, , , , q0, qaccept, qreject)
Q is the set of states q0, qaccept, qrejectQ .
 is the input alphabet _  .
 is the tape alphabet, _ and .
:{Q\ qaccept, qreject }x  Qxx{R,L} the
transition function.
• q0, qaccept, qreject the start, accept and rejects
states.
qaccept  qreject
•
•
•
•
Computation & Complexity/Y. Moses
13
Configuration
• The tape.
• The state.
• The control location on the tape.
q
uqrejectv
u,v *
b b a c b b d a c
u
_ _
v
u=bbac v=bbdac
Computation & Complexity/Y. Moses
14
Intial Configuration: q0w
• The tape: w (the input) on the leftmost n
squares of the tape.
Example: w=00101
• The rest of the tape is blank.
• The head starts on the left most square.
q0
*
w

w
1 w2...w
n


0 0 1 0 1 _ _
Computation & Complexity/Y. Moses
_
...
15
Final Configuration: uqw
•
•
•
•
q {qaccept , qreject}
The tape contains uw: Example: u = 00 w=101,
The rest of the tape is blank.
The output is u.
q
*
w

w
1 w2...w
n


0 0 1 0 1 _ _
Computation & Complexity/Y. Moses
_
...
16
C1 yields C2 if C2 can be “reached” from C1 by the
 function.
qi
if
 (q , b)  (q j , c, L)
i
C 1:
b b a c a b b b d a c _ _
u
v
C 2:
qj
Then C1  C2
b b a c a c b b d a c _ _
u
v
Computation & Complexity/Y. Moses
17
Special Case: left-hand end
• Right transition (qi,b)= (qj,c,R):
qibv yields cqjv
• Left transition (qi,b)= (qj,c,L):
qibv yields qjcv
b a a a a
c a a a a
•
Computation & Complexity/Y. Moses
18
A Configuration Sequence
For a given TM M we denote by
C1* Cn the existence of a set of
configurations.
Where Ci yields Ci+1 for i=1,…,n
Computation & Complexity/Y. Moses
19
M accept w:
If a sequence of configurations C1, C2,…,Cn
exists where:
1. C1 is a start configuration with w.
2. Each Ci yields Ci+1
3. Cn is an accepting configuration.
1-2: C1  * Cn
Computation & Complexity/Y. Moses
20
M reject w:
If a sequence of configurations C1, C2,…,Cn
exists where:
1. C1 is a start configuration on input w.
2. Each Ci yields Ci+1
3. Cn is a rejecting configuration.
1-2: C1  * Cn
Computation & Complexity/Y. Moses
21
Three possible outcomes of a
TM
• Accept.
• Reject.
• Loop.
not necessarily repeating the same steps.
Computation & Complexity/Y. Moses
22
M decides L:
If M accepts all wL and M rejects all wL.
That is:
– For every wL M accept w.
– For every wL M reject w.
M is a Decider TM: If M Halts on all inputs.
(never loop)
Computation & Complexity/Y. Moses
23
The Language of TM M
L(M) = the collections of strings that M
accepts.
Computation & Complexity/Y. Moses
24
Example
The following TM M decides the
2
A

{
0
| n  0}
language
M=“on input string w
1. From left to right: cross off every other 0.
2. If in stage 1 a single 0 left: accept.
an odd number of 0’s” reject.
An even number: go to 1.”
n
Computation & Complexity/Y. Moses
25
Example: B={w#w|w{0,1}*}
M1=“On input string w:
1. Scan and check that the input contains a single
#. If not reject.
2. Zig-zag to check whether corresponding
positions on either sides of # contain the same
symbol. If not, reject. Cross off the checked
symbols.
3. When all symbols to the left of # are crossed,
check for remaining symbols to the right of #. If
any symbol, reject. Otherwise, accept.
Computation & Complexity/Y. Moses
26
B={w#w|w{0,1}*}
How are 0’s
and 1’s decoded?
Where are the
reject states?
Computation & Complexity/Y. Moses
27
TM for Deciding the Language
C={aibjck|i x j=k and i,j,k>0}
M3 on input w:
1. Scan to the right to check whether
w{a* b* c*} if not, reject.
2. Return head to the left hand side.
3. Cross: one a and the same num. of b and c.
4. Restore the crossed b and return to 3.
accept if all a’s and c’s are crossed.
Computation & Complexity/Y. Moses
28
The Element Distinctness
Problem
E={#x1#x2#…#xn| xi{0,1}* and xixj ij}
M4 is a TM that accept E: it compares each
pair of xi and xj.
• At each “round” it marks a pair of the
symbols # in an order that covers all
possible pairs.
• It compares the two strings that follow the
marked symbols #.
Computation & Complexity/Y. Moses
29
Alphabet Duplication
• How can we mark cells on the tape without
changing their values?
• Duplicate the alphabet of  such that for
each  there is another symbol ’ .
.
Computation & Complexity/Y. Moses
30
B1={w1#w2|wi{0,1}* & w1 w2}
What do we
have to change?
B={w#w|w{0,1}*}
Computation & Complexity/Y. Moses
31
Turing-decidable Languages:
• A  {0 | n  0}
• B={w#w|w{0,1}*}
• C={aibjck|i x j=k and i,j,k>0}
2n
• E={#x1#x2#…#xn| xi{0,1}*
and xixi ij}
Computation & Complexity/Y. Moses
32
Using a TM to Compute
a Function.
M is a TM that computes a (partial) function
fM:*  * if there exist , * and
qacceptQ
s.t.
q0w  *  qaccept.
In this case fM(w)=.
Computation & Complexity/Y. Moses
33
A Function With a Number of
Arguments
• Use a special symbol on the tape to separate
between the arguments.
• w1&w2&…wn where &.
• Examples of functions:
– add(w1,w2)
– mult(w1,w2)
– max(w1,w2)
Computation & Complexity/Y. Moses
34
Can we distinguish a machine
that is looping from one that is
merely taking a long time?
Computation & Complexity/Y. Moses
35
M recognize L:
If M accepts all wL
That is:
– For every wL M accept w.
– For every wL M reject w or M does not halt.
Computation & Complexity/Y. Moses
36
Turing-Recognizable
Language
A language L is Turing recognizable if there
exists a TM M that recognizes it.
That is L(M) for some TM M.
Also named recursively-enumerable
Computation & Complexity/Y. Moses
37
Turing-Recognizable
Languages:
• A  {0 | n  0}
• B={w#w|w{0,1}*}
• C={aibjck|i x j=k and i,j,k>0}
2n
• E={#x1#x2#…#xn| xi{0,1}*
and xixi ij}
•
Computation & Complexity/Y. Moses
38
Turing-recognizable 
Turingrecognizable
Turing-decidable
Turing-decidable
Computation & Complexity/Y. Moses
39
Up to Here
•
•
•
•
•
•
•
Definition of a TM.
Configurations: initial, final, general, transitions .
Coding S (stay) transition.
Remember symbols by states.
Mark symbols.
Computing a function: input & output values.
Recognizing/deciding a Language.
Computation & Complexity/Y. Moses
40