The Classes L and NL Section 8.4 Giorgi Japaridze Theory of Computability.

Slides:



Advertisements
Similar presentations
Variants of Turing machines
Advertisements

1 Nondeterministic Space is Closed Under Complement Presented by Jing Zhang and Yingbo Wang Theory of Computation II Professor: Geoffrey Smith.
THE CHURCH-TURING T H E S I S “ TURING MACHINES” Pages COMPUTABILITY THEORY.
Giorgi Japaridze Theory of Computability Savitch’s Theorem Section 8.1.
The class NP Section 7.3 Giorgi Japaridze Theory of Computability.
Fall 2013 CMU CS Computational Complexity Lecture 5 Savich’s theorem, and IS theorems. These slides are mostly a resequencing of Chris Umans’ slides.
Umans Complexity Theory Lectures Lecture 4b: Nondeterministic Space: I-S Theorem: NL = coNL.
NL equals coNL Section 8.6 Giorgi Japaridze Theory of Computability.
CSCI 4325 / 6339 Theory of Computation Zhixiang Chen.
Probabilistic algorithms Section 10.2 Giorgi Japaridze Theory of Computability.
Complexity 12-1 Complexity Andrei Bulatov Non-Deterministic Space.
Computability and Complexity 22-1 Computability and Complexity Andrei Bulatov Hierarchy Theorem.
Complexity 13-1 Complexity Andrei Bulatov Hierarchy Theorem.
P and NP Sipser (pages ). CS 311 Fall Polynomial time P = ∪ k TIME(n k ) … P = ∪ k TIME(n k ) … TIME(n 3 ) TIME(n 2 ) TIME(n)
CS5371 Theory of Computation
Computability and Complexity 19-1 Computability and Complexity Andrei Bulatov Non-Deterministic Space.
Complexity ©D.Moshkovitz 1 Turing Machines. Complexity ©D.Moshkovitz 2 Motivation Our main goal in this course is to analyze problems and categorize them.
FORMAL LANGUAGES, AUTOMATA AND COMPUTABILITY Read sections 7.1 – 7.3 of the book for next time.
Computability and Complexity 20-1 Computability and Complexity Andrei Bulatov Class NL.
Fall 2004COMP 3351 Time Complexity We use a multitape Turing machine We count the number of steps until a string is accepted We use the O(k) notation.
Non-Deterministic Space is Closed Under Complementation Neil Immerman Richard Szelepcsenyi Presented By: Subhajit Dasgupta.
1 Turing Machines. 2 A Turing Machine Tape Read-Write head Control Unit.
CSCI 2670 Introduction to Theory of Computing September 28, 2005.
The class P Section 7.2 CSC 4170 Theory of Computation.
THE CHURCH-TURING T H E S I S “ TURING MACHINES” Part 1 – Pages COMPUTABILITY THEORY.
Measuring complexity Section 7.1 Giorgi Japaridze Theory of Computability.
Parallel computation Section 10.5 Giorgi Japaridze Theory of Computability.
The Church-Turing Thesis Chapter 3 Giorgi Japaridze Theory of Computability.
1Computer Sciences Department. Book: INTRODUCTION TO THE THEORY OF COMPUTATION, SECOND EDITION, by: MICHAEL SIPSER Reference 3Computer Sciences Department.
CSCI 2670 Introduction to Theory of Computing October 12, 2005.
Hierarchy theorems Section 9.1 Giorgi Japaridze Theory of Computability.
Alternation Section 10.3 Giorgi Japaridze Theory of Computability.
1 Time Complexity We use a multitape Turing machine We count the number of steps until a string is accepted We use the O(k) notation.
NP-complete Languages
Turing Machines CS 130 Theory of Computation HMU Textbook: Chap 8.
Theory of Computation Automata Theory Dr. Ayman Srour.
Theory of Computational Complexity TA : Junichi Teruyama Iwama lab. D3
CSCI 2670 Introduction to Theory of Computing November 15, 2005.
Theory of Computability
CSC 4170 Theory of Computation The class P Section 7.2.
Time complexity Here we will consider elements of computational complexity theory – an investigation of the time (or other resources) required for solving.
Turing Machines Space bounds Reductions Complexity classes
CSC 4170 Theory of Computation The class P Section 7.2.
COSC 3340: Introduction to Theory of Computation
Theory of Computability
CSC 4170 Theory of Computation Turing reducibility Section 6.3.
CSCI 2670 Introduction to Theory of Computing
Approximation algorithms
Theory of Computational Complexity
Theory of Computability
Computational Complexity
Space Complexity Costas Busch - LSU.
Time Complexity We use a multitape Turing machine
CSC 4170 Theory of Computation Space complexity Chapter 8.
CSCI 2670 Introduction to Theory of Computing
Theory of Computability
CSC 4170 Theory of Computation Mapping Reducibility Section 5.3.
CSC 4170 Theory of Computation Time complexity Section 7.1.
Theory of Computability
Time Complexity Classes
CSC 4170 Theory of Computation The class NP Section 7.3.
CSCI 2670 Introduction to Theory of Computing
Theory of Computability
Theory of Computability
CSC 4170 Theory of Computation Mapping Reducibility Section 5.3.
Theory of Computability
Theory of Computability
Theory of Computability
CSC 4170 Theory of Computation Time complexity Section 7.1.
Theory of Computability
Presentation transcript:

The Classes L and NL Section 8.4 Giorgi Japaridze Theory of Computability

Sublinear complexity 8.4.a Giorgi Japaridze Theory of Computability Sublinear (less than linear) time complexity does not make sense (why?). But it does make sense as space complexity. We need to slightly modify our TM model of computation though. The modification consists in separating the input tape from the work tape. The work tape remains read/write, but the input tape is read-only. When counting space complexity, we only look at how many cells of the work tape are utilized. This separation is not artificial. In real life, it is often the case that read-only input is bigger than the computer’s memory (“work tape”). CD-ROM is an example. Or, if we want to focus on fast computations, computer’s memory becomes even more limited --- registers only. Logarithmic space computability can be seen as computability with registers only. Or, more generally, computability with memory that is “much smaller than” input.

L and NL defined 8.4.b Giorgi Japaridze Theory of Computability Definition L is the class of languages that are decidable in logarithmic space on a deterministic Turing machine. In other words, L = SPACE(log n) 2. NL is the class of languages that are decidable in logarithmic space on a nondeterministic Turing machine. In other words, NL = NSPACE(log n)

{0 k 1 k | k  0}  L 8.4.c Giorgi Japaridze Theory of Computability Example 8.18 Remember the machine for {0 k 1 k | k  0} from Section 7.1, which works by zigzagging back and forth. What is its space complexity? To improve space (but not time!) complexity, we can set up a different machine. Instead of zigzagging, such a machine just makes one pass through the input, and records on its work tape --- in the binary notation --- the number m of 0s and the number n of 1s. Holding m and n requires only logarithmic space. Then the machine compares these two numbers by zigzagging. This does not take any additional space.

PATH  NL 8.4.d Giorgi Japaridze Theory of Computability Example 8.19 Remember our polynomial-time algorithm for PATH from Section 7.2, which works by marking nodes. What is its space complexity? We can set up a nondeterministic logarithmic space machine for PATH. Starting from s as the “current node”, every time it guesses a next node --- among the nodes pointed to by the current node --- and jumps to it, until it hits t or has already visited more nodes than the number of nodes in the graph without hitting t. In the former case it accepts, and in the latter case rejects. At any time, the machine thus only needs to remember “the current node”, as well as the node count. How much space do these two pieces of information take? So, the whole algorithm runs in logarithmic space.