Abstract

Graph algorithms use various techniques to achieve higher efficiency. In this review we exemplify the design and analysis of efficient graph algorithms by surveying algorithms for the four closely related problems of finding a maximum cardinality or weighted matching in general or bipartite graphs. Mathematicall y, these are all special cases of the problem of weighted matching in general graphs. However, we consider them in increasing order of difficulty because the easier the problem , the faster or simpler its solution. First we discuss sequential algorithms, and then we describe parallel algo­ rithms. Surprisingl y, at the moment, entirely different techniques are used for sequential and parallel algorithms. For sequential algorithms our computational model is the uniform cost random access machine or RAM (Aho et al 1974). Given a problem , we first try to solve it in polynomial time . Once a polynomial-time solution is found, we try to improve the solution by speeding it up. Our parallel computational model is the PRAM (Fortune & Wyllie 1978). It is a parallel computer with p processors (RAMs) that share a common memory. We allow only simultaneous reads from , but not simultaneous writes to, the same memory location. Given a problem, we first try to show that it is in the class NC (Cook 1983) by designing an algorithm that uses a polynomial number of processors and poly-logarithmic time. We call such an algorithm an NC algorithm. Alternative ly, if we use randomizat ion, we design an RNC algorithm. Once we establish that the problem is in NC or

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call