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 -