This book provides a pedagogical and comprehensive introduction to graph theory and its applications. It contains all the standard basic material and develops significant topics and applications, such as: colorings and the timetabling problem, matchings and the optimal assignment problem, and Hamiltonian cycles and the traveling salesman problem, to name but a few. Exercises at various levels are given at the end of each chapter, and a final chapter presents a few general problems with hints for solutions, thus providing the reader with the opportunity to test and refine their knowledge on the subject. An appendix outlines the basis of computational complexity theory, in particular the definition of NP-completeness, which is essential for algorithmic applications.
Introduction 17
Chapter 1. Basic Concepts 21
1.1 The origin of the graph concept 21
1.2 Definition of graphs 24
1.3 Subgraphs 28
1.4 Paths and cycles 29
1.5 Degrees 33
1.6 Connectedness 35
1.7 Bipartite graphs 36
1.8 Algorithmic aspects 37
1.9 Exercises 41
Chapter 2. Trees 45
2.1 Definitions and properties 45
2.2 Spanning trees 49
2.3 Application: minimum spanning tree problem 54
2.4 Connectivity 59
2.5 Exercises 66
Chapter 3. Colorings 71
3.1 Coloring problems 71
3.2 Edge coloring 71
3.3 Algorithmic aspects 73
3.4 The timetabling problem 75
3.5 Exercises 81
Chapter 4. Directed Graphs 83
4.1 Definitions and basic concepts 83
4.2 Acyclic digraphs 90
lsè