Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 222 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
222
Dung lượng
3,21 MB
Nội dung
Graph Theory with Algorithms and its Applications CuuDuongThanCong.com Santanu Saha Ray Graph Theory with Algorithms and its Applications In Applied Science and Technology 123 CuuDuongThanCong.com Santanu Saha Ray Department of Mathematics National Institute of Technology Rourkela, Orissa India ISBN 978-81-322-0749-8 DOI 10.1007/978-81-322-0750-4 ISBN 978-81-322-0750-4 (eBook) Springer New Delhi Heidelberg New York Dordrecht London Library of Congress Control Number: 2012943969 Ó Springer India 2013 This work is subject to copyright All rights are reserved by the Publisher, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission or information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed Exempted from this legal reservation are brief excerpts in connection with reviews or scholarly analysis or material supplied specifically for the purpose of being entered and executed on a computer system, for exclusive use by the purchaser of the work Duplication of this publication or parts thereof is permitted only under the provisions of the Copyright Law of the Publisher’s location, in its current version, and permission for use must always be obtained from Springer Permissions for use may be obtained through RightsLink at the Copyright Clearance Center Violations are liable to prosecution under the respective Copyright Law The use of general descriptive names, registered names, trademarks, service marks, etc in this publication does not imply, even in the absence of a specific statement, that such names are exempt from the relevant protective laws and regulations and therefore free for general use While the advice and information in this book are believed to be true and accurate at the date of publication, neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or omissions that may be made The publisher makes no warranty, express or implied, with respect to the material contained herein Printed on acid-free paper Springer is part of Springer Science+Business Media (www.springer.com) CuuDuongThanCong.com This work is dedicated to my grandfather late Sri Chandra Kumar Saha Ray, my father late Sri Santosh Kumar Saha Ray, my beloved wife Lopamudra and my son Sayantan CuuDuongThanCong.com Preface Graph Theory has become an important discipline in its own right because of its applications to Computer Science, Communication Networks, and Combinatorial optimization through the design of efficient algorithms It has seen increasing interactions with other areas of Mathematics Although this book can ably serve as a reference for many of the most important topics in Graph Theory, it even precisely fulfills the promise of being an effective textbook The main attention lies to serve the students of Computer Science, Applied Mathematics, and Operations Research ensuring fulfillment of their necessity for Algorithms In the selection and presentation of material, it has been attempted to accommodate elementary concepts on essential basis so as to offer guidance to those new to the field Moreover, due to its emphasis on both proofs of theorems and applications, the subject should be absorbed followed by gaining an impression of the depth and methods of the subject This book is a comprehensive text on Graph Theory and the subject matter is presented in an organized and systematic manner This book has been balanced between theories and applications This book has been organized in such a way that topics appear in perfect order, so that it is comfortable for students to understand the subject thoroughly The theories have been described in simple and clear Mathematical language This book is complete in all respects It will give a perfect beginning to the topic, perfect understanding of the subject, and proper presentation of the solutions The underlying characteristics of this book are that the concepts have been presented in simple terms and the solution procedures have been explained in details This book has 10 chapters Each chapter consists of compact but thorough fundamental discussion of the theories, principles, and methods followed by applications through illustrative examples All the theories and algorithms presented in this book are illustrated by numerous worked out examples This book draws a balance between theory and application Chapter presents an Introduction to Graphs Chapter describes essential and elementary definitions on isomorphism, complete graphs, bipartite graphs, and regular graphs vii CuuDuongThanCong.com viii Preface Chapter introduces different types of subgraphs and supergraphs This chapter includes operations on graphs Chapter also presents fundamental definitions of walks, trails, paths, cycles, and connected or disconnected graphs Some essential theorems are discussed in this chapter Chapter contains detailed discussion on Euler and Hamiltonian graphs Many important theorems concerning these two graphs have been presented in this chapter It also includes elementary ideas about complement and self-complementary graphs Chapter deals with trees, binary trees, and spanning trees This chapter explores thorough discussion of the Fundamental Circuits and Fundamental Cut Sets Chapter involves in presenting various important algorithms which are useful in mathematics and computer science Many are particularly interested on good algorithms for shortest path problems and minimal spanning trees To get rid of lack of good algorithms, the emphasis is laid on detailed description of algorithms with its applications through examples which yield the biggest chapter in this book The mathematical prerequisite for Chapter involves a first grounding in linear algebra is assumed The matrices incidence, adjacency, and circuit have many applications in applied science and engineering Chapter is particularly important for the discussion of cut set, cut vertices, and connectivity of graphs Chapter describes the coloring of graphs and the related theorems Chapter focuses specially to emphasize the ideas of planar graphs and the concerned theorems The most important feature of this chapter includes the proof of Kuratowski’s theorem by Thomassen’s approach This chapter also includes the detailed discussion of coloring of planar graphs The Heawood’s Five color theorem as well as in particular Four color theorem are very much essential for the concept of map coloring which are included in this chapter elegantly Finally, Chapter 10 contains fundamental definitions and theorems on networks flows This chapter explores in depth the Ford–Fulkerson algorithms with necessary modification by Edmonds–Karp and also presents the application of maximal flows which includes Maximum Bipartite Matching Bibliography provided at the end of this book serves as helpful sources for further study and research by interested readers CuuDuongThanCong.com Acknowledgments I take this opportunity to express my sincere gratitude to Dr R K Bera, former Professor and Head, Department of Science, National Institute of Technical Teacher’s Training and Research, Kolkata and Dr K S Chaudhuri, Professor, Department of Mathematics, Jadavpur University, for their encouragement in the preparation of this book I acknowledge with thanks the valuable suggestion rendered by Scientist Shantanu Das, Senior Scientist B B Biswas, Head Reactor Control Division, Bhaba Atomic Research Centre, Mumbai and my former colleague Dr Subir Das, Department of Mathematics, Institute of Technology, Banaras Hindu University This is not out of place to acknowledge the effort of my Ph.D Scholar student and M.Sc students for their help to write this book I, also, express my sincere gratitude to the Director of National Institute of Technology, Rourkela for his kind cooperation in this regard I received considerable assistance from my colleagues in the Department of Mathematics, National Institute of Technology, Rourkela I wish to express my sincere thanks to several people involved in the preparation of this book Moreover, I am especially grateful to the Springer Publishing Company for their cooperation in all aspects of the production of this book Last, but not the least, special mention should be made of my parents and my beloved wife, Lopamudra for their patience, unequivocal support, and encouragement throughout the period of my work I look forward to receive comments and suggestions on the work from students, teachers, and researchers Santanu Saha Ray ix CuuDuongThanCong.com Contents Introduction to Graphs 1.1 Definitions of Graphs 1.2 Some Applications of Graphs 1.3 Incidence and Degree 1.4 Isomorphism 1.5 Complete Graph 1.6 Bipartite Graph 1.6.1 Complete Bipartite Graph 1.7 Directed Graph or Digraph 1 7 Subgraphs, Paths and Connected Graphs 2.1 Subgraphs and Spanning Subgraphs (Supergraphs) 2.2 Operations on Graphs 2.3 Walks, Trails and Paths 2.4 Connected Graphs, Disconnected Graphs, and Components 2.5 Cycles Exercises 11 11 12 14 15 17 21 Euler Graphs and Hamiltonian Graphs 3.1 Euler Tour and Euler Graph 3.2 Hamiltonian Path 3.2.1 Maximal Non-Hamiltonian Graph 3.3 Complement and Self-Complementary Graph Exercises 25 25 27 27 31 32 Trees and Fundamental Circuits 4.1 Trees 4.2 Some Properties of Trees 35 35 37 xi CuuDuongThanCong.com xii Contents 4.3 Spanning Tree and Co-Tree 4.3.1 Some Theorems on Spanning Tree 4.4 Fundamental Circuits and Fundamental Cut Sets 4.4.1 Fundamental Circuits 4.4.2 Fundamental Cut Set Exercises 40 40 41 41 42 46 Algorithms on Graphs 5.1 Shortest Path Algorithms 5.1.1 Dijkstra’s Algorithm 5.1.2 Floyd–Warshall’s Algorithm 5.2 Minimum Spanning Tree Problem 5.2.1 Objective of Minimum Spanning Tree Problem 5.2.2 Minimum Spanning Tree 5.3 Breadth First Search Algorithm to Find the Shortest Path 5.3.1 BFS Algorithm for Construction of a Spanning Tree 5.4 Depth First Search Algorithm for Construction of a Spanning Tree Exercises 49 49 49 57 66 67 68 78 79 80 85 Matrix Representation on Graphs 6.1 Vector Space Associated with a Graph 6.2 Matrix Representation of Graphs 6.2.1 Incidence Matrix 6.2.2 Adjacency Matrix 6.2.3 Circuit Matrix/Cycle Matrix Exercises 95 95 96 96 101 105 112 Cut Sets and Cut Vertices 7.1 Cut Sets and Fundamental Cut Sets 7.1.1 Cut Sets 7.1.2 Fundamental Cut Set (or Basic Cut Set) 7.2 Cut Vertices 7.2.1 Cut Set with respect to a Pair of Vertices 7.3 Separable Graph and its Block 7.3.1 Separable Graph 7.3.2 Block 7.4 Edge Connectivity and Vertex Connectivity 7.4.1 Edge Connectivity of a Graph 7.4.2 Vertex Connectivity of a Graph Exercises 115 115 115 116 116 117 118 118 118 119 119 119 123 CuuDuongThanCong.com Contents xiii Coloring 8.1 Properly Colored Graph 8.2 Chromatic Number 8.3 Chromatic Polynomial 8.3.1 Chromatic Number Obtained by Chromatic Polynomial 8.3.2 Chromatic Polynomial of a Graph G 8.4 Edge Contraction Exercises 125 125 126 127 127 128 131 133 Planar and Dual Graphs 9.1 Plane and Planar Graphs 9.1.1 Plane Graph 9.1.2 Planar Graph 9.2 Nonplanar Graph 9.3 Embedding and Region 9.3.1 Embedding 9.3.2 Plane Representation 9.4 Regions or Faces 9.5 Kuratowski’s Two Graphs 9.5.1 Kuratowski’s First Graph 9.5.2 Kuratowski’s Second Graph 9.6 Euler’s Formula 9.7 Edge Contractions 9.8 Subdivision, Branch Vertex, and Topological Minors 9.9 Kuratowi’s Theorem 9.10 Dual of a Planar Graph 9.10.1 To Find the Dual of the Given Graph 9.10.2 Relationship Between a Graph and its Dual Graph 9.11 Edge Coloring 9.11.1 k-Edge Colorable 9.11.2 Edge-Chromatic Number 9.12 Coloring Planar Graph 9.12.1 The Four Color Theorem 9.12.2 The Five Color Theorem 9.13 Map Coloring Exercises 135 135 135 135 136 136 136 137 137 137 138 138 138 143 143 146 149 149 151 153 153 153 154 154 155 156 157 159 159 159 161 10 Network Flows 10.1 Transport Networks and Cuts 10.1.1 Transport Network 10.1.2 Cut CuuDuongThanCong.com Appendix else } 199 set[v2] = v1; set[v1] = v2; // sort set of edges in non-decreasing order by weight(applying bubblesort) void arrange_edges(int k) { int i, j; struct edge_info temp; for (i = 1; i < k; i++) for (j = 1; j edge[j + 1].weight) { temp = edge[j]; edge[j] = edge[j + 1]; edge[j + 1] = temp; } } void spanningtree(int k) { int i, t, sum; arrange_edges(k); t = 1; sum = 0; out