Graph Theory and Application - Fournier
Graph Theory and Application - Fournier
Graph Theory
and Applications
with Exercises and Problems
Jean-Claude Fournier
First published in France in 2006 by Hermes Science/Lavoisier entitled Théorie des graphes et
applications, avec exercices et problèmes © LAVOISIER, 2006
First published in Great Britain and the United States in 2009 by ISTE Ltd and John Wiley & Sons, Inc.
Apart from any fair dealing for the purposes of research or private study, or criticism or review, as
permitted under the Copyright, Designs and Patents Act 1988, this publication may only be reproduced,
stored or transmitted, in any form or by any means, with the prior permission in writing of the publishers,
or in the case of reprographic reproduction in accordance with the terms and licenses issued by the CLA.
Enquiries concerning reproduction outside these terms should be sent to the publishers at the
undermentioned address:
www.iste.co.uk www.wiley.com
The rights of Jean-Claude Fournier to be identified as the author of this work have been asserted by him
in accordance with the Copyright, Designs and Patents Act 1988.
Fournier, Jean-Claude.
[Théorie des graphes et applications, avec exercices et problèmes. English]
Graph theory and applications with exercises and problems / Jean-Claude Fournier.
p. cm.
Includes bibliographical references and index.
ISBN 978-1-84821-070-7
1. Graph theory. 2. Graph theory--Problems, exercises, etc. I. Title.
QA166.F68513 2009
511'.5--dc22
2008043204
Printed and bound in Great Britain by CPI Antony Rowe, Chippenham and Eastbourne.
To Hugo, Eliott, Mathieu,
Elise, Aurélie, Antonin, Ethan
and those to come . . .
Table of Contents
Introduction 17
7
8 Graph Theory and Applications
Chapter 2. Trees 45
2.1 Definitions and properties . . . . . . . . . . . . . . . . . . . . 45
2.1.1 First properties of trees . . . . . . . . . . . . . . . . . 46
2.1.2 Forests . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.1.3 Bridges . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.1.4 Tree characterizations . . . . . . . . . . . . . . . . . . 48
2.2 Spanning trees . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.2.1 An interesting illustration of trees . . . . . . . . . . . 52
2.2.2 Spanning trees in a weighted graph . . . . . . . . . . . 53
2.3 Application: minimum spanning tree problem . . . . . . . . . 54
2.3.1 The problem . . . . . . . . . . . . . . . . . . . . . . . 54
2.3.2 Kruskal’s algorithm . . . . . . . . . . . . . . . . . . . 55
2.3.3 Justification . . . . . . . . . . . . . . . . . . . . . . . . 57
2.3.4 Implementation . . . . . . . . . . . . . . . . . . . . . . 58
2.3.5 Complexity . . . . . . . . . . . . . . . . . . . . . . . . 59
2.4 Connectivity . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
2.4.1 Block decomposition . . . . . . . . . . . . . . . . . . . 60
2.4.2 k-connectivity . . . . . . . . . . . . . . . . . . . . . . . 61
2.4.3 k-connected graphs . . . . . . . . . . . . . . . . . . . . 62
2.4.4 Menger’s theorem . . . . . . . . . . . . . . . . . . . . 63
2.4.5 Edge connectivity . . . . . . . . . . . . . . . . . . . . 63
Table of Contents 9
Chapter 3. Colorings 71
3.1 Coloring problems . . . . . . . . . . . . . . . . . . . . . . . . 71
3.2 Edge coloring . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
3.2.1 Basic results . . . . . . . . . . . . . . . . . . . . . . . 72
3.3 Algorithmic aspects . . . . . . . . . . . . . . . . . . . . . . . 73
3.4 The timetabling problem . . . . . . . . . . . . . . . . . . . . . 75
3.4.1 Room constraints . . . . . . . . . . . . . . . . . . . . . 76
3.4.2 An example . . . . . . . . . . . . . . . . . . . . . . . . 78
3.4.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . 81
3.5 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
4.2.2 Characterization . . . . . . . . . . . . . . . . . . . . . 91
4.2.3 Practical aspects . . . . . . . . . . . . . . . . . . . . . 92
4.3 Arborescences . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
4.3.1 Drawings . . . . . . . . . . . . . . . . . . . . . . . . . 92
4.3.2 Terminology . . . . . . . . . . . . . . . . . . . . . . . 93
4.3.3 Characterization of arborescences . . . . . . . . . . . . 94
4.3.4 Subarborescences . . . . . . . . . . . . . . . . . . . . . 95
4.3.5 Ordered arborescences . . . . . . . . . . . . . . . . . . 95
4.3.6 Directed forests . . . . . . . . . . . . . . . . . . . . . . 95
4.4 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Bibliography 277
Index 279
Introduction
1. Certain points and quite easy proofs are left to the reader’s initiative.
They are indicated in the margin by a †.
2. Among the exercises given at the end of each chapter, some are marked
with a +, indicating a useful complement to the chapter, which may
also be used elsewhere in the text.
3. The exercises which are not marked are of normal difficulty. They are
standard exercises, among which you will find the most classic in the
field.
4. The exercises marked with a * are more difficult. They go into a subject
in more depth than the chapter does.
5. A last level with a few problems is given at the end, with commentaries
and sometimes hints for their resolution (Chapter 12).
Here is some information on how this book is organized. Except for the
two chapters on definitions and basic concepts, which are Chapter 1 for
undirected graphs and Chapter 4 for directed graphs, each chapter presents
a specific subject with a major application, and is therefore relatively
independent from the other chapters. It is therefore possible to make choices
when organizing a course. Statements are presented according to their role
and their importance in the theory, using the classic terminology: theorems,
propositions, corollaries and lemmas. This terminology can be defined as
follows: a theorem is an important result which is significant for the theory,
a proposition is less prominent, a corollary is a result which can be deduced
directly from a major result, a lemma is a result with a certain technical
nature, which usually is used to prove another result. The end of the proof
of a statement is marked by the symbol 2.
Graphs, as already mentioned, are used a lot in applications. Many
problems are thereby solved in a constructive manner, which leads to writing
algorithms, which may then be written in an appropriate programming
language. Some of these algorithms are not simple, so it is important to
express them in the best structured way possible, which will make the
process of writing them in a program easier. In this work we wanted not
to neglect, and even to make explicit, this algorithmic aspect, and that
is why we cover in detail in Appendix A the method used to express
algorithms. Similarly, in Appendix B, we give the bases of what it has become
essential to know today for any scientific development, that is the theory of
algorithmic complexity. It is impossible to discuss an algorithm without
Introduction 19
Jean-Claude Fournier