NTIME Versus NSPACE
Total Page:16
File Type:pdf, Size:1020Kb
NTIME versus NSPACE Dr. Satyadev Nandakumar Department of Computer Science and Engineering, IITK Aditya Huddedar Department of Computer Science and Engineering, IITK Abstract Analysis using pebbling games is a very old technique used for exploring the relations between different com- plexity classes. They are of special importance to us in calculating the space complexities in many cases. We study the feasibility of an approach based on pebbling techniques to the open question of the relation between NTIME and NSPACE. We discuss one of the basic pebbling techniques used by Paul, Hopcroft and Valiant to relate deterministic time and space classes. We explore an equivalence between the existence of a \good" pebbling strategy for nondeterministic computation and existence of sub-linear separators for the multi-pushdown graphs. We survey why the recent construction of Monotone expander graphs forbids such separators, showing that pebbling strategies are unlikely to settle the separation question between nondeterministic time and nondeterministic space. 1 Introduction A pebble game is a type of mathematical game played by moving \pebbles" on a directed acyclic graph. A variety of different pebble games exist. A game known as \Black Pebbling" was developed in 1970 by Paul, Hopcroft and Valiant. We discuss it in details in this report. There has been a lot of pondering over the strategy of using these games for finding a non-trivial relation between nondeterministic time and nondeterministic space. We review one of these, namely BWR game and discuss why it is unlikely to settle the separation question. 2 Block Respecting Turing Machine [2] Here we describe a computational model that will be used often in the later discussion. The model was introduced by Paul, Hopcroft and Valiant. They introduced a nondeterministic turing machine simulating a deterministic k−tape Turing machine of time complexity t. 2.1 Construction 2 1. Partition each tape into blocks of size t 3 . 2. Restrict the motion of the tape heads. Tape heads can cross boundaries between adjacent blocks only at times 2 which are integer multiples of t 3 . 3. Add another tape with one block marked on it. The head on this new tape can simply move back and forth over 2 the block. Thus, it serves as a clock to indicate multiples of t 3 units of time. 1 4. We want to construct the modified Turing Machie so that it runs slower by at most a constant factor c. 5. For this reason, we mark block boundaries on the tapes. If tape head on any of the original tapes attempts to 2 cross a block boundary at a time other than a multiple of t 3 , the simulation temporarily halts and waits until the clock tape indicates the next multiple. There arises a situation in which the simulation takes asymptotically greater time that t. We describe it in brief here. 2.2 Problem A tape head may only move back and forth between two adjacent tape cells which are in different blocks waiting for 2 the clock signals each time. In this case the simulation would be slower by a factor of t 3 in the worst case. The modified simulation removes this possibility as follows. 2.3 Solution Let w1 w2 w3 .... wr th 2 2 be an the tape-contents of the j tape of the original Turing machine after mt 3 steps where jwlj = t 3 - Then the 2 corresponding inscription for the block respecting Turing machine after cmt 3 steps is r r r X w1 w2 .... wr−1 w1 w2 w3 .... wr r r r w2 w3 w4 .... X r 2 where w stands for w reversed. The extra tracks are used to guarantee that t 3 moves can be simulated without crossing a block boundary. In this case, even if we have a situation like{ a tape head simply moving back and forth between two adjacent tape cells which are in different blocks, we can simulate such a cross-move directly without waiting for the clock, as now the adjacent tape cells can be traversed on different tracks of the tape in the appropriate direction. To illustrate this point further, lets take an example: Suppose tape head is currently at the end of block 2 i.e. the word w2. If we have a right move from here, we will 2 have to wait until the time is a multiple of t 3 . In the new constructed model, we can simply simulate this step by rd just moving left in the same block. So that the 3 element of the tuple (a1; a2; a3) i.e. the leftmost bit of w3 can be accessed without waiting for the clock pulse. Now the next problem of updating the changes in blocks everywhere comes into picture. But it can be done in the 2 next (c−1)t 3 moves. We update the tape contents only when we change the block in the modified multitrack machine. We need to treaverse the current block twice to copy the content of one track once. Also we need to store the whole 4 content somewhere because copying bit-by-bit would take O(t 3 ) time. We utilise the clock tape for this purpose as 2 the contents of that tape do not have any significance.Thus, we can update all the modified blocks in (c − 1)t 3 moves 2 2 for some constant c > 0. Thus we can process a block of size t 3 in ct 3 moves. Thus, we simutate the time bound turing machine in ct moves. 3 Computation Garph [2] Now, we define a computation graph which is used till date to simulate the computation of Block Respecting Turing machines. Let M be a block-respecting deterministic k-tape Turing machine of time complexity t and Let w be an input for M. Lets divide the computation of M on input w into time segments ∆ of size t2=3. 2 Since the original Turing machine makes at most t moves and the block size is t2=3, there are at most t1=3 time segments ∆. To define the computation graph, we need some more notations. 3.1 Some Notations • h(i; ∆) = the position of the tape head on the ith tape of M after time segment ∆ and h(∆) = [h(1; ∆):::::h(k; ∆)] • The sequence of head positions h = [h(1):::::h(t1=3)] • v(∆) = the vertex corresponding to time segment ∆. th • For each tape i, ∆i = the last time-segment prior to ∆ such that the i head was scanning the same block during the segment ∆i, as during the segment ∆. • The edges of G = fv(∆ − 1) ! v(∆)g [ fv(∆i) ! v(∆)j1 ≤ i ≤ kg • c(i; ∆) = the content after time segment ∆ of a block on the ith tape of M scanned by the tape head during the time segment ∆. c(∆) = [c(1; ∆); :::; c(k; ∆)]. • f(∆) = the initial contents of the blocks which are visited by M for the first time during the time segment ∆. • With each vertex v(∆) in G we can associate the information c(∆) and f(∆). • q(∆) = the state of M after time segment ∆ and q = [q(1); :::; q(t1=3)] 3.2 Observations: 1. Since there are only t1=3 time segments ∆, the above graph has at most t1=3 vertices. Hence, to write down a description of the graph requires space of the order of (k + 1)t1=3 log t since approximately log t bits are needed to specify each edge. 2. In order to determine the outcome of the original computation of M , we need to only determine the state q(∆) after the final time segment ∆. If it is an accepting state accept, otherwise reject. 3. Because M is deterministic and block respecting, the following holds for any ∆: (a) q(∆); h(∆); and c(∆)can be uniquely determined from q(∆ − 1); h(∆ − 1); c(∆1); ::::; c(∆k); and f(∆) by direct simulation of time segment ∆. The simulation requires O(kt2=3) space to store the contents of k blocks. (b) To store c(∆) requires space 0(kt2=3). (c) In order to carry out the whole simulation, we do not need to keep in memory the contents of the blocks corresponding to all vertices since we can go back and reconstruct certain blocks whenever we need them. Note that this is a crucial observation which is again highlighted in coming sections. (d) Thus, we will focus on finding a simulation which requires the minimum number of blocks to be stored at any one time. The answer to this question lies in a game on graphs. 3 4 Pebbling Game [2] Let Gk be the set of all finite directed acyclic graphs with indegree at most k. We call the vertices with indegree 0 as the input vertices. The game consists of placing pebbles on the vertices of such a graph G according to the following rules: 1. You can always place pebble can on an input vertex. 2. You can place a pebble on a vertex if all its parents have pebbles on them.. 3. A pebble can be removed at any time. Note that as mentioned in the introduction, this game allows \sliding" of pebbles. The goal of the game is to eventually place a pebble on a particular vertex v,designated in advance, by a scheme which minimizes the maximum number of pebbles simultaneously on the graph at any instance of time. Let Pk(n) be the maximum over all graphs in Gk with n vertices of the number of pebbles required to place a pebble on an arbitrary vertex of such a graph.