TY - JOUR

T1 - Recognition of DFS trees

T2 - sequential and parallel algorithms with refined verifications

AU - Korach, Ephraim

AU - Ostfeld, Zvi

N1 - Funding Information:
We thank Baruch Schieber for providing Lemma 3.7 and for improving the implementation complexity of algorithm PAR _ CHECK that we got in a previous manuscript, as stated in Theorem 3.8. This also enables us to simplify the optimal negative verification we had for this algorithm. We thank Michael Kaminski for pointing out some referenceso n the complexity of matrix multiplication. This research was partially supported by Technion V.P.R. Fund-Coleman Cohen Research Fund.

PY - 1993/4/28

Y1 - 1993/4/28

N2 - The depth-first search (DFS) algorithm is one of the basic techniques used in a very large variety of graph algorithms. Every application of the DFS involves, besides traversing the graph, constructing a special structured tree, called a DFS tree, that may be used subsequently. In a previous work we have shown that the family of graphs in which every spanning tree is a DFS tree is quite limited. Therefore, the question: Given an undirected graph G=(V, E) and an undirected spanning tree T, is T a DFS tree (T-DFS) in G? was naturally raised and answered by sequential linear-time algorithms. Here we present a parallel algorithm which solves this problem in O(t) time complexity and uses O(|E|/t) processors, where t≥log|V|, on a CREW PRAM. We also study the problem for directed graphs. A linear (O(|E|)) time algorithm for solving it in the sequential case and a parallel Kimplemetation of it, which has O(log2|V|) time complexity and uses O(|V|2.376) processors on a CREW PRAM, are presented. An important feature of our algorithms, that we call refined verification, is that some of their decisions are endowed with proofs that can be verified with a better complexity than that of the algorithms themselves: In the undirected case, if the answer of the algorithm is negative then it outputs a proof for the fact that can be verified in O(t) time complexity with O(|V|/t) processors, where t≥log|V|, on a CREW PRAM. In the directed case, if T is not a DFS tree in G then the sequential algorithm supplies an O(|V|) time proof for that fact and the parallel implementation supplies a proof for the fact that can be verified in O(t) time complexity with O(|V|/t) processors, where t≥log|V|, on a CREW PRAM. If T is a DFS tree in G then the parallel implementation of the algorithm outputs a proof that can be verified in O(t) time complexity with O(|E|/t) processors, where t≥log|V|, on a CREW PRAM. Hence, all the verification have an optimal speed-up.

AB - The depth-first search (DFS) algorithm is one of the basic techniques used in a very large variety of graph algorithms. Every application of the DFS involves, besides traversing the graph, constructing a special structured tree, called a DFS tree, that may be used subsequently. In a previous work we have shown that the family of graphs in which every spanning tree is a DFS tree is quite limited. Therefore, the question: Given an undirected graph G=(V, E) and an undirected spanning tree T, is T a DFS tree (T-DFS) in G? was naturally raised and answered by sequential linear-time algorithms. Here we present a parallel algorithm which solves this problem in O(t) time complexity and uses O(|E|/t) processors, where t≥log|V|, on a CREW PRAM. We also study the problem for directed graphs. A linear (O(|E|)) time algorithm for solving it in the sequential case and a parallel Kimplemetation of it, which has O(log2|V|) time complexity and uses O(|V|2.376) processors on a CREW PRAM, are presented. An important feature of our algorithms, that we call refined verification, is that some of their decisions are endowed with proofs that can be verified with a better complexity than that of the algorithms themselves: In the undirected case, if the answer of the algorithm is negative then it outputs a proof for the fact that can be verified in O(t) time complexity with O(|V|/t) processors, where t≥log|V|, on a CREW PRAM. In the directed case, if T is not a DFS tree in G then the sequential algorithm supplies an O(|V|) time proof for that fact and the parallel implementation supplies a proof for the fact that can be verified in O(t) time complexity with O(|V|/t) processors, where t≥log|V|, on a CREW PRAM. If T is a DFS tree in G then the parallel implementation of the algorithm outputs a proof that can be verified in O(t) time complexity with O(|E|/t) processors, where t≥log|V|, on a CREW PRAM. Hence, all the verification have an optimal speed-up.

UR - http://www.scopus.com/inward/record.url?scp=43949171211&partnerID=8YFLogxK

U2 - 10.1016/0012-365X(93)90375-4

DO - 10.1016/0012-365X(93)90375-4

M3 - Article

AN - SCOPUS:43949171211

SN - 0012-365X

VL - 114

SP - 305

EP - 327

JO - Discrete Mathematics

JF - Discrete Mathematics

IS - 1-3

ER -