3167287
Parallel Detection of all Palindromes in a String
This paper presents two efficient concurrent-read concurrent-write parallel algorithms that find all palindromes in a given string: 
 
1. 
 
An O(log n) time, n-processor algorithm over general alphabets. In case of constant size alphabets the algorithm requires only n/log n processors, and thus achieves an optimal-speedup. 
 
 
 
 
2. 
 
An O(log log n) time, n log n/loglog n-processor algorithm over general alphabets. This is the fastest possible time with the number of processors used.
9944318
Finding all periods and initial palindromes of a string in parallel
An optimalO(log logn)-time CRCW-PRAM algorithm for computing all period lengths of a string is presented. Previous parallel algorithms compute the period only if it is shorter than half of the length of the string. The algorithm can be used to find all initial palindromes of a string in the same time and processor bounds. Both algorithms are the fastest possible over a general alphabet. We derive a lower bound for finding initial palindromes by modifying a known lower bound for finding the period length of a string [9]. Whenp processors are available the bounds become Θ(⌈n/p⌉+log⌈1+p/n⌉2p).
53304548
Parallel Detection of all Palindromes in a String
This paper presents two efficient concurrent-read concurrent-write parallel algorithms that find all palindromes in a given string: 
 
1. 
 
An O(log n) time, n-processor algorithm over general alphabets. In case of constant size alphabets the algorithm requires only n/log n processors, and thus achieves an optimal-speedup. 
 
 
 
 
2. 
 
An O(log log n) time, n log n/loglog n-processor algorithm over general alphabets. This is the fastest possible time with the number of processors used.
42250902
Maintaining Biconnected Components of Dynamic Planar Graphs
We present algorithms for maintaining the biconnected components of a planar graph undergoing repeated dynamic modifications, such as insertions and deletions of edges and vertices. We show how to test at any time whether two vertices belong to the same biconnected component, and how to insert and delete an edge in O(n2/3) time in the worst case, where n is the number of vertices in the graph. The data structure supports also insertions of new vertices and deletions of disconnected vertices in the same time bounds. This is the first sublinear-time algorithm known for this problem.
7009330
Fully dynamic planarity testing with applications
This paper introduces compressed certificates for planarity, biconnectivity and triconnectivity in planar graphs, and proves many structural properties of certificates in planar graphs. As an application of our compressed certificates, we develop efficient dynamic planar algorithms. In particular, we consider the following three operations on a planar graph <italic>G</italic>: (i) insert an edge if the resultant graph remains planar; (ii) delete an edge; and (iii) test whether an edge could be added to the graph without violating planarity. We show how to support each of the above operations in <italic>O</italic>(<italic>n</italic><supscrpt>2/3</supscrpt>) time, where <italic>n</italic> is the number of vertices in the graph. The bound for tests and deletions is worst-case, while the bound for  insertions is amortized. This is the first algorithm for this problem with sub-linear running time, and it affirmatively answers a question posed in Epstein et al. [1992]. We use our compressed certificates for biconnectivity and triconnectivity to maintain the biconnected and triconnected components of a dynamic planar graph. The time bounds are the same: <italic>O</italic>(<italic>n</italic><supscrpt>2/3</supscrpt>) worst-case time per edge deletion, <italic>O</italic>(<italic>n</italic><supscrpt>2/3</supscrpt>) amortized time per edge insertion, and <italic>O</italic>(<italic>n</italic><supscrpt>2/3</supscrpt>) amortized time per edge insertion, and <italic>O</italic>(<italic>n</italic><supscrpt>2/3</supscrpt>)worst-case time to check whether two vertices are either biconnected or triconnected.
9566604
Speeding up dynamic programming
A number of important computational problems in molecular biology, geology, speech recognition, and other areas can be expressed as recurrences which have typically been solved with dynamic programming. By using more sophisticated data structures, and by taking advantage of further structure from the applications, the authors speed up the computation of several of these recurrences by one or two orders of magnitude. The algorithms used are simple and practical.<<ETX>>