Jekyll2021-07-16T01:38:05+00:00https://11011110.github.io/blog/feed.xml11011110Geometry, graphs, algorithms, and moreDavid EppsteinLinkage with many Wikipedia Good Articles2021-07-15T18:02:00+00:002021-07-15T18:02:00+00:00https://11011110.github.io/blog/2021/07/15/linkage-many-wikipedia<p>There are two reasons for the large number of Good Articles in this set. First, I had previously been trying to keep my nominations and reviews in balance, but there were too few nominations to review on topics of interest to me, and the inability to find things to review was preventing me from nominating other articles when they were ready. So I started nominating more often. And second, the Wikipedia Good Articles editors are having a drive this month to clean out old nominations, as they tend to do a couple of times per year.</p>
<ul>
<li>
<p><a href="https://www.thisiscolossal.com/2021/07/steve-lindsay-fractal-vise/">Morphing fractal engraving vice jaws</a> (<a href="https://mathstodon.xyz/@11011110/106506737270461558">\(\mathbb{M}\)</a>). Circular arcs nested within circular arcs rotate to conform to whatever shape is being gripped.</p>
</li>
<li>
<p>Christian Lawson-Perfect sets up a new wiki, <a href="https://whystartat.xyz">Why start at \(x,y,z\)?</a> (<a href="https://mathstodon.xyz/@christianp/106500170446647463">\(\mathbb{M}\)</a>). Its aim is to collect ambiguous, inconsistent, or just plain unpleasant conventions in mathematical notation. My contribution: <a href="https://whystartat.xyz/wiki/Big_O_notation">big O notation</a>.</p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/Pick%27s_theorem">Pick’s theorem </a> (<a href="https://mathstodon.xyz/@11011110/106523554824974108">\(\mathbb{M}\)</a>). The area of a grid polygon equals its number of interior grid points, plus half the boundary points, minus one. Good Article #1.</p>
</li>
<li>
<p><a href="https://igorpak.wordpress.com/2021/07/03/the-problem-with-combinatorics-textbooks/">The problem with combinatorics textbooks</a> (<a href="https://mathstodon.xyz/@11011110/106526891677914307">\(\mathbb{M}\)</a>). Igor Pak on the difficulty of teaching combinatorics in a comprehensive way in a single term. Instead, he suggests teaching courses on narrower subtopics: “the more specific you make the combinatorics course the more interesting it is to the students”.</p>
</li>
<li>
<p>I recently returned from a relaxing early-long-weekend mini-vacation to Avila Beach (<a href="https://mathstodon.xyz/@11011110/106532239057852428">\(\mathbb{M}\)</a>), with seafood sunset beach dinners (the coast faces south so the sun sets over land), wine tasting (near the setting of Sideways), and sulphur springs hot tub soaks. The photo below is a garden in a field of rusted pylons in the flood basin of San Luis Obispo Creek. I liked its contrast of natural growth and regular artificial forms.</p>
<p style="text-align:center"><img src="https://www.ics.uci.edu/~eppstein/pix/sycsprings/SecretGarden-m.jpg" alt="Secret garden, Sycamore Springs Resort, Avila Beach" style="border-style:solid;border-color:black;" /></p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/Vi%C3%A8te%27s_formula">Viète’s formula</a> (<a href="https://mathstodon.xyz/@11011110/106535094271822431">\(\mathbb{M}\)</a>), an infinite product of nested roots evaluating to \(2/\pi\), “the first formula of European mathematics to represent an infinite process”. Good Article #2.</p>
</li>
<li>
<p><a href="https://www.nytimes.com/2021/06/25/science/puzzles-fonts-math-demaine.html">The <em>New York Times</em> on Erik and Marty Demaine’s mathematical typefaces</a> (<a href="https://mathstodon.xyz/@11011110/106545874983076062">\(\mathbb{M}\)</a>, <a href="https://archive.ph/oJ8xG">also</a>, <a href="http://stormbear.com/carnival-of-mathematics-195-july-2021/">via</a>).</p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/Euclid%E2%80%93Euler_theorem">Euclid–Euler theorem</a> (<a href="https://mathstodon.xyz/@11011110/106554476459806645">\(\mathbb{M}\)</a>). A 2-millenium-long collab in which Euclid proved that all Mersenne primes produce even perfect numbers, and Euler proved that all even perfect numbers come from Mersenne primes. But let’s not forget <a href="https://en.wikipedia.org/wiki/Ibn_al-Haytham">Ibn al-Haytham</a> (Alhazen), halfway between them in time, who conjectured Euler’s result but couldn’t prove it. Good Article #3.</p>
</li>
<li>
<p><a href="https://mirtitles.org/2021/07/07/convex-figures-and-polyhedra-lyusternik/">Lyusternik’s book <em>Convex Figures and Polyhedra</em></a> (<a href="https://mathstodon.xyz/@jarban/106551202604578180">\(\mathbb{M}\)</a>), one of the Mir translations from Russian to English, <a href="https://archive.org/details/lyusternik-convex-figures-and-polyhedra">available without restrictions on archive.org</a>.</p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/Bucket_queue">Bucket queue</a> (<a href="https://mathstodon.xyz/@11011110/106570282017522543">\(\mathbb{M}\)</a>). This priority queue is a bit out of fashion, but good for small integer priorities or for shortest paths when the ratio of longest to shortest edge is small. Good Article #4, despite a reviewer who had <a href="https://en.wikipedia.org/wiki/WP:CHEESE">somehow become convinced that deletion from doubly linked lists is nonconstant</a>. The issue is off-topic but real: updating objects in data structures often needs the objects to track their location in the structure; for instance, changing priorities in a binary heap requires each object to know its index. Most introductory material on these topics and even some standard library implementations (like Python’s heapq) fail to address this complication.</p>
</li>
<li>
<p><a href="https://www.cs.ru.nl/~freek/100/">Formalizing 100 theorems</a> (<a href="https://mathstodon.xyz/@11011110/106579903443188306">\(\mathbb{M}\)</a>). Freek Wiedijk uses a rather arbitrary collection of 100 favorite theorems from some 1999 web page as a benchmark set for the progress of automatic proof assistants. I’m sad that Pick’s theorem has seen so little love.</p>
</li>
<li>
<p><a href="https://arxiv.org/abs/2107.06490">Greedy spanners in Euclidean spaces admit sublinear separators</a> (<a href="https://mathstodon.xyz/@11011110/106583477388316730">\(\mathbb{M}\)</a>). My <a href="/blog/2020/02/17/spanners-have-sparse.html">SoCG’21 result with Hadi Khodabandeh that 2d greedy spanners have separators of size \(O(\sqrt{n})\)</a> used crossing-based methods heavily dependent on planarity. This new preprint by Hung Le and Cuong Than uses different ideas to find separators of size \(O(n^{1-1/d})\), optimal in any dimension \(d\). Their work also extends from Euclidean spaces to doubling spaces.</p>
</li>
<li>
<p><a href="https://oscarcunningham.com/670/unique-distancing-problem/">Unique distancing</a> (<a href="https://mathstodon.xyz/@11011110/106587574216525670">\(\mathbb{M}\)</a>). How many points can you place in an \(n\times n\) grid so that all pairwise distances are distinct? The linked post concerns whether \(n\) points are possible (no for all but finitely many cases because there are too many pairs and too few sums of squares) but it also looks interesting to maximize the number of points.</p>
</li>
</ul>David EppsteinThere are two reasons for the large number of Good Articles in this set. First, I had previously been trying to keep my nominations and reviews in balance, but there were too few nominations to review on topics of interest to me, and the inability to find things to review was preventing me from nominating other articles when they were ready. So I started nominating more often. And second, the Wikipedia Good Articles editors are having a drive this month to clean out old nominations, as they tend to do a couple of times per year.Angles of arc-triangles2021-07-10T11:06:00+00:002021-07-10T11:06:00+00:00https://11011110.github.io/blog/2021/07/10/angles-arc-triangles<p>Piecewise-circular curves or, if you like, arc-polygons are a very old topic in mathematics. Archimedes and Pappus studied the <a href="https://en.wikipedia.org/wiki/Arbelos">arbelos</a>, a curved triangle formed from three semicircles, and Hippocrates of Chios found that the <a href="https://en.wikipedia.org/wiki/Lune_of_Hippocrates">lune of Hippocrates</a>, a two-sided figure bounded by a semicircle and a quarter-circle, has the same area as an isosceles right triangle stretched between the same two points. The history of the <a href="https://en.wikipedia.org/wiki/Reuleaux_triangle">Reuleaux triangle</a>, bounded by three sixths of circles, stretches back well past Reuleaux to the shapes of of Gothic church windows and its use by Leonardo da Vinci for fortress floor plans and world map projections. But despite their long history and frequent use (for instance in the design of machined parts), there are some basic properties of arc-polygons that seem to have been unexplored so far.</p>
<p>I looked at one of these properties, <a href="/blog/2021/05/09/arc-triangle-tilings.html">the ability of arc-triangles to tile the plane</a>, in an earlier post. Another of these properties involves the feasible combinations of angles of these shapes. As is well known, in a straight-sided triangle in the plane, the three interior angles always sum to exactly \(\pi\), and any three positive angles summing to \(\pi\) are possible. Let \(T\) be the set of triples of angles \((\theta_1,\theta_2,\theta_3)\) from triangles, and reinterpret these triples as coordinates of points in Euclidean space. Then \(T\) is itself an equilateral triangle, with corners at the three points \((\pi,0,0)\), \((0,\pi,0)\), and \((0,0\pi)\). (More precisely, it’s the relative interior of this triangle.)</p>
<p>What about arc-triangles? Are their angles similarly constrained? What shape do their triples of angles make? First of all, their angles don’t have a fixed sum (except for the tilers, for which this sum is again \(\pi\)). The arbelos has three interior angles that are all zero, summing to zero. The Reuleux triangle has three angles of \(2\pi/3\), summing to \(2\pi\). <a href="/blog/2021/05/15/linkage.html">Boscovitch’s cardioid</a>, below, uses three semicircles like the arbelos, but with one interior angle of \(2\pi\) and two others equal to \(\pi\), summing to \(4\pi\). The <a href="https://en.wikipedia.org/wiki/Trefoil">trefoil</a>, a common architectural motif, bulges outward from its three corners, forming interior angles that are much larger, up to \(2\pi\) each for a trefoil made from three \(5/6\)-circle arcs, for a total interior angle of \(6\pi\).</p>
<p style="text-align:center"><img src="/blog/assets/2021/boscovich.svg" alt="Boscovich's cardioid" /></p>
<p>Nevertheless, for a non-self-crossing arc-triangle, not all combinations of angles are possible. For instance, it’s not possible to have one angle that is zero and two that are \(2\pi\). My new preprint, “Angles of arc-polygons and lombardi drawings of cacti” (<a href="https://arxiv.org/abs/2107.03615">arXiv:2107.03615
</a>, with UCI students Daniel Frishberg and Martha Osegueda, to appear at CCCG) proves a precise characterization: beyond the obvious requirement that each angle \(\theta_i\) be in the range \(0\le\theta_i\le 2\pi\), we have only the additional inequalities</p>
\[-\pi < \frac{\pi - \theta_i + \theta_{i+1} - \theta_{i+2}}{2} < \pi\]
<p>where the index arithmetic is done modulo three. The formula in the middle of each of these inequalities is itself an angle, the angle of incidence between one of the circular arcs of the arc-triangle and the circle through its three corners. Where the straight triangles had an equilateral-triangle feasible region, the arc-triangles have a more complicated shape. The obvious constraints \(0\le\theta_i\le 2\pi\) would produce a cubical feasible region \([0,2\pi]^3\), but the additional inequalities above cut off six corners of the cube, leaving a feasible region looking like this:</p>
<p style="text-align:center"><img src="/blog/assets/2021/feasible-arc-triangles.svg" alt="The feasible region for triples of angles of arc-triangles" /></p>
<p>The motivating application for all of this is graph drawing, and more specifically Lombardi drawing, in which edges are circular arcs meeting at equal angles at each vertex. Using our new understanding of arc-polygons, we prove that every <a href="https://en.wikipedia.org/wiki/Cactus_graph">cactus graph</a> has a planar Lombardi drawing for its natural embedding (the one in which each cycle of the cactus forms a face) but might not for some other embeddings, including the one below.</p>
<p style="text-align:center"><img src="/blog/assets/2021/badhat.svg" alt="An embedded cactus that has no planar Lombardi drawing" /></p>
<p>But beyond graph drawing, I think that the long history and many applications of arc-polygons justifies more study of their general properties. For instance, what about arc-polygons with more than three sides? What can their angles be? Our paper has a partial answer, enough to answer the questions we asked in our Lombardi drawing application, but a complete characterization for arc-polygons of more than three sides is still open.</p>
<p>(<a href="https://mathstodon.xyz/@11011110/106557711895868173">Discuss on Mastodon</a>)</p>David EppsteinPiecewise-circular curves or, if you like, arc-polygons are a very old topic in mathematics. Archimedes and Pappus studied the arbelos, a curved triangle formed from three semicircles, and Hippocrates of Chios found that the lune of Hippocrates, a two-sided figure bounded by a semicircle and a quarter-circle, has the same area as an isosceles right triangle stretched between the same two points. The history of the Reuleaux triangle, bounded by three sixths of circles, stretches back well past Reuleaux to the shapes of of Gothic church windows and its use by Leonardo da Vinci for fortress floor plans and world map projections. But despite their long history and frequent use (for instance in the design of machined parts), there are some basic properties of arc-polygons that seem to have been unexplored so far.Spanners for unit ball graphs in doubling spaces2021-07-09T09:06:00+00:002021-07-09T09:06:00+00:00https://11011110.github.io/blog/2021/07/09/spanners-unit-ball<p>My student Hadi Khodabandeh had a paper with me on spanners earlier this year at SoCG, in which we showed that <a href="/blog/2020/02/17/spanners-have-sparse.html">the greedy spanner algorithm for points in the Euclidean plane produces graphs with few crossings and small separators</a>. Now we have another spanner preprint: <a href="https://arxiv.org/abs/2106.15234">“Optimal spanners for unit ball graphs in doubling metrics”, arXiv:2106.15234</a>.</p>
<p><a href="https://en.wikipedia.org/wiki/Doubling_space">Doubling metrics</a> are a generalization of Euclidean spaces. Like Euclidean spaces, they have a dimension, the <em>doubling dimension</em>, but it might not be an integer. Even the doubling dimension of the Euclidean plane itself is \(\log_2 7\approx 2.807355\); this means that every circular disk of radius \(r\) in the plane can be covered by seven closed disks of radius \(r/2\).</p>
<p style="text-align:center"><img src="/blog/assets/2021/doubling-dim.svg" alt="Seven disks of radius $$r/2$$ cover a single disk of radius $$r$$" /></p>
<p>Analogously, the <em>doubling constant</em> of a metric space (if it exists) is the smallest number \(c\) such that every closed metric ball (the set of points within some radius \(r\) of a fixed point) can be covered by \(c\) balls of half the radius. The <em>doubling dimension</em> is the binary logarithm of the doubling constant. A metric space is a <em>doubling metric</em> or <em>doubling space</em> if it has a doubling constant and doubling dimension. This is true for all Euclidean spaces: for instance, if you cover a ball with a grid of hypercubes, sized small enough that their long diagonal has length at most the radius of the ball, you obtain doubling constant at most \(\lceil 2\sqrt{d}\rceil^d\), although it seems difficult to compute the precise doubling constant in general.</p>
<p style="text-align:center"><img src="/blog/assets/2021/grid-doubling.svg" alt="Nine disks of radius $$r/2$$ cover a square grid that covers a single disk of radius $$r$$" /></p>
<p>The hyperbolic plane provides a natural example of a space that is not a doubling space: arbitrarily large-radius disks require arbitrarily many half-radius disks to cover them.</p>
<p>Many results in computational geometry can be generalized to doubling metrics, but not always, and sometimes with difficulty. That includes results on spanners, as we consider in our paper. A spanner of a weighted graph is a subgraph whose shortest path distances approximate the distances in the full graph, and often for spanners of metric spaces one uses the complete graph, weighted by the metric distance between each pair of points. But here, we are using a different graph, the unit ball graph. The unit ball graph, for points in a continuous space, has an edge whenever two unit balls centered at two of the points have a nonempty intersection, and it can be extended to discrete point sets by instead including an edge whenever two points are at distance at most 2 (or, as in our paper, distance at most 1; scaling doesn’t really change anything). The weights are the same as in the complete graph. If a spanner accurately approximates all edge weights, it approximates all paths.</p>
<p>The unit ball graph has fewer edges to approximate than the complete graph. But that actually makes it harder to approximate, because by the same token there are fewer edges that can be used in the spanner. Despite that, the greedy spanner algorithm still produces a spanner, but one of its key properties is lost when going from Euclidean to doubling spaces: Euclidean greedy spanners have bounded degree, but greedy spanners in doubling spaces do not. Instead, our paper provides different spanner algorithms that apply to unit ball graphs, approximate paths in these graphs arbitrarily well, have bounded degree, have total weight a constant times that of the minimum spanning tree, and can be constructed efficiently in a distributed model of computing. I think the details are too technical to go into here, so see the paper for more.</p>
<p>(<a href="https://mathstodon.xyz/@11011110/106551534535329957">Discuss on Mastodon</a>)</p>David EppsteinMy student Hadi Khodabandeh had a paper with me on spanners earlier this year at SoCG, in which we showed that the greedy spanner algorithm for points in the Euclidean plane produces graphs with few crossings and small separators. Now we have another spanner preprint: “Optimal spanners for unit ball graphs in doubling metrics”, arXiv:2106.15234.Linkage2021-06-30T10:36:00+00:002021-06-30T10:36:00+00:00https://11011110.github.io/blog/2021/06/30/linkage<ul>
<li>
<p><a href="https://maxoffsky.com/code-blog/flow-lines/">Flow lines</a> (<a href="https://mathstodon.xyz/@11011110/106428733923482392">\(\mathbb{M}\)</a>). Web gadget editable open source code thingy to draw streamlines of mathematical formulas, in svg format, by Maksim Surguy.</p>
</li>
<li>
<p><a href="https://daily.jstor.org/the-soap-bubble-trope/">The soap bubble trope</a> (<a href="https://mathstodon.xyz/@11011110/106430498906810187">\(\mathbb{M}\)</a>, <a href="https://3quarksdaily.com/3quarksdaily/2021/06/soap-bubbles.html">via</a>). Soap bubbles as a recurring theme in art, literature, and popular culture, including “the roof of the Munich Olympic Stadium, Glinda the Good Witch, the first viral ad campaign of the late Victorian era, and morose Dutch still-life paintings”.</p>
</li>
<li>
<p><a href="http://gosper.org/homeplate.html">Officially, home plate doesn’t exist</a> (<a href="https://mathstodon.xyz/@esoterica/106435964222477352">\(\mathbb{M}\)</a>). The rules of baseball define it as a 90-45-90-90-45 pentagon with two 12” sides at one of the right angles and a 17” side between the other two, not possible.</p>
</li>
<li>
<p><a href="https://www.natureindex.com/news-blog/microsoft-academic-graph-discontinued-whats-next">Microsoft Academic Graph being discontinued</a> (<a href="https://mathstodon.xyz/@11011110/106438809410223323">\(\mathbb{M}\)</a>, <a href="https://retractionwatch.com/2021/06/19/weekend-reads-biotech-ceo-on-leave-after-allegations-on-pubpeer-a-researcher-disavows-his-own-paper-plagiarism-here-there-and-everywhere/">via</a>). I didn’t much use that one but I live in fear that one day Google will do the same thing to Google Scholar, as they have to so many other useful but nonprofitable Google services.</p>
</li>
<li>
<p>My current workflow for preparing technical talk videos (<a href="https://mathstodon.xyz/@11011110/106444988062063872">\(\mathbb{M}\)</a>):</p>
<ul>
<li>
<p>Use LaTeX+beamer (169 option) to make pdf talk slides</p>
</li>
<li>
<p>For each slide, print open-in-Preview with custom 16x9 zero-margin layout then export to png</p>
</li>
<li>
<p>Write a script and use quicktime to record 1-2 minute voiceover clips</p>
</li>
<li>
<p>Compose slides and audio in iMovie, export to a huge mp4</p>
</li>
<li>
<p>Use Handbrake to convert to reasonably-sized mp4</p>
</li>
</ul>
<p>It works, but is a bit tedious and produces very dry results. The discussion includes suggestion of alternatives.</p>
</li>
<li>
<p><a href="https://youtu.be/7vEgc7cNarI">The points rotated, and the lines danced</a> (<a href="https://mastodon.social/@sarielhp/106439137323288004">\(\mathbb{M}\)</a>). Video illustrating point-line duality by Sariel Har-Peled.</p>
</li>
<li>
<p><a href="https://www.bbc.com/future/article/20210616-how-the-forgotten-tricks-of-letterlocking-shaped-history">Letterlocking</a> (<a href="https://mathstodon.xyz/@11011110/106458633659042049">\(\mathbb{M}\)</a>, <a href="https://news.ycombinator.com/item?id=27549256">via</a>, <a href="https://en.wikipedia.org/wiki/Letterlocking">see also</a>): the art of folding your letters so intricately that readers will be forced to tear the paper to unfold and read them.</p>
</li>
<li>
<p><a href="https://blog.computationalcomplexity.org/2021/06/i-went-to-debate-about-program-verif.html">Bill Gasarch summarizes an online debate</a> (<a href="https://mathstodon.xyz/@11011110/106463907058053228">\(\mathbb{M}\)</a>) with Richard DeMillo and Richard Lipton, moderated by Harry Lewis, looking back at the idea of proving programs correct and at <a href="https://doi.org/10.1145/359104.359106">a classic 1979 paper by DeMillo, Lipton, and Perlis</a> arguing that this idea was already problematic.</p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/X_%2B_Y_sorting">\(X+Y\) sorting</a> (<a href="https://mathstodon.xyz/@11011110/106468019908924208">\(\mathbb{M}\)</a>), now a Good Article on Wikipedia. This is on an old open problem in comparison sorting: can you sort pairs of elements from two sets by their sums, faster than unstructured data of the same length? It’s still an active topic of research; see e.g. <a href="https://doi.org/10.1145%2F3285953">Kane, Lovett, and Moran, “Near-optimal linear decision trees for \(k\)-sum and related problems”, <em>JACM</em> 2019</a>.</p>
<p>It was not easy to persuade the GA reviewer that this article was as accessible as it could be. I have hopes of <a href="https://en.wikipedia.org/wiki/Dehn_invariant">Dehn invariant</a> also becoming a Good Article but its “Realizability” section is far more advanced.</p>
</li>
<li>
<p>This week I participated in the International Workshop on Graph-Theoretic Concepts in Computer Science, WG (<a href="https://mathstodon.xyz/@11011110/106474212936524737">\(\mathbb{M}\)</a>). The 9-hour time difference made live participation awkward for me, but fortunately prerecorded contributed talks and the three invited talks (Dujmović on product structures, Samotij on independent set numeration, and Bonnet on twin-width) are linked from <a href="https://wg2021.mimuw.edu.pl/program/">the conference program</a>. The proceedings is not yet out but many preprints of papers are also linked.</p>
</li>
<li>
<p><a href="https://theintercept.com/2021/06/23/anming-hu-trial-fbi-china/">“A juror says the FBI owes an apology to University of Tennessee scientist Anming Hu”</a> (<a href="https://mathstodon.xyz/@11011110/106481625501499687">\(\mathbb{M}\)</a>, <a href="https://retractionwatch.com/2021/06/25/weekend-reads-the-obesity-wars-and-the-education-of-a-researcher-zombie-research-hijacked-journals/">via</a>) after putting Hu on trial for allegedly hiding ties to China despite his repeated disclosures of those ties and possibly in retaliation for his refusal to become a spy in China for the FBI. Beyond hurting US research both directly and by motivating good people to go elsewhere, this racist witch hunt has provided fuel for Chinese propaganda.</p>
</li>
<li>
<p>The Wikipedia “Book:” namespace for curated collections of articles is being killed off (<a href="https://mathstodon.xyz/@11011110/106484876399456966">\(\mathbb{M}\)</a>) after the software to collate them into pdfs stopped working. I created five of these, and used two as readings for my courses. All five have moved to my user space:</p>
<ul>
<li>
<p><a href="https://en.wikipedia.org/wiki/User:David_Eppstein/Fundamental_Data_Structures"><em>Fundamental Data Structures</em></a></p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/User:David_Eppstein/Graph_Algorithms"><em>Graph Algorithms</em></a></p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/User:David_Eppstein/Graph_Drawing"><em>Graph Drawing</em></a></p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/User:David_Eppstein/Matroid_Theory"><em>Matroid Theory</em></a></p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/User:David_Eppstein/Perfect_Graphs"><em>Perfect Graphs</em></a></p>
</li>
</ul>
</li>
<li>
<p><a href="https://danilafe.com/blog/math_rendering_is_wrong/">Math rendering is wrong</a> (<a href="https://mathstodon.xyz/@11011110/106492765314826160">\(\mathbb{M}\)</a>, <a href="https://news.ycombinator.com/item?id=27656446">via</a>). This blog post from a year ago argues that, for the same reasons one might write a web site in a markup language before compiling it to html, we should also compile LaTeX to html at that time rather than using browser-side scripts (as in most deploys of MathJax or KaTeX) or conversion to images (Wikipedia). It doesn’t present a solution, but is more a call for that solution to be made.</p>
</li>
<li>
<p><a href="https://kleinbottle.com/#AMAZON%20BRAND%20HIJACKING">Amazon stands by and does nothing as Chinese scammers hijack Cliff Stoll’s Klein bottle business to usurp its positive reviews</a> (<a href="https://mathstodon.xyz/@11011110/106500881370367192">\(\mathbb{M}\)</a>, <a href="https://news.ycombinator.com/item?id=27684807">via</a>).</p>
</li>
</ul>David EppsteinFlow lines (\(\mathbb{M}\)). Web gadget editable open source code thingy to draw streamlines of mathematical formulas, in svg format, by Maksim Surguy.Greedy orderings with transposition2021-06-29T12:02:00+00:002021-06-29T12:02:00+00:00https://11011110.github.io/blog/2021/06/29/greedy-orderings-transposition<p>I’m a big fan of using <a href="https://en.wikipedia.org/wiki/Antimatroid">antimatroids</a> to model vertex-ordering processes in graphs such as the construction of <a href="https://en.wikipedia.org/wiki/Topological_sorting">topological orderings</a> in <a href="https://en.wikipedia.org/wiki/Directed_acyclic_graph">directed acyclic graphs</a> and perfect elimination orderings in <a href="https://en.wikipedia.org/wiki/Chordal_graph">chordal graphs</a>. In each case a vertex can be removed from the graph and added to the order when it obeys a local condition: its remaining neighbors are all outgoing for topological orderings, or all adjacent for perfect elimination orderings. Once this condition becomes true of a vertex it remains true until the vertex is added to the order, the defining property of an antimatroid. Because of this property, a greedy algorithm for finding these orderings can never make a mistake: if there exists an ordering of all of the vertices, it is always a safe choice to add any vertex that can be added.</p>
<p>But there are some greedy vertex-ordering processes that do not form antimatroids, even though they do have the same inability to make mistakes. Two of these are the dismantling orders of <a href="https://en.wikipedia.org/wiki/Cop-win_graph">cop-win graphs</a> and the reverse construction orders of <a href="https://en.wikipedia.org/wiki/Distance-hereditary_graph">distance-hereditary graphs</a>. I wrote about cop-win graphs <a href="/blog/2016/08/18/game-of-cop.html">here in 2016</a>; a graph is cop-win if a cop can always land on the same vertex as a robber when they take turns either moving from a vertex to a neighboring vertex or staying put. In distance-hereditary graphs, all induced subgraphs have the same distances; <a href="/blog/2005/10/11/delta-confluent-drawing-paper.html">these graphs also have nice confluent drawings</a>. Both of these classes of graphs can be recognized by greedy algorithms that remove one vertex at a time until either getting stuck (for graphs not in the class) or succeeding by reaching a single-vertex graph. But although the conditions for removing vertices in these algorithms are local, they are not antimatroidal.</p>
<h1 id="an-example-graph">An example graph</h1>
<p style="text-align:center"><img src="/blog/assets/2021/Ptolemaic.svg" alt="A six-vertex graph with six vertices A, B, C, D, E, and F, and seven edges AD, BC, BD, BE, CE, and EF" /></p>
<p>The graph shown above happens to be chordal, distance-hereditary, and cop-win, making it a convenient example both of how to order the vertices of these graph classes and of why the distance-hereditary and cop-win orderings are not antimatroidal.</p>
<ul>
<li>
<p>In chordal graphs, a perfect elimination ordering can be constructed by repeatedly removing <em>simplicial vertices</em>, vertices whose neighborhoods form a clique. For an elimination ordering of the example graph, vertices \(A\), \(C\), and \(F\) are already available to be listed: \(A\) and \(F\) only have one neighbor (automatically a clique), and \(C\) has two neighbors forming a two-vertex clique. The other vertices will become available later in the removal process, once enough of their neighbors have been removed and all remaining vertices become adjacent. For instance, once \(A\) has been removed, \(D\) will become available, and once \(C\) has been removed, \(B\) will become available. Once this removal process makes a vertex simplicial, it remains simplicial until removed, so elimination orderings form an antimatroid.</p>
</li>
<li>
<p>Distance-hereditary graphs can be constructed from a single vertex by repeatedly adding leaf vertices (with one neighbor connecting to previous vertices) or twins (duplicates of previous vertices). Reversing this process, these graphs can be deconstructed by repeatedly removing leaves or twins. The graph above has no twins, but \(A\) and \(F\) are leaves, and can be removed immediately. If \(A\) is removed, \(C\) and \(D\) become false twins (not adjacent to each other), and either of them can be removed. Similarly, if \(F\) is removed, \(B\) and \(E\) become true twins (adjacent to each other), after which one can be removed, but not both: after removing \(F\) and \(B\), \(E\) is no longer a leaf or a twin (because its twin, \(B\), has gone), and must remain until later steps. Because the removal orders can start \(FB\) or \(FE\) but not \(FBE\), they are not described by an antimatroid.</p>
</li>
<li>
<p>Similarly, cop-win graphs can be dismantled by repeatedly removing a vertex \(v\) that is dominated by another vertex \(w\), meaning that the neighborhood of \(v\) (including \(v\) itself) is a subset of the neighborhoood of \(w\). In the given graph, \(A\) is dominated by \(D\), \(B\) is dominated by \(E\), \(C\) is dominated by both \(B\) and \(E\), and \(F\) is dominated by \(E\). So any one of these four dominated vertices starts out as removable. But if we remove first \(F\) and then \(E\) (dominated by \(B\) after the removal of \(F\)) we can no longer remove \(B\). So because the ability to be removed can go away before the removal happens, we do not have an antimatroid.</p>
</li>
</ul>
<p>There’s another complication here as well. For both distance-hereditary graphs and cop-win graphs, removing leaves and twins or dominated vertices will never eliminate all graph vertices. Instead, both removal processes stop when we reach a single remaining vertex. But this is different from antimatroids, where all elements must be included in all orderings.</p>
<h1 id="some-axiomatics">Some axiomatics</h1>
<p>To understand why greedy orderings still work in these cases, I think it’s helpful to start by understanding why they work for antimatroids, as a general class of structures. The following is not quite the usual system of axioms for antimatroids, but they can be defined as non-empty formal languages (that is, sets of strings over a finite alphabet) with the following properties:</p>
<dl>
<dt>Hereditary:</dt>
<dd>
<p>Every prefix of a string in the language is also in the language. Thinking about this in the other direction: every string in the language can be built up by adding one character at a time, starting from the empty string, at all times remaining within the language.</p>
</dd>
<dt>Normal:</dt>
<dd>
<p>Every character occurs at most once in any string in the language. An element can only be added to the sequence of elements once. Because we are assuming the alphabet to be finite, this means that the language itself is also finite.</p>
</dd>
<dt>Oblivious:</dt>
<dd>
<p>If \(S\) and \(T\) are permutations of each other in the language, then for every character \(x\), \(Sx\) is in the language if and only if \(Tx\) is in the language. This means that what can be added next depends only on the set of characters that have been added already, forgetting about the order in which they were added.</p>
</dd>
<dt>Anti-exchange:</dt>
<dd>
<p>If \(S\) is a string, \(x\) and \(y\) are different characters, and \(Sx\) and \(Sy\) both belong to the language, then so does \(Sxy\). Adding \(x\) doesn’t prevent \(y\) from being added later. This is the key property of an antimatroid and the one that is violated by the distance-hereditary and cop-win orderings.</p>
</dd>
</dl>
<p>Usually a stronger version of obliviousness is used, stating that when \(S\) and a permutation of \(Sx\) are in the language, then \(Sx\) is in the language, but it’s not immediately obvious why this should be true for the vertex-ordering processes I’m considering here, so I’ve gone with a weaker version. We’ll see later that the stronger version is implied by a combination of this and other properties. It is standard to also require that all characters be usable, but I haven’t done this, because I want to understand the behavior of antimatroidal greedy algorithms on graphs not in the given graph class, for which they get stuck before ordering the whole graph. But this is not important, because one could instead redefine the alphabet to consist only of usable characters.</p>
<p>Given a language that satisfies all of these properties, one can show that all non-extendable strings are equally long and use the same alphabet as each other. For, if we have two different non-extendable strings \(S\) and \(T\), we can morph \(S\) into \(T\) one step at a time, never shortening it or changing its character set, by finding the first position at which \(S\) and \(T\) differ, finding the character \(t\) that \(T\) has at that position (necessarily also used later in \(S\) because it was usable at that position and would have remained usable until it was used), and repeatedly using the anti-exchange axiom to swap \(t\) for the previous character in \(S\) until it has been swapped into a match with \(T\). The oblivious property ensures that the part of the string after the swap remains valid. So \(S\) cannot be shorter than or miss any characters from \(T\), nor vice versa.</p>
<p>Instead of the anti-exchange axiom, the distance-hereditary and cop-win orderings satisfy a weaker property, based on the notion of swapping two characters.</p>
<dl>
<dt>Transposition:</dt>
<dd>
<p>Suppose \(S\) is a string, \(x\) and \(y\) are different characters, and \(Sx\) and \(Sy\) both belong to the language, but \(Sxy\) does not. Then for all \(T\) not containing \(x\) or \(y\), \(SxT\) is in the language if and only if \(SyT\) is also in the language, and \(SxTy\) is in the language if and only if \(SyTx\) is also in the language.</p>
</dd>
</dl>
<p>The last part of the transposition property, about \(SxTy\) and \(SyTx\), is only included because we used a weak version of obliviousness; if we used the stronger version, it would follow from the earlier part of the transposition property.</p>
<h1 id="cop-win-and-distance-hereditary-orderings-have-the-transposition-property">Cop-win and distance-hereditary orderings have the transposition property</h1>
<p>Let’s suppose we’re trying to dismantle a cop-win graph by repeatedly removing dominated vertices, in the hope of getting down to a single vertex. After we’ve removed some vertices already in a sequence \(S\), two vertices \(x\) and \(y\) might become included in the set of dominated vertices. This can happen in several different ways:</p>
<ul>
<li>It might be the case that \(x\) is dominated by a vertex that is not \(y\), and that \(y\) is dominated by a vertex that is not \(x\). When this happens, they can be removed in either order: removing one won’t change the fact that the other is dominated by whatever other vertex dominated it already.</li>
<li>It might be the case that \(x\) is dominated by \(y\), and \(y\) is dominated by a third vertex \(z\). But then \(x\) is also dominated by \(z\), and again they can be removed in either order. When one is removed, the other is still dominated by \(z\).</li>
<li>The only remaining case is that \(x\) and \(y\) are each dominated only by the other of these two vertices. In this case, we can remove one or the other but not both. But if \(x\) and \(y\) dominate each other, they have the same neighbors (they are twins), and there is a symmetry of the remaining subgraph swapping \(x\) and \(y\). So in this case, any continuation of the removal sequence \(S\) can have \(x\) replaced by \(y\) and vice versa, and still be a valid continuation. This is exactly what the transposition property states.</li>
</ul>
<p>The argument for distance-hereditary orderings is even easier. If \(x\) and \(y\) are not twins of each other, then removing one won’t affect the removability of the other. If they are twins, then they are symmetric and any continuation of the removal sequence can exchange \(x\) for \(y\) without changing its validity.</p>
<h1 id="orderings-with-transposition-form-greedoids">Orderings with transposition form greedoids</h1>
<p>If we can’t obtain an antimatroid from the cop-win or distance-hereditary graphs, we might at least hope for a more general structure, a greedoid. The key property of greedoids (viewed as hereditary normal languages rather than their usual definition as set systems) is the following axiom:</p>
<dl>
<dt>Exchange:</dt>
<dd>If \(S\) is a longer string in the language of a greedoid, and \(T\) is a longer string in the same language, then there is a character \(x\) in \(T\) such that \(Sx\) is a string in the language.</dd>
</dl>
<p>This implies that all maximal strings in the language have the same length, and in the cop-win and distance-hereditary cases it implies that all greedy dismantling or deconstruction sequences reach a single vertex without getting stuck along the way. The greedoid exchange property also immediately implies the strong version of the obliviousness property, by plugging in a permutation of \(Sx\) as the string \(T\) in the exchange property.</p>
<p>To prove that indistinguishability implies the exchange property, let \(S\) be any string in an indistinguishable (hereditary normal oblivious) language, and let \(T\) be a longer string, which we might as well assume to be maximal. If \(S\) is a prefix of \(T\), then obviously we can satisfy the exchange property: just take the prefix of \(T\) that has one more character.</p>
<p>Otherwise, I claim that we can replace \(T\) by a different string \(T'\) of the same length that agrees with \(S\) for more positions. To find \(T'\), let \(y\) be the first character of \(S\) that differs from the corresponding character of \(T\); this must exist by the assumption that \(S\) is not a prefix of \(T\). Obviously, at the position of \(y\) in \(S\), we could have added it to \(T\), but instead some other character was chosen. Maybe, \(y\) remained available to be chosen throughout the remaining positions of \(T\), until it actually was chosen. If so, just as in the antimatroid case, we could repeatedly swap \(y\) with its predecessor in \(T\) until reaching a string \(T'\) where \(y\) is in the correct position. Alternatively, maybe at some point during the construction of sequence \(T\), we chose a character \(z\) causing \(y\) to become unavailable. In this case, by the transposition property, we can swap \(y\) for \(z\) in \(T\) and then as before repeatedly swap \(y\) with its predecessor in \(T\) until reaching a string \(T'\) where \(y\) is in the correct position.</p>
<p>By repeatedly replacing \(T\) by equally long strings that agree with more and more positions of \(S\), we eventually reach a string for which \(S\) is a prefix, and can append one more character. This construction of \(T'\) from \(T\) does not include any new characters that weren’t already in \(S\) or \(T\), so the appended character must have come from \(T\), proving the exchange axiom.</p>
<p>The use of the transposition property to form greedoids is standard; these greedoids are called transposition greedoids, and are described e.g. by Björner and Ziegler in their introduction to greedoids in the book <em>Matroid Applications</em>. Another <a href="https://doi.org/10.1007/978-3-642-58191-5_10">book chapter on transposition greedoids</a>, in the book <em>Greedoids</em> by Korte, Schrader, and Lovász, includes another graph-theoretic example where the elements are edges of series-parallel graphs. The part that appears to be less standard is the use of this property to explain the ability of greedy algorithms to recognize cop-win and distance-hereditary graphs. I looked, but was unable to find publications observing that these two classes of graphs lead to greedoids or transposition greedoids, despite some suspiciously-similar terminology (“twins”, “dismantling”) on both sides. If anyone knows of such publications, I’d appreciate hearing of them, so that I could add this connection to their Wikipedia articles.</p>
<p>(<a href="https://mathstodon.xyz/@11011110/106495619434427598">Discuss on Mastodon</a>)</p>David EppsteinI’m a big fan of using antimatroids to model vertex-ordering processes in graphs such as the construction of topological orderings in directed acyclic graphs and perfect elimination orderings in chordal graphs. In each case a vertex can be removed from the graph and added to the order when it obeys a local condition: its remaining neighbors are all outgoing for topological orderings, or all adjacent for perfect elimination orderings. Once this condition becomes true of a vertex it remains true until the vertex is added to the order, the defining property of an antimatroid. Because of this property, a greedy algorithm for finding these orderings can never make a mistake: if there exists an ordering of all of the vertices, it is always a safe choice to add any vertex that can be added.Linkage2021-06-15T23:31:00+00:002021-06-15T23:31:00+00:00https://11011110.github.io/blog/2021/06/15/linkage<ul>
<li>
<p><a href="https://blog.computationalcomplexity.org/2021/05/what-is-natural-question-who-should.html">What is a natural question?</a> (<a href="https://mathstodon.xyz/@11011110/106339474749439957">\(\mathbb{M}\)</a>) Gasarch on distinguishing notions of interestingness of mathematical problems based on ability to answer them, versus whether they lead to deeper mathematics.</p>
</li>
<li>
<p>Bad geometry in an illustration of parallel parking advice to change steering lock-to-lock when you reach a 45° angle (<a href="https://mathstodon.xyz/@11011110/106345620085904810">\(\mathbb{M}\)</a>): this car is going to end up halfway over the curb. Really the inflection angle depends on the distance from curb and your car’s turning radius. You should switch direction when the rear axle midpoint is halfway between its starting and ending lines of motion, or approximately when the passenger rear wheel is a bit less than halfway to the curb. This car went past that point and can’t straighten before reaching the curb.</p>
<p style="text-align:center"><img src="/blog/assets/2021/parallel-park.jpg" alt="Top-down view of parallel parking, with the path of the rear-axle centerline shown in red. With the centerline ending up on the curb at the end of the path, the car itself will be well over the curb." width="60%" /></p>
</li>
<li>
<p><a href="https://www.quantamagazine.org/mathematicians-identify-threshold-at-which-shapes-give-way-20210603/">How smooth can Nash–Kuiper embeddings be?</a> (<a href="https://mathstodon.xyz/@11011110/106347809760355726">\(\mathbb{M}\)</a>) Recent progress identifies a strict threshold at \(C^{1,1/2}\). A new popularized and high-level survey on <em>Quanta</em>. See Wikipedia for more on the <a href="https://en.wikipedia.org/wiki/Nash_embedding_theorem">Nash embedding theorem</a> (here, in the form that all 2d surfaces have non-smooth embeddings in 3d preserving distances along surface curves) and on <a href="https://en.wikipedia.org/wiki/H%C3%B6lder_condition">the notions of fractional smoothness considered here</a>, left unexplained by the <em>Quanta</em> article.</p>
</li>
<li>
<p><a href="https://xenaproject.wordpress.com/2021/06/05/half-a-year-of-the-liquid-tensor-experiment-amazing-developments/">Interesting progress report by Peter Scholze on the formalized and computer-verified proof of some difficult material in analytic geometry</a> (<a href="https://mathstodon.xyz/@11011110/106359088815982703">\(\mathbb{M}\)</a>).</p>
</li>
<li>
<p><a href="http://web.stanford.edu/~mleake/projects/paperpiecing/">A mathematical foundation for foundation paper pieceable quilts</a> (<a href="https://mathstodon.xyz/@11011110/106362497443237500">\(\mathbb{M}\)</a>, <a href="https://www.metafilter.com/191666/Quilters-are-the-best-at-graph-theory">via</a>). They formalize things by hypergraphs, but I prefer <a href="https://en.wikipedia.org/wiki/Antimatroid">antimatroids</a>: a pattern is piecable if and only if you can slice off one piece at a time by guillotine cuts, eventually slicing everything. The possible slicing orders form an antimatroid, because a piece, once sliceable, remains so until it is sliced. The piecing order is the reverse of a slicing order.</p>
</li>
<li>
<p>Firefox’s “reader mode”, in which you can click on little page-with-text icon next to the url, and get view of text stripped of extraneous framing, is useful (<a href="https://mathstodon.xyz/@11011110/106370852134898457">\(\mathbb{M}\)</a>), but it would be more useful <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1466044">if it actually worked for pages with mathematical content</a>.</p>
</li>
<li>
<p>One of the footpaths through my neighborhood is next to a small field with two chess tables (<a href="https://mathstodon.xyz/@11011110/106372538313055882">\(\mathbb{M}\)</a>). They’ve been overgrown and largely unused for quite a while, but a few months back the neighborhood association’s gardeners cleared the field and planted some ginkgo trees around the tables. Someone has been playing chess there with pine cones:</p>
<p style="text-align:center"><img src="https://www.ics.uci.edu/~eppstein/pix/uhchess/Chess-m.jpg" alt="UCI Ecological Preserve" style="border-style:solid;border-color:black;" width="80%" /></p>
</li>
<li>
<p><a href="https://www.quantamagazine.org/why-is-quantum-computing-so-hard-to-explain-20210608/">Scott Aaronson, in <em>Quanta</em>, on why the glib popularizations of quantum computing typically found in publications like <em>Quanta</em> are usually wrong</a> (<a href="https://mathstodon.xyz/@11011110/106377151244377180">\(\mathbb{M}\)</a>, <a href="https://www.scottaaronson.com/blog/?p=5539">see also</a>).</p>
</li>
<li>
<p><a href="https://nautil.us/issue/23/dominoes/the-amazing-autotuning-sandpile">The amazing, autotuning sandpile</a> (<a href="https://mathstodon.xyz/@11011110/106389220646874351">\(\mathbb{M}\)</a>). Jordan Ellenberg on <a href="https://en.wikipedia.org/wiki/Abelian_sandpile_model">abelian sandpile models</a>, with pretty pictures of the fractal patterns they generate, from 2015. These patterns are still a topic of active research; see e.g. “<a href="https://annals.math.princeton.edu/2017/186-1/p01">The Apollonian structure of integer superharmonic matrices</a>”, <em>Ann. Math.</em> 2017, , and “<a href="https://doi.org/10.1073/pnas.1812015116">Harmonic dynamics of the abelian sandpile</a>”, <em>PNAS</em> 2019.</p>
</li>
<li>
<p><a href="https://mathemalchemy.org/2021/01/19/dodecahedral-trajectory/">Dodecahedral trajectory</a> (<a href="https://mathstodon.xyz/@11011110/106395952293245848">\(\mathbb{M}\)</a>). Mathematical glass artist Bronna Butler visualizes closed geodesics from and returning to a single vertex on the dodecahedron, using stained glass. These paths exist only on the dodecahedron, among the Platonic solids: geodesics starting from a vertex on the other solids will either hit another vertex before returning, or never return.</p>
</li>
<li>
<p><a href="https://www.wired.com/story/twitter-photo-crop-algorithm-favors-white-faces-women/">Automatic face-recognition systems used to auto-crop social media photos discovered to be racist and sexist</a> (<a href="https://mathstodon.xyz/@11011110/106402230076815482">\(\mathbb{M}\)</a>). This sort of thing is part of a long line of stories of computer systems learning to replicate the biases of their developers, and one of many reasons we need greater diversity in CS.</p>
</li>
<li>
<p><em><a href="https://doi.org/10.1007/978-981-15-4470-5">Introduction to Computational Origami</a></em> (<a href="https://mathstodon.xyz/@11011110/106407675350595758">\(\mathbb{M}\)</a>), Ryuhei Uehara’s 2020 book, is the subject of <a href="https://www.maa.org/press/maa-reviews/introduction-to-computational-origami">a new featured review by Tom Hull on <em>MAA Reviews</em></a>.</p>
</li>
<li>
<p><a href="http://gregegan.net/SCIENCE/Howell/Howell.html">Howell’s moving orbits</a> (<a href="https://mathstodon.xyz/@11011110/106413218848247270">\(\mathbb{M}\)</a>). Greg Egan explains the early research of <a href="https://en.wikipedia.org/wiki/Kathleen_Howell">Kathleen Howell</a> on the existence of first-order-stable <a href="https://en.wikipedia.org/wiki/Halo_orbit">halo orbits</a> of a third small body under the gravitational influence of two larger bodies, related to the (unstable) L1 and L2 Lagrange points.</p>
</li>
<li>
<p><a href="http://gallery.bridgesmathart.org/exhibitions/2021-bridges-conference">The 2021 Bridges Conference Mathematical Art Galleries</a> (<a href="https://mathstodon.xyz/@11011110/106418890356129959">\(\mathbb{M}\)</a>) are online even though <a href="https://www.bridgesmathart.org/b2021/">the online conference itself is not until August</a>. I haven’t yet had time to explore all of them but there are lots of good pieces in there.</p>
</li>
</ul>David EppsteinWhat is a natural question? (\(\mathbb{M}\)) Gasarch on distinguishing notions of interestingness of mathematical problems based on ability to answer them, versus whether they lead to deeper mathematics.Carrying as chip-firing for the Zeckendorf representation2021-06-12T10:47:00+00:002021-06-12T10:47:00+00:00https://11011110.github.io/blog/2021/06/12/carrying-chip-firing<p>You may have heard of the <a href="https://en.wikipedia.org/wiki/Zeckendorf%27s_theorem">Zeckendorf representation</a> according to which any positive integer can be represented as a sum of non-consecutive Fibonacci numbers. Its uses include the optimal strategy in the game of <a href="https://en.wikipedia.org/wiki/Fibonacci_nim">Fibonacci nim</a>. But did you know that <a href="https://www.irif.fr/~cf/publications/AUFP.pdf">it’s possible to efficiently add and subtract Zeckendorf representations</a>?<sup id="fnref:a" role="doc-noteref"><a href="#fn:a" class="footnote" rel="footnote">1</a></sup> The algorithm from the paper linked above takes three passes over the input digit sequences using finite state automata, much like binary number addition can be performed by a single pass of a finite state automaton. I thought it might be interesting to describe an alternative path to the same result, using <a href="https://en.wikipedia.org/wiki/Chip-firing_game">chip-firing games</a>.</p>
<h1 id="the-chip-firing-antimatroid">The chip-firing antimatroid</h1>
<p><a href="https://en.wikipedia.org/wiki/Chip-firing_game">Chip-firing games</a>, or <a href="https://en.wikipedia.org/wiki/Abelian_sandpile_model">sandpile models</a>, are systems described by a graph, with markers of some kind such as coins on its vertices. The graph may possibly be directed, although in the simplest examples it is undirected, and it may be infinite. Each vertex may have arbitrarily many coins on it. But, if a vertex has at least as many coins as it has outgoing edges, we can “fire” the vertex, moving one coin to each neighbor. This repeats until no more such events are possible. Doing this on an infinite square grid with an initial state that piles many coins on a single vertex leads to pretty fractals; here’s a detail of <a href="https://commons.wikimedia.org/wiki/File:Sandpile_on_infinite_grid,_3e7_grains.png">the result of starting with 30 million coins</a>:</p>
<p style="text-align:center"><img src="/blog/assets/2021/sandpile-30M-detail.png" alt="Detail of abelian sandpile model on square grid with 3x10^7 starting coins, extracted from CC-BY-SA image https://commons.wikimedia.org/wiki/File:Sandpile_on_infinite_grid,_3e7_grains.png by colt_browning" width="80%" /></p>
<p>However, we’ll be looking at this sort of system on one-dimensional infinite graphs, where their behavior is not quite as complicated.</p>
<p>Chip-firing, on any graph and any placement of coins for which it terminates, forms an <a href="https://en.wikipedia.org/wiki/Antimatroid">antimatroid</a>.<sup id="fnref:bls" role="doc-noteref"><a href="#fn:bls" class="footnote" rel="footnote">2</a></sup> <sup id="fnref:k" role="doc-noteref"><a href="#fn:k" class="footnote" rel="footnote">3</a></sup> A vertex \(v\) can fire for the \(i\)th time, as long as it has already fired \(i-1\) times and a total of \(i\cdot\deg(v)\) coins have reached it. Once these conditions are met, they remain true until \(v\) fires. This idea, that once the item \((v,i)\) becomes available to be added to the sequence of firings it remains available until it is added, is the defining principle of an antimatroid. From it one can prove that, if any firing sequence terminates in a stable configuration, then all sequences terminate, they all fire the same vertices the same numbers of times, and they all end in the same stable configuration.</p>
<h1 id="binary-carrying-as-chip-firing">Binary carrying as chip-firing</h1>
<p>A binary representation of a number \(x\) is just a set of distinct powers of two, summing to \(x\). If you add two binary numbers \(x\) and \(y\), you can combine their sets into a single multiset; carrying can be thought of as a systematic method of getting rid of the duplicate powers of two in this multiset. Whenever you have two equal powers of two in a multiset, whose sum you are trying to represent, you can merge them with the fusion rule</p>
\[2^i+2^i \Rightarrow 2^{i+1}.\]
<p>This can be thought of as a chip-firing game on a graph where there is a vertex for every power of two, an edge to the next larger power of two, and an edge to a “<a href="https://en.wikipedia.org/wiki/Bit_bucket">bit bucket</a>” vertex with no outgoing edges (which cannot be fired). Each instantiation of the fusion rule fires vertex \(2^i\), moving one coin to \(2^{i+1}\) and one to the bit bucket.</p>
<p>This is exactly what we are doing when we carry a term in binary addition: taking two powers of two from a column of the addition problem and fusing them into a single power of two in the next column. We can also think of this physically, using a one-dimensional array of cells with poker chips or coins on them, with a coin on cell \(i\) representing the number \(2^i\). The fusion rule takes two coins from any cell and replaces them by a single coin in the next cell. In binary addition of pairs of numbers, there are at most three coins per cell (the two that started out there and one carry), but you could use the same fusion rule for addition of more than two numbers, using an array of cells that can each contain a large pile of coins.</p>
<p style="text-align:center"><img src="/blog/assets/2021/stacks-of-coins.jpg" alt="Five stacks of coins. Image Money-2180330 1920.jpg on Wikimedia commons, uploaded by Stella Vogt from pixabay free images, described as "probably free" but tagged with a CC-BY-SA license." style="border-style:solid;border-color:black;" width="80%" /></p>
<p>Carrying the coin analogy further, we might imagine that the coins have values that are powers of two, and that we are making change by replacing pairs of small coins by a single larger coin of equal value.</p>
<p>Conventional binary arithmetic does these fusion steps in a systematic order, from low-order bits of the binary representation (smaller powers of two) to higher-order bits (larger powers of two). It’s that systematic order, together with the observation that each pile has at most three coins, that makes this method suitable for a finite state machine. But actually, you could apply the fusion rule in any order, and it would work equally well. Each step reduces the number of coins by one, so you can never do more steps than your starting number of coins. We can only halt when we reach the binary representation of the sum, which is uniquely determined, so this process is <a href="https://en.wikipedia.org/wiki/Confluence_(abstract_rewriting)">confluent</a>: every sequence of choices leads to the same eventual outcome. In this case, confluence can also be seen from the antimatroid property of chip-firing games.</p>
<p>This observation about reducing the number of powers of two gives an immediate proof of a fact about binary representations that you may not have known: the binary representation of \(x+y\) has at most as many nonzero bits as there are in \(x\) and \(y\) separately.</p>
<h1 id="chip-firing-for-fibonacci-numbers">Chip-firing for Fibonacci numbers</h1>
<p>Now, instead of coins with power-of-two values, let’s suppose that they have Fibonacci numbers as their values, representing any multiset of Fibonacci numbers. We can still combine pairs of Fibonacci numbers by a fusion rule, that now applies when we have two coins in adjacent piles:</p>
\[F_i + F_{i+1} \Rightarrow F_{i+2}.\]
<p>But in order to get the Zeckendorf representation of the sum of the multiset, we also need to deal with pairs of coins that have the same value, because repeated copies of the same Fibonacci number are not allowed in the Zeckendorf representation. We can accomplish this by a “fission” rule, that steps backwards according to the fusion rule in order to take a bigger step forwards:</p>
\[F_i+F_i \Rightarrow F_{i-2}+F_{i-1}+F_i\Rightarrow F_{i-2}+F_{i+1}.\]
<p>This makes sense even when \(F_i\) is \(1\) or \(2\): for \(F_i=1\), the \(F_{i-2}\) term is zero and can be dropped from the sum, and for \(F_i=2\) it equals one, a Fibonacci number. So as special cases of this rule we have \(1+1\Rightarrow 2\) and \(2+2\Rightarrow 1+3\).</p>
<p>Several issues complicate the analysis of this replacement system. First, although fission by itself is a chip-firing rule on an infinite graph with outdegree two, fission and fusion together make a more complicated system that is not an antimatroid, so different orderings of choosing what to do may lead to different numbers of steps. Second, the fission rule changes the piles of coins both to the left and to the right of the pile to which it applies, making it harder to find a consistent ordering in which to apply these rules. And third, fission preserves the number of coins rather than reducing them, making both the eventual termination of the system and the analysis of how many steps it takes less obvious. But assuming it does terminate, it can only terminate at the Zeckendorf representation, which is unique. So termination implies confluence.</p>
<h1 id="fission-without-fusion">Fission without fusion</h1>
<p>First let’s see what happens if we just use the fission rule, forgetting about the fusion rule. Because fission by itself is a chip-firing rule, any initial state has an invariant number of firings and an invariant final state, regardless of the order of operations. For an initial state with \(n\) copies of \(F_i\), the final state gives us an expansion of \(F_i\) into a sum of \(n\) distinct Fibonacci numbers:</p>
\[F_i = F_i\]
\[2\,F_i = F_{i-2}+F_{i+1}\]
\[3\,F_i=F_{i-2}+F_i+F_{i+1}\]
\[4\,F_i=F_{i-4}+F_{i-3}+F_i+F_{i+2}\]
\[\vdots\]
<p>The indexes appearing in these identities can be summarized in a <a href="https://en.wikipedia.org/wiki/Category:Triangles_of_numbers">triangle of numbers</a>:</p>
\[\begin{array}{ccccccc}
&&&&&&0&&&&&&\\
&&&&&-2&&\ 1\ &&&&&\\
&&&&-2&&0&&\ 1\ &&&&\\
&&&-4&&-3&&0&&\ 2\ &&&\\
&&-4&&-3&&-2&&1&&\ 2\ &&\\
&-4&&-3&&-2&&0&&1&&\ 2\ &\\
-6&&-5&&-4&&-3&&-1&&1&&\ 3\ \\
&&&&&&\vdots&&&&&&\\
\end{array}\]
<p>The largest number in each row grows only logarithmically with \(n\), because of the way the values of the Fibonacci numbers grow exponentially as a function of their index. The fission rule cannot create gaps of three or more empty cells,
so consecutive numbers in a row differ by at most three, implying that the smallest number in each row is greater than \(-3n\). Because of this linear bound on how far fission can move the coins, we get a quadratic bound on the total number of firing events: each firing decreases the total distance of the coins from cell \(-3n\). This total distance starts at \(3n^2\) and remains positive, so there can be at most \(3n^2\) firings. In computational experiments up to \(n=10000\) the actual number of firings never exceeded \(n^2\) and appeared to be growing as \(n^2\bigl(1-o(1)\bigr)\). This is a big contrast from the behavior of the similar-looking chip-firing rule on a line of cells that replaces pairs of coins by a coin one cell to the left and a coin one cell to the right, which (with \(n\) chips starting in a pile on one cell) produces a <a href="https://en.wikipedia.org/wiki/Square_pyramidal_number">square pyramidal number</a> of firings, cubic in \(n\).</p>
<p>For initial coins that are not all in one big pile, it remains impossible for fission to produce new long gaps, and we can decompose the sequence of cells into subsequences of linear length separated by gaps too long to be crossed. The same analysis of total distance of coins from the starts of sequences of cells shows that, regardless of starting state, and even if we also allow fusion rules, we get an \(O(n^2)\) bound on the total number of steps. In particular, this system always terminates.</p>
<h1 id="taking-few-steps">Taking few steps</h1>
<p>Fortunately, we don’t have to take quadratic time to simplify sums of Fibonacci numbers into their Zeckendorf representations using these rules. The problem with the previous analysis was that we were doing too much fission before we did any fusion. Suppose we sidestep that with the following prioritization:</p>
<ul>
<li>If any fusion step would put a coin into a pile that is currently empty, do it.</li>
<li>Otherwise, perform a fission step at the pile with the largest possible index.</li>
</ul>
<p>If any fusion steps are possible, there must be at least one (for instance, the one with the largest index) that is prioritized. To analyze these prioritized steps, define \(N\) to be the current number of coins, and \(M\) to be the number of coins that are at or below a pile with two or more coins on it. The key insight is that whenever a step moves a coin to a pile with a larger index, it cannot form a new larger-index multi-coin pile, so both \(M\) and \(N\) are non-decreasing. They can stay the same only for a fission step at a pile of three or more coins, but in that case the next step must be a fusion. \(M\) and \(N\) are both \(\le n\), and their sum decreases at least once for every two steps, so the total number of steps is \(\le 4n\). Thus, this prioritized chip-firing method can reduce any sum of Fibonacci numbers to its Zeckendorf representation in a linear number of steps. It’s also not difficult to implement so that it takes linear time.</p>
<h1 id="zeckendorf-arithmetic">Zeckendorf arithmetic</h1>
<p>Anyway, now that we have a way of simplifying sums of Fibonacci numbers to their Zeckendorf form, let’s use it for arithmetic on Zeckendorf representations, without the need to reduce them to simpler forms.</p>
<p>First, addition. This is very easy: Add the two Zeckendorf representations as multisets (producing piles of coins that might be adjacent, or might have two coins in them) and then simplify. The result is a linear time for adding two Zeckendorf representations, as was already known. But because it isn’t based on finite state machines, it can also handle more than two coins, for instance by adding multiple numbers at once rather than having to reduce the problem to multiple pairwise additions. As with binary arithmetic, the chip-firing method gives a quick proof of a non-obvious fact: the Zeckendorf representation of \(x+y\) has at most as many nonzero terms as there are in \(x\) and \(y\) put together.</p>
<p>It’s also possible to use this technique (or really, any linear-time Zeckendorf addition algorithm) as part of a long multiplication algorithm for Zeckendorf representations. To multiply two numbers \(x\) and \(y\), both given by their Zeckendorf representations, first perform a sequence of additions to compute the representations of the numbers \(F_i\cdot x\), each computed as \((F_{i-1}\cdot x)+(F_{i-2}\cdot x)\) in a single addition from earlier numbers in the sequence. Then pick out the subset of these representations for which \(F_i\) belongs to the Zeckendorf representation of \(y\), and add them together. (Or interleave the computation of \(F_i\cdot x\) and the sum of these representations, to save space.) The total time for \(\ell\)-bit inputs is \(O(\ell^2)\), as it is for the usual long multiplication algorithm. I’m using the different variable \(\ell\), because the time here is a function of all the bits in the input Zeckendorf representation, rather than just the number of nonzero bits.</p>
<p>You can convert a binary number to Zeckendorf with the same idea, computing the sequence of powers of two and then picking out and adding together the subset of these powers used in the binary representation of the input. In the other direction, you can convert a Zeckendorf representation to binary by computing the Fibonacci sequence in binary, picking out the terms from the given Zeckendorf representation, and adding them. Both directions of conversion take time \(O(\ell^2)\). A recent paper by Sergeev shows how to do these conversions much more efficient, only logarithmically slower than binary-number multiplication.<sup id="fnref:s" role="doc-noteref"><a href="#fn:s" class="footnote" rel="footnote">4</a></sup> Based on Sergeev’s results it would also be much more efficient (in theory at least, if not necessarily in practice) to multiply Zeckendorf representations by converting to binary, multiplying in binary, and converting back.</p>
<p>As the article I linked at the start hints, the direct algorithms described here are a bit unsatisfactory from the point of view of circuit complexity: the circuit size is ok but the circuit depth is much larger than it would be for binary arithmetic. I’m not convinced that this is a serious deficiency, because we’re not likely to build computers that use this arithmetic at the circuit level. Any algorithms like this are more likely to be used only in specialized situations where Zeckendorf arithmetic is relevant, like the analysis of certain combinatorial games.</p>
<div class="footnotes" role="doc-endnotes">
<ol>
<li id="fn:a" role="doc-endnote">
<p>Connor Ahlbach, Jeremy Usatine, Christiane Frougny, and Nicholas Pippenger (2013), “Efficient algorithms for Zeckendorf arithmetic”, <em>Fibonacci Quarterly</em> 51 (3): 249–255, <a href="https://arxiv.org/abs/1207.4497">arXiv:1207.4497</a>, <a href="https://www.ams.org/mathscinet-getitem?mr=3093678">MR3093678</a>. <a href="#fnref:a" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:bls" role="doc-endnote">
<p>Anders Björner, László Lovász, and Peter Shor (1991), “Chip-firing games on graphs”, <em>European Journal on Combinatorics</em> 12 (4): 283–291, <a href="https://doi.org/10.1016/S0195-6698(13)80111-4">doi:10.1016/S0195-6698(13)80111-4</a>, <a href="https://www.ams.org/mathscinet-getitem?mr=1120415">MR1120415</a>. <a href="#fnref:bls" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:k" role="doc-endnote">
<p>Kolja Knauer (2009), “Chip-firing, antimatroids, and polyhedra”, EuroComb 2009, <em>Electronic Notes in Discrete Mathematics</em> 34: 9–13, <a href="https://doi.org/10.1016/j.endm.2009.07.002">doi:10.1016/j.endm.2009.07.002</a>, <a href="https://www.ams.org/mathscinet-getitem?mr=2591410">MR2591410</a>. <a href="#fnref:k" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:s" role="doc-endnote">
<p>I. S. Sergeev (2018), “On the complexity of Fibonacci coding”, <em>Problems of Information Transmission</em> 54: 343–350, <a href="https://doi.org/10.1134/S0032946018040038">doi:10.1134/S0032946018040038</a>, <a href="https://www.ams.org/mathscinet-getitem?mr=3917588">MR3917588</a>. <a href="#fnref:s" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
</ol>
</div>
<p>(<a href="https://mathstodon.xyz/@11011110/106399026271211456">Discuss on Mastodon</a>)</p>David EppsteinYou may have heard of the Zeckendorf representation according to which any positive integer can be represented as a sum of non-consecutive Fibonacci numbers. Its uses include the optimal strategy in the game of Fibonacci nim. But did you know that it’s possible to efficiently add and subtract Zeckendorf representations?1 The algorithm from the paper linked above takes three passes over the input digit sequences using finite state automata, much like binary number addition can be performed by a single pass of a finite state automaton. I thought it might be interesting to describe an alternative path to the same result, using chip-firing games. Connor Ahlbach, Jeremy Usatine, Christiane Frougny, and Nicholas Pippenger (2013), “Efficient algorithms for Zeckendorf arithmetic”, Fibonacci Quarterly 51 (3): 249–255, arXiv:1207.4497, MR3093678. ↩Linkage2021-05-31T14:09:00+00:002021-05-31T14:09:00+00:00https://11011110.github.io/blog/2021/05/31/linkage<ul>
<li>
<p><a href="https://www.thisiscolossal.com/2021/05/ememem-street-mosaics/">Ememem’s mosaic interventions in the potholes of Lyon</a> (<a href="https://mathstodon.xyz/@11011110/106251596474278206">\(\mathbb{M}\)</a>, <a href="https://www.ememem-flacking.net/flacking">see also</a>, <a href="https://boingboing.net/2021/05/17/this-artist-repairs-damaged-sidewalks-with-beautiful-mosaic-tiles.html">and also</a>). I find this kind of urban kintsugi pleasing, not just for its aspect of guerilla art, but for the sharp geometric patterns of the mosaics and the rough boundaries where they meet the landscape around them.</p>
</li>
<li>
<p><a href="https://tilings.math.uni-bielefeld.de/">Tilings encyclopedia</a> (<a href="https://mathstodon.xyz/@11011110/106255097813445827">\(\mathbb{M}\)</a>). An online collection of many pretty substitution tilings. What’s missing to make it closer to OEIS in usefulness is a way to search by tiling rather than by keyword in the description of the tiling.</p>
</li>
<li>
<p>At UC Irvine, we’ve been using Piazza for online course forums, but Piazza insists on serving ads to students (despite being paid), so we’re moving to <a href="https://edstem.org/us/">Ed Discussion</a> instead (<a href="https://mathstodon.xyz/@11011110/106258490049583719">\(\mathbb{M}\)</a>). You can see similar moves at <a href="https://rtl.berkeley.edu/news/piazza-and-new-online-discussion-platform-update">Berkeley</a> and <a href="https://news.psu.edu/story/641227/2020/12/07/academics/piazza-class-discussion-platform-start-displaying-advertisements">Penn State</a>. Usually I mistrust campus choices of software infrastructure — they tend to go for big crufty hard-to-use packages that are a poor fit for our needs — but this appears to be for good reason and I support it.</p>
</li>
<li>
<p><a href="https://www.quantamagazine.org/mathematicians-answer-old-question-about-odd-graphs-20210519/"><em>Quanta</em> highlights one of my UCI colleagues, Asaf Ferber, for his work with Michael Krivelevich proving that every graph without isolated vertices has an induced subgraph of \(\Omega(n)\) vertices in which all vertices have odd degree</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/106265785749549559">\(\mathbb{M}\)</a>).</span> As usual, they also get important details wrong, forgetting to mention that the subgraphs must be induced, and also not mentioning the requirement of no isolated vertices. For the actual preprint see <a href="https://arxiv.org/abs/2009.05495">arXiv:2009.05495</a>.</p>
</li>
<li>
<p><a href="https://www.insidehighered.com/news/2021/05/20/unc-chapel-hill-board-doesnt-approve-tenure-noted-journalist">Academic freedom dead at U. of North Carolina</a> (<a href="https://mathstodon.xyz/@11011110/106269430445568583">\(\mathbb{M}\)</a>, <a href="https://www.metafilter.com/191525/Nikole-Hannah-Jones-Denied-Tenure-at-UNC">via</a>, <a href="https://www.nytimes.com/2021/05/19/business/media/nikole-hannah-jones-unc.html">see also</a>): right-wing board of trustees cancel-cultures MacArthur and Pulitzer winner Nikole Hannah-Jones for racist/political reasons (they don’t want anyone to talk about US slavery and ongoing systemic racism). To be clear, she still has a position at UNC; after the trustees denied her tenure, her department gave her a five-year-renewable spot not requiring trustee approval.</p>
</li>
<li>
<p><a href="https://gilkalai.wordpress.com/2021/05/20/to-cheer-you-up-in-difficult-times-25-some-mathematical-news-part-2/">Some mathematical news</a> (<a href="https://mathstodon.xyz/@11011110/106277146476845581">\(\mathbb{M}\)</a>). Gil Kalai rounds up a lot of recent developments in knot recognition complexity, exotic spheres, numbers of fixed points, graph theory, and additive combinatorics.</p>
</li>
<li>
<p><a href="https://www34.homepage.villanova.edu/robert.jantzen/notes/torus/cavatappo20/">Tilted cavatappo surfaces</a> (<a href="https://mathstodon.xyz/@11011110/106280088634102191">\(\mathbb{M}\)</a>). Robert Jantzen studies the shape of <a href="https://en.wikipedia.org/wiki/Cavatappi">corkscrew tube pasta</a> and of shortest paths on its surface. See also his preprints <a href="https://arxiv.org/abs/1301.0013">arXiv:1301.0013</a> and <a href="https://arxiv.org/abs/1402.3284">arXiv:1402.3284</a>.</p>
</li>
<li>
<p>Here’s an unexpected property of hyperbolic geometry (<a href="https://mathstodon.xyz/@11011110/106288718744948273">\(\mathbb{M}\)</a>), or at least, it struck me as counterintuitive: all lines through two opposite quadrants of two perpendicular lines pass near their crossing, within distance \(\ln(1+\sqrt2)\). The figure below uses the upper halfplane model to show two quadrants (dark yellow), their convex hull (light yellow, from which the lines cannot escape), and a circle of radius \(\ln(1+\sqrt2)\) centered at the crossing, separating the quadrants.</p>
<p style="text-align:center"><img src="/blog/assets/2021/double-wedge-hull.svg" alt="Convex hull of the quadrants formed in the hyperbolic plane by two perpendicular lines, and a circle centered at the crossing separating the quadrants" /></p>
</li>
<li>
<p><a href="https://www.youtube.com/watch?v=HeQX2HjkcNo">Veritaserium on Cantor, Gödel, and Turing</a> (<a href="https://mathstodon.xyz/@gnivasch/106290995069247640">\(\mathbb{M}\)</a>).</p>
</li>
<li>
<p>At a time when national borders have largely shut down, significantly decreasing the opportunities for higher education for people with the misfortune to be born in the wrong part of the world, <a href="https://www.latimes.com/california/story/2021-05-25/bold-plan-for-uc-admissions-reduce-out-of-state-students">California’s legislators are pushing to enact the same barriers to education across state lines</a> (<a href="https://mathstodon.xyz/@11011110/106297102605074297">\(\mathbb{M}\)</a>), preventing access to education and hurting the state itself by discouraging the best and brightest from coming here.</p>
</li>
<li>
<p>Cellphone snapshot of the UC Irvine Ecological Preserve on a recent cloudy day (<a href="https://mathstodon.xyz/@11011110/106305347918888735">\(\mathbb{M}\)</a>). The foreground is mostly mustard, of no particular ecological significance; the ecological part is the coastal sage scrub on the sunny hillside in the background.</p>
<p style="text-align:center"><img src="https://www.ics.uci.edu/~eppstein/pix/uciep2/DriedMustard-m.jpg" alt="UCI Ecological Preserve" style="border-style:solid;border-color:black;" width="80%" /></p>
</li>
<li>
<p><a href="https://doi.org/10.1007/BF02764015">Aperiodic tilings of the hyperbolic plane by convex polygons</a> (<a href="https://mathstodon.xyz/@11011110/106314334930093898">\(\mathbb{M}\)</a>), Margulis and Mozes, 1998. I knew about the <a href="https://en.wikipedia.org/wiki/Binary_tiling">binary tilings</a> but not this, which gets aperiodicity differently: if a tile’s area isn’t a rational multiple of \(\pi\), it cannot be periodic. This works even for certain hyperbolic rhombi, with angles chosen so they can tile. The tilings can still have 1d symmetry. If some single tile avoids all symmetries, I don’t know about it.</p>
</li>
<li>
<p><a href="http://www.geometrictomography.com/">Geometric tomography</a> (<a href="https://mathstodon.xyz/@11011110/106317414925334494">\(\mathbb{M}\)</a>). A nicely presented brief web survey of this subject, on the reconstruction of 3d shapes from 2d information (such as its brightness function, the areas of its perpendicular projections), by Richard J. Gardner based on his 1995 book of the same title.</p>
</li>
<li>
<p><a href="https://cacm.acm.org/magazines/2021/6/252840-collusion-rings-threaten-the-integrity-of-computer-science-research/fulltext">Collusion rings threaten the integrity of computer science research</a> (<a href="https://mathstodon.xyz/@11011110/106320077489874249">\(\mathbb{M}\)</a>), Michael L. Littman, CACM. Relatedly: <a href="https://www.chemistryworld.com/news/publishers-grapple-with-an-invisible-foe-as-huge-organised-fraud-hits-scientific-journals/4013652.article">“huge organised fraud” in scientific journals</a>, <a href="https://retractionwatch.com/2021/05/29/weekend-reads-gibberish-papers-persist-the-academic-who-faked-cherokee-heritage-organised-fraud-hits-scientific-journals/">via Retraction Watch</a>.</p>
</li>
<li>
<p><a href="https://www.youtube.com/watch?v=8Sv_FaEN8zE">Five talks from CanaDAM 2021 introducing graph product structure theory and its applications</a> (<a href="https://mathstodon.xyz/@patmorin/106300452133561408">\(\mathbb{M}\)</a>).</p>
</li>
<li>
<p><a href="https://isohedral.ca/heesch-numbers-of-unmarked-polyforms/">Big progress in classifying polyforms by their Heesch numbers, obtained by using a SAT solver in place of an ad-hoc backtracking search for tilings</a> (<a href="https://mathstodon.xyz/@11011110/106331731989277653">\(\mathbb{M}\)</a>, <a href="https://www.metafilter.com/191587/TikTok-teen-points-to-inside-elbow-bites-lip-Heeeeeeeesch">via</a>). See also <a href="https://twitter.com/mathpuzzle/status/1397040707706236928">Ed Pegg on an infinite set of polyforms with Heesch = 3</a>.</p>
</li>
</ul>David EppsteinEmemem’s mosaic interventions in the potholes of Lyon (\(\mathbb{M}\), see also, and also). I find this kind of urban kintsugi pleasing, not just for its aspect of guerilla art, but for the sharp geometric patterns of the mosaics and the rough boundaries where they meet the landscape around them.Linkage2021-05-15T17:31:00+00:002021-05-15T17:31:00+00:00https://11011110.github.io/blog/2021/05/15/linkage<ul>
<li>
<p><a href="https://www.amstat.org/asa/News/Greek-Statistician-Found-Liable-for-Slander-Continues-to-Face-Persecution.aspx">Statement of concern from the American Statistical Association over the Greek government’s persecution of former chief statistician Andreas Georgiou</a> (<a href="https://mathstodon.xyz/@11011110/106164322094769198">\(\mathbb{M}\)</a>) for (according to the ASA) producing accurate and truthful statistical reports on the Greek economy that cast disrepute on the unverifiable claims of earlier governments.</p>
</li>
<li>
<p><a href="https://twitter.com/arxivabs">That other microblogging site has a bot specifically devoted to replacing links to pdf versions of arxiv preprints by links to the abstracts of the same preprint</a> (<a href="https://mathstodon.xyz/@11011110/106169351037107488">\(\mathbb{M}\)</a>). Is there something like that for mastodon? If not there should be.</p>
</li>
<li>
<p>For a centrally symmetric star-shaped set in the plane, each line through the center cuts its perimeter into two equal-length curves. But these are not the only shapes with this property: 18th-century Jesuit polymath <a href="https://en.wikipedia.org/wiki/Roger_Joseph_Boscovich">Roger Boscovich</a> observed that a heart-like shape formed by three semicircles has the same property (<a href="https://mathstodon.xyz/@11011110/106175759357772585">\(\mathbb{M}\)</a>, <a href="https://doi.org/10.2307/2974900">via</a>).</p>
<p style="text-align:center"><img src="/blog/assets/2021/boscovich.svg" alt="Boscovich's cardioid, with its perimeter bisected by a line through its cusp" /></p>
</li>
<li>
<p><a href="https://picturethismaths.wordpress.com/2020/10/31/three-correlations-and-a-samosa/">Three correlations and a samosa</a> (<a href="https://mathstodon.xyz/@11011110/106180193506681489">\(\mathbb{M}\)</a>, <a href="https://picturethismaths.wordpress.com/2021/02/03/three-correlations-and-other-statistical-models/">see also</a>, <a href="https://picturethismaths.wordpress.com/2021/03/18/three-correlations-and-an-algebraic-classification/">see also</a>). \(3\times 3\) symmetric matrices with unit diagonals form a three-dimensional linear space, in which the samosa is a curvy 3d convex set representing the positive definite matrices. Taking sections of it allows you to infer the possible correlations between two variables, given each of their correlations with a third.</p>
</li>
<li>
<p>I couldn’t resist picking up a copy of <em>The Architecture of Trees</em> (<a href="https://mathstodon.xyz/@11011110/106184861337043968">\(\mathbb{M}\)</a>), a coffee-table book centered on pen-and-ink illustrations of the summer and winter forms of over 200 types of tree, on a recent visit to the Mendocino Coast Botanical Gardens (beautiful this time of year with many flowers in bloom). Some reviews: <a href="https://www.startribune.com/new-book-is-tree-tome-like-few-others-part-science-part-art-marvel/507788702/">1</a>, <a href="https://www.thedailybeast.com/the-architecture-of-trees-travel-with-the-book-that-captures-the-beauty-of-trees">2</a>, <a href="http://spacing.ca/national/2020/08/04/book-review-the-architecture-of-trees/ https://dirt.asla.org/2019/07/10/the-architecture-of-trees-2/">3</a>.</p>
</li>
<li>
<p><a href="http://www.xl-muse.com/html/en/index.php?ac=article&at=read&did=239">Dujiangyan Zhongshuge</a> (<a href="https://mathstodon.xyz/@11011110/106192492039422969">\(\mathbb{M}\)</a>, <a href="https://www.thisiscolossal.com/2021/05/x-living-dujiangyan-zhongshuge/">via</a>), bookstore in Chengdu with mirrored floors and ceilings creating the feeling of an infinite Escher palace of books.</p>
</li>
<li>
<p><a href="http://keenan.is/illustrating/">Illustrating geometry</a> (<a href="https://mathstodon.xyz/@11011110/106204129125568328">\(\mathbb{M}\)</a>). An apparently-defunct blog from 2016–2017 with several interesting posts about technical illustrations in mathematics.</p>
</li>
<li>
<p><a href="https://mathoverflow.net/q/391885/440">Which \(n\times n\times n\) grids have Hamiltonian cycles that turn at every step?</a> (<a href="https://mathstodon.xyz/@11011110/106218352172585271">\(\mathbb{M}\)</a>) After I linked to this, a later answer pointed to the recent book <em>Bicycle or Unicycle？A Collection of Intriguing Mathematical Puzzles</em>, by Stan Wagon and Daniel Velleman, which has solutions for all even \(n\) on pp. 89–96. A simple parity argument shows that it’s impossible on odd grids, but the same book conjectures that these have Hamiltonian paths except in the case \(n=3\).</p>
</li>
<li>
<p><a href="https://wg2021.mimuw.edu.pl/accepted-papers/">Accepted papers to the International Workshop
on Graph-Theoretic Concepts in Computer Science</a> (<a href="https://mathstodon.xyz/@11011110/106220947095567586">\(\mathbb{M}\)</a>). My paper “<a href="/blog/2020/10/19/graphs-stably-matchable.html">The Graphs of Stably Matchable Pairs</a>” is one of them. The conference will be online June 23–25. Unlike many conferences, WG prepares the proceedings after the conference, to allow authors to incorporate feedback from presentations. Details of how to participate don’t seem to be online but I’m sure they’ll be made available soon.</p>
</li>
<li>
<p><a href="https://igorpak.wordpress.com/2021/05/13/why-you-shouldnt-be-too-pessimistic/">Why you shouldn’t be too pessimistic</a> (<a href="https://mathstodon.xyz/@11011110/106230884405427138">\(\mathbb{M}\)</a>). Igor Pak on the nature of mathematical conjectures.</p>
</li>
<li>
<p><a href="https://www.sciencemag.org/careers/2021/05/two-surnames-no-hyphen-claiming-my-identity-latin-american-scientist">Two surnames, no hyphen: Claiming my identity as a Latin American scientist</a> (<a href="https://mathstodon.xyz/@11011110/106241178695539953">\(\mathbb{M}\)</a>, <a href="https://retractionwatch.com/2021/05/15">via</a>). Johana Goyes Vallejos in <em>Science</em>, on respect for diversity in naming styles in academia.</p>
</li>
</ul>David EppsteinStatement of concern from the American Statistical Association over the Greek government’s persecution of former chief statistician Andreas Georgiou (\(\mathbb{M}\)) for (according to the ASA) producing accurate and truthful statistical reports on the Greek economy that cast disrepute on the unverifiable claims of earlier governments.Congratulations, Dr. Havvaei!2021-05-14T18:48:00+00:002021-05-14T18:48:00+00:00https://11011110.github.io/blog/2021/05/14/congratulations-dr-havvaei<p>It’s getting towards the end of the academic year, that time when students think about finishing up their studies, and today we had another successful Ph.D. defense of one of those students. This time it was one of mine, <a href="https://www.ics.uci.edu/~ehavvaei/">Elham Havvaei</a> (pronounced like the state of Hawai’i, glottal stop at the apostrophe and all, but with a v instead of w, and better known by her nickname Haleh).</p>
<p>Haleh is Iranian, but came to UC Irvine via Florida in 2016, after working for a master’s degree with Narsingh Deo at the University of Central Florida. I’ve written here already about the research she’s done with me: <a href="/blog/2018/10/07/recognizing-sparse-leaf.html">reconstructing unknown trees from graphs connecting close-together leaves</a> (from IPEC 2018 and Algorithmica 2020), <a href="/blog/2019/01/29/simplifying-task-milestone.html">simplifying graphs whose vertices and edges represent the milestones, tasks, and ordering constraints of a project</a> (SWAT 2020), and <a href="/blog/2021/01/27/which-induced-subgraph.html">classifying problems of finding large subgraphs with one property in graphs with another property</a> (not yet published).</p>
<p>Her next step will be taking a position at Twitter in San Francisco, as a data scientist.</p>
<p>Congratulations, Haleh!</p>
<p>(<a href="https://mathstodon.xyz/@11011110/106236739159044402">Discuss on Mastodon</a>)</p>David EppsteinIt’s getting towards the end of the academic year, that time when students think about finishing up their studies, and today we had another successful Ph.D. defense of one of those students. This time it was one of mine, Elham Havvaei (pronounced like the state of Hawai’i, glottal stop at the apostrophe and all, but with a v instead of w, and better known by her nickname Haleh).