A Crash Course in Complexity Theory with a View Towards Ustcon ∈ L

A Crash Course in Complexity Theory with a View Towards Ustcon ∈ L

A Crash Course in Complexity Theory with a view towards ustcon 2 L Anurag Sahay University of Rochester [email protected] 25th February, 2020 Anurag Sahay (UoR) Crash Course in Complexity 25th February, 2020 1 / 24 Overview of the Talk 1 Introduction What is Computation? 2 Formalizing Efficient Computation Time Complexity: P Space Complexity: L The Relationship between Time and Space Complexity 3 Reingold's Theorem: ustcon 2 L 4 Nondeterminism in Space Complexity Anurag Sahay (UoR) Crash Course in Complexity 25th February, 2020 2 / 24 References Sanjeev Arora and Boaz Barak. Computational complexity: a modern approach. Cambridge University Press, 2009. Omer Reingold. Undirected connectivity in log-space. Journal of the ACM (JACM), 55(4):1{24, 2008. Anurag Sahay (UoR) Crash Course in Complexity 25th February, 2020 3 / 24 When asking yes-or-no questions about countable collections of discrete objects (like graphs, integers, binary strings) it is usually possible to encode the question as a decision problem. For a toy example, consider the parity problem: n 2 N, is the number of 1 in the binary expansion of n odd? Decision Problems We will restrict ourselves to decision problems for this talk. A decision problem is a function f : f0; 1g∗ ! f0; 1g. Equivalently, a decision problem is a subset L ⊆ f0; 1g∗. Anurag Sahay (UoR) Crash Course in Complexity 25th February, 2020 4 / 24 Decision Problems We will restrict ourselves to decision problems for this talk. A decision problem is a function f : f0; 1g∗ ! f0; 1g. Equivalently, a decision problem is a subset L ⊆ f0; 1g∗. When asking yes-or-no questions about countable collections of discrete objects (like graphs, integers, binary strings) it is usually possible to encode the question as a decision problem. For a toy example, consider the parity problem: n 2 N, is the number of 1 in the binary expansion of n odd? Anurag Sahay (UoR) Crash Course in Complexity 25th February, 2020 4 / 24 Turing Machine Definition A deterministic k-tape Turing machine M is a tuple (Q; Γ; δ) where Q is a finite set of states. Γ is a finite set of symbols, called an alphabet. These are the symbols that can be written on any of the tapes of the Turing machine. δ : Q × Γk ! Q × Γk−1 × fl; r; sgk is called the transition function. There are two distinguished states qstart; qhalt 2 Q. qhalt has the property that δ(qhalt; ·) does not change any tapes, or move any of the heads. There is a distinguished symbol 2 Γ, representing a blank space. In particular, we can choose Γ = f0; 1; g, and set k = 3. As long as Γ has at least two non-blank elements, it doesn't practically change anything we will discuss. Anurag Sahay (UoR) Crash Course in Complexity 25th February, 2020 5 / 24 Informally, we define these resources as follows: Definition For a given deterministic Turing machine M, and a given input ∗ x 2 f0; 1g , the time TM (x) on that input is the number of transitions M makes on input x before it halts. The space SM (x) is the largest distance travelled by the head of any work tape before M halts on input x. Further, for n 2 N, TM (n) = max TM (x) jx|≤n SM (n) = max SM (x) jx|≤n What is an Efficient Computation? There are two basic resources a computer uses: time and space. Anurag Sahay (UoR) Crash Course in Complexity 25th February, 2020 6 / 24 The space SM (x) is the largest distance travelled by the head of any work tape before M halts on input x. Further, for n 2 N, TM (n) = max TM (x) jx|≤n SM (n) = max SM (x) jx|≤n What is an Efficient Computation? There are two basic resources a computer uses: time and space. Informally, we define these resources as follows: Definition For a given deterministic Turing machine M, and a given input ∗ x 2 f0; 1g , the time TM (x) on that input is the number of transitions M makes on input x before it halts. Anurag Sahay (UoR) Crash Course in Complexity 25th February, 2020 6 / 24 Further, for n 2 N, TM (n) = max TM (x) jx|≤n SM (n) = max SM (x) jx|≤n What is an Efficient Computation? There are two basic resources a computer uses: time and space. Informally, we define these resources as follows: Definition For a given deterministic Turing machine M, and a given input ∗ x 2 f0; 1g , the time TM (x) on that input is the number of transitions M makes on input x before it halts. The space SM (x) is the largest distance travelled by the head of any work tape before M halts on input x. Anurag Sahay (UoR) Crash Course in Complexity 25th February, 2020 6 / 24 What is an Efficient Computation? There are two basic resources a computer uses: time and space. Informally, we define these resources as follows: Definition For a given deterministic Turing machine M, and a given input ∗ x 2 f0; 1g , the time TM (x) on that input is the number of transitions M makes on input x before it halts. The space SM (x) is the largest distance travelled by the head of any work tape before M halts on input x. Further, for n 2 N, TM (n) = max TM (x) jx|≤n SM (n) = max SM (x) jx|≤n Anurag Sahay (UoR) Crash Course in Complexity 25th February, 2020 6 / 24 Definition (DSPACE) Similarly, we say L 2 DSPACE(f (n)), if there is a Turing machine M that decides L such that SM (n) = O(f (n)) What is an Efficient Computation? This leads us to the following definitions: Definition (DTIME) For L ⊆ f0; 1g∗, we say L 2 DTIME(f (n)), if there is a Turing machine M that decides L such that TM (n) = O(f (n)) Anurag Sahay (UoR) Crash Course in Complexity 25th February, 2020 7 / 24 What is an Efficient Computation? This leads us to the following definitions: Definition (DTIME) For L ⊆ f0; 1g∗, we say L 2 DTIME(f (n)), if there is a Turing machine M that decides L such that TM (n) = O(f (n)) Definition (DSPACE) Similarly, we say L 2 DSPACE(f (n)), if there is a Turing machine M that decides L such that SM (n) = O(f (n)) Anurag Sahay (UoR) Crash Course in Complexity 25th February, 2020 7 / 24 On the work tape, write 0. Read the input tape from left to right, and do the following: If the symbol read is a 0, the simply keep reading the input (i.e., move right) without changing anything else. If the symbol read is a 1, then switch the symbol on the work tape (from 0 to 1 and vice-versa). Continue reading the input after. If the symbol read is a , copy the symbol from the work tape to the output and halt. It's not hard to formalize the above description, and it is easy to see that parity 2 DTIME(n) \ DSPACE(1). Toy example: parity We now describe a Turing machine that decides parity, as follows: Anurag Sahay (UoR) Crash Course in Complexity 25th February, 2020 8 / 24 Read the input tape from left to right, and do the following: If the symbol read is a 0, the simply keep reading the input (i.e., move right) without changing anything else. If the symbol read is a 1, then switch the symbol on the work tape (from 0 to 1 and vice-versa). Continue reading the input after. If the symbol read is a , copy the symbol from the work tape to the output and halt. It's not hard to formalize the above description, and it is easy to see that parity 2 DTIME(n) \ DSPACE(1). Toy example: parity We now describe a Turing machine that decides parity, as follows: On the work tape, write 0. Anurag Sahay (UoR) Crash Course in Complexity 25th February, 2020 8 / 24 If the symbol read is a 1, then switch the symbol on the work tape (from 0 to 1 and vice-versa). Continue reading the input after. If the symbol read is a , copy the symbol from the work tape to the output and halt. It's not hard to formalize the above description, and it is easy to see that parity 2 DTIME(n) \ DSPACE(1). Toy example: parity We now describe a Turing machine that decides parity, as follows: On the work tape, write 0. Read the input tape from left to right, and do the following: If the symbol read is a 0, the simply keep reading the input (i.e., move right) without changing anything else. Anurag Sahay (UoR) Crash Course in Complexity 25th February, 2020 8 / 24 If the symbol read is a , copy the symbol from the work tape to the output and halt. It's not hard to formalize the above description, and it is easy to see that parity 2 DTIME(n) \ DSPACE(1). Toy example: parity We now describe a Turing machine that decides parity, as follows: On the work tape, write 0. Read the input tape from left to right, and do the following: If the symbol read is a 0, the simply keep reading the input (i.e., move right) without changing anything else. If the symbol read is a 1, then switch the symbol on the work tape (from 0 to 1 and vice-versa). Continue reading the input after. Anurag Sahay (UoR) Crash Course in Complexity 25th February, 2020 8 / 24 It's not hard to formalize the above description, and it is easy to see that parity 2 DTIME(n) \ DSPACE(1).

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    51 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us