Percolation Thresholds in Hyperbolic Lattices
PPercolation Thresholds in Hyperbolic Lattices
Stephan Mertens
1, 2, ∗ and Cristopher Moore † Santa Fe Institute, 1399 Hyde Park Rd., Santa Fe, NM 87501, USA Institut f ¨ur Theoretische Physik, Universit¨at Magdeburg, Universit¨atsplatz 2, 39016 Magdeburg, Germany (Dated: October 11, 2017)We use invasion percolation to compute numerical values for bond and site percolation thresholds p c (existence of an infinite cluster) and p u (uniqueness of the infinite cluster) of tesselations { P , Q } of thehyperbolic plane, where Q faces meet at each vertex and each face is a P -gon. Our values are accurateto six or seven decimal places, allowing us to explore their functional dependency on P and Q and tonumerically compute critical exponents. We also prove rigorous upper and lower bounds for p c and p u that can be used to find the scaling of both thresholds as a function of P and Q . I. INTRODUCTION
There is plenty of room in the hyperbolic plane:enough to host more parallel lines than those claimed byEuclid’s fifth postulate, and enough to allow an infinitenumber of tesselations by regular polygons. Fig. 1 showsexamples of such tesselations, drawn in the Poincar´e diskrepresentation of the hyperbolic plane [1].We consider tilings of a surface where Q regular P -gons meet at each vertex, and we denote such a tilingby the Schl¨afli symbol { P , Q } . The surface is flat if andonly if ( P − Q − =
4, which has only three solutions: { , } (the triangular lattice), { , } (the square lattice) and { , } (the honeycomb lattice). When ( P − Q − > { P , Q } as a hyperbolic lattice. Figure 1. Hyperbolic lattices { , } , { , } and { , } (left to right) Hyperbolic lattices, and more generally graphs em-bedded in hyperbolic space, were first popularizedthrough the art of M.C. Escher [2]. They have also be-come popular in physics and computer science, in stud-ies of Brownian motion [3], di ff usion [4], complex net-works [5], cellular automata [6], hard disks [7], and thecritical exponents of the Ising model [8, 9].In this contribution we will discuss percolation onhyperbolic lattices, and in particular how to computerigorous bounds on percolation thresholds and highly-accurate numerical values for them. The latter is a chal-lenge for several reasons. ∗ [email protected] † [email protected] The first problem is labeling the vertices of a hyper-bolic lattice. Unlike in Euclidean lattices such as Z d ,we cannot simply refer to vertices with vectors of in-tegers. In Appendix B, we present a labeling schemewhich largely overcomes this di ffi culty, giving each ver-tex a unique string over a finite alphabet which makes iteasy to generate a list of its neighbors.The second, and more severe, problem is the exponen-tial growth of the number of vertices as a function of dis-tance from a given vertex (see Appendix A). This limitsthe size of lattices that can be stored in a computer, and isprobably the main reason why previous numerical mea-surements of percolation thresholds in hyperbolic lat-tices are not very accurate: bond percolation thresholdshave been calculated to only two decimal places [10, 11],and site percolation thresholds are simply missing fromthe literature.We avoid the need to store large hyperbolic lattices byusing the invasion percolation algorithm [12], which wereview in Section III. Combining this with our labelingscheme allows us to store just the vertices in the perco-lating cluster, as opposed to the entire lattice. As a result,we can compute site and bond percolation thresholds toat least six decimal places (see Section IV). This is accu-rate enough to analyze how these thresholds scale with P and Q and numerically compute critical exponents (Sec-tion VI). We also prove several rigorous upper and lowerbounds on these thresholds, and compare them to ournumerical results.Finally, unlike Euclidean lattices, hyperbolic latticeshave two distinct percolation thresholds. At the firstthreshold p c , infinite clusters appear, but there are manyof them. At the second threshold p u , they merge to form asingle cluster, so that the infinite cluster is unique. Primafacie it is not obvious how to compute the uniquenessthreshold p u , but we will show that this problem can bemapped to the more familar task of computing p c on theso-called matching lattice[13]. For this, we need a bit oftheory, which we present in the next section. a r X i v : . [ c ond - m a t . s t a t - m ec h ] O c t II. THE UNIQUENESS THRESHOLD AND THEMATCHING LATTICE
A salient feature of hyperbolic lattices is that they are nonamenable . An infinite graph is amenable if the surface-to-volume ratio tends to zero: equivalently, if the volumeof a sphere of radius (cid:96) , i.e., the number of vertices within (cid:96) steps of a given vertex, grows polynomially rather thanexponentially. Flat lattices with ( P − Q − = (cid:96) ,and the surface area grows as (cid:96) . In hyperbolic lattices, onthe other hand, the volume and surface area of a sphereboth grow as λ (cid:96) for the same λ >
1. Indeed, in the limit P → ∞ , the hyperbolic lattice becomes a Bethe lattice orCayley tree, i.e., an infinite tree where each vertex has Q − < p c < p u < , (1)where p c is defined as the infimum of p ∈ (0 ,
1) suchthat the sites (bonds) selected with probability p form atleast one cluster of infinite size, and p u is defined as theinfimum of p ∈ (0 ,
1) such that the selected sites (bonds)form a unique infinite cluster. Thus for p < p c there is noinfinite cluster, for p c < p < p u there are infinitely manyinfinite clusters, and for p > p u they have all merged intoa single infinite cluster. In contrast, amenable graphslike Z d do not have ”enough room” to host more thanone infinite cluster, so p c = p u on these lattices.There are numerous established numerical methods tomeasure p c , including union-find algorithms [17, 18] andexact solutions of small systems [19–22]. Detecting theuniqueness of the infinite cluster and thus measuring p u is a priori a di ff erent and more daunting task. Fortunately,this problem can be reduced to the problem of computing p c on a related graph. For planar, nonamenable graphs G , it can be proven that p bond u ( G ) = − p bond c ( G † ) , (2)where G † is the dual of G [16, Theorem 3.8]. The dual ofa planar lattice { P , Q } is { Q , P } , so p bond u ( { P , Q } ) = − p bond c ( { Q , P } ) . (3)Hence for bond percolation, we only need to solve thefamiliar problem of computing p bond c (on the dual lattice)to get a value for p bond u . But what about site percolation?We claim that for planar, nonamenable graphs G , p site u ( G ) = − p site c ( ˆ G ) , (4)where ˆ G is the matching lattice of G . The vertices of ˆ G are the same as those of G , but with additional edges sothat the vertices around each face form a clique, a fullyconnected graph [13]. Fig. 2 shows the matching lattice Figure 2. Matching lattice ˆ G of the { , } hyperbolic lattice. Thenew edges, drawn as dashed lines, connect the vertices of eachface in a clique. of the { , } lattice. Note that G is non-amenable if andonly if ˆ G is non-amenable.Now imagine that we color each site black with prob-ability p and white with probability 1 − p . We connect theblack sites through the edges of G , and connect the whitesites through the edges of ˆ G . Each black component issurrounded by white sites and each white component issurrounded by black sites.The crucial observation is that the white sites sur-rounding a given black component are connected in ˆ G ;conversely, the black sites surrounding a given whitecomponent are connected in G (see [22, Fig. 1] for anexample). Therefore, two or more infinite black clustersexist if and only if they are separated by an infinite whitecluster, and a unique infinite black cluster exists if andonly if there is no infinite white cluster. Thus p < p site c ( ˆ G )implies 1 − p > p site u ( G ) and vice versa, which proves (4).Note that for the triangular lattices { , Q } we have G = ˆ G , and so p site u ( { , Q } ) = − p site c ( { , Q } ) . (5)For amenable graphs we also have p site u = p site c , so that (5)gives p site c = /
2. This is the well-known result for allplanar, amenable graphs with triangular faces.Having reduced the problem of computing p u on onelattice to the problem of computing p c on another, weare still faced with the problem of how to compute p c onexponentially growing lattices. This is where invasionpercolation comes in. III. INVASION PERCOLATION AND MEASURING THETHRESHOLD
Invasion percolation is a stochastic growth model thatwas introduced as a model for fluid transport throughporous media [12, 23, 24]. The growth process starts witha single vertex of the underlying graph as the seed of theinvasion cluster. In the variant relevant to site percola-tion, we assign each of its neighboring vertices a randomweight uniformly distributed between zero and one. Wethen add the neighbor with the smallest weight to thecluster, yielding a cluster of mass N =
2. This process isiterated: at each step, we assign random weights to eachpreviously unassigned vertex in the cluster’s neighbor-hood, and add the neighboring vertex with the small-est weight to the cluster, increasing the mass N by 1.For bond percolation, we assign weights to edges ratherthan vertices, and we extend the invasion cluster alongthe edge incident to it with the smallest weight.For our purposes, the benefit of invasion percolationis that we do not need to store a lattice large enough tohold the largest cluster that we want to grow: for non-amenable lattices this would be computationally infeasi-ble. Instead we only need to store the vertices belongingto the cluster, and the neighboring vertices to which wehave assigned weights. Since the coordination number Q of the lattice is fixed, the total number of vertices weneed to keep track of grows only linearly with the massof the cluster. Since we do not store a lattice we needto keep track of the vertices that we have explored sofar, and we also need to find the vertex in the bound-ary of the cluster with the smallest weight. We use twodata structures to achieve this. A set is used to hold allvertices that have been assigned weights, and a priorityqueue that holds the hull, i.e. all vertices that have beenassigned weights and that are currently not part of thecluster [25]. The priority queue lets us select and re-move the lowest-weight vertex from the hull or add newvertices to it in time logarithmic in the size of the hull.The set lets us remove and insert vertices or search fora vertex in time logarithmic in the number of vertices.Modern programming languages provide ready-to-useimplementations of data structures like these. We usedthe container classes set and priority queue from theC ++ standard library [26].In order to achieve the logarithmic time complexityof the container classes, the vertices have to be sortable.Our vertex labeling scheme for the vertices (Appendix B)provides a natural, lexicographic ordering. Since thisscheme requires O ( k ) memory for a vertex at distance k from the origin, we save memory (and time) by storingthe actual vertices only in the set, whereas the priorityqueue holds the weight and a pointer (an iterator in C ++ lingo) to the corresponding vertex in the set.The e ffi ciency of this approach is independent of di-mensionality or the exponential growth rate of non-amenable lattices. One the other hand, it requires alabeling of vertices that makes it easy to compute the r N = 100 N = 200 N = 400 N = 800 N = 1600 N = 3200 N = 6400 N = 12800 N = 25600 Figure 3. Distribution of weights on site percolation invasionclusters of mass N in the { , } hyperbolic lattice. labels of its neighbors. For Z d this is trivial, but for thehyperbolic lattices { P , Q } this is not straightforward. Wepresent our labeling scheme in Appendix B. A priori , invasion percolation di ff ers from classicalBernoulli percolation, where each vertex is indepen-dently occupied with probability p . But invasion perco-lation reproduces, both qualitatively and quantitatively,Bernoulli percolation at criticality [27, 28]. We can thinkof this connection intuitively as follows. Since the ver-tex weights are uniform in the unit interval, one wayto implement Bernoulli percolation is to declare a ver-tex occupied if its weight is less than or equal to p . At p = p c , the occupied sites possess one or more infinitecomponents. If the initial seed vertex is not in an infi-nite component, invasion percolation will force its wayoutward using weights greater than p c ; but once the inva-sion cluster touches an infinite component, it will growinto it, extending the cluster to infinite mass by addingvertices of weight at most p c .The connection between invasion and percolation sug-gests that if we keep track of the weights of the verticesadded at each step to the invasion cluster, these weightsare asymptotically uniform in the interval [0 , p c ]. Thatis, if w N ( r ) d r is the fraction of vertices with weight in( r , r + d r ) in an invasion cluster of mass N , we havelim N →∞ w N ( r ) = (cid:40) / p c ≤ r ≤ p c p c < r ≤ . (6)Fig. 3 shows the convergence of the weight distribution w N to the step function (6).This suggests several possible estimators of p c . One isthe value of p at the crossover point where w N ( r ) dropsfrom 1 / p c to 0, which in Fig. 3 takes place at w N ≈ . w N ( r ) for any r < p c . Inparticular, the inset in Fig. 3 shows w N ( r ) for 0 ≤ r ≤ . / p c ≈ .
713 as N increases.However, in our computations we use another estima-tor provided by invasion percolation. Let B ( N ) denotethe number of vertices that have assigned weights in thecourse of building a cluster with mass N , i.e., which areeither in the cluster or one of its neighbors. Since almostall of the N vertices actually added to the cluster haveweight less than or equal to p c , we havelim N →∞ NB ( N ) = p c . (7)This has been proven for bond percolation in Z [27],but it is believed to hold more generally. Based on thissupposition, we use N / B ( N ) as an estimate of p c . Seealso [29] for a convincing argument as to why N / B ( N ) isa good estimator for p c on every lattice.The estimator N / B ( N ) is extremely easy to compute,since N and B ( N ) are simply integers given by theprogress of the invasion percolation process. Moreover,it seems to have excellent finite-size scaling and a verysmall statistical variaance. Recall that on a Q -regulartree, we have p c = / ( Q −
1) for both site and bond perco-lation. On such a tree, a cluster of mass N is surroundedby exactly ( Q − N + NB ( N ) = N ( Q − N + = p c + Q − N . (8)Hence on a tree, the value of N / B ( N ) does not at alldepend on the random weights chosen to grow the in-vasion cluster. It is a deterministic quantity. To someextent, this property is preserved on hyperbolic lattices:here the standard deviation in N / B ( N ) is small and itdecays exponentially with P , see Appendix D.To check whether the finite size scaling (8) also appliesto hyperbolic lattices, we plotted the quantity B ( N ) N − B (2 N )2 N vs. N . For the tree (8), this quantity is exactly N − . Forhyperbolic lattices we find that this quantity scales as N − δ as shown in Fig. 4. For finite P we have δ <
1, butFig. 5 shows that δ converges to 1 as P increases, and thatthis convergence gets faster as Q increases. Thus N / B ( N )converges to p c almost as quickly as it does on a tree.These results motivated us to fit our numerical data tothe form NB ( N ) = p c + bN − δ . (9)Using finite-size scaling of this form, we can extrapolatefrom invasion clusters of size N = k ·
100 for k = , . . . , N = ∞ . Fig. 6 shows our results for the { , } lattice.All of the above holds both for bond and site percola-tion on hyperbolic lattices as well as on their matchinglattices. N -3 -2 -1 B ( N ) / N - B ( N ) / N P = 3 P = 4 P = 91/ N Figure 4. B ( N ) N − B (2 N )2 N ∼ N − δ for bond percolation and Q = P d Q = 5 Q = 7 Q = 9 Figure 5. Finite size scaling exponent δ for bond percolation.Note the convergence to its value δ = N -1 N / B ( N ) Figure 6. The ratio N / B ( N ) for invasion clusters of mass N forsite percolation on the { , } hyperbolic lattice. The line is a fitof (9), and extrapolating to N = ∞ gives our estimate of p site c . IV. NUMERICAL RESULTS AND COMPARISON WITHRIGOROUS BOUNDS
We ran the invasion percolation algorithm on hyper-bolic lattices with all values of P , Q ≤ p site c , p site u and p bond c . Our results areshown in Table I, and are accurate to at least six digits.We have listed all previously known data on thresh-olds in Table II for comparison. The computational re-sources rewuired by our computations are discussed inAppendix D.These results allow us to explore the dependence ofpercolation thresholds on P and Q . Since the shortestloop in a { P , Q } -lattice has length P , the lattice becomesmore and more treelike as P gets larger, and approaches aBethe lattice as P → ∞ . As mentioned above, the criticaldensities for site and bond percolation on a Bethe latticeare known exactly, p c ( {∞ , Q } ) = Q − p u ( {∞ , Q } ) = . (10)We can see this convergence in Table I, where the rowsfor P = P = ∞ are almost identical for p site c and p bond c .There is another, more subtle sense in which { P , Q } be-comes treelike in the limit Q → ∞ with P held fixed:while there exist short loops, the fraction of paths in thegraph that complete a loop tends to zero, again suggest-ing that p c and p u should converge to their values on theBethe lattice. We can see this in Table I where, even for P = P =
4, both p site c and p bond c quickly converge to1 / ( Q −
1) as Q grows.This raises the interesting question of how thesethresholds approach their values on the Bethe lattice as P or Q increases. To learn more about this dependence,we start with some rigorous bounds. The following twotheorems provide an upper and a lower bound on thesite and bond percolation thresholds. Theorem 1.
Let p c ( { P , Q } ) denote the percolation thresholdfor either site or bond percolation on the hyperbolic lattice { P , Q } . Then z P , Q ≤ p c ( { P , Q } ) ≤ λ P , Q , (11) where z P , Q is the largest real root of the polynomialf P , Q = z P − ( Q − z P − + z + ( Q − . (12) and λ P , Q is the largest real root of the polynomial R P , Q givenin (A13) .Proof. A classic result of Hammersley [30] shows that p c ≥ /µ where µ is the connective constant of the lattice,i.e., the exponential growth rate of the number of self-avoiding walks. The connective constant for hyperboliclattices is not known analytically, but in Appendix C we show that µ ≤ z P , Q by counting paths that do notcomplete a loop around a face of the lattice.The upper bound comes from the fact that percolationon a subgraph H ⊆ { P , Q } implies percolation on { P , Q } , p c ( { P , Q } ) ≤ p c ( H ) . (13)For H we choose the breadth-first search (BFS) tree of { P , Q } . The bond and site percolation thresholds of atree equal the reciprocal of its branching ratio. For theBFS, the branching ratio is given by lim k →∞ n ( k + / n ( k ),where n ( k ) denotes the number of vertices in the hy-perbolic lattice at graph distance k from the origin. InAppendix A we show that n ( k ) is given by the linearrecurrence (A6), (A7), (A9) or (A11), depending on thevalue of P . Eqs. (A13) are the characteristic polynomialsof the recurrences. The branching ratio λ P , Q is the largestreal root of the characteristic polynomial. (cid:3) What does Theorem 1 tell us about the how p c ap-proaches 1 / ( Q − P or large Q , the largestroot of f P , Q (indeed, the unique positive root) convergesto Q −
1. If we plug in the ansatz z P , Q = ( Q − − ε andexpand f P , Q to linear order in ε , we get z P , Q = Q − − Q − Q − P − + O (cid:16) ( Q − − (2 P − (cid:17) , (14)so the lower bound in (11) scales as p c ≥ Q − + O (cid:32) Q − P (cid:33) . (15)Similarly, for P > λ P , Q = Q − − Q ( Q − Q − P / + O (cid:16) ( Q − − ( P − (cid:17) , (16)and for P > λ P , Q = Q − − Q − Q − ( P − / + O (cid:16) ( Q − − ( P − (cid:17) . (17)Thus the upper bound in (11) scales as p c ≤ Q − + O (cid:32) Q − (cid:100) P / (cid:101) (cid:33) . (18)Combining (15) and (18) suggests that the critical den-sity of the hyberbolic lattice should scale with P as p c ( { P , Q } ) = Q − + c µ PQ (19)for some constant c and some √ Q − ≤ µ Q ≤ Q − p site c ( { P , Q } ) − / ( Q −
1) versus P on asemilog scale, and the straight lines indicate that scalingof the form (19) holds. We also compare p site c − / ( Q − Q = P Q p site c ∞ P Q p site u ∞ P Q p bond c ∞ { P , Q } . Values for the Euclidean lattices (bold) are added for comparison.Note that p site u = − p site c for triangular lattices ( P = p bond u ( { P , Q } ) = − p bond c ( { Q , P } ). The row P = ∞ contains the values p c = / ( Q −
1) and p u = { P , Q } p bond c p bond u Ref. { , } { , } { , } { , } { , } and { , } of [10] violate the identity p bond u ( { P , Q } ) = − p bond c ( { Q , P } ). We can look more closely at the cases P = P = Q is large. If P = λ P , Q = Q + (cid:112) ( Q − Q − − = Q − − Q − + O (1 / Q ) , (20)and when P = λ P , Q = Q + (cid:112) Q ( Q − − = Q − − Q − + O (1 / Q ) . (21) We can explain (20) and (21) by thinking about breadth-first search on these lattices. If P =
3, then each vertex v in the BFS tree has at least one edge pointing back to itsparent, and two edges pointing laterally to other vertices u , w at the same level. Moreover, the triangle below eachof those edges has a corner on the next level which canbe reached either from v or from its other “parent” u or w . This reduces the branching ratio to at most Q − P = v in the BFS treebelong to a square face where v is the farthest from theroot, and v ’s neighbors on that face are both closer to theorigin. This gives v two “parents” in the previous layer,and reduces the branching ratio to Q − P ≥ Q − Q . This indicates that for mostvertices, only one of their neighbors is in the previouslayer, and the other Q − ? ? ] for some combina-torial bounds for { , } , { , } , and { , } ). Theorem 2.
Let p siteu be the uniqueness threshold for sitepercolation on the hyperbolic lattice { P , Q } , and leta = ( P − Q − − . P -6 -4 -2 p c - ( Q - ) - Q = 4 Q = 5 Q = 6 Q = 7 Q = 8 Q = 9 Figure 7. Scaling of p site c ( { P , Q } ) with P . P -7 -6 -5 -4 -3 -2 -1 p c - ( Q - ) - sitebondBFSSAW Figure 8. Comparison of p site c ( { P , Q } ) for Q = Then − a + √ a − ≤ p siteu ≤ − Q ( P − − . (22)Note that when a is large (i.e., if P or Q is large) the lowerbound in (22) tends to 1 − / a − / a . Proof.
According to (4), an upper (lower) bound for p site u is equivalent to a lower (upper) bound for p match c , the sitepercolation threshold on the matching lattice. We willprove bounds for p match c following the same ideas as inTheorem 1.An upper bound for p match c is given by the reciprocalof the branching ratio of the BFS tree of the matchinglattice. Since all the vertices of a face of the underlyinghyperbolic lattice are adjacent in the matching lattice,and since each face has a constant number of vertices,this branching ratio is also given bylim (cid:96) →∞ n ( (cid:96) + n ( (cid:96) ) , P - p u BFS treeSAW tree
Figure 9. Uniqueness threshold for Q = P = , . . . , where n ( (cid:96) ) denotes the number of vertices on the perime-ter of the (cid:96) th layer of faces around the origin. In Ap-pendix A we use a linear recurrence to compute n ( (cid:96) )analytically, and (A3) shows that the branching ratio is( a + √ a − /
2. This gives the lower bound on p site u in (22).The upper bound in (22) follows from the fact that theconnective constant of a d -regular graph is at most d − d = Q ( P − (cid:3) Fig. 9 compares our measurements of the uniquenessthreshold with the bounds of Theorem 2. We could easilytighten these bounds, for instance by bounding the con-nective constant on the matching lattice by prohibitingshort loops as in Theorem 1.Finally, recall that p bond u for { P , Q } is simply 1 − p bond c onthe dual lattice { Q , P } . Thus we can read bounds on p bond u directly from Theorem 1. V. MEAN DISTANCE
Another quantity of interest is the mean graph dis-tance (cid:104) k N (cid:105) of a vertex from the origin of the cluster ofmass N . This quantity can be computed exactly on atree, for the invasion percolation cluster as well as forthe incipient infinite cluster of Bernoulli percolation [31].The exact expressions for finite N involve hypergeomet-ric functions, but here we care only about the asymptoticbehavior. For Bernoulli percolation on a Q -regular tree,the asymptotic expression is (cid:104) k N (cid:105) = (cid:114) π ( Q − Q − N − Q − + Q − + o (1) . (23)For invasion percolation on a tree, the leading term alsogrows as N , but the next term grows logarithmically: (cid:104) k N (cid:105) = (cid:114) π ( Q − Q − N − QQ − N + O (1) (24) N - log N Æ k N æ N - {5, 4}{9, 4}{ ¥,4} {3, 9}{9, 9}{ ¥, 9} Figure 10. Mean distance (cid:104) k N (cid:105) of a vertex of the invasion clusterof mass N to the origin. The lines {∞ , Q } represent the asymp-totics (24) for the Q -regular tree. The data shown is for bondpercolation, and the dotted lines are quadratic fits. We claim, that on hyperbolic lattices, the mean distanceof a vertex of the invasion cluster, has scaling similarto (24), i.e., (cid:104) k N (cid:105) = c ( P , Q ) N − c ( P , Q ) ln N + O (1) . (25)This claim is clearly supported by our data, see Fig. 10.The constants c and c di ff er from the correspondingvalues in (24), but they both converge to these values as P gets large.We also measured the maximum distance of a vertexon the invasion cluster from the origin. This maximumdistance also scales like (25), with di ff erent values for c and c , of course. VI. CRITICAL EXPONENTS
It has been rigorously established that the critical ex-ponents of percolation in hyperbolic lattices are equalto their mean-field values, i.e., their values on the Bethelattice. This first proof by Schonmann [32] was basedon planarity and non-amenability, but later Madras andWu [33] showed that non-amenability su ffi ces. Thusany negative curvature puts the lattice in the univer-sality class of the tree. The same holds for the criticalexponents of the Ising model on hyperbolic lattices [8 ? ?? , 9].Since the critical exponents for percolation on hyper-bolic lattices are known with mathematical rigor, thereis no need to measure them numerically. However, tocheck that our numerics are consistent with these rigor-ous results, we compute the Fisher exponent τ .According to scaling theory, the average number ofclusters of size s per lattice site scales as n s ( p ) = s − τ [ f ( z ) + s − Ω f ( z ) + · · · ] , (26) s -8 -7 -6 -5 -4 -3 -2 G s Figure 11. Scaling of the cluster density at criticality for the { , } lattice using logarithmic binning. The line is G s ∼ s − τ for τ = /
2, confirming that τ equals its mean-field value. where the scaling functions f and f are analytic forsmall values of z , and where the scaling variable z isdefined as z = ( p − p c ) s σ . (27)The exponent τ can be measured by growing single clus-ters at p = p c and recording their sizes; this is known asthe Leath algorithm [29, 34]. This is similar to invasionpercolation except that it adds every neighboring vertexwith weight p ≤ p c to the cluster instead of just the vertexwith minimum weight.In order to improve the count statistics on the larger(and rarer) clusters, the individual n s are binned on a log-arithmic scale [35]. Thus the actual quantity we analyzeis, where s = k for integer k , G s = s − (cid:88) s (cid:48) = s n s (cid:48) ( p c ) . (28)This scales as ∼ s − τ for large values of s . We showthis for site percolation on the { , } lattice in Fig. 11.Our numerical results show that τ does indeed equal itsmean-field value τ = /
2, and results for other P , Q aresimilar. VII. CONCLUSIONS
We have implemented the invasion percolation algo-rithm on the hyperbolic lattice, using a new combina-torial labeling of the vertices to make this algorithmcomputationally feasible. This yields highly-accuratemeasurements of the thresholds for site and bond per-colation, as well as (by using the matching lattice in thecase of site percolation) of the threshold at which the in-finite cluster becomes unique. These measurements, inturn, allow us to compare these thresholds with rigorousupper and lower bounds, and to confirm experimentallythat the critical exponents of percolation in negativelycurved spaces are equal to their mean-field values.
Appendix A: Counting vertices in hyperbolic lattices
The number of vertices a given distance from a spec-ified site (the “origin”) is given by a linear recurrence.This recurrence is simple if we measure the distance bythe number (cid:96) of layers of faces that separate the verticesfrom the origin. We will show that the number of verticeson the perimeter of the (cid:96) th layer is given by n (0) = n (1) = ( P − Qn ( (cid:96) ) = an ( (cid:96) − − n ( (cid:96) − (cid:96) > , (A1)with a = ( P − Q − − . (A2)Like any homogeneous linear recurrence with constantcoe ffi cients, (A1) can be solved to give n ( (cid:96) ) = ( P − Q √ a − a + √ a − (cid:96) − a − √ a − (cid:96) . (A3)For hyperbolic lattices we have a >
2, and n ( (cid:96) ) grows ex-ponentially with branching ratio ( a + √ a − /
2. For Eu-clidean lattices, a = n ( (cid:96) ) = ( P − Q (cid:96) .To prove (A1) we start with the base case of the re-currence. The first layer of faces consists of Q polygonswith P vertices each. In the total count PQ of vertices,the origin is counted Q times, and in the perimeter, the Q vertices connected to the origin are shared by adjacentpolygons and counted twice. Hence n (1) = ( P − Q .Now let F ( (cid:96) ) denote the number of faces in layer (cid:96) .Each face has P edges, two of them crossing from theinner boundary of this layer to its outer boundary. Theremaining ( P − F ( (cid:96) ) edges belong to the inner or outerboundary of the layer. Since each of these boundariesforms a cycle, the number of vertices on the boundaryequals the number of edges. Hence we have n ( (cid:96) ) + n ( (cid:96) − = ( P − F ( (cid:96) ) . (A4)On the other hand, each vertex has Q − (cid:96) or (cid:96) −
1. Hence we also have F ( (cid:96) ) + F ( (cid:96) − = ( Q − n ( (cid:96) − . (A5)Note the duality of (A4) and (A5). Now adding (A4) toitself with (cid:96) (cid:55)→ (cid:96) − n ( (cid:96) ) + n ( (cid:96) − + n ( (cid:96) − = ( P − (cid:16) F ( (cid:96) ) + F ( (cid:96) − (cid:17) = ( P − Q − n ( (cid:96) − , yielding (A1) and (A2). Note that because of the linearrelation between F ( (cid:96) ) and n ( (cid:96) ), the number of faces F ( (cid:96) )obeys the the same recurrence but with base case F (0) = F (1) = q .Another measure of distance is given by the graph dis-tance, i.e. by the length of the shortest path that connectstwo vertices. Let n k denote the number of vertices in thehyperbolic lattice with graph distance k from the ori-gin. This number is again given by a linear recurrence,albeit a more complicated one, which was derived inde-pendently in physics [36] and in mathematics [37]. Wereview this here, using the notation of [36].The recurrence depends on whether P is even or odd,and in the even case on P mod 4. For P = m where m iseven, it reads n k + = ( Q − m − (cid:88) i = n k − i − n k − m + , (A6)while if m is odd we have n k + = ( m − / (cid:88) i = (cid:104) ( Q − n k − i − n k − i − (cid:105) . (A7)The initial values are n k = (cid:40) k ≤ Q − k − Q < k < m . (A8)For odd values P = m + m > n k + = ( Q − m − (cid:88) i = ( n k − i + n k − m − i ) + ( Q − n k − m + − n k − m + (A9)with initial values n k = ( Q − k − Q < k ≤ m . (A10)For P =
3, the sum in (A9) disappears, and the recurrencebecomes n k + = ( Q − n k − n k − (A11)with initial values n k = (cid:40) k ≤ Q k = . (A12)The corresponding characteristic polynomials are as fol-lows. For P = m and m even (i.e., P mod 4 = R P , Q ( z ) = z m (cid:18) − Q − z − (cid:19) + Q − z − + Q − . (A13a)For P = m and m odd (i.e., P mod 4 = R P , Q ( z ) = z m (cid:32) z − ( Q − z − (cid:33) + z ( Q − − z − . (A13b)0 e v f L kk+1k-101Q-2 ... 01...Q-3 01...Q-3 f R Figure 12. Types of vertices in layer k and their edge labelings. For P = m + P is odd), R P , Q ( z ) = z m (cid:18) − Q − z − (cid:19) + z m + z ( Q − − z − P = m =
1) we have R , Q ( z ) = z − ( Q − z + , (A13d)and for P =
4, setting m = R , Q ( z ) = z − ( Q − z + . (A13e)To prove (A6), (A7), (A9) and (A11), we consider allvertices in the layer at distance k . We assign directionsto the edges that connect vertices in layer k to vertices inlayer k + P there are two types of vertices:“ e -vertices” have 1 incoming edge and Q − v -vertices” have 2 incoming edges and Q − P there are also pairsof “ f -vertices” in the same layer connected to each otherby an undirected edge, and each one has one incomingedge and Q − x k denote the number of vertices of type x ∈ { e , v , f } .For P = m we know that each v -vertex in layer k “closes”a polygon that “opened” in layer k − m . Each e -vertexopens Q − v -vertex opens Q − v k = ( Q − e k − m + ( Q − v k − m . (A14)The number of edges that connect layer k − k is e k + v k , but it is also given by ( Q − e k − + ( Q − v k − .Hence e k = ( Q − e k − + ( Q − v k − − v k . (A15)Finally, the total number of vertices is n k = v k + e k . (A16)This gives us three equations for n k , v k and e k , and elim-inating e k and v k yields (A6) and (A7).For the odd case P = m +
1, we again consider thenumber of edges that connect layer k − k to obtain e k = ( Q − e k − + ( Q − v k − + ( Q − f k − − v k . (A17) e kk+1k-10Q-4 ... v 0Q-5 ...e e e ev vvv Figure 13. Types of vertices and their edge labelings for P = Each polygon that is closed by a single v -vertex in layer k is opened by two f -vertices in layer k − m , so v k = f k − m . (A18)The number of polygons closed by two f -vertices in layer k equals the number of polygons opened by single ver-tices in layer k − m , so12 f k = ( Q − e k − m + ( Q − v k − m + ( Q − f k − m . (A19)In this case the total number of vertices is n k = v k + e k + f k , (A20)and eliminating v k , e k , and f k yields (A9).Although we can view it as a degenerate case of (A9),we end with a specialized derivation of (A11), the re-currence for P =
3. In triangular lattices, there are onlytwo types of vertices: e -vertices with one incoming edge,and v -vertices with two incoming edges. As shown inFig. 13, every vertex is connected to two vertices in thesame layer, leaving a total of Q − k is con-nected to two v -vertices in layer k +
1. But since each v -vertex has two incoming edges, v k + = n k . Counting the number of outgoing edges to e -verticesgives e k + = ( Q − e k + ( Q − v k , and combining these equations yields (A11). Appendix B: Implementing hyperbolic lattices
As discussed above, the challenge for implementinginvasion percolation, and indeed any algorithm on hy-perbolic lattices, is the lack of a simple coordinate sys-tem. We need a computationally e ffi cient way to indexvertices, and to compute the indices of their neighbors.Here we describe a “coordinate system” that assigns aunique string to each vertex, and we give a procedurefor computing the strings in its neighborhood.1The idea is to label each vertex according to one of theshortest paths that connects it to the origin of the lattice.In essence, we do this by re-doing the derivations of thelinear recurrences in Appendix A, while keeping track ofthe labels of individual edges in the path. Thus the originis represented by the empty string, and each vertex inlayer k corresponds to a string of length k .The labeling of the edges is depicted in Figs. 12 and 13.Note that we only label outgoing edges, i.e., edges thatrun between layers k and k +
1. Edges that connect ver-tices in the same layer are never part of a shortest path,so there is no need to assign labels to these edges.The subset of directed (and therefore labeled) edgesinduces a subgraph that is almost a directed tree. Onlythe v -vertices with their two incoming edges cause loopsby closing a face. To break the resulting ties, we neveruse the right incoming edge of a v -vertex. With this rule,the subgraph induced by the allowed directed edges isa tree, and we denote the unique path from the root to avertex u in level k as ( u , u , . . . , u k ).Suppose u is in layer k . Deleting the last edge in thepath to u yields u ’s “parent” in layer k −
1. If we extendthe path to u by one more edge yields a “child” v in layer k +
1; however, this path might violate the above rule,so the path to v in the tree might not go through u . Inaddition, u may have neighbors in its own layer, whichare neither its parents nor its children. The followingprocedures are useful to perform all this navigation: • type( u ) returns the type ( e , v , f R or f L ) of vertex u , • outdegree( u ) returns the number of u ’s outgoingedges, • child( u , x ) returns the child of u along an outgoingedge with label x , • parent( u ) returns the parent of u , • successor( u ) returns the next vertex in u ’s layermoving counterclockwise, and • predecessor( u ) returns the next vertex in u ’s layermoving clockwise.Note that successor( u ) and predecessor( u ) may or maynot be neighbors of u .The procedures outdegree( u ) and parent( u )are straightforward to implement; in particular,outdegree( u ) is a function only of type( u ) and whetheror not P =
3. The other procedures require a littlethought. Fig. 14 shows pseudocode for child( u , x ) thattakes into account our rule that the right incoming edgeof a v -vertex is never used: if x is such an edge, therelevant parent of u ’s child is successor( u ) rather than u ,so child( u , x ) uses successor( u ) as a subroutine. Fig. 15shows pseudocode for predecessor( u ) and successor( u ),both of which are recursive procedures.We also need to be able to determine the type of avertex in procedure type( u ). This is easiest in the case P =
3, because of the simple pattern of vertices of types Appendix B: Implementing hyperbolic lattices
As discussed above, the challenge for implementinginvasion percolation, and indeed any algorithm on hy-perbolic lattices, is the lack of a simple coordinate sys-tem. We need a computationally e cient way to indexvertices, and to compute the indices of their neighbors.Here we describe a “coordinate system” that assigns aunique string to each vertex, and we give a procedurefor computing the strings in its neighborhood.The idea is to label each vertex according to one of theshortest paths that connects it to the origin of the lattice.In essence, we do this by re-doing the derivations of thelinear recurrences in Appendix A, while keeping track ofthe labels of individual edges in the path. Thus the originis represented by the empty string, and each vertex inlayer k corresponds to a string of length k .The labeling of the edges is depicted in Figs. 12 and 13.Note that we only label outgoing edges, i.e., edges thatrun between layers k and k +
1. Edges that connect ver-tices in the same layer are never part of a shortest path,so there is no need to assign labels to these edges.The subset of directed (and therefore labeled) edgesinduces a subgraph that is almost a directed tree. Onlythe v -vertices with their two incoming edges cause loopsby closing a face. To break the resulting ties, we neveruse the right incoming edge of a v -vertex. With this rule,the subgraph induced by the allowed directed edges isa tree, and we denote the unique path from the root to avertex u in level k as ( u , u , . . . , u k ).Suppose u is in layer k . Deleting the last edge in thepath to u yields u ’s “parent” in layer k
1. If we extendthe path to u by one more edge yields a “child” v in layer k +
1; however, this path might violate the above rule,so the path to v in the tree might not go through u . Inaddition, u may have neighbors in its own layer, whichare neither its parents nor its children. The followingprocedures are useful to perform all this navigation: • type( u ) returns the type ( e , v , f R or f L ) of vertex u , • outdegree( u ) returns the number of u ’s outgoingedges, • child( u , x ) returns the child of u along an outgoingedge with label x , • parent( u ) returns the parent of u , • successor( u ) returns the next vertex in u ’s layermoving counterclockwise, and • predecessor( u ) returns the next vertex in u ’s layermoving clockwise.Note that successor( u ) and predecessor( u ) may or maynot be neighbors of u .The procedures outdegree( u ) and parent( u )are straightforward to implement; in particular,outdegree( u ) is a function only of type( u ) and whether child( u , x ) Input : vertex u = ( u , . . . , u k ), edge x Output : child vertex w , u x ! w beginif k = then w : = ( x ); elseif x < outdegree( u ) then w : = ( u , . . . , u k , x ); elseif type( u , . . . , u k , x ) = v then w : = child(successor( u ) , else w : = ( u , . . . , u k , x ); endendendreturn w ; end Figure 14. Pseudocode to compute the string corresponding toa child of a vertex u , reached by an outgoing edge with label x . or not P =
3. The other procedures require a littlethought. Fig. 14 shows pseudocode for child( u , x ) thattakes into account our rule that the right incoming edgeof a v -vertex is never used: if x is such an edge, therelevant parent of u ’s child is successor( u ) rather than u ,so child( u , x ) uses successor( u ) as a subroutine. Fig. 15shows pseudocode for predecessor( u ) and successor( u ),both of which are recursive procedures.We also need to be able to determine the type of avertex in procedure type( u ). This is easiest in the case P =
3, because of the simple pattern of vertices of types v and e : the leftmost and rightmost outgoing edges leadto v -vertices, while all other outgoing edges lead to e -vertices (Fig. 13). Hence it su ces to store a Booleanvalue on each edge which is true if and only if this edgeleads to a v -vertex. This list of Boolean values is easilyupdated as one moves along outgoing edges.For P >
3, the pattern of v -, e - and f -vertices is morecomplicated. In order to identify the type of a vertex, itis not enough to know the label x of the edge leading toit. We need to know where that edge is in the faces to itsleft and right: in particular, it leads to a v -vertex or an f -vertex if it is one of the farthest edges in a face fromthe origin.For even P , we give each edge two labels L , R , . . . , m } , one for its left face and one for its right face,where m = P / m . Thus an edge leads to a v -vertex if and onlyif R = m (left incoming) or L = m (right incoming). Notethat the numbers L and R let us both identify v -verticesand distinguish between left and right incoming edges.For odd P , we again define m = ( P /
2. We skip thelateral edges connecting pairs of f -vertices, merging thetwo faces joined by such an edge into a 4 m -gon, and givethe edges along its sides labels L , R , . . . , m } . Thus Figure 14. Pseudocode to compute the string corresponding toa child of a vertex u , reached by an outgoing edge with label x . successor( u ) Input : vertex u = ( u , . . . , u k ) Output : counterclockwise neighbor of u in same layer beginif k = then return ( u + q ); else p : = parent( u ); if u k < outdegree( p ) thenreturn child( p , u k + elsereturn child(successor( p ) , endendend predecessor( u ) Input : vertex u = ( u , . . . , u k ) Output : clockwise neighbor of u in same layer beginif k = then return ( u q ); elseif u k > then return ( u , . . . , u k else w : = predecessor(parent( u )); x : = outdegree( w )-1; if type( u ) = v then x : = x return child( w , x ); endendend Figure 15. Pseudocode to compute the next vertex in the samelayer at u , moving clockwise or counterclockwise. an edge leads to a v -vertex if and only if R = m (leftincoming) or L = m (right incoming). Edges with L = m or R = m lead to f R - or f L -vertices respectively.These additional labels can be maintained by the child,successor and predecessor procedures. This makes thefull implementation a bit more complicated than thepseudocode in Figs 14 and 15, but the correspondingcode is easily added. We provide a working implemen-tation in C ++ at [34].Equipped with these procedures, the Q neighbors of avertex u other than the origin can be computed as • parent( u ), • predecessor(parent( u )) if u is a v -vertex, • predecessor( u ) if u is an f L -vertex or P = • successor( u ) if u is an f R -vertex or P =
3, and • child( u , x ) for x = , . . . , outdegree( u ) Appendix C: A bound on self-avoiding walks
In this section we derive a bound on the connectiveconstant of the hyperbolic lattice, or equivalently thebranching ratio of the tree of self-avoiding walks. In particular, this bound provides the lower bound on p c given in Theorem 1.Consider a self-avoiding walk on the edges of the hy-perbolic lattice { P , Q } . Each time we follow an edge ( u , v ),there are Q v ; call these { , . . . , Q } . The leftmost and right-most moves 1 and Q u , v ) belongs. If we perform P P u , and complete the loop around one ofthese faces.As a consequence, we can upper bound the entropyof self-avoiding walks by considering strings over thealphabet { , . . . , Q } such that there are no runs of P P Q P i < P
1, where state i denotes a stringending in i consecutive 1s or i consecutive ( Q M , = M i , = Q i < P M i , = i < P M i , i + = i < P M i , j = i =
0, so that the most recentmove is some j < { , Q } , there are M , = Q
1. If the currentstring ends with a run of i consecutive 1s or ( Q M i , i + = M i , = Q j , { , Q } .The growth rate of these strings is the largest eigen-value of M . This is the largest root z of its characteristicpolynomial, which a little work shows is given bydet( M z I ) = ( P Q + ( Q P X t = z t z P = ( P Q + z + (1 Q ) z P + z P z ! , or equivalently the largest root z of the numerator z P ( Q z P + z + Q . Since z is an upper bound on the connective constantof the lattice, 1 / z is a lower bound on the site and bondpercolation thresholds. Appendix D: Technical Details
For the numerical results in this paper we averagedover 10 independent runs of invasion percoluation foreach value of P , Q and N . We computed the statistical Figure 15. Pseudocode to compute the next vertex in the samelayer at u , moving clockwise or counterclockwise. v and e : the leftmost and rightmost outgoing edges leadto v -vertices, while all other outgoing edges lead to e -vertices (Fig. 13). Hence it su ffi ces to store a Booleanvalue on each edge which is true if and only if this edgeleads to a v -vertex. This list of Boolean values is easilyupdated as one moves along outgoing edges.For P >
3, the pattern of v -, e - and f -vertices is morecomplicated. The type of a vertex is not determined by2the label x of the edge leading to it: we need to knowwhere that edge is in the faces to its left and right. Inparticular, it leads to a v -vertex or an f -vertex if it is oneof the farthest edges in a face from the origin.For even P , we give each edge two labels L , R ∈{ , . . . , m } , one for its left face and one for its right face,where m = P / m . Thus an edge leads to a v -vertex if and onlyif R = m (left incoming) or L = m (right incoming). Notethat the numbers L and R let us both identify v -verticesand distinguish between left and right incoming edges.For odd P , we again define m = ( P − /
2. We skip thelateral edges connecting pairs of f -vertices, merging thetwo faces joined by such an edge into a 4 m -gon, and givethe edges along its sides labels L , R ∈ { , . . . , m } . Thusan edge leads to a v -vertex if and only if R = m (leftincoming) or L = m (right incoming). Edges with L = m or R = m lead to f R - or f L -vertices respectively.These additional labels can be maintained by the child,successor and predecessor procedures. This makes thefull implementation a bit more complicated than thepseudocode in Figs 14 and 15, but the correspondingcode is easily added. We provide a working implemen-tation in C ++ at [38].Equipped with these procedures, the Q neighbors of avertex u other than the origin can be computed as • parent( u ), • predecessor(parent( u )) if u is a v -vertex, • predecessor( u ) if u is an f L -vertex or P = • successor( u ) if u is an f R -vertex or P =
3, and • child( u , x ) for x = , . . . , outdegree( u ) − Appendix C: A bound on self-avoiding walks
In this section we derive a bound on the connectiveconstant of the hyperbolic lattice, or equivalently thebranching ratio of the tree of self-avoiding walks. Inparticular, this bound provides the lower bound on p c given in Theorem 1.Consider a self-avoiding walk on the edges of the hy-perbolic lattice { P , Q } . Each time we follow an edge ( u , v ),there are Q − v ; call these { , . . . , Q − } . The leftmost and right-most moves 1 and Q − u , v ) belongs. If we perform P − P − u , and complete the loop around one ofthese faces.As a consequence, we can upper bound the entropyof self-avoiding walks by considering strings over thealphabet { , . . . , Q − } such that there are no runs of P − P − Q − P − ≤ i < P −
1, where state i denotes a stringending in i consecutive 1s or i consecutive ( Q − M , = M i , = Q − ≤ i < P − M i , = ≤ i < P − M i , i + = ≤ i < P − M i , j = i =
0, so that the most recentmove is some j (cid:60) { , Q − } , there are M , = Q −
1. If the currentstring ends with a run of i consecutive 1s or ( Q − M i , i + = M i , = Q − j (cid:44) { , Q − } .The growth rate of these strings is the largest eigen-value of M . This is the largest root z of its characteristicpolynomial, which a little work shows is given bydet( M − z I ) = ( − P Q − + ( Q − P − (cid:88) t = z t − z P − = ( − P (cid:32) Q − + z + (1 − Q ) z P − + z P − z (cid:33) , or equivalently the largest root z of the numerator z P − ( Q − z P − + z + Q − . Since z is an upper bound on the connective constantof the lattice, 1 / z is a lower bound on the site and bondpercolation thresholds. Appendix D: Technical Details
For the numerical results in this paper we averagedover 10 independent runs of invasion percoluation foreach value of P , Q and N . We computed the statisticalerror on N / B ( N ) using jackknife resampling [39]. The er-rors are of order 10 − or 10 − for the larger clusters. Thesesmall values of the errors are caused by the small valuesof the standard deviation σ of N / B ( N ) for hyperbolic lat-tices. For given N and Q , σ decays exponentially with P (Fig. 16). We know that for a tree ( P = ∞ ), σ is zero.In addition, σ = O (1 / √ N ) (Fig. 17), which is not sur-prising. The cluster masses we used are N = · k for k = , , . . . ,
7. For some systems we also simulated largersystems with k = , ,
10 with 10 samples each. To growan invasion cluster of mass N , one needs B ( N ) (cid:39) N / p c pseudorandom numbers. Hence each value in Table Iis based upon at least ∼ pseudorandom numbers,which were produced by generators from the TRNG li-brary [40]. For comparison, Americans eat roughly 10 chickens per year [41].3 P -6 -5 -4 -3 s Q = 4 Q = 7 Q = 9 Figure 16. Decay of the standard deviation σ of N / B ( N ) for N = P . N -6 -5 -4 -3 s {6,7}{7,9} Figure 17. Decay of the standard deviation σ of N / B ( N ) vs. N . We ran our simulations on a cluster with a mixture ofCPUs and a total of 368 cores, see Table III. Each value ofTable I took roughly 24 hours wall-clock time on this clus-ter. The actual invasion percolation cluster algorithmhas time complexity O ( N log N ), but because our label-ing scheme induces costs O ( N / ) for handling the typicalvertex in a cluster, the total time is O ( N / log N ). Mem-ory per core can become an issue in the computation of p site u because the percolation thresholds p c ( ˆ G ) = − p site u ( G )on the matching lattices are small and we need to store CPU frequency nodes × cpus × cores memory / coreE5-1620 3.60 GHz 1 × × × × × × × ×
10 6.4 GByteTable III. Computing machinery used for the simulations inthis paper. All CPUs are Intel ® Xeon ® . B ( N ) (cid:39) N / p c ( ˆ G ) vertices. This is the main reason why wedid not go beyond N = p site u . ACKNOWLEDGMENTS
We enjoyed fruitful discussion with Bob Zi ff and weappreciate valuable comments from Brian Hayes. S.M.thanks the Santa Fe Institute for their hospitality. C.M.was supported in part by the John Templeton Founda-tion and thanks Otto-von-Guericke University for theirhospitality. / ∼ hatch.[2] D. Schattschneider, M.C. Escher: Visions of Symmetry (Harry N. Abrams, 2004).[3] C. Monthus and C. Texier, Journal of Physics A: Mathe-matical and General , 2399 (1996).[4] S. K. Baek, S. D. Yi, and B. J. Kim, Physical Review E ,022104 (2008).[5] D. Krioukov, F. Papadopoulos, M. Kitsak, A. Vahdat, andM. Bogu ˜n´a, Physical Review E , 036106 (2010).[6] M. Margenstern, Small Universal Cellular Automata in Hy-perbolic Spaces (Springer-Verlag, 2013).[7] C. D. Modes and R. D. Kamien, Physical Review Letters , 235701 (2007).[8] H. Shima and Y. Sakaniwa, Journal of Statistical Mechan-ics: Theory and Experiment , P08017 (2006).[9] H. Shima and Y. Sakaniwa, Journal of Physics A: Mathe-matical and General , 4921 (2006).[10] S. K. Baek, P. Minnhagen, and B. J. Kim, Physical Review E , 011124 (2009).[11] H. Gu and R. M. Zi ff , Physical Review E , 051141 (2012).[12] D. Wilkinson and J. F. Willemsen, Journal of Physics A:Mathematical and General , 3365 (1983).[13] M. F. Sykes and J. W. Essam, Journal of MathematicalPhysics , 1117 (1964).[14] M. Ostilli, Physica A , 3417 (2012).[15] R. Mosseri and J. Sadoc, Journale de Physique Lettres ,249 (1982).[16] I. Benjamini and O. Schramm, Journal of the AmericanMathematical Society , 487 (2001).[17] M. E. J. Newman and R. M. Zi ff , Physical Review Letters , 4104 (2000).[18] S. Mertens and C. Moore, Physical Review E , 061109(2012).[19] C. R. Scullard and J. L. Jacobsen, Journal of Physics A:Mathematical and Theoretical , 494004 (2012).[20] J. L. Jacobsen, Journal of Physics A: Mathematical andTheoretical , 135001 (2014). [21] J. L. Jacobsen, Journal of Physics A: Mathematical andTheoretical , 454003 (2015).[22] S. Mertens and R. M. Zi ff , Physical Review E , 062152(2016).[23] R. Lenormand and S. Bories, Comptes Rendus del’Acad´emie des Sciences B 291 , 279 (1980).[24] R. Chandler, J. Koplik, K. Lerman, and J. F. Willemsen,Journal of Fluid Mechanics , 249 (1982).[25] S. Dasgupta, C. H. Papadimitriou, and U. Vazirani,
Algo-rithms (McGraw-Hill, 2006).[26] P. V. Weert and M. Gregoire, C ++ Standard Library QuickReference (Apress, 2016).[27] J. T. Chayes, L. Chayes, and C. M. Newman, Communi-cations in Mathematical Physics , 383 (1985).[28] O. H¨aggstr¨om, Y. Peres, and R. H. Schonmann, in