To save content items to your account,
please confirm that you agree to abide by our usage policies.
If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your account.
Find out more about saving content to .
To save content items to your Kindle, first ensure no-reply@cambridge.org
is added to your Approved Personal Document E-mail List under your Personal Document Settings
on the Manage Your Content and Devices page of your Amazon account. Then enter the ‘name’ part
of your Kindle email address below.
Find out more about saving to your Kindle.
Note you can select to save to either the @free.kindle.com or @kindle.com variations.
‘@free.kindle.com’ emails are free but can only be saved to your device when it is connected to wi-fi.
‘@kindle.com’ emails can be delivered even when you are not connected to wi-fi, but note that service fees apply.
Consider a graph drawn in the plane in such a way that each vertex is represented by a point; each edge is represented by a continuous line connecting the two points that represent its end vertices, and no two lines, which represent edges, share any points, except in their ends. Such a drawing is called a plane graph. If a graph G has a representation in the plane that is a plane graph then it is said to be planar.
In this chapter, we shall discuss some of the classical work concerning planar graphs. The question of efficiently testing whether a given finite graph is planar is discussed in the next chapter.
Let S be a set of vertices of a non-separable graph G(V,E). Consider the partition of the set V – S into classes, such that two vertices are in the same class if and only if there is a path connecting them that does not use any vertex of S. Each such class K defines a component as follows: The component is a subgraph H(V′,E′), where V′ ⊃ K. In addition, V′ includes all the vertices of S that are connected by an edge to a vertex of K, in G. Also, E′ contains all edges of G that have at least one end-vertex in K. An edge, where both u and ν are in S, defines a singular component ({u,ν}, {e}). Clearly, two components share no edges, and the only vertices they can share are elements of S.
My father, Shimon Even, died on May 1, 2004. In the year prior to his illness, he began revising this book.He used to tell me with great satisfaction whenever he completed the revision of a chapter. To his surprise, he often discovered that, after twenty-five years, he preferred to present thematerial differently (the first edition was published in 1979). Unfortunately, he only managed to revise Chapters 1, 2, 3, and 5. These revised chapters appear in this edition. However, since the material in Chapters 9 and 10 on NP-completeness is well covered in a few other books, we decided to omit these chapters from the second edition. Therefore, the second edition contains only the first eight chapters.
As I was reading the manuscript for the second edition, my father's deep voice resonated clearly in my mind. Not only his voice, but also his passion for teaching, for elegant explanations, and, most importantly, for distilling the essence. As an exceptional teacher, he used his voice and his physique to reinforce his arguments. His smile revealed how happy he was to have the opportunity to tell newcomers about this wonderful topic. One cannot overvalue the power of such enthusiasm. Luckily, this enthusiasm is conveyed in this book.
Many people tell me (with a smile) about being introduced to the topic of algorithms through this book. I believe the source of their smiles is its outstanding balance between clarity and preciseness. When one writes mathematical text, it is very easy to get carried away with the desire to be precise.
Let Σ = {0, 1, …, σ – 1}. We call Σ an alphabet and its elements are called letters; the number of letters in Σ is σ. (Except for this numerical use of σ, the “numerical” value of the letters is ignored; they are just “meaningless” characters. We use the numerals just because they are convenient characters.) A finite sequence a1a2…al, where ai is a letter, is called a word whose length is l. We denote the length of a word w by l(w). A set of (nonempty and distinct) words is called a code. For example, the code {102, 21,00} consists of three code-words: one code-word of length 3 and two code-words of length 2; the alphabet is {0, 1,2} and consists of three letters. Such an alphabet is called “ternary”.
Let c1,c2,…,ck be code-words. The message c1c2…ck is the word resulting from the concatenation of the code-word c1 with c2, and so on. For example, if c1 = 00, c2 = 21, and c3 = 00, then c1c2c3 = 002100.
A code C over Σ (i.e., the code-words of C consist of letters in Σ) is said to be uniquely decipherable (UD) if every message constructed from code-words of C can be broken down into code-words of C in only one way. For example, the code {01, 0,10} is not UD because the message 010 can be parsed in two ways: 0,10 and 01, 0.
There are two known planarity testing algorithms that have been shown to be realizable in a way that achieves linear time (O(|V|)). The idea in both is to follow the decisions to be made during the planar construction of the graph, piece by piece, as to the relative location of the various pieces. The construction is not carried out explicitly because there are difficulties, such as the crowding of elements into a relatively small portion of the area allocated, which, as yet, we do not know to avoid. Also, an explicit drawing of the graph is not necessary, as we shall see, to decide whether such a drawing is possible. We shall imagine that such a realization is being carried out, but will only decide where the various pieces are laid relative to each other, and not their exact shape. Such decisions may change later to make a place for later additions of pieces. In both cases, it was shown that the algorithm terminates within (O(|V|)) steps, and if it fails to find a “realization,” then none exists.
The first algorithm starts by finding a simple circuit and adding to it one simple path at a time. Each such new path connects two old vertices via new edges and vertices. (Whole pieces are sometimes flipped over, around some line). Thus, we call it the path addition algorithm. The basic ideas were suggested by various authors, such as Auslander and Parter [1] and Goldstein [2], but the algorithm in its present form, both from the graph-theoretic point of view, and complexity point of view, is the contribution of Hopcroft and Tarjan [3].
Shimon was a great computer scientist who inspired generations of Israeli stutents and young researchers, including many future leaders of theoretical computer science.
He was a master at creating combinatorial algorithms, constructions, and proofs. He always sought the simplest and most lucid solutions. Because he never allowed himself to use a known theoremunless he understood its proof, his discoveries were often based on original methods. His lectures were legendary for their clarity.
Shimon was devoted to his family, generous to his colleagues, and freely available to the students in his classes.
He expressed his views forcefully and with complete honesty. He expected honesty in return, and reserved his disapproval for those who tried to obfuscate or mislead.
Shimon had an unending supply of interesting anecdotes, and would laugh uproariously at good jokes, including his own.
In sum, he was a great and unforgettable man and a great scientist, and his name has a permanent place in the annals of theoretical computer science.
Graph theory has long been recognized as one of the more useful mathematical subjects for the computer science student to master. The approach that is natural to computer science is the algorithmic one; our interest is not so much in the existence proofs or enumeration techniques as it is in finding efficient algorithms for solving relevant problems or, alternatively, in showing evidence that no such algorithmexists. Although algorithmic graph theory was started by Euler, if not earlier, its development in the last ten years has been dramatic and revolutionary. Much of the material in Chapters 3, 5, 6, 8, 9, and 10 is less than ten years old.
This book is meant to be a textbook for an upper-level undergraduate, or a graduate course. It is the result of my experience in teaching such a course numerous times, since 1967, at Harvard, the Weizmann Institute of Science, Tel-Aviv University, the University of California at Berkeley, and the Technion. There is more than enough material for a one-semester course; I am sure that most teachers will have to omit parts of the book. If the course is for undergraduates, Chapters 1 to 5 provide enough material, and even then, the teacher may choose to omit a few sections, such as 2.6, 2.7, 3.3, and 3.4. Chapter 7 consists of classical nonalgorithmic studies of planar graphs, which are necessary in order to understand the tests of planarity, described in Chapter 8; it may be assigned as a preparatory reading assignment.
The product w = u ⊗ v of two sequences u and v is a naturally defined sequence on the alphabet of pairs of symbols. Here, we study when the product w of two balanced sequences u,v is balanced too. In the case u and v are binary sequences, we prove, as a main result, that, if such a product w is balanced and deg(w) = 4, then w is an ultimately periodic sequence of a very special form. The case of arbitrary alphabets is approached in the last section. The partial results obtained and the problems proposed show the interest of the notion of product in the study of balanced sequences.
We consider the following random graph process: starting with n isolated vertices, add edges uniformly at random provided no such edge creates a copy of C4. We show that, with probability tending to 1 as n → ∞, the final graph produced by this process has maximum degree O((nlogn)1/3) and consequently size O(n4/3(logn)1/3), which are sharp up to constants. This confirms conjectures of Bohman and Keevash and of Osthus and Taraz, and improves upon previous bounds due to Bollobás and Riordan and Osthus and Taraz.
A square is the concatenation of a nonempty word with itself. A word has period p if its letters at distance p match. The exponent of a nonempty word is the quotient of its length over its smallest period. In this article we give a proof of the fact that there exists an infinite binary word which contains finitely many squares and simultaneously avoids words of exponent larger than 7/3. Our infinite word contains 12 squares, which is the smallest possible number of squares to get the property, and 2 factors of exponent 7/3. These are the only factors of exponent larger than 2. The value 7/3 introduces what we call the finite-repetition threshold of the binary alphabet. We conjecture it is 7/4 for the ternary alphabet, like its repetitive threshold.
We prove that the subsets ofthat are S-recognizable for all abstract numeration systems S are exactly the 1-recognizable sets. This generalizes a result of Lecomte and Rigo in the one-dimensional setting.
We show that it is decidable whether or not a given Q-rational series in several noncommutative variables has a cyclic image. By definition, a series r has a cyclic image if there is a rational number q such that all nonzero coefficients of r are integer powers of q.
This paper deals with rational base number systems for p-adic numbers. We mainly focus on the system proposed by Akiyama et al. in 2008, but we also show that this system is in some sense isomorphic to some other rational base number systems by means of finite transducers. We identify the numbers with finite and eventually periodic representations and we also determine the number of representations of a given p-adic number.