Graphs are among the most important abstract data types in computer science, and the algorithms that operate on them are critical to modern life. Graphs have been shown to be powerful tools for modeling complex problems because of their simplicity and generality. Graph algorithms are one of the pillars of mathematics, informing research in such diverse areas as combinatorial optimization, complexity theory, and topology. Algorithms on graphs are applied in many ways in today’s world – from Web rankings to metabolic networks, from finite element meshes to semantic graphs.
The current exponential growth in graph data has forced a shift to parallel computing for executing graph algorithms. Implementing parallel graph algorithms and achieving good parallel performance have proven difficult. This book addresses these challenges by exploiting the well-known duality between a canonical representation of graphs as abstract collections of vertices and edges and a sparse adjacency matrix representation. This linear algebraic approach is widely accessible to scientists and engineers who may not be formally trained in computer science. The authors show how to leverage existing parallel matrix computation techniques and the large amount of software infrastructure that exists for these computations to implement efficient and scalable parallel graph algorithms. The benefits of this approach are reduced algorithmic complexity, ease of implementation, and improved performance.
Graph Algorithms in the Language of Linear Algebra is the first book to cover graph algorithms accessible to engineers and scientists not trained in computer science but having a strong linear algebra background, enabling them to quickly understand and apply graph algorithms. It also covers array-based graph algorithms, showing readers how to express canonical graph algorithms using a highly elegant and efficient array notation and how to tap into the large range of tools and techniques that have been built for matrices and tensors; parallel array-based algorithms, demonstrating with examples how to easily implement parallel graph algorithms using array-based approaches, which enables readers to address much larger graph problems; and array-based theory for analyzing graphs, providing a template for using array-based constructs to develop new theoretical approaches for graph analysis.
Sprache
Verlagsort
Zielgruppe
Produkt-Hinweis
Fadenheftung
Gewebe-Einband
Maße
Höhe: 247 mm
Breite: 174 mm
Dicke: 23 mm
Gewicht
ISBN-13
978-0-89871-990-1 (9780898719901)
Schweitzer Klassifikation
Jeremy Kepner is a senior technical staff member at the Massachusetts Institute of Technology Lincoln Laboratory. His research focuses on the development of advanced libraries for the application of massively parallel computing to a variety of data intensive signal processing problems on which he has published many articles.
John Gilbert is a SIAM Fellow and Professor of Computer Science at the University of California, Santa Barbara. His research interests are in combinatorial scientific computing, high-performance graph algorithms, tools and software for computational science and engineering, numerical linear algebra and distributed sensing and control.
Preface; Part I. Algorithms: 1. Graphs and matrices; 2. Linear algebraic notation and definitions; 3. Connected components and minimum paths; 4. Some graph algorithms in an array-based language; 5. Fundamental graph algorithms; 6. Complex graph algorithms; 7. Multilinear algebra for analyzing data with multiple linkages; 8. Subgraph detection; Part II. Data: 9. Kronecker graphs; 10. The Kronecker theory of power law graphs; 11. Visualizing large Kronecker graphs; Part III. Computation: 12. Large-scale network analysis; 13. Implementing sparse matrices for graph algorithms; 14. New ideas in sparse matrix-matrix multiplication; 15. Parallel mapping of sparse computations; 16. Fundamental questions in the analysis of large graphs; Index.