Roots of the independence and chromatic polynomial
Roland Hoffmann
July 14, 2017
Bachelor’s thesis Supervisor: dr. Guus Regts
Korteweg-de Vries Instituut voor Wiskunde
Faculteit der Natuurwetenschappen, Wiskunde en Informatica Universiteit van Amsterdam
Abstract
The first chapter contains definitions and properties of the inde-pendence polynomial. We explore different results concerning the roots of the independence polynomial, in particular will we show that the roots of a clawfree graph are real. To finish the chapter we will introduce the multivariate independence polynomial and state a lemma of Shearer and a lemma of Dobrushin. The sec-ond chapter contains definitions and properties of the chromatic polynomial. We will introduce exponential type graph polynomials and the first chapter to deduce statements about the roots of the chromatic polynomial of bounded degree graphs. To conclude we will generate cubic graphs and show the location of the chromatic roots.
Title: Roots of the independence and chromatic polynomial Authors: Roland Hoffmann, roland hoffmann@live.nl, 10456716 Supervisor: dr. Guus Regts
Second grader: dr. Viresh Patel Date: July 14, 2017
Korteweg-de Vries Instituut voor Wiskunde Universiteit van Amsterdam
Science Park 904, 1098 XH Amsterdam http://www.science.uva.nl/math
Contents
Introduction 1
1. The independence polynomial 2
1.1. Clawfree graphs . . . 3
1.1.1. Compatible polynomials . . . 3
1.1.2. Roots . . . 7
1.2. Multivariate independence polynomial . . . 9
1.2.1. Roots . . . 9
2. The chromatic polynomial 13 2.1. Introduction . . . 13
2.2. Graph polynomials of exponential type . . . 15
2.3. Generating chromatic roots of cubic graphs . . . 19
2.3.1. generating cubic graphs . . . 19
2.3.2. calculating the chromatic polynomial . . . 19
2.3.3. Results. . . 20
2.3.4. Discussion . . . 20
2.4. Conclusion . . . 21
3. Populaire samenvatting 22
Bibliography 24
A. Continuous dependence of roots of polynomials on coefficients I
Prelude
Motivation
The broad application of graph theory is the reason why I wanted to write my thesis about this subject. Throughout the years I have made use of applied graph theory and this was a chance to explore the more theoretical side. Guus Regts, my supervisor, recommended that I should take a look at graph polynomials and so I did.
In this thesis we will work towards a conjecture of Sokal which states that the roots of the chromatic polynomial are contained in {<(z) ≤ ∆} where ∆ is the maximum degree of a graph [11].
Introduction
A graph G = (V, E) consists of a set of vertices V and a set of edges (v, w) with v, w ∈ V . Throughout this thesis we will assume that the graphs are simple, i.e. the edges have no direction and no weight and there are no double edges. Two examples of connected graphs can be found in the following figure, the claw graph will show important in the first chapter. A graph polynomial is a polynomial which is generated by certain properties of a graph.
1 2 3 4 V = {1, 2, 3, 4} E = {(1, 2), (1, 3), (1, 4), (2, 3)} 1 2 3 4 Claw graph V = {1, 2, 3, 4} E = {(1, 2), (1, 3), (1, 4)}
The first chapter contains the independence polynomial and a proof concerning the roots of the independence polynomial of a clawfree graph are real [1]. After that we will show that the absolute value of the roots are bounded by the maximum degree of the graph [2]. The last section of the first chapter will contain a Lemma of Shearer [13] and a Lemma of Dobrushin [5]. In the latter part of this thesis we will consider the chromatic polynomial, which is a special case of the Tutte polynomial. This polynomial counts the number of colorings a graph with a given number of colors. Here, too, we will show that the absolute value of the roots is bounded by the maximum degree of the graph [5]. To study the conjecture of Sokal will we generate a certain class of graphs and eventually confirm that the result holds for this specific class.
1. The independence polynomial
Let G = (V, E) be a simple graph, a set I ⊆ V is called independent if I consists of pairwise non-adjacent vertices. The independence polynomial of G is defined as
Ip(G, x) =
X
I⊆V I ind.
x|I|,
where |I| is the cardinality of the set I. Note that the constant term is always 1 since there is only a single set with cardinality 0.
For example, the independent sets of the complete graph on 3 vertices K3 are ∅, {1}, {2} and
{3} since all vertices are pairwise adjacent. The independence polynomial of K3 is Ip(K3, x) =
X
i∈I
x|i|= x|∅|+ x|{1}|+ x|{2}|+ x|{3}|= x0+ x1+ x1+ x1 = 1 + 3x.
In the same manner we have that the independent sets of the complete graph on n ∈ N vertices Kn are ∅, {1}, . . . , {n}. Resulting in the independence polynomial Ip(Kn, x) = 1 + nx. For
another example, let G be given as in the following figure. 1
2 3
4 5
Figure 1.1.: A graph G with indendence polynomial Ip(G, x) = 1 + 5x + 4x2.
We claim that the independent sets of this graph are
∅, {1}, {2}, {3}, {4}, {5}, {1, 5}, {2, 4}, {2, 5} and {3, 4}, such that Ip(G, x) = 1 + 5x + 4x2.
An useful identity of the independence polynomial is the following.
Lemma 1.1. If v is a vertex of a graph G, then Ip(G, x) = Ip(G \ {v}, x) + xIp(G \ N [v], x).
Proof. Let v ∈ V (G) be fixed. Then for an independent set I we have v ∈ I or v 6∈ I so the sum splits as follows
Ip(G, x) = X I ind. v∈I x|I|+ X I ind. v6∈I x|I| = x|{v}| X I ind. v∈I x|I|−|{v}|+ X I ind. v6∈I x|I| = xIp(G \ N [v], x) + Ip(G \ {v}, x).
Where the third equality holds because none of the neighbours of v can be contained in the same independent set as v by definition.
An interesting question to ask is whether the roots of the polynomial depends on the structure of the underlying graph. We have yet seen that the roots of the complete graph Kn have a
single root in x = −1n with multiplicity n. There are results known about more general classes of graphs which we will show in the remaining part of this chapter.
1.1. Clawfree graphs
A claw is the graph with vertices V = {1, 2, 3, 4} and edges E = {{1, 2}, {1, 3}, {1, 4}}. A graph G is clawfree if no induced subgraph of it is a claw. The main theorem we want to prove in this section is a result of Chudnovsky and Seymour [1]. We will also follow the proofs from [1], but show more details when needed.
Theorem 1.2. Let G be a graph. If G is clawfree, then all roots of Ip(G, x) are real.
Note the corollary that all line graphs L(G) are clawfree so all roots of Ip(L(G), x) are real
for all graphs G. First we will cover statements about compatible polynomials and the latter subsection of this section will contain lemmas which will lead us to the proof of Theorem 1.2. The proofs in this section are directly taken from [1].
1.1.1. Compatible polynomials
This section covers section 3 of [1]. Before we approach Theorem 1.2, it is useful to state some general facts about compatible polynomials specifically compatible pairs of polynomials.
Let f1, . . . , fn be polynomials in one variable with real coefficients. The polynomials are
compatible if for all c1, . . . , cn≥ 0 all roots of the polynomial Pni=1cifi are real. We will prove
that certain pairs of polynomials are compatible and inductively that all pairs of appropriate polynomials are compatible. f1, . . . , fn are pairwise compatible if for all i, j ∈ {1, . . . , n} the
polynomials fi(x) and fj(x) are compatible.
In this section we will work towards Theorem 1.8, i.e. when f1, . . . , fnare pairwise compatible,
then f1, . . . , fn are compatible. This will show useful when we prove Theorem 1.2.
Lemma 1.3. If two polynomials f and g are compatible, then so are their derivatives.
Proof. Let the polynomials f and g be compatible and define h := c1f + c2g with c1, c2 ∈ R.
Between every two real roots of h there is a root of its derivative h0 if we count according to multiplicity. This follows immediately from the theorem of Rolle. So if all roots of h are real, then all roots of h0 are real. Since h0 = c1f0+ c2g0 we have that f0 and g0 are compatible.
If f is a polynomial, we denote its degree by deg(f ).
Lemma 1.4. If the polynomials f and g are compatible with positive leading coefficients, then | deg(f ) − deg(g)| ≤ 1.
Proof. The proof is by induction on max{deg(f ), deg(g)}. First; assume that f is a constant function, e.g. f (x) = c for some c ∈ R. Since the leading coefficient of f is positive, it follows that c > 0. The polynomial g has positive leading coefficient, so adding a large enough multiple of f to g will produce a polynomial with at most one real root. The resulting polynomial will have no other roots since f and g are compatible, so deg(g) ≤ 1 and the result holds.
Now assume that deg(f ) and deg(g) are greater than 1. By Lemma 1.3 the derivatives f0 and g0 of f and g respectively are compatible. f0 has positive leading coefficient since f has positive leading coefficient and deg(f ) ≥ 0, likewise we have g0 has positive leading coefficient. Making use of induction and deg(f0) = deg(f ) − 1 we have
| deg(f ) − deg(g)| = | deg(f0) − deg(g0)| ≤ 1 as desired and the proof is complete.
When f is a polynomial, define nf(x) as the number of real roots of f (x) that lie in the
interval [x, ∞), counting with their multiplicities. We say that f and g agree at a ∈ R if f (a) and g(a) are either both positive or both negative and both non-zero.
Lemma 1.5. If f and g are compatible polynomials that agree at a and b for some a < b ∈ R, then they have equal number of roots in (a, b) i.e.
nf(a) − nf(b) = ng(a) − ng(b).
Proof. For 0 ≤ t ≤ 1 let pt(x) = tf (x) + (1 − t)g(x) and note that pt is a polynomial of degree
≤ max{deg(f ), deg(g)}. Since f and g agree at a and b, for all t the polynomial pt(x) has
no roots on the boundary of the interval [a, b]. To prove that the number of roots of pt(x) is
independent of t, define
φ1 : [0, 1] → Cn : t 7→ roots of pt in (a, b),
φ2 : Cn→ N : roots of pt in (a, b) 7→ number of roots of pt in (a, b).
Since ptis a polynomial we know with Appendix A that its roots depend continuous on its
coef-ficients, so also in t, and thus is the function φ1 continuous. The function φ2 is also continuous
and thus the composition φ := φ2◦ φ1. The space N is disconnected since the only connected
sets in a discrete space are singletons. The interval [0, 1] is connected, so is the image of φ and it follows that φ maps to a single point in N. This implies that the number of roots of pt(x)
is constant in the open interval (a, b) and thus independent of t. The polynomials p1(x) and
p0(x) are equal to g(x) and f (x) respectively and have nf(a) − nf(b) and ng(a) − ng(b) roots
respectively. This implies that nf(a) − nf(b) = ng(a) − ng(b) and the lemma is proven.
Lemma 1.6. Let f and g be compatible polynomials with positive leading coefficients. Then |nf(x) − ng(x)| ≤ 1 for all x ∈ R.
Proof. The proof is by induction on max{deg(f ), deg(g)}. The common roots of f and g contribute the same number to nf and ng so we may assume that f and g have no common
roots by factoring out the greatest common divisor h. This will preserve the compatibility property since f h + gh = (f + g)h. Suppose that nf(x0) − ng(x0) ≥ 2 for some x0 ∈ R. Without
loss of generality we may assume that x0 is a root of f , specifically x0 is the largest root such
that nf(x0) − ng(x0) ≥ 2. Since x0 is a root of f , it is not a root of g as they do not share roots.
First we claim that nf(x0)−ng(x0) = 2. Assume for a contradiction that nf(x0)−ng(x0) ≥ 3.
Since between every two real roots of a polynomial there is a real root of its derivative (Theorem of Rolle), it follows that nf0(x0) = nf(x0) − 1 and ng0(x0) ≤ ng(x0). Thus
nf0(x0) − ng0(x0) ≥ nf(x0) − 1 − ng(x0) ≥ 2 ⇒ nf0(x0) − ng0(x0) ≥ 3,
which contradicts the inductive hypothesis. This proves that nf(x0) − ng(x0) = 2.
Choose y1 strictly larger than all roots of f and all roots of g, such y1 exists because f and
g have positive leading coefficients. Furthermore, because of the positive leading coefficients f and g agree at y1. For the same reason and since nf(x) − ng(x) = 2 is even, we can choose
y2 < x0 such that f and g agree at y2 and have no roots in the interval [y2, x0). The point y2
exists since between every pair of roots of f there is a root of g, so g has both signs between every pair of roots of f . The following figure makes this visually clear.
x0 y1
y2
Figure 1.2.: Blue line is the function f and the red line is the function g. But now we have
nf(y2) − nf(y1) 6= ng(y2) − ng(y1),
contrary to Lemma 1.5. This proves the lemma.
For two monotone non-increasing sequences (a1, . . . , am) and (b1, . . . , bn) of real numbers, we
say that the first interleaves the second if n ≤ m ≤ n + 1 and (a1, b1, a2, b2, . . .) is another
monotone non-increasing sequence. This does generally not imply that the second sequence interleaves the first, for example (4, 2, 0) interleaves (3, 1, 0) but the converse is not true as (4, 3, 2, 1, 0, 0) is monotone and non-increasing, but (3, 4, 1, 2, 0, 0) is not.
If f is a polynomial of degree d with all roots real, let r1 ≥ · · · ≥ rd be the roots of f . We
call the sequence (r1, . . . , rd) the root sequence of f . Let f1(x), . . . fk(x) be polynomials with
positive leading coefficients and all roots real. A common interleaver for f1(x), . . . fk(x) is a
sequence that interleaves the root sequence of each fi. Observe the following.
Lemma 1.7. Let f (x) and g(x) be polynomials with all roots real. They have a common interleaver if and only if |nf(x) − ng(x)| ≤ 1 for all x ∈ R.
Proof. We follow the proof from Lemma 3.4 from [?]. Let f (x) and g(x) be polynomials with all roots real. Let df = deg(f ) and Rf = (rf1, . . . , r
f
df) be the degree of f and root sequence of
f respectively, define dg and Rg analogously.
For ⇒, suppose that f (x) and g(x) have a common interleaver R = (r1, . . . , rk). Let x ∈ R
and note that we may assume r1 ≤ x ≤ rk since f and g have the common interleaver. Let
i be the largest integer value to satisfy ri ≥ x ≥ ri+1. Then we have nf(x) ∈ {i − 1, i} and
ng(x) ∈ {i − 1, i} by the common interleaver. This implies |nf(x) − ng(x)| ≤ 1 as desired.
Conversely suppose that |nf(x) − ng(x)| ≤ 1 for all x ∈ R. This implies that between
rif and rfi+1 there will be at most one root of g and thus between rfi and ri+1f we will have |nf(x0) − ng(x0)| = 1 and |nf(x1) − ng(x1)| = 0 for some x0, x1 ∈ [rfi, r
f
i+1], see Figure 1.2.
We have rif < ri+1f by definition and in the interval [rfi, ri+1f ] we can pick a point ri such that
nf(ri) = ng(ri). Now we find that R = (r1, r2, . . . , ri, . . .) is a monotone non-increasing sequence
where the number of roots of f and g are equal. So R is a common interleaver for f and g and the lemma is proven.
We want to prove the following theorem, but will not do this directly. Instead we will prove a stronger result, which we will state immediately after (see Lemma 1.9).
Theorem 1.8. Let f1(x), . . . , fk(x) be pairwise compatible polynomials with positive leading
Lemma 1.9. Let f1(x), . . . , fk(x) be polynomials with positive leading coefficients and all roots
real. The following four statements are equivalent: 1. f1, . . . , fk are pairwise compatible,
2. for all s, t such that 1 ≤ s < t ≤ k, the polynomials fs and ft have a common interleaver,
3. f1, . . . , fk have a common interleaver,
4. f1, . . . , fk are compatible.
Proof. For 1 ≤ i ≤ k let di = deg(fi) and let d = max1≤i≤kdi. Let (ri1, . . . , ridi) be the root
sequence of fi, let I1i, . . . , Idii+1 be the intervals of R defined as follows: I
i
1 = [r1i, ∞), Idii+1 =
(−∞, rdii] and Iji = [rij, rij−1] for 2 ≤ j ≤ di. If di = 0 we set I1i = R. The definitions for some
fi can be visualised as following
−∞ ∞ Idii+1 Idii Idii−1 I3i I2i I1i rdi i r i di−1 r i di−2 r i 3 ri2 ri1
We note that a sequence (p1, . . . , pm) interleaves the root sequence of fi if and only if di− 1 ≤
m ≤ di and pj ∈ Iji for i ≤ j ≤ m. We are going to prove 1 ⇒ 2 ⇒ 3 ⇒ 4 ⇒ 1.
For 1 ⇒ 2, let 1 ≤ s < t ≤ k and let d∗ = min{ds, dt}. By Lemma 1.4 we have d∗ ≥
max{ds, dt} − 1. It suffices to show that for 1 ≤ j ≤ d∗+ 1 the intersection Ijs∩ Ijt is
non-empty. This suffices because then we can pick elements between each root of fs and ft for the
interleaver, e.g. b =
bj ∈ Ijs∩ Ijt| j = 1, . . . , d∗+ 1
interleaves both fs and ft. Suppose not,
and let j be minimum such that Ijs∩ It
j = ∅. Since the leading coefficients of both fs and ft
are positive, we have j ≥ 2. Without loss of generality we may assume that rsj−1≤ rt
j−1 and so
rjt exists and rj−1s < rjt. But now we have nft(r
t
j) = j and nfs(r
t
j) ≤ j − 2 which contradictes
Lemma 1.6. So 1 ⇒ 2.
2 ⇒ 3, Let Ijs= [asj, bsj] for all s ∈ {1, . . . , k} and j ∈ {1, . . . , d}, 2 implies that the intersection Ijs ∩ It
j is non-empty for all s, t ∈ {1, . . . , k}. We want to show that
Tk
i=1Iji 6= ∅ for all
j ∈ {1, . . . , d}. Let a∗ = max aj and b∗ = min bj, the biggest lower boundary and the smallest
upper boundary respectively. We have a∗ < b∗ because ai < bj for all i, j ∈ {1, . . . , d} so
[a∗, b∗] is an non-empty interval with [a∗, b∗] ⊆ Tk
i=1Iji. We deduce that
Tk
i=1Iji 6= ∅ for all
j ∈ {1, . . . , d}. For 1 ≤ j ≤ d choose pj ∈Tki=1Iji, then (p1, . . . , pd) is a common interleaver for
f1, . . . , fk. This proves 2 ⇒ 3.
We prove 3 ⇒ 4 by induction on d. We may assume that no x0 ∈ R is a root of all f1, . . . , fk,
for otherwise the theorem follows from the inductive hypothesis applied to the family fi/(x−x0)
with 1 ≤ i ≤ k, which still has a common interleaver by Lemma 1.7. Let c1, . . . , ck be
non-negative real numbers and let f =Pk
i=1cifi. We need to prove that all the roots of f are real.
Without loss of generality may assume that c1, . . . , ck are all positive.
Since f1, . . . , fk have a common interleaver, it follows by definition that d − 1 ≤ di ≤ d for
all 1 ≤ i ≤ k and so we may assume that there is a common interleaver with d terms, say (p1, . . . , pd).
Let 1 ≤ i ≤ k, since the leading coefficient of fi is positive and (p1, . . . , pd) interleaves the
root sequence of fi, it follows that for all j ∈ {1, . . . , d} that fi(pj) ≥ 0 if j is odd and fi(pj) ≤ 0
if j is even. This is because the sign of fi only alternates in its roots. Since by definition no pj
is a common root of f1, . . . , fk, it follows that for 1 ≤ j ≤ d we have f (pj) > 0 if j is odd and
So for 1 ≤ j < d there exists rj with pj+1 < rj < pj such that f (rj) = 0. Since f is defined
as a real polynomial of degree d and therefore has an even number of non-real roots, it follows that all roots of f are real. This proves 3 ⇒ 4.
4 ⇒ 1 is trivial and the proof of the lemma is complete.
With Theorem 1.8 in mind, we will prove Theorem 1.2 in the following subsection.
1.1.2. Roots
This section covers section 2 of [1]. We would like to use the fundamental identity (1.1) in-ductively to proof the main result Theorem 1.2. Furthermore we will be using compatible polynomials which we covered in the previous subsection. This subsection will cover definitions and lemmas concerning graphs and graph polynomials, the proof of Theorem 1.2 will follow appropriately. Recall that a clique K in a graph G is a set of pairwise adjacent vertices, i.e. K is an induced complete graph. Furthermore, a clique K is called simplicial if for every k ∈ K the set N [k] \ K is a clique. Note that if K is a simplicial clique in G, then K ∩ H is also a simplicial clique in any induced graph H ⊂ G.
Lemma 1.10. Let K be a clique of a graph G. Then Ip(G, x) = Ip(G \ K, x) +
X
k∈K
xIp(G \ N [k], x).
Proof. Let K be a clique of a graph G. Then for an independent set I we have K ∩ I = ∅ or K ∩ I 6= ∅ so the sum splits as follows
Ip(G, x) = X I ind. K∩I=∅ x|I|+ X I ind. K∩I6=∅ x|I| = Ip(G \ K, x) + X I ind. K∩I6=∅ x|I| = Ip(G \ K, x) + X k∈K xIp(G \ N [k], x)
The second equality holds because none of the vertices are contained in the independent set since I and K are disjoint. The third equality holds since once one vertex is contained in the independent set, none of the other vertices can be contained in the independent set as all v ∈ K are adjacent.
Lemma 1.11. Let G be a clawfree graph and let K be a simplicial clique in G. Then N [k] \ K is a simplicial clique in G \ K for all k ∈ K.
Proof. Since K is a simplicial clique, N [k] \ K is a clique for all k ∈ K by definition. Suppose for k ∈ K and some n ∈ N [k] \ K, the set N [n] \ (K ∪ N [k]) is not a clique. Let x, y be two non-adjacent vertices in N [n] \ (K ∪ N [k]). Then {n, k, x, y} induces a claw in G, which is a contradiction. So such n does not exist and the theorem is proven.
A graph G is real-rooted if for every induced subgraph H of G, all roots of Ip(H, x) are real.
We want to show that every clawfree graph is real-rooted, but first we need some lemmas about real-rooted graphs.
Lemma 1.12. If G is a real-rooted clawfree graph, then
1. for every two simplicial cliques K, L in G, the polynomials Ip(G \ K, x) and Ip(G \ L, x)
2. for every simplicial clique K, the polynomials Ip(G, x) and xIp(G \ K, x) are compatible.
Proof. Both statements are proven simultaneously by induction on the number of vertices. Since G is real-rooted, we may assume that K ∪ L 6= ∅. Let H = G \ (K ∪ L) and apply Lemma 1.10 to G \ L and K \ L. Note that we have (G \ L) \ K = (G \ K) \ L = G \ (K ∪ L) = H.
Ip(G \ L, x) = Ip(H, x) + X v∈K\L xIp(H \ NH[v], x) and Ip(G \ K, x) = Ip(H, x) + X v∈L\K xIp(H \ NH[v], x).
To show that Ip(G \ L, x) and Ip(G \ K, x) are compatible, it is enough by Theorem 1.8 to show
that Ip(H, x), xIp(H\NH[v], x) and xIp(H\NH[u], x) are pairwise compatible for all u, v ∈ K∪L.
Note that K \ L is a simplicial clique in G \ L. All these polynomials have positive leading coefficients by definition of the independence polynomial. By noting that |V (H)| < |V (G)| and induction it follows by Lemma 1.11, applied to G\L and K \L and G\K and L\K respectively, and 2. that Ip(H, x) is compatible with xIp(H \ NH[v], x) for v ∈ K ∪ L. Furthermore it
follows inductively from 1. that xIp(H \ NH[u], x) and xIp(H \ NH[v], x) are compatible for all
u, v ∈ K ∪ L. This proves 1.
To prove 2, let K be a simplicial clique in G. Since G is real-rooted, we may assume that K is not empty. By Lemma 1.10 we have
Ip(G, x) = Ip(G \ K, x) + x
X
k∈K
Ip(G \ N [k], x).
To prove that Ip(G, x) and xIp(G \ K, x) are compatible, it is enough by Theorem 1.8 that
xIp(G \ K, x), Ip(G \ K, x), xIp(G \ N [k], x) and xIp(G \ N [k0], x)
are pairwise compatible for all k, k0 ∈ K since they all have positive leading coefficients. Since G is real-rooted, it follows that all roots of Ip(G \ K, x) are real by definition. Let
f (x) = Ip(G \ K, x), we want to prove that f1(x) := f (x) and f2(x) := xf (x) are compatible.
Fix c1, c2∈ R>0 and consider the sum of the two functions and simplify as following;
g(x) := c1f1(x) + c2f2(x) = c1f (x) + c2xf (x) = (c1+ c2x)f (x).
The roots of g(x) are the roots of f (x) and −c1
c2 ∈ R. So the polynomials xIp(G \ K, x) and
Ip(G \ K, x) are compatible. By Lemma 1.11 and inductive application of 2 on G \ K we find
that Ip(G \ K, x) and xIp(G \ N [k], x) = xIp((G \ K) \ N [k], x) are compatible for all k ∈ K
since N [k] ∩ (G \ K) is simplicial in G \ K. Let L = ∅ and use 1 to see that xIp(G \ K, x)
and xIp(G \ N [k], x) are compatible for all k ∈ K. As last it follows inductively from 1 that
xIp(G \ N [k]) and xIp(G \ N [k0], x) are compatible for all k, k0 ∈ K. This proves that the
polynomials are pairwise compatible and with Lemma 1.11 it follows that the polynomials are compatible. This completes the proof of 2 and the proof of the lemma.
Lemma 1.13. Let G be a clawfree graph and let v ∈ V (G). If G \ {v} is real-rooted, then the polynomials Ip(G \ {v}, x) and xIp(G \ N [v], x) are compatible.
Proof. Proof by induction on the number of vertices. Assume first that v has no neighbours, then by Lemma 1.1 we have Ip(G \ N [v], x) = Ip(G \ {v}, x). Since G \ {v} is real-rooted it
follows that Ip(G \ {v}, x) and xIp(G \ N [v], x) are compatible and the theorem is proven. Now
We want to prove that NH[u] and NH[v] are both simplicial cliques in H. For NH[u] is a
clique, since {u, v, x, y} does not induce a claw for all x, y ∈ NH[u]. Suppose that for some
w ∈ NH[u] there exist two non-adjacent vertices s, t ∈ NH[w] \ NH[u]. Then {w, u, s, t} induces
a claw in G, which is a contradiction. So NH[u] is a simplicial clique in H and similarly is NH[v]
a simplicial clique in H.
Apply Lemma 1.1 to G \ {v} and find
Ip(G \ {v}, x) = Ip(G \ {u, v}, x) + xIp(G \ N [u], x).
To complete the proof of the theorem, we can use Theorem 1.8 to show that the polynomials xIp(G \ N [u], x), Ip(G \ {u, v}, x) and xIp(G \ N [v], x)
are pairwise compatible. The pairs of polynomials xIp(G \ N [u], x), Ip(G \ {u, v}, x) and xIp(G \
N [v], x), Ip(G\{u, v}, x) are compatible using the inductive hypothesis when applied respectively
to the graphs G \ {v} and G \ {u}. It remains to prove that the pair xIp(G \ N [u], x), xIp(G \
N [v], x) are compatible. For this, note Ip(G \ N [u], x) = Ip(H \ NH[u], x) and Ip(G \ N [v], x) =
Ip(H \ NH[v], x), by 1.12.1 and the fact that NH[u] and NH[v] are both simplicial cliques in H
it follows that they are compatible. This proves Lemma 1.13.
With the theory we have obtained in this section we can finally prove the main result. Proceed by induction on the number of vertices. Assume that V (G) is not empty and let v ∈ V (G). By the inductive hypothesis G \ {v} is real-rooted. By Lemma 1.13 we have Ip(G \ {v}, x) and
xIp(G \ N [v], x) are compatible. Since Ip(G, x) = Ip(G \ {v}, x) + xIp(G \ N [v], x) by Lemma
1.1 it follows that all roots of Ip(G, x) are real and Theorem 1.2 is proven.
1.2. Multivariate independence polynomial
Until now we have looked at the (univariate) independence polynomial which is a special case of the multivariate independence polynomial which is defined as
Ip(G, λ) = X I⊆V I ind. Y v∈I λv.
The univariate case is obtained by replacing λv with λ for all v ∈ V .
1.2.1. Roots
In this subsection we will cover section 2.2 of [2]. We will first show a recurrence relation which will help to prove a lemma of Shearer. To finish this chapter we will state a lemma of Dobrushin which will be needed in the latter part of this thesis.
Fix a graph G = (V, E) together with λ = (λ)v∈V ∈ CV and a vertex v0 ∈ V . Recall
Lemma 1.1, the fundamental recurrence relation also holds for the multivariate independence polynomial, i.e.
Ip(G, λ) = λv0Ip(G \ N [v0], λ) + Ip(G \ {v0}, λ). (1.1)
Let us define, assuming Ip(G \ {v0}, λ) 6= 0,
RG,v0 =
λv0Ip(G \ N [v0], λ)
Ip(G \ {v0}, λ)
. (1.2)
Equation (1.2) is always defined when λ > 0. We note that by the fundamental recurrence relation (1.1) we have
So in order to know when Ip(G, λ) 6= 0 it suffices to look at RG,v0.
For the following lemma taken from [2] we need to construct graphs in a certain manner. For this, let G be a graph and fix a vertex v0 ∈ V (G). Let v1, . . . , vd be the neighbours of v and
define G0 = G \ {v0} and Gi = Gi−1\ {vi} for i = 1, . . . , d.
Lemma 1.14. Suppose Ip(Gi, λ) 6= 0 for all i = 0, . . . , d. Then
RG,v0 =
λv0
Qd
i=1(1 + RGi−1,vi)
Proof. We follow the proof of Lemma 2.2 from [2]. Let us write Ip(G \ {v0}, λ) Ip(G \ N[v0], λ) = Ip(G0, λ) Ip(G1, λ) Ip(G1, λ) Ip(G2, λ) · · ·Ip(Gd−1, λ) Ip(Gd, λ) = d Y i=1 Ip(Gi, λ) + λviIp(Gi−1\ N[vi], λ) Ip(Gi, λ) = d Y i=1 (1 + RGi−1,vi),
where in the second equality we use Equation (1.1). As RG,v0 = λv0Ip(G \ N[v0], λ) Ip(G \ {v0}, λ) = λv0 Ip(G\{v0},λ) Ip(G\N[v0],λ) ,
the lemma follows.
The following version of a lemma of Shearer is taken from [13].
Lemma 1.15 (Shearer). Let G be a graph with maximum degree at most ∆ ≥ 1 and any λ such that for each v ∈ V , |λv| ≤ (∆−1)
(∆−1)
∆∆ one has Ip(G, λ) 6= 0.
Proof. This proof has been inspired by the proof of Theorem 2.3 of [2]. We may assume that G is connected. Fix a vertex v0 of G. We will show by induction that for each subset U ⊆ V \ {v0}
we have
1. Ip(G[U ], λ) 6= 0,
2. if u ∈ U has a neighbour in V \ U , then |RG[U ],u| < ∆1
Clearly, if U = ∅ both 1. and 2. are true. Now suppose U ⊆ V \ {v0} and let H = G[U ]. Let
u0 ∈ U be such that u0 has a neighbour in V \ U , u0 exists as G is connected. Let u1, . . . , udbe
the neightbours of u0 in H. Note that d ≤ ∆ − 1 since the maximum degree of G is at most ∆.
Define H0 = H \ {u0} and set for i = 1, . . . , d Hi = Hi−1\ {ui}. Then by induction we know
that for i = 0, . . . , d, Ip(Hi, λ) 6= 0 and for i ≥ 1,
|RH,u0| = |λu0| Qd i=1|1 + RHi−1,ui| < |λu0| Qd i=1|1 −∆1| ≤ | (∆−1)(∆−1) ∆∆ | |1 − 1 ∆|(∆−1) = 1 ∆| ∆−1 ∆ | (∆−1) |∆−1∆ |(∆−1) < 1 ∆ showing that 2. holds for U . Since ∆ ≥ 1, we have |RH,u0| < 1 so RH,u0 6= −1. Now we
know by Equation (1.3) that Ip(H, λ) 6= 0, so 1. holds. This proves that 1. and 2. hold for all
U ⊆ V \ {v0}.
To conclude the proof, it remains to show that Ip(G, λ) 6= 0. Let v1, . . . , vdbe the neighbours
of v0. Let Gi, for i = 0, . . . , d, be defined as the graphs Hi above. Then we know that
RGi−1,vi 6= −1 by induction and Equation (1.3), now we have
RG,v0 = λv0 Qd i=1(1 + RGi−1,vi) < λv0 Qd i=1(1 −∆1) ≤ (∆−1)(∆−1) ∆∆ (1 − ∆1)(∆−1) = 1 ∆( ∆−1 ∆ )(∆−1) (∆−1∆ )(∆−1) < 1 ∆
As ∆ ≥ 1, we find that |RG,v0| < 1 and by Equation (1.3) we deduce that Ip(G, λ) 6= 0. This
completes the proof.
With A ⊆ V (G) we let Ip(A, λ) be the independence polynomial of the graph induced by A.
The following version of a lemma of Dobrushin is taken from [5] and will be useful in the next chapter.
Lemma 1.16 (Dobrushin). Assume there exist functions r : V (G) → (0, 1) and λv : V (G) → C
which satisfy the inequalities
|λv| ≤ (1 − r(v)) Y
(v,v0)∈E(G)
r(v0)
for every v ∈ V (G). Then
1. Ip(A, λ) 6= 0 for every A ⊆ V (G).
2. Ip(B, λ) Ip(A, λ) ≤ Y u∈A\B r(u) −1 for every B ⊆ A ⊆ V (G).
Proof. We follow the proof in [5]. Proof by induction on |A|. When |A| = 0 we have Ip(A, λ) =
1 6= 0 and ∅ = B ⊆ A = ∅ =⇒ 1 1 = 1 ≤Y {∅} r(a) = 1,
so the statement holds for |A| = 0. Now assume that the statements hold for sets of size at most k.
Now, let A be of size k + 1. By the fundamental identity (1.1) we find Ip(A, λ) = Ip(A \ {v}, λ) + λI(A \ N [v], λ)
= Ip(A \ {v}, λ)(1 + λ
I(A \ N [v], λ) Ip(A \ {v}, λ)
),
by induction hypothesis we have Ip(A \ {v}, λ) 6= 0 so this is a valid equation. Using 2 and the
assumption on λ we have λIp(A \ N [v], λ) Ip(A \ {v}, λ) ≤ |λ| Y v0∈U r(v0) !−1 ≤ (1 − r(v)) Y v0∈N [v]\{v} r(v0) Y v0∈V r(v0) !−1 = 1 − r(v), (1.4) where U = (A \ {v}) \ (A \ N [v]) = A ∩ (N [v] \ {v}). Use this result to find
|Ip(A, λ)| = |Ip(A \ {v}, λ)| 1 + λIp(A \ N [v], λ) Ip(A \ {v}, λ) ≥ |Ip(A \ {v}, λ)| 1 − λIp(A \ N [v], λ) Ip(A \ {v}, λ) ≥ |Ip(A \ {v}, λ)|r(v) > 0,
where we have used the triangle inequality in the first inequality and Equation (1.4) in the second inequality. So we have proven 1. To finish the proof, for all v ∈ A \ B we have B ⊆ A \ {v} so
Ip(B, λ) Ip(A, λ) = Ip(B, λ) Ip(A \ {v}, λ) · Ip(A \ {v}, λ) Ip(A, λ) ≤ Y u∈(A\({v}∪B)) r(u) −1 · r(v)−1 = Y u∈(A\B) r(u) −1 ,
which implies 2 and the lemma is proven.
The theory we have obtained in this chapter will be useful when we continue to prove results about the chromatic polynomial, a specific graph polynomial of exponential type. We will show that the chromatic polynomial can be written as the independence polynomial of a bigger graph, which is possible for every graph polynomial of exponential type. This makes the independence polynomial an interesting topic to study.
2. The chromatic polynomial
We will start this chapter by defining the chromatic polynomial and by stating some properties, identities and lemmas. The roots of the chromatic polynomial are called the chromatic roots and we will show that the chromatic roots are in some region of the complex plane for bounded degree graphs. We will introduce graph polynomials of exponential type and then deduce a region which includes all roots of the chromatic polynomial. We will conclude this chapter with results of simulations.
2.1. Introduction
The chromatic polynomial χ(G, k) has been introduced by Birkhoff in an attempt to prove the four color theorem [12]. The chromatic polynomial counts the number of proper graph colorings of a graph G = (V, E) with k colors. A formal definition of the chromatic polynomial is
χ(G, k) = X
A⊆E
(−1)|A|kh(A), (2.1)
where h(A) is the number of components of G0 = (V, A). Birkhoff proved that this formula indeed gives the number of colorings of G with k colors in [12].
For example, consider a tree T = (V, E), a connected graph without cycles, on n vertices. The chromatic polynomial can be found by coloring a random vertex with one of the k colors and then coloring its neighbours with one of the k − 1 colors. By repeating this procedure until the whole tree is colored, we see that the chromatic polynomial is equal to χ(T, k) = k(k − 1)n. Consider the following figure and note that it does not matter where we start with coloring.
Figure 2.1.: The coloring of a tree T = (V, E).
Let e ∈ E(G), the contraction of e in the graph G is a useful tool when studying the chromatic polynomial. Contraction is a process which merges the nodes u and v to a new node w. The neighbours of w consists of the union of the neighbours of u and the neighbours of v in G, e.g. N [w] = N [u] ∪ N [v]. Note that (w, w) ∈ N [w] by this definition but we can remove this edge, such that G/e is a simple graph, since such edge has no contribution to the chromatic polynomial. In the same manner we remove double edges. We denote contraction of e in the graph G by G/e.
Another process which is useful is the deletion of e in the graph G which is the graph G without the edge e, denoted by G \ e. With these notations we introduce a fundamental identity of the chromatic polynomial.
Lemma 2.1. Let e = (u, v) be an edge of a graph G, then we have χ(G, k) = χ(G \ e, k) − χ(G/e, k). The identity can be visualized as follows.
G
e G \ e
G/e
Figure 2.2.: Deletion-contraction
To see why this holds, see section 1.3 of [9]. This identity, also known as fundamental reduction, is very useful when calculating the chromatic polynomial as we will see.
Lemma 2.2. Let G be a graph on n vertices. The chromatic polynomial χ(G, k) is a monic polynomial in k of degree n with constant term 0.
Proof. We follow the proof from [9]. The proof is by induction on the number of edges. When G is a graph with n vertices and 0 edges we have χ(G, k) = kn since we can color every vertex with any of the k colors. This satisfies the lemma. Let G be a graph with n vertices, m + 1 edges and let e ∈ E(G). Note that G \ e has n vertices and m edges and G/e has n − 1 vertices and at most m edges. By induction and Lemma 2.1 we find
χ(G, k) = χ(G \ e, k) − χ(G/e, k)
= kn+ . . . + 0 − (kn−1+ . . . + 0) = kn− kn−1+ . . . + 0.
This completes the proof.
Another identity we are going to use makes use of a cut vertex. A cut vertex is a vertex v ∈ V (G) which will increase the number of components when we remove v from the graph. Similarly is e ∈ E(G) a cut edge if, and only if, the number of components increase when we remove e from the graph. Note that a cut edge is equivalent to a bridge. The removal of a vertex or an edge will be denoted as G \ v and G \ e respectively. We will proof that we can calculate the chromatic polynomial of G using the components of G \ v. Even stronger, we can calculate the chromatic polynomial of G when we remove an induced complete graph K from G. We will make this formally clear with the following lemma.
Lemma 2.3. Let K be a complete induced graph of a graph G and let H1, . . . , HN be the
components of G \ K. Define ˜Hn= (Hn∪ K) ∩ G for all n = 1, . . . , N , then we have
χ(G, k) = χ(K, k)1−N
N
Y
n=1
Proof. We follow the proof from [9]. Since K is a complete graph in G we have that all the vertices must be colored differently. By permuting the colors we find that such coloring can be done in the same number of ways for each ˜Hn such that
χ( ˜Hn, k)
k(k − 1) · · · (k − m + 1) =
χ( ˜Hn, k)
χ(K, k) . As this holds for every component of G \ K, we find
QN n=1χ( ˜Hn, k) (k(k − 1) · · · (k − m + 1))N −1 = QN n=1χ( ˜Hn, k) χ(K, k)N −1 .
As a corollary we now find the following lemma.
Lemma 2.4. Let v be a cut vertex of a graph G and let H1, . . . , HN be the components of G \ v.
Define ˜Hi = (Hi∪ v) ∩ G for all i = 1, . . . , N , then we have
χ(G, k) = k1−N
N
Y
n=1
χ( ˜Hn, k).
2.2. Graph polynomials of exponential type
In this section we will cover a part of [5] including proofs. We say that a graph polynomial f is of exponential type if f (∅, x) = 1 and for every graph G = (V, E) we have
X
S⊆V
f (S, x)f (G \ S, y) = f (G, x + y), (2.2)
where f (S, x) = f (G[S], x) and f (G\S, y) = f (G[V \S], s) are the polynomials of the subgraphs of G induced by the sets S and V \ S respectively.
Furthermore, consider f (G, x) = n X k=0 ak(G)xk
a monic graph polynomial of exponential type. Assume that there is a function R : N → [0, ∞) not depending on G such that for any graph G with all degrees at most ∆, any vertex v ∈ V (G) and any t ≥ 1 we have
X
v∈S⊆V (G) |S|=t
|a1(G[S])| ≤ R(∆)t−1.
In this case we say that the graph polynomial f (G, x) is of bounded exponential type with bounding function R. An example of a graph polynomial of bounded exponential type is the chromatic polynomial, we will show that the chromatic polynomial is of exponential type. Lemma 2.5. The chromatic polynomial χ(G, k) is a graph polynomial of exponential type. Proof. We have χ(∅, k) = 1 easily by definition.
For the other condition, let G = (V, E). With S ⊆ V we denote E(S) as the edges of G that have both endpoints in S and we denote E(V \ S) as the edges of G that have both endpoints in V \ S, the complement of S. Furthermore we have with A ⊆ E that C(A) is the set of components of (V, A) and lastly h(S, A) = |C(A)| is the number of components of (V, A).
We have on the left hand side of Equation (2.2) and k, ` ∈ N that X S⊆V χ(G[S], k)χ(G[V \ S], `) = X S⊆V X A1⊆E(S) (−1)|A1|kh(S,A1) X A2⊆E(V \S) (−1)|A2|`h(V \S,A2) = X S⊆V X A1⊆E(S) A2⊆E(V \S)
(−1)|A1∪A2|kh(S,A1)`h(V \S,A2)
= X A⊆E X Q⊆C(A) (−1)|A|k|Q|`|C(A)|−|Q| = X A⊆E (−1)|A| X Q⊆C(A) k|Q|`|C(A)|−|Q|, (*)
where the first equality holds by definition and the second equality holds when we think of the sums as a pairwise summation. The third equality holds by realizing it does not matter whether we first fix a subset of vertices or first fix a subset of edges.
On the right hand side of Equation (2.2) we have χ(G, k + `) = X A⊆E (−1)|A|(k + `)h(A) = X A⊆E (−1)|A| h X i=1 h i ki`h−i, (**)
where the first equation holds by definition and the second equation holds by the binomial theorem with h = h(V, A). Now we want to show that (*) is equal to (**). Equation (*) iterates over the components of C(A), while Equation (**) iterates over the size of the components of C(A). Since there are |C(A)|i such subsets, the equality holds.
Now we know that the chromatic polynomial is a graph polynomial of exponential type we can use more general theory to study the chromatic polynomial.
We want to show if we have a function b from the class of graphs with at least one vertex to the complex numbers, then this function determines a graph polynomial of exponential type and vice-versa every graph polynomial of exponential type determines such a function b. The following theorem makes this statement more concise. The proof of this can be found in [5]. Theorem 2.6. Let b be a complex-valued function on the class of graphs on non-empty vertex sets. Let us define the graph polynomial fb as follows. Set
ak(G) =
X
{S1,...,Sk}∈Pk
b(S1) · · · b(Sk),
where the summation is over the set Pk of all partitions of V (G) into exactly k non-empty sets.
Then let fb(G, x) = n X k=1 ak(G)xk, where n = |V (G)|. Then
1. For any function b, the graph polynomial fb(G, x) is of exponential type.
2. For any graph polynomial f of exponential type, there exists a graph function b such that f (G, x) = fb(G, x). More precisely, if b(G) = a1(G) is the coefficient of x in f (G, x), then
For the following part we want to express any exponential type graph polynomial as an independence polynomial of a bigger graph. This will be useful as we can use the theorems of last chapter to proof properties of exponential type graph polynomials.
Lemma 2.7. If the function a : V (G) → R+ satisfies the inequality X
u∈N [v]
log(1 + |λu|ea(u)) ≤ a(v)
for each v ∈ V (G), then
Ip(G, λ) 6= 0.
In particular, if the function a : V (G) → R+ satisfies the inequality X
u∈N [v]
|λu|ea(u)≤ a(v)
for each v ∈ V (G), then
Ip(G, λ) 6= 0.
The proof of this result is straightforward and can be found in [5].
We want to express a monic graph polynomial of exponential type as a multivariate inde-pendence polynomial. Let ˜G = ( ˜V , ˜E) and proceed as following. The set of vertices ˜V consists of all subsets A ⊆ V (G) with |A| ≥ 2. If S1, S2 ⊆ V (G) such that |S1|, |S2| ≥ 2 then let
(S1, S2) ∈ ˜E if and only if S1∩ S26= ∅. As a result, the independent sets of ˜G are those subsets
S1, . . . , Sk⊂ V (G) which are pairwise disjunct and |Si| ≥ 2. Now we have {S1, . . . , Sk} which
we will call a subpartition. The set of subpartitions will be denoted by P0(G). We define the weights of the vertices of ˜G as
w(S) = b(S) q|S|−1.
Note that for each subpartition {S1, . . . , Sk} we have by dividing V (G) \Ski=1Si into 1-element
sets, U = {U1, . . . , Ut}, generates a partition P = {U1, . . . , Ut, ˜S1, . . . , ˜Sk} which has
k + n − k X i=1 |Si| = n − k X i=1 (|Si| − 1) elements since |U | = |V \ k [ i=1 ˜ Si| = n − k X i=1 | ˜Si| = n − k X i=1 (| ˜Si| − 1) − k = n − k − k X i=1 (| ˜Si| − 1). Now we have Ip( ˜G, λ) = X {S1,...,Sk}∈P0(G) k Y i=1 w(Si) = X {S1,...,Sk}∈P0(G) k Y i=1 b(Si) q|Si|−1 = q −nf b(G, q),
hence if we find a zero-free region for Ip( ˜G, λ), then we find a zero-free region for fb(G, x).
Lemma 2.8. Assume that for some positive real number a we have X S∈ ˜V v∈S |b(S)| e a |q| |S|−1 ≤ ae−a
Proof. Let us check the second condition of Lemma 2.7 for the weight function w(S) = qb(S)|S|−1
and the function a(S) = a|S|. We have completed the proof if X
S:(T,S)∈ ˜E
|w(S)|ea|S| ≤ a|T |
for every T ∈ ˜V . Recall that (T, S) ∈ ˜E means that S ∩ T 6= ∅. This is indeed true since X S:(T ,S)∈ ˜E |w(S)|ea|S| ≤X v∈T X v∈S |w(S)|ea|S| =X v∈T X v∈S b(S) q|S|−1 ea|S| =X v∈T eaX v∈S |b(S)| e a q |S|−1 ≤X v∈T
ea(ae−a) = a|T |,
where the last inequality holds by assumption of the lemma.
Now we have proven the previous lemmas, we can prove the following theorem which is an extension of a theorem of Sokal [6].
Theorem 2.9. Let f (G, x) be a graph polynomial of bounded exponential type with bounding function R > 0. Let G be a graph with largest degree at most ∆. Then the absolute value of any root of f (G, z) is less that cR(∆), where c < 7.04.
Proof. Since f is of bounded exponential type, we have by the description of Theorem 2.6 that X S:v∈S |S|=t |b(S)| ≤ X v∈S∈V (G) |S|=t |a1(G[S])| ≤ R(∆)t−1, such that X S∈ ˜V v∈S |b(S)| e a |q| |S|−1 = ∞ X t=2 X S:v∈S |S|=t |b(S)| ea |q| t−1 ≤ ∞ X t=2 R(∆)t−1 e a |q| t−1 = 1 1 −R(∆)e|q| a − 1,
where the last equality holds by geometric series with the note that R(∆)ea |q| < 1. We find that the polynomial f (G, x) does not vanish at q, by Lemma 2.8, if
1 1 −R(∆)e|q| a
− 1 ≤ 1 + ae−a,
which can be rewritten to
|q| ≥ (ea+ e2a/a)R(∆).
Hence the roots of the polynomial f (G, z) have absolute value less than cR(∆), where c = min
a>0(e
a+ e2a/a) ≈ 7.0319,
2.3. Generating chromatic roots of cubic graphs
To obtain knowledge about chromatic roots, we want to generate graphs and then calculate the chromatic polynomial and obtain its roots. Since generating all graphs on n vertices becomes quickly impossible for increasing n, we choose to only generate a certain class of graphs. In [7] the results can be found of cubic graphs of size 32 and girth 7 which has given interesting insights. In this section we consider cubic graphs, i.e. 3-regular graphs of size n.
2.3.1. generating cubic graphs
To generate the graphs we use the algorithm described in [8], the essence of the algorithm is as follows. We generate the complete graph on 4 vertices and then apply operations to generate prime graphs1. These operations are called K4-addition, Kite-Division and Kite-Insertion. To
generate all the cubic graphs another operation is used, called edge insertion. These operations can be found from left to right respectively in the following figure.
Reduction Construction 1 2 1 2 1 2 1 2 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
Figure 2.3.: The operations used to generate cubic graphs. From left to right: K4-addition,
Kite-Division, Kite-Insertion and edge insertion. Note that two vertices of edge insertion may be the same vertex.
2.3.2. calculating the chromatic polynomial
A naive approach to calculate the chromatic polynomial would be to follow the definition of the chromatic polynomial, i.e. Equation (2.1), and thus iterate over all 2|E| subsets of edges of the graph. Since we only consider cubic graphs, the number of edges is equal to 3n2 and the number of subsets grow out of computational boundaries very quickly. This leads us to another method as following.
Consider a graph G, application of relation 2.1 shows that we can delete and contract an edge and gain two smaller graphs. By repeating this application until we have found graphs without edges, we have trivial chromatic polynomials and work our way back to find the chromatic polynomial of G. This method is called the deletion-contraction method. At first glance this method does not seem faster than the naive approach, but we will show some additional tricks to speed up the progress.
Since we are not just calculating the chromatic polynomial for a single graph it is useful to store the already calculated graphs and their chromatic polynomials. Not just the polynomial of G, but also all the polynomials we have found while applying the deletion-contraction. Note that the deletion of a bridge greatly provides from this optimization as the different components of this graph will probably be present in the database the longer the program runs. Our
1
implementation applies deletion-contraction to bridges, if there are any, so we should have profit from this.
The last optimization makes use of cut-vertices. When there is such vertex v, we will remove v and calculate the chromatic polynomials of the different components and invoke Lemma 2.4 to calculate the chromatic polynomial of the whole graph.
Lastly, to compute the chromatic roots we simply leave it to Pythons module Numpy. This algorithm relies on computing the eigenvalues of the companion matrix and will not be described in detail, but see [10] for details. An implementation of the algorithm described above and its optimizations in Python 3 can be found in Appendix B.
2.3.3. Results
The results for small n, i.e. n ≤ 6, do not provide interesting results as there are very few graphs with these number of nodes. When n ≥ 8 there seems to emerge a pattern which can be seen in the following figure. Note that z = 0, 1, 2 are zeroes of all graphs since none of the graphs are 0-, 1- or 2-colourable. As in [7] we see that the shape of the roots of the graphs with edge connectivity 3 tends to the shape of a half moon.
Figure 2.4.: Red, green and blue dots implies edge connectivity 1, 2 and 3 respectively.
2.3.4. Discussion
The problem of generating (small) cubic graphs has been solved in [8], but yet the calculation of the chromatic polynomial quickly crosses the computational boundaries when the number of nodes increases. To further optimize the algorithm, one should look into the generating
algorithm and try to find additional optimizations there. During the generation of the cubic graphs we know which vertices and edges are added and we might be able to simplify the calculation of the chromatic polynomial using this additional information.
Another more practical problem is that the number of cubic graphs with n vertices exponen-tially increase when n increases. For example, when n = 40 we have 8.8 · 1018 possible cubic graphs2 which becomes a problem to save on itself. By immediately plotting the roots instead of saving the graphs, polynomials and roots, this problem becomes non-existent.
2.4. Conclusion
We have worked towards the conjecture of Sokal that the roots of the chromatic polynomial are contained in {<(z) ≤ ∆} where ∆ is the maximum degree of a graph [11]. Along the way we have explored the independence polynomial and showed that the roots of the independence polynomial of a clawfree graph are real [1]. After that we introduced the multivariate inde-pendence polynomial and graph polynomials of exponential type. With this we showed in the second chapter that the roots of the chromatic polynomial are contained inside a disc around the origin. To finish we have generated cubic graphs and showed that the conjecture holds for these graphs (when the graph has 14 or less nodes).
2
3. Populaire samenvatting
Een graaf G = (V, E) is een structuur die bestaat uit een verzameling punten V en een verza-meling lijnen tussen punten E. Een graaf kan worden gevisualiseerd zoals in figuur 3.1(a). Een geldige kleuring van een graaf is een kleuring van de punten zodanig dat de buren van dit punt niet dezelfde kleur hebben, zoals in figuur 3.1(b).
Figure 3.1.: Links(a): Een graaf G = (V, E). Rechts(b): Een geldige kleuring van G. Vaak is de vraag of er ¨uberhaupt een kleuring bestaat, maar men kan zich ook afvragen op hoeveel manieren men een graaf geldig kan kleuren met een gegeven aantal kleuren. Er blijkt een formule te zijn die het aantal geldige kleuringen telt en dit blijkt zelfs een polynoom te zijn, dit polynoom noemen we het chromatisch polynoom. We noteren het chromatisch polynoom met χ(G, k) waarbij G = (V, E) een graaf is en k het aantal kleuren zijn. Als we gehele getallen invullen bij deze formule, dan krijgen we het aantal kleuringen van de graaf G. Bij een polynoom kunnen we echter ook niet-gehele getallen invullen, zoals 12, π of 2 + i.
Wiskundigen zijn vaak ge¨ınteresseerd in nulpunten van formules en in deze scriptie hebben we gekeken wat de nulpunten zijn van het chromatisch polynoom. Het is bijvoorbeeld interessant om te kijken of de nulpunten binnen een bepaald gebied liggen als we kijken naar een klasse van grafen. Zo is er een vermoeden van Sokal dat de nulpunten van de graaf re¨ele waarde maximaal de maximale graad hebben. Met andere woorden, alle nulpunten liggen links van een verticale lijn in het complexe vlak. We hebben gekeken naar de nulpunten van 3-reguliere grafen en hebben we de volgende resultaten gevonden. We concluderen dat het vermoeden van Sokal inderdaad klopt voor de grafen die we hebben bekeken.
Naast het chromatisch polynoom hebben we ook het onafhankelijkheidspolynoom bekeken. Dit polynoom heeft helaas geen fysische interpretatie zoals het chromatisch polynoom, maar is theoretisch wel van grote waarde. Een interessant resultaat is dat het onafhankelijkheid-spolynoom van een klauwvrije1 graaf re¨ele nulpunten heeft. Daarnaast is het mogelijk om het chromatisch polynoom te schrijven als een onafhankelijkheidspolynoom van een grotere graaf. Dit maakt het mogelijk om te bewijzen dat alle nulpunten van het chromatisch polynoom bevat zitten binnen een schijf om de oorsprong.
1Een klauwvrije graaf is een graaf die g´e´en ge¨ınduceerde graaf met puntenverzameling V = {1, 2, 3, 4} en
Bibliography
[1] M. Chudnovsky, P. Seymour, The roots of the independence polynomial of a clawfree graph, Journal of Combinatorial Theory Series B 97 (2007) pp. 350-357.
[2] H. Peters, G. Regts, On a conjecture of Sokal concerning roots of the independence poly-nomial, 2017.
[3] A. Alexanderian, On continuous dependence of roots of polynomials on coefficients, 2013. [4] P.J.I.M. de Paepe, J. Wiegerinck, Analyse 3: Functietheorie, 2014.
[5] P. Csikv´ari, P. Frenkel, Benjamini-Schramm continuity of roots moments of graph polyno-mials, 2015.
[6] A. Sokal, Bounds on the complex zeros of (di)chromatic polynomials and Pottsmodel par-tition functions, Combinatorics, Probability and Computing 10 No. 1 (2001) pp. 41-77. [7] M. Ab´ert, T. Hubai, Benjamini-Schramm convergence and the distribution of chromatic
roots for sparse graphs, 2013
[8] G. Brinkmann, J. Goedgebeur, B. D. Mckay, Generation of Cubic graphs, Discrete Math-ematics and Theoretical Computer Science, DMTCS, 13 (2) (2011) pp. 69-79.
[9] T. Hubai, The chromatic polynomial, 2009.
[10] R.A. Horn, C.R. Johnson, Matrix Analysis, Cambridge University Press (1999) 146-7. [11] B. Jackson, Zeros of chromatic and flow polynomials of graphs, Journal of Geometry 76,
pp 95-109, 2003.
[12] G.D. Birkhoff, A determinant formula for the number of ways of coloring a map, The Annals of Mathematics, 14(1/4) pp. 4246, 1912.
A. Continuous dependence of roots of
polynomials on coefficients
This part of the appendix will contain the parts of [3] which we have used in this thesis. Terminology, proofs and other details can be found in [3].
Theorem A.1 (Rouch´e). Let f and g be analytic in a simply connected domain U . Let C be a simple closed contour in U . If |f (z)| > |g(z)| for every z on C, then the functions f (z) and f (z) + g(z) have the same number of zeros, counting multiplicities, inside C.
The proof can be found in [3] or section 8.5 of [4]. Recall that balls in C with center z0 and
radius are denoted as
B(z0, ) = {z ∈ C | |z − z0| ≤ }.
Theorem A.2. Let p(z) be a polynomial of degree n, n ≥ 1, with complex coefficients,
p(z) =
n
X
k=0
akzk,
with m distinct roots {λ1, . . . , λm}, 1 ≤ m ≤ n, having multiplicities α1, . . . , αm. Then, for any
> 0 such that the closed balls B(λj, ), j = 1, . . . , m are disjoint, there exists a δ = δ() > 0
such that any degree n polynomial,
q(z) =
n
X
k=0
bkzk,
with |ak − bk| ≤ δ, k = 0, . . . , n, has exactly αj roots (counting multiplicities) in B(λj, ),
j = 1, . . . , m.
Proof. Let as in the statement of the theorem, and define the circles Cj = {z | |z − λj| = }, j = 1, . . . , m;
recall that by asssumption on , the circles Cj are disjoint. Let
vj = min z∈Cj
|p(z)|, j = 1, . . . , m,
where we know the minimums vj are attained because for each j we have a continuous function
on a compact set. Moreover, vj > 0, because the zeroes of p lie at the centers of the disjoint
circles Cj, j = 1, . . . , m. Next, let ρj, j = 1, . . . , m be defined as
ρj = max z∈Cj {1 + n X k=1 |zk|}.
Choose {bk}nk=0 such that |ak− bk| < δ with δ > 0 taken such that,
Then we have for z ∈ Cj, |q(z) − p(z)| = | n X k=0 (bk− ak)zk| ≤ n X k=0 |bk− ak||zk| < δ n X k=0 |zk| ≤ δρj < vj ≤ |p(z)|.
That is, for j = 1, . . . , m,
|p(z)| > |q(z) − p(z)|, on Cj.
Therefore, it follows by Rouch´e’s Theorem that p(z) and (q(z) − p(z)) + p(z) = q(z) have the same number of zeros, namely αj, (counting multiplicities) in the interior of Cj, i.e. B(λj, ),
B. Deletion-contraction in Python
import m a t p l o t l i b . p y p l o t a s p l t import n e t w o r k x a s nx import numpy a s np import t i m e , o s d e f z e r o e s ( p o l y n o m i a l ) : return np . r o o t s ( p o l y n o m i a l )d e f bridgeDFS ( graph , u , v , c n t , low , p r e , b r i d g e s ) : c n t += 1
p r e [ v ] = c n t l o w [ v ] = p r e [ v ]
f o r w i n nx . n e i g h b o r s ( graph , v ) : i f ( p r e [ w ] == −1):
bridgeDFS ( graph , v , w , c n t , low , p r e , b r i d g e s ) l o w [ v ] = min ( l o w [ v ] , l o w [ w ] ) i f ( l o w [ w ] == p r e [ w ] ) : b r i d g e s . append ( ( v , w ) ) e l i f (w != u ) : l o w [ v ] = min ( l o w [ v ] , p r e [ w ] ) d e f g e t B r i d g e s ( g r a p h ) : b r i d g e s = [ ] c n t = 0 l o w = {n: −1 f o r n i n g r a p h . n o d e s ( ) } p r e = l o w . c o p y ( ) f o r n i n g r a p h . n o d e s ( ) :
bridgeDFS ( graph , n , n , c n t , low , p r e , b r i d g e s ) return b r i d g e s d e f d e l e t i o n C o n t r a c t i o n ( graph , e d g e=None ) : # u − v i s an e d g e i n g r a p h i f e d g e == None : i f l e n ( g r a p h . e d g e s ( ) ) > 0 : # F i n d i n g a b r i d g e m a k e s l i f e e a s y b r i d g e s = g e t B r i d g e s ( g r a p h ) i f l e n ( b r i d g e s ) > 0 : #p r i n t ( ” Found ” , l e n ( b r i d g e s ) , ” b r i d g e s ” ) e d g e = b r i d g e s [ 0 ] e l s e : e d g e = g r a p h . e d g e s ( ) [ 0 ] e l s e : return graph , g r a p h u , v = e d g e g r a p h C o n t r a c t e d = nx . c o n t r a c t e d n o d e s ( graph , u , v ) t ry : g r a p h C o n t r a c t e d . r e m o v e e d g e ( u , u ) except K e y E r r o r : g r a p h C o n t r a c t e d . r e m o v e e d g e ( v , v ) g r a p h . r e m o v e e d g e ( u , v ) return graph , g r a p h C o n t r a c t e d d e f a d d D a t a b a s e ( minorGraphs , graph , p o l y n o m i a l ) : # We o n l y w a n t c o n n e c t e d g r a p h s i n o u r d a t a b a s e i f not nx . i s c o n n e c t e d ( g r a p h ) : return m i n o r G r a p h s n = l e n ( g r a p h . n o d e s ( ) ) m = l e n ( g r a p h . e d g e s ( ) ) while l e n ( m i n o r G r a p h s ) < n + 1 : m i n o r G r a p h s . append ( [ ] ) while l e n ( m i n o r G r a p h s [ n ] ) < m + 1 : m i n o r G r a p h s [ n ] . append ( d i c t ( ) ) f o r h i n m i n o r G r a p h s [ n ] [ m ] : i f nx . i s i s o m o r p h i c ( graph , h ) : # Not n e e d e d t o a d d return m i n o r G r a p h s # Not i n d i c t i o n a r y , s o a d d i t m i n o r G r a p h s [ n ] [ m ] [ g r a p h ] = p o l y n o m i a l return m i n o r G r a p h s d e f s u b P o l y n o m i a l s ( d e l e t i o n P o l y n o m i a l , c o n t r a c t i o n P o l y n o m i a l ) : p = l i s t ( d e l e t i o n P o l y n o m i a l ) while l e n ( c o n t r a c t i o n P o l y n o m i a l ) > l e n ( p ) : p . append ( 0 ) f o r i , c i n enumerate ( c o n t r a c t i o n P o l y n o m i a l ) : p [ i ] −= c
return t u p l e ( p ) d e f p r o d P o l y n o m i a l s ( p o l y n o m i a l s ) : p = p o l y n o m i a l s . pop ( ) [ : : − 1 ] while l e n ( p o l y n o m i a l s ) > 0 : q = p o l y n o m i a l s . pop ( ) [ : : − 1 ] p = np . p o l y m u l ( p , q ) return t u p l e ( p ) [ : : − 1 ] d e f c h r o m a t i c P o l y n o m i a l D C ( graph , minorGraphs , s i g n =1 , p a t h= ’ ’ ) : n = l e n ( g r a p h . n o d e s ( ) ) m = l e n ( g r a p h . e d g e s ( ) ) i f n == 1 : return t u p l e ( [ 0 , 1 ] ) , m i n o r G r a p h s i f m == 0 : return n ∗ t u p l e ( [ 0 ] ) + t u p l e ( [ 1 ] ) , m i n o r G r a p h s # c h e c k a l r e a d y i n d a t a b a s e i f n < l e n ( m i n o r G r a p h s ) : i f m < l e n ( m i n o r G r a p h s [ n ] ) : f o r h i n m i n o r G r a p h s [ n ] [ m ] : i f nx . i s i s o m o r p h i c ( graph , h ) : return m i n o r G r a p h s [ n ] [ m ] [ h ] , m i n o r G r a p h s # c h e c k i f t h e r e i s a c u t v e r t e x i f not nx . i s b i c o n n e c t e d ( g r a p h ) : d n q P o l y n o m i a l s = [ ] # i i s t h e g r a d e o f t h e mo n i c p o l y n o m i a l t o d i v i d e t o i = −1 f o r e d g e S e t i n nx . b i c o n n e c t e d c o m p o n e n t e d g e s ( g r a p h ) : k = nx . Graph ( ) k . a d d e d g e s f r o m ( e d g e S e t ) p , m i n o r G r a p h s = c h r o m a t i c P o l y n o m i a l D C ( k , minorGraphs , s i g n , p a t h + ’ b ’ ) d n q P o l y n o m i a l s . append ( p ) i += 1 d n q T o t a l = p r o d P o l y n o m i a l s ( d n q P o l y n o m i a l s ) # d i v i d e b y x b e f o r e r e t u r n i n g d n q T o t a l = d n q T o t a l [ i : ] m i n o r G r a p h s = a d d D a t a b a s e ( minorGraphs , graph , d n q T o t a l ) return d n q T o t a l , m i n o r G r a p h s d e l G r a p h , conGraph = d e l e t i o n C o n t r a c t i o n ( g r a p h ) d e l P a r t , c o n P a r t = [ ] , [ ] # D e l e t i o n p a r t o f g r a p h f o r h i n nx . c o n n e c t e d c o m p o n e n t s u b g r a p h s ( d e l G r a p h ) : p , m i n o r G r a p h s = c h r o m a t i c P o l y n o m i a l D C ( h , minorGraphs , s i g n , p a t h + ’ d ’ ) d e l P a r t . append ( p ) d e l T o t a l = p r o d P o l y n o m i a l s ( d e l P a r t ) # C o n t r a c t i o n p a r t o f g r a p h s i g n ∗= −1 f o r h i n nx . c o n n e c t e d c o m p o n e n t s u b g r a p h s ( conGraph ) : p , m i n o r G r a p h s = c h r o m a t i c P o l y n o m i a l D C ( h , minorGraphs , s i g n , p a t h + ’ c ’ ) c o n P a r t . append ( p ) c o n T o t a l = p r o d P o l y n o m i a l s ( c o n P a r t ) # U p d a t e d a t a b a s e m i n o r G r a p h s = a d d D a t a b a s e ( minorGraphs , d e l G r a p h , d e l T o t a l ) m i n o r G r a p h s = a d d D a t a b a s e ( minorGraphs , conGraph , c o n T o t a l ) # s u b t r a c t p o l y n o m i a l s p = s u b P o l y n o m i a l s ( d e l T o t a l , c o n T o t a l ) return p , m i n o r G r a p h s d e f c a l c u l a t e C h r o m a t i c P o l y n o m i a l s ( g r a p h s , f u n c=c h r o m a t i c P o l y n o m i a l D C ) : s t a r t = t i m e . t i m e ( ) # m i n o r G r a p h s i s a l i s t o f d i c t i o n a r i e s m i n o r G r a p h s = r e a d M i n o r G r a p h s ( ) p o l y n o m i a l s = [ ] number = l e n ( g r a p h s ) now = t i m e . t i m e ( ) f o r i , g r a p h i n enumerate ( g r a p h s ) : f o r m i n o r i n nx . c o n n e c t e d c o m p o n e n t s u b g r a p h s ( g r a p h ) : p , m i n o r G r a p h s = f u n c ( minor , m i n o r G r a p h s ) p o l y n o m i a l s . append ( p [ : : − 1 ] ) s = sum( l e n (m) f o r i , n i n enumerate ( m i n o r G r a p h s ) f o r m i n m i n o r G r a p h s [ i ] ) p r i n t ( round ( t i m e . t i m e () −now , 2 ) , i +1 , ” / ” , number , ” |M|= ” , s )
now = t i m e . t i m e ( ) p r i n t ( ” | Minor g r a p h s |= ” , s ) w r i t e M i n o r G r a p h s ( m i n o r G r a p h s ) p r i n t ( ” T o t a l t i m e : ” , round ( t i m e . t i m e () − s t a r t , 2 ) , ” s ” ) return p o l y n o m i a l s d e f l o a d G r a p h s ( f i l e n a m e ) : g r a p h s = [ ] w i t h open ( f i l e n a m e , ’ r ’ ) a s f i l e : f o r l i n e i n f i l e : l = l i n e . s t r i p ( ) G = nx . p a r s e g r a p h 6 ( l ) g r a p h s . append (G) return g r a p h s d e f w r i t e M i n o r G r a p h s ( m i n o r G r a p h s ) : i f not o s . p a t h . e x i s t s ( ’ m i n o r G r a p h s ’ ) :
o s . m a k e d i r s ( ’ m i n o r G r a p h s ’ ) w i t h open ( ’ m i n o r G r a p h s / summary ’ , ’w ’ ) a s t x t : t x t . w r i t e ( ’E ’ ) t x t . w r i t e ( ’ \ t ’ ) t x t . w r i t e ( ’ \ t \ t ’ . j o i n ( s t r ( n ) f o r n i n range ( l e n ( m i n o r G r a p h s [ − 1 ] ) ) ) ) t x t . w r i t e ( ’ \n ’ ) f o r n , v e r t i c e s i n enumerate ( m i n o r G r a p h s ) : i f n > 0 : t x t . w r i t e ( s t r ( n ) ) t x t . w r i t e ( ’ \ t ’ ) t x t . w r i t e ( ’ \ t \ t ’ . j o i n ( s t r ( l e n ( k ) ) f o r k i n v e r t i c e s ) ) t x t . w r i t e ( ’ \n ’ ) f o r n , v e r t i c e s i n enumerate ( m i n o r G r a p h s ) : f o r m, e d g e s i n enumerate ( v e r t i c e s ) : d i r = ’ m i n o r G r a p h s / ’ + s t r ( n ) + ’ / ’ f i l e = s t r (m) i f not o s . p a t h . e x i s t s ( d i r ) : o s . m a k e d i r s ( d i r ) w i t h open ( d i r + f i l e , ’w ’ ) a s t x t : t x t . w r i t e ( ’ g6 : p o l y n o m i a l \n ’ ) f o r g i n e d g e s : t x t . w r i t e ( nx . g e n e r a t e g r a p h 6 ( g , None , F a l s e ) ) t x t . w r i t e ( ’ : ’ ) t x t . w r i t e ( ’ , ’ . j o i n ( s t r ( x ) f o r x i n e d g e s [ g ] ) ) t x t . w r i t e ( ’ \n ’ ) p r i n t ( ” W r i t t e n m i n o r G r a p h s t o f i l e s ” ) d e f r e a d M i n o r G r a p h s ( ) : m i n o r G r a p h s = [ [ ] ] t ry :
w i t h open ( ’ m i n o r G r a p h s / summary ’ , ’ r ’ ) a s summary : f o r l i n e i n summary : i f l i n e [ 0 ] != ’E ’ : m i n o r G r a p h s . append ( [ ] ) n = i n t ( l i n e . s p l i t ( ’ \ t ’ ) [ 0 ] ) p r i n t ( ’ L o a d i n g ’ , n ) l = l i n e [ 2 : ] . s p l i t ( ’ \ t \ t ’ ) d i r = ’ m i n o r G r a p h s / ’ + s t r ( n ) + ’ / ’ f o r m, x i n enumerate ( l ) : m i n o r G r a p h s [ n ] . append ( d i c t ( ) ) x = i n t ( x ) f i l e = s t r (m) w i t h open ( d i r + f i l e , ’ r ’ ) a s t x t : f o r g r a p h i n t x t : i f g r a p h != ’ g6 : p o l y n o m i a l \n ’ : g , p = g r a p h [ : − 1 ] . s p l i t ( ’ : ’ ) g = nx . p a r s e g r a p h 6 ( g ) p = t u p l e ( [ i n t ( x ) f o r x i n p . s p l i t ( ’ , ’ ) ] ) m i n o r G r a p h s [ n ] [ m ] [ g ] = p s = sum( l e n (m) f o r i , n i n enumerate ( m i n o r G r a p h s ) f o r m i n m i n o r G r a p h s [ i ] ) p r i n t ( ’ Loaded minorGraph f i l e s [ ’ + s t r ( s ) + ’ ] ’ ) except F i l e N o t F o u n d E r r o r : p r i n t ( ’ B u i l d i n g m i n o r G r a p h s f r o m s c r a t c h ’ ) return m i n o r G r a p h s