Information Processing Letters 16 (1983) 127-129 North-Holland Publishing Company
TIME COMPLEXITY Wojciech Institute
15 April 1983
OF LOOP-FREE
TWO-WAY PUSHDOWN
AUTOMATA
RYTTER
of Informatics,
Warsaw Unroerstty, 00-901
Warsrawa,
PKiN
VIII p, skr.pocz.
1210, Poland
Communicated by W.M. Turski Received I November 1982
Kqwords:
Two-way
pushdown
automata,
simulation,
time complexity
1. Introduction In this paper we consider time complexity of languages recognized by two-way nondeterministic pushdown automata with one input head (2npda’s, for short). The best known upper bound on time complexity of 2npda languages is still O(n) (see [l]), while there are algorithms recognizing lnpda (context-free) languages in less than cubic time (see [5,9]). None of these algorithms works for 2npda’s. In [7] the bound O(n3) was improved for some very small subclasses of 2npda’s. In this paper we improve this bound for a large subclass of 2npda’s. We say that a Znpda A is loop-free if there is no possible infinite computation of A on any input word. The class of languages recognized by loopfree 2npda’s properly includes the class of context-free languages and we conjecture that it is equal to the class of all Znpda languages. We prove that each loop-free 2npda can be simulated in O(n3/log n) time. Our simulation is designed using the tabulation method [3,4,6] together with ideas of the ‘four Russians’ algorithm [2] and the fast on-line recognition of context-free languages [5]. Our model of the computation is a random access machine with the uniform cost criterion. 2. Preliminaries We refer the reader to [ 1,2] for the detailed definition of a Znpda. By a surface configuration of a Znpda A for a given input word w (configura0020-0190/83/$03.00
0 1983 North-Holland
tion, for short) we mean a vector x = (top, s, h), where top is an element of the stack alphabet, s a state of A and h a position of the input head. For x = (top, s, h) we write TOP(X) = top. The configuration only contains the top element of the stack; however, it is enough to determine the set of possible (nondeterministic) moves of A on a given moment. We assume without loss of generality that if a 2npda A accepts, then its stack is one-element, accepting configurations are pop configurations and each move of A is a pop or a push move. Moreover, assume that if A makes a pop move, then the next state and the next position of the input head are uniquely determined by the current configuration (pop moves are deterministic) and at most two different configurations can result from a given configuration by a push move. Let us fix a loop-free 2npda A and an input word w of length n. Let K denote the set of all configurations and x0 be the initial configuration. Observe that ]I(] = O(n), where ]I(] is the cardinality of K. We introduce some useful notation (as in [S]). For every configuration x = (top, s, h) define: (1) POP(x) is true iff x is a pop configuration; (2) PUSH(X) is true iff x is a push configuration; (3) xl = PUSHFI(X) and x2 = PUSHFZ(X) iff xl, x2 are configurations which can result from x by a push move (assume that xl G x2, where G is any linear order on K which is easily computable); (4) z = POPF(X, y) iff z results from y by a pop move (which determines the next state and the next position of the input head) and TOP(z) = TOP(X); 127
(5) TERM(X)= {y I there is a computation of A starting with x and one-element stack and ending with y and one-element stack). The elements of TERM(X) are called terminators of x. The simulation of A can be reduced to the computation of TERM. We assume (to ease the presentation) that for each x E K exactly one of the conditions POP(X), PUSH(X) holds. Moreover, if PUSH(X) is true, then PUSHFI(X), PUSHF2(x) are both defined and if POP(X) is true, then POPF(y, x) is defined for each x E K. The following recursive definition of the function TERM gives an (exponential time) algorithm to compute TERM:
TERM(X) =
if
then {x}
U
else
If A is loop-free, then TERMI called with the actual parameter x = x0 terminates and TERMI = TERM. For each x E K we compute TAB(X) at most once. The cost of computing TAB(X) is dominated by the cost of (1). For a given x the cost of computing (1) is O(n2), disregarding the cost of executing recursive calls in (1) (these costs are counted in other instances of the function). Hence the total cost of computing TERMI is 0(n3). We improve now the total cost of (1) by applying another type of the tabulation. Let
TERM(POPF(X,
y ETERM(PUSHFl(x))”
y)) .
3. Outline of the algorithm Let TAB be the array such that, for each x E K, TAB(X) contains a subset of K or a special value ‘ undefined’. Initially, TAB(X) = ‘ undefined’ for each x E K. S is the local variable whose values are subsets of K.
SnK,,SnK,
begin if TAB(X)
=
,...,
SnK,
can be computed in O(n log n) time (it can be done using any easily computable linear order on K). Let us fix such a partition of K and denote Sci, = S n Ki. We introduce the table TAB~ such that, for each 1 < i ( r and Sci, C Ki, TABI(i, Sci,) contains a subset of K or the special value ‘undefined’. Initially each entry of TAB~ contains the value ‘undefined’. There are 0(n3j2/log n) entries of TABI because there are O(2q) = 0(n’12) subsets of a given set Ki (IKil < q). We replace the instruction (1) by the following instruction: for
TERMl(X);
r = [lKl/ql.
TERM(PUSHF2(x))
In the next section we shall apply twice the tabulation method to obtain an efficient algorithm.
function
and
q = 1; log(n)]
We can partition K into r disjoint subsets K,, K Z,. . . , K,, each of size q (the last one can have a smaller size) in such a way that for any set S G K the sequence of sets
= POP(X)
15 April 1983
INFORMATION PROCESSING LETTERS
Volume 16, Number 3
i :=
1 to r do
begin
‘undefined’
compute SCi,; if TABl(i, S,,,) = ‘undefined’ then
then
begin TAB(X)
if
:= 8;
TABl(i,
then TAB(X):= else begin S := TERMl(PUSHFl(X)) POP(X)
s := {Z I Z = POPF(X,
TAB(X)
128
zlJ,jTERMl(Z);
{x} TAB(X):= y),
:= us
TERMI
TERM1
:= TAB(X)
TAB(X)
U TABl(i,
S,,,)
end;
U TERMi(PUSHFP(X));
end end; end;
SC,,):=
(2)
y E s};
(1)
We claim that now (after the replacement) the cost of computing TERMI is 0(n3/log n). The instruction (2) is executed O(n) times, hence the instruction TAB(X) := TAB(X) uTABl(i,
S,,,)
Volume
16, Number
3
INFORMATION
LETTERS
15 April 1983
References
is executed O(n . r) = O(n*/log
PROCESSING
n)
[)I A.V. Aho, J.E. Hopcroft
times, giving in total the cost O(n3/log n). The mstructlon TABI(I, SCi,): = . . . is executed at most once for each 1
A can be simulated
and J.D. Ullman, Time and tape complexity of pushdown automaton languages, Inform. and Control 13(3) (1968) 186-206. PI A.V. Aho, J.E. Hopcroft and J.D. Ullman, The Design and Analysis of Computer Algorithms (Addison-Wesley, Reading, MA, 1976) Section 6.6. [31 R. Bird, Tabulation techniques for recursive programs, ACM Comput. Surveys 12(4) (1980). of recur141 R. Bird, Improving programs by the introduction sion, Comm. ACM 20( 11)(1977). M.A. Harrison and W.L. Ruzzo, On-line [51S.L. Graham, context-free recognition in less than cubic time, Proc. STOC 8 (1976) 112-120. 161W. Rytter, The dynamic simulation of recursive and stack manipulating programs, Inform. Process. Lett. 13(2) (1981) 58-63. pushdown [71W. Rytter, A note on two-way nondeterministic automata, Inform. Process. Lett. 15(l) (1982) 5-9. of deterministic pushPI W. Rytter, An effective simulation down automata with many two-way and one-way heads, Inform. Process. Lett. 12(5) (1981) 234-236. recognition in less than cubic time, [91 L. Valiant, Context-free J. Comput. Systems Sci. 10 (1975) 308-315.
129