Heesch Numbers, Part 2: Polyforms

In the first post in this series, I introduced the concept of a shape’s Heesch number. In brief, if a shape doesn’t tile the plane, its Heesch number is a measure of the maximum number of times you can surround the shape with layers of copies of itself. (Shapes that do tile are defined to have a Heesch number of infinity.) Shapes with positive, finite Heesch numbers are entertaining mathematical curiosities. Far more mysterious—and infuriating—is the fact that we know of examples of Heesch numbers only up to five, and nothing higher. Learning more about shapes with high Heesch numbers could offer insights into deep unsolved problems in tiling theory.

Absent a comprehensive theory about how large Heesch numbers arise, how might we go about enriching our knowledge of the topic? Here, while the mathematician scratches their head, the computer scientist might offer a pragmatic approach. For, even if we can’t make a general statement about Heesch numbers, we can gather a large amount of data by experiment. Specifically, it’s possible to write a computer program that takes a shape as input and searches systematically for all ways to surround that shape, all ways to surround those surrounds, and so on, eventually determining the shape’s Heesch number by brute force. If we tabulate Heesch numbers of enough families of shapes, we might be able to discern patterns that point us at promising lines of mathematical inquiry.

To be sure, there’s a long tradition in mathematics of gathering enough data to make an educated guess about the behaviour of a function or sequence, and then working towards a proof of that guess. Computers haven’t changed that fact, but they’ve allowed us to gather a lot more data a lot faster. Really, my crack about mathematicians versus computer scientists was more a statement about two mindsets; mathematicians and computer scientists use both of these mindsets all the time.

There’s no systematic way to enumerate all shapes, but we can work with a few special-purpose families. We should begin by restricting our attention to polygons—first, because they’re the easiest shapes to describe in a computer program, and second, because it’s not clear that more exotic shapes, say with curved or fractal boundaries, will help us attain higher Heesch numbers. Having made this restriction, we can immediately skip past triangles and quadrilaterals. They all tile the plane, and therefore have Heesch numbers of infinity. (If you haven’t seen this fact before, it’s a fun exercise to convince yourself that every triangle and every quadrilateral tiles the plane.) Not all pentagons tile, and in fact the canonical example of a shape with non-trivial Heesch number (demonstrated by Heesch in 1968, as shown in the previous post) is a convex pentagon. I have more to say about pentagons and other “generic” polygons, but I will defer that discussion to future posts.

A really convenient source of polygons, one that will be familiar to any recreational mathematician, are the polyforms. These are shapes obtained by gluing together simple polygonal modules along their edges. For example, gluing squares together yields polyominoes. The tetronimoes (made from four squares) are the familiar Tetris pieces; the pentominoes are the source of a classic mathematical puzzle (can you assemble them into a 6×10 rectangle?). The related families of polyhexes and polyiamonds can be constructed by gluing together hexagons and equilateral triangles, respectively.Unlike the vast, open-ended problem of exploring the universe of shapes, polyominoes and other polyforms are ideally suited to systematic enumeration by a computer. A square is the only monomino, and to a first approximation, you can construct all n-ominoes by considering all possible ways of gluing one more square onto every empty spot on the boundary of every (n-1)-omino. (This actually generates large numbers of duplicates; more intelligent algorithms will avoid duplicates via judicious gluing.) But as far as I know, there is no compilation of Heesch numbers of simple polyforms. So, in the search for non-trivial Heesch numbers, we now have a simple, albeit computationally intensive, plan: start enumerating polyominoes and test each one for its Heesch number; stop when your computer succumbs to proton decay. We can’t expect to get up to very high values of n—the number of n-ominoes grows exponentially in nbut with luck we can probe deeply enough to find a few surprises. Ready? Go!

Whoa, not so fast. Earlier, I suggested a simple, brute-force approach to computing a shape’s Heesch number, an algorithm that amounts to “try everything”. But consider what happens if I offer as input a polyomino that tiles the plane. The algorithm can always surround such a shape with more layers, out to infinity, and will therefore run forever, always searching for a point where it exhausts every option. There needs to be a way to halt the search if the shape can be shown to tile the plane, in which case the algorithm can provide the answer “infinity” and move on. In other words, a program for computing Heesch numbers has to be at least as smart as a program for determining tileability!

Fortunately, for simpler polyforms we can sidestep this thorny problem. Over the years, Joseph Myers has studied the tiling-theoretic properties of polyominoes, polyiamonds and polyhexes. His web page contains tables of the different ways that these shapes might tile the plane (a deeply fascinating topic, but beyond the scope of this discussion). For him, shapes that don’t tile are the dross of the process, which he collects into a catch-all “non-tilers” column. Our mission, then, is to tease apart that column, sorting non-tilers into bins by Heesch number. The best part is that Myers provides us with lists of non-tilers to use as a starting point. Thus I can write a relatively simple program to compute Heesch numbers, knowing that all the shapes I feed it have previously been determined not to tile.

Results

Fine, so what do we discover in this process? I haven’t searched beyond very small values of n, but the preliminary results are fun to contemplate. Let’s poke around in this new cabinet of curiosities.

To begin with, it’s well known that all n-ominoes tile the plane for ≤ 6, meaning that any table of Heesch numbers will begin with blank rows where there are no non-tilers. Things start to get interesting at = 7. One 7-omino has a hole in it, which we’ll immediately discard as incompatible with the computation of Heesch numbers. Three others are non-tilers. Of these, two have Heesch number 1 and one has Heesch number 0.

The three hole-free non-tiling heptominoes. Two of them have Heesch number 1, the other one has Heesch number 0. Which is which?

These shapes are simple enough that you can work out which is which on paper by attempting to surround each tile. So why give away the answer? I’ll leave it as a fun puzzle. If you want to try it, you can use graph paper or these printable worksheets.

Moving on, the hole-free non-tiling 8-ominoes are a mix of Heesch numbers 0 and 1. Happily, when n = 9, we encounter our first example of a polyomino with Heesch number 2. I present this shape with a demonstration, noting that I’m giving away the solution to one puzzle in Good Fences.

Remember the usual caveats: this diagram doesn’t prove that this shape has Heesch number 2, only that it’s at least 2. It may be possible to find a different configuration that admits another layer of tiles, or perhaps the shape even tiles the plane. In accepting my claim, you are trusting that I am a sufficiently good programmer that my code isn’t missing an opportunity for more surrounds (spoiler: I am, and it’s not). I really like this shape—I feel like it’s a much simpler example of Heesch number 2 than the others we currently have, though of course “simple” is subjective in this context.

As we climb the ladder, each successive value of n becomes harder to resolve in its entirety. Obviously there are exponentially more non-tiling n-ominoes to contend with. Moreover, each one is potentially a more difficult problem: a larger polyomino is likely to have a longer perimeter, meaning more places where you can glue on neighbours, meaning more surrounds (and more partial surrounds too!). It simply takes longer to exhaust all these possibilities. Even worse, my naive algorithm varies wildly in the time it needs to compute a shape’s Heesch number: some shapes take a fraction of a second, others can days hours or days. It’s very hard for a search algorithm to make intelligent decisions about how to direct its search to minimize the work needed, and in any case some shapes just have lots more surrounds than others. So, for example, my program took 1,038,150 seconds, or about 12 days, to decide that the shape on the left has a Heesch number of 1, and it’s still working on the shape on the right after more than 10 days. Stand by!

Two slowpokes in my computation of Heesch numbers. The 13-omino on the left reported a Heesch number of 1 after more than 12 days. The 13-omino on the right is still computing after more than 10 days.

The table below summarizes what I know so far about polyominoes, just for the record. The counts in the second column are identical to the rightmost column of Myers’ table. The rightmost column is my own personal Column of Shame, 603 shapes that my program has not had sufficient time to classify. Ideally, over time those numbers will go down as I compute more of the Heesch numbers of these recalcitrant shapes. Who knows—maybe I’ll find a “unicorn” with Heesch number 3 or higher. Fortunately, I can bring ever-greater computational resources to bear in solving this problem. For example, the University of Waterloo recently unveiled the positively massive Graham supercomputer, which I used to compute some of the numbers in this table.

n Hole-free
non-tilers
Heesch
number 0
Heesch
number 1
Heesch
number 2
Unclassified
≤ 6 0
 7 3 1 2
 8 20 6 14
 9 198 77 120 1
 10 1390 770 620
11 9474 6029 3409 26 10
12 35488 29114 6369 5
13 178448 152346 26048 40 14
14 696371 642259 53537 26 549

Note from the future: as of late 2019, this table is out of date. I’ve extended the enumeration to 16-ominoes and found some errors in the numbers above. I’m hoping to write up a new post in early 2020; in the meantime contact me if you need the updated numbers for some crucial purpose.

If you would like to see the set of 98 polyominoes in the table above that have Heesch number 2, or if you’re interested in running your own experiments on them, you can download a simple text file that describes them. I hope the file format is self-explanatory.

I have also conducted searches over polyiamonds (glued-together equilateral triangles). I didn’t get quite as far, and there were no startling discoveries. But one happy result is that we don’t have to search that far to discover a few new shapes with Heesch number 3. Here are the two examples I’ve found, a 12-iamond and a 10-iamond, with sample 3-coronas.

This same search yielded about 800 polyiamonds with Heesch number 1 and 15 polyiamonds with Heesch number 2. But I don’t trust these relatively old records enough to put them into table form, as I did for polyominoes above; I’d want to re-run the search before I did that.

Closing thoughts

Having started this project, I’m naturally hoping to finish classifying the shapes that I’ve begun working on, particularly those pesky 13- and 14-ominoes. I simply want to know what these shapes’ Heesch numbers are, particularly whether there are any large ones waiting to be discovered.

But as a computer scientist, there’s a much deeper question to consider. When I think about the unknowns I’m trying to find, I must also include the algorithm that’s doing the work. The real research contribution would not be a table of new Heesch numbers to contemplate, but a more efficient technique for computing them. Is that even possible? Can there exist a program for computing a shape’s Heesch number that doesn’t more or less try every possible means of surrounding the shape? In a way, this is one of the central themes of the field of combinatorics: knowing how many objects have a specific property without explicitly constructing them. It’s the difference between counting and enumerating. I don’t need to write down every subset of the integers from 1 to n to tell you that there will be 2n of them—the final count is something we just know. Closer to the topic at hand, Iwan Jensen developed an algorithm for counting polyominoes without enumerating them, allowing him to know how many n-ominoes exist for very large n without ever seeing them. Could an algorithm exist that can determine a shape’s Heesch number without constructing surrounds? If you want a simpler starting point, consider whether there is an efficient algorithm to determine whether a shape has any surround at all, one that avoids explicitly constructing partial surrounds of the shape in every possible way.

I’m not quite sure why I am so drawn to this problem. I suppose that it’s a classic example of recreational mathematics, a path to the discovery of shapes with surprising or exotic properties. The arrangements that emerge are interesting too—not as orderly as a tiling, but still structured somehow. And of course, this path could also lead to profound mathematical insights later, if enough patterns could be found in the data.

More than anything else, though, I can’t help but feel a bit like an astronomer. There’s a vast universe of shapes “out there” waiting to have their properties probed, and the best I can do is slowly sweep my computational telescope across the sky, hoping to stumble upon some exciting new object. As a Mathematical Astronomer, I always crave the next bigger telescope, which will allow me to probe ever deeper into the heavens. My laptop is the equivalent of looking up at the moon through a small telescope in my backyard. When I shift the work over to a supercomputer like Graham, it evokes the image of Ellie Arroway in the movie Contact, pressing a few keys on her laptop and causing a row of radio dishes at the Very Large Array to turn. Here’s hoping that my own personal Wow! signal is out there.

Comments

17 responses to “Heesch Numbers, Part 2: Polyforms”

  1. James Propp Avatar

    It might be interesting to do a survey of not-too-large polyforms from a family that exhibits linear exponential growth rather than quadratic exponential growth as a function of n; this will enable you to get to larger values of n (at a price, of course). An example that comes to mind is the family of polyominoes obtained by “thickening” self-avoiding walks on the square grid (replacing each grid point by a concentric square). Note that your first example of a polyomino with Heesch number 2 belongs to this family.

    1. Craig Kaplan Avatar
      Craig Kaplan

      Hi James, I really enjoyed reading your post about Engel this morning—it helped motivate me to finish this write-up and press the publish button.

      It’s definitely tempting to make these kinds of speculative forays into uncharted territory. And I can imagine lots of ways to sample the space of large polyominoes more or less at random. Thickening random walks could work, but you could even just start with a square and glue new squares onto it at random until you had the size you want (OK, don’t glue anywhere that would give you a non-simply-connected result).

      The real problem with this approach, and the reason I haven’t tried it, is that I think it has a very low probability of turning up an interesting shape. Based on my experience with this topic, my intuition tells me that a large polyomino chosen at random will have Heesch number 0. More precisely, perhaps the proportion of n-ominoes with Heesch number 0 goes to 1 as n goes to infinity? Shapes that tile, or shapes that have high Heesch numbers, will be rare enough that I wouldn’t want to count on finding one by chance.

      It would be amazing to have some knowledge about what sorts of shapes are likely to be interesting in terms of tiling or Heesch numbers. But I can’t bootstrap myself that way—if anything, gathering all this data is a means to identifying what properties those shapes might have.

  2. Daan van Berkel Avatar

    Could you point me in the direction of Iwan Jensen result. It seems very interesting.

    1. Craig Kaplan Avatar
      Craig Kaplan

      Yeah, sorry about not including a direct link. I believe that this is the official paper: https://link.springer.com/article/10.1023%2FA%3A1004855020556. See also https://arxiv.org/abs/cond-mat/0007239.

  3. […] general introduction, and would be a good starting point if you’re unfamiliar with the topic. Part 2 covered exhaustive computations of Heesch numbers of polyominoes and polyiamonds, and likely […]

  4. Herman Tulleken Avatar

    Very interesting post (and series).

    It would be great if you could put some more examples (if not all!) polyominoes you find with Heesch number 2. After reading your post, I tries to find more examples on the Internet, but could only find one (which means, as far as is easy to find there are only two examples on the entire Internet!)

    It is interesting you mention certain polyominoes taking very long (as I understand not just because of their size?); I have been working on a another tiling problem (tilings by rectangles) and noticed similar issues. Of course _part_ of this is due to which order the algorithm check things in, and I found in my case I could get a significant (10x) improvement by introducing a bit of randomness in certain choices. In my problem it’s clear why it works; and I am not sure if this would help you if you are not already doing it. But if it can’t, it means the algorithm also implicitly measures something else by how long it takes – a feature of the polyomino that makes it have more possibilities (regardless of in which order you check them etc.) something that may be interesting to explore.

    I hope you post some more images :)

    1. Craig Kaplan Avatar
      Craig Kaplan

      Herman, I should be able to provide a file with the polyominoes I’ve found that have Heesch number 2. The amount of time it’ll take depends a bit on what format will make you happy. The easiest for me would be a text file with ASCII grids showing each polyomino. If you want a nicely formatted PDF, or worse yet a PDF with an example of a 2-surround, that would take longer.

      1. Herman Tulleken Avatar

        ASCII would not be a problem at all (I actually have a program that can generate SVGs + HTML or PDFs for various abstract presentations, so it would be easy for me to make a more visual presentation from any abstract format. For my rectangle problem I made SVGs and HTML so I could easily browse thought the tilings to get a feel for them.) It _would_ be great though to have the surrounds (I would be compelled to see how they fit together), so if this is not hard to do it would be fantastic. (And I would be happy to share the visual representations with you if they are of any use.) Either way, I would be happy :)

        1. Craig Kaplan Avatar
          Craig Kaplan

          OK, as a first step, here’s a text file containing descriptions of the 98 polyominoes I’ve found with Heesch number 2: http://isohedral.ca/wp-content/uploads/2017/11/polyominoes_heesch_2.txt. I’ve also amended the blog entry with a short paragraph below the table that links to this file.

          Getting drawings of all the 2-surrounds is much harder (for stupid reasons having to do with disorganized code), but not impossible. Let me put that on the back burner and see if I can return to it in a couple of weeks. In the meantime, I guess you’ve got 98 interesting puzzles to work on…

          1. Herman Tulleken Avatar

            :) Thank you! Here is an image with all the polyominoes for anyone that wants to see them:

            https://imgur.com/b7cH8fT

            (And again, if you want something better that you can post just let me know.)

            Already I notice all of these have at least two peaks (cells with only one neighbor), maybe that is another avenue of exploration. (Another thing I just started to look at is the maximum n-peak figures can form, where an n-peak is an convex edge of length n. This is a way of seeing how close a tile can come to tiling a rectangle (the bigger the closer) since if a figure can tile a rectangle it can form peaks of arbitrary length. In this sense Heesch number are similar, since it is a indication of how close a figure can come to tile the plane without actually doing it, so maybe it is related.)

            Thanks gain for posting the data!

          2. Herman Tulleken Avatar

            (Oi looking more carefully I see two with only one peak, which is less interesting.)

  5. […] if you’re not familiar with the topic, you may want to read it before coming back here. The second post was about Heesch numbers of simple polyforms like polyominoes; the ideas presented here will not […]

  6. Sergey Markelov Avatar
    Sergey Markelov

    Very interesting article, thank you, Craig Kaplan!

    May I ask you to publish a bit more about polyiamonds, please? E.g. what are minimum polyiamonds with Heesch number 2 ?

    Whether your program can be easily modified to test polyhexes or polyabolo ? Or this is difficult? My intuition tells me it’s a good chance to see some interesting Heesch number among them.

    Heesch numbers of edge-marked polyforms (including polyhexes) were studied here: http://dx.doi.org/10.1080/10586458.2015.1096867

  7. Jordan Stile Avatar

    It is really easy to consufe the concept related with Heesch numbers to some other thing. I just hope that it is more convenient to understand it better so that people like me can use it.

  8. Mario Avatar

    Dear Craig, Thank you for your post series on the Heesch number. I am curious whether you finished the classification of 13- and 14-ominoes, and polyiamonds? did you publish your result somewhere, I was not able to find it in your gscholar list. Thanks again for writing those interesting posts, Mario

    1. Craig Kaplan Avatar
      Craig Kaplan

      Great timing, Mario! I was just returning to this topic today after a long hiatus. I’m hoping I can make some small amount of progress on it over the holidays.

      I did eventually complete the classification of polyominoes up to 16. My new implementation also turned up a few errors in the table published above (a few numbers increased towards the right of the table, but I didn’t turn up anything with Heesch number greater than 2). I’m hoping to work on polyiamonds and polyhexes soon.

      None of this is currently published anywhere formal. I figured that getting some firm results for polyiamonds and polyhexes would be a suitable milestone for writing something up. Stay tuned!

      1. Mario Avatar

        Oh that’s quite interesting. I am looking forward to both the article and the blog post which hopefully comes with it with the classifications.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.