Jekyll2022-01-16T07:04:30+00:00https://11011110.github.io/blog/feed.xml11011110Geometry, graphs, algorithms, and moreDavid EppsteinLinkage2022-01-15T23:02:00+00:002022-01-15T23:02:00+00:00https://11011110.github.io/blog/2022/01/15/linkage<ul>
<li>
<p>You can find <a href="https://boingboing.net/2022/01/01/winnie-the-pooh-is-now-officially-public-domain.html">plenty of online stories</a> celebrating the release into the public domain of Winnie the Pooh (text, not film), Hemingway’s The Sun Also Rises, etc. But the situation for Ludwig Wittgenstein is more complicated. All his own writing is now public domain in life+70 countries, but the work of later editors might not be. <a href="https://www.wittgensteinproject.org/w/index.php?title=Project:Why_are_some_of_Wittgenstein%E2%80%99s_texts_missing_from_this_website%3F">Michele Lavazza explains</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107549495811533662">\(\mathbb{M}\)</a>,</span> <a href="https://news.ycombinator.com/item?id=29760747">via</a>).</p>
</li>
<li>
<p><a href="https://www.instagram.com/p/CW0z3zZAlZU/">Math rock</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107554494911062896">\(\mathbb{M}\)</a>,</span> <a href="https://boingboing.net/2022/01/02/the-breathtakingly-gorgeous-work-of-french-comic-artist-jordi-lafebre.html">via</a>), Jordi Lefebre.</p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/Free_abelian_group">Free abelian group</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107557410158230373">\(\mathbb{M}\)</a>),</span> now a Good Article at Wikipedia. This concept may seem trivial at first, wrapped in unnecessary formalism. But these things come up in a lot of seemingly-unrelated contexts: multiplication of rational numbers, addition of integer polynomials, lattices in the geometry of numbers, chains in homology theory, and divisors in algebraic geometry. I worried that its technicality might make it hard to pass GA but fortunately I got a sympathetic reviewer.</p>
</li>
<li>
<p><a href="https://rjlipton.wpcomstaging.com/2022/01/05/quantum-graph-theory/">Quantum graph theory</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107571090684894770">\(\mathbb{M}\)</a>):</span> what happens when qubits have pairwise entanglements described by some graph? And which graphs can be transformed into each other by local quantum operations? Ken Regan explains.</p>
</li>
<li>
<p><a href="https://www.atlasobscura.com/places/gomboc">Giant weeble in a Budapest plaza</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107574673412832258">\(\mathbb{M}\)</a>,</span> <a href="https://3quarksdaily.com/3quarksdaily/2022/01/gomboc.html">via</a>): it wobbles but it won’t fall down. But unlike the childhood toy, it does it despite being of uniform density, because of its special shape, rather than by having a much denser weight near one end. It’s theorized that tortoises have evolved a similar shape so that they can automatically right themselves. For more mathematical details, see <a href="https://en.wikipedia.org/wiki/G%C3%B6mb%C3%B6c">Gömböc on Wikipedia</a></p>
</li>
<li>
<p><a href="https://www.flyingcoloursmaths.co.uk/the-dictionary-of-mathematical-eponymy-the-laves-graph/">Dictionary of mathematical eponymy: The Laves Graph</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107580283699756452">\(\mathbb{M}\)</a>).</span> I did a lot of work in 2014 on this topic in Wikipedia, but it evidently needs more editing for accessibility. I did not know the part about Laves being sent to the army because the Nazis viewed him as sympathetic to Jews, and then pulled into a secret project to develop unobtanium for Göring, guarded by an alchemist who helpfully insisted on adding lizard bones to the alloys and dangling crystal spheres over them.</p>
</li>
<li>
<p>Our quarter started this week, online through Zoom, accessed in Canvas <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107585920689338985">\(\mathbb{M}\)</a>).</span> To set it up I have to:</p>
<ul>
<li>Find and navigate to another site in which I can request a Canvas site, but get redirected to the campus login page, where I have to hand-type my name and password, then get to a page to choose my two-factor authentication, select the phone option on that page, find and unlock my phone, and find and approve the two-factor authentication request on my phone</li>
<li>Back at the site to request a Canvas site, use it to actually request a Canvas site; this does not actually create the site, but rather puts it into a queue to be processed one or two hours later</li>
<li>Once the site is created, navigate to Canvas, going through all the same campus login steps first.</li>
<li>Search the web for the <a href="https://sites.uci.edu/teachanywhere/home/tools/zoom/">campus page on how to enable Zoom</a>, because the steps to do so are not simple or obvious enough to remember, and neither is the location of the campus page.</li>
<li>Follow the five non-obvious steps on that page for adding Zoom to a Canvas site.</li>
<li>Go to the new Zoom tab of my new Canvas site where I still have to go through all of the usual Zoom things to schedule a meeting that repeats weekly but only for some of the weekdays (many more steps).</li>
</ul>
<p>Someone else in the discussion said that to manage their online classes they have to go through seven different web sites; my count is not nearly that high. Whatever happened to the science of user-friendly interfaces?</p>
</li>
<li>
<p><a href="https://scholarlykitchen.sspnet.org/2021/04/14/guest-post-an-early-look-at-the-impact-of-the-chinese-academy-of-sciences-journals-warning-list/">An early look at the impact of the Chinese Academy of Sciences journals warning list</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107591437363977756">\(\mathbb{M}\)</a>).</span> The CAS list does not seem helpful as a tool for identifying specific journals as predatory, because it lists so few, and one has to filter for political motivation, but maybe it can still find patterns of bad publishing practices. I wasn’t particularly surprised to see MDPI and Hindawi high on their hit list, but the presence of a major IEEE journal (IEEE Access) was more interesting.</p>
</li>
<li>
<p><a href="http://www.combinatoire.ca/ArsCombinatoria/index.html">The new web site of the journal <em>Ars Combinatoria</em></a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107593800163410461">\(\mathbb{M}\)</a>),</span> after the old site got taken over by gambling spammers. Thanks to Jannis Harder for finding it for me by tracing through DNS history and trying its old IP address; it wasn’t coming up on searches and I wouldn’t have thought of doing that. Despite being found again, the journal may be in trouble: MathSciNet doesn’t list anything from them in 2021 and the new site says that as of December 2021 the entire editorial board has resigned (with no explanation other than “ask the publisher”).</p>
</li>
<li>
<p><a href="https://www.youtube.com/watch?v=CslIgQvbx0U">Short video of curve-folded squishable paper helix by Richard Sweeney</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107602947906293833">\(\mathbb{M}\)</a>,</span> <a href="https://www.thisiscolossal.com/2022/01/richard-sweeney-paper-sculpture/">via</a>). <a href="/blog/2015/01/31/linkage.html">Sweeney, previously</a>.</p>
</li>
<li>
<p><a href="https://igorpak.wordpress.com/2022/01/09/the-insidious-corruption-of-open-access-publishers/">The insidious corruption of open access publishers</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107608628939783540">\(\mathbb{M}\)</a>):</span> Igor Pak looks at predatory publishing and MDPI through a deep examination of MDPI’s journal <em>Mathematics</em>. Ultimately he concludes that it is not actually a predatory journal, but that doesn’t mean that he thinks it is doing good work. Instead, he favors diamond open-access and in particular arXiv-overlay journals.</p>
</li>
<li>
<p><a href="https://www.thisiscolossal.com/2022/01/david-rivillo-pasta/">Colorful geometric designs for pasta interact interestingly with the pasta’s intricate shapes</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107613972021621156">\(\mathbb{M}\)</a>),</span> by David Rivillo.</p>
</li>
<li>
<p><a href="https://www.quantamagazine.org/mathematicians-clear-hurdle-in-quest-to-decode-prime-numbers-20220113/">Typical incoherence from <em>Quanta</em>’s attempts at making mathematics accessible</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107616481712855051">\(\mathbb{M}\)</a>):</span> “the Riemann hypothesis says that the Riemann zeta function equals zero whenever the real part of \(s\) equals \(\tfrac12\)”. No. No, it doesn’t. Fortunately they fixed it quickly. The actual result in question concerns proving better-than-trivial growth rate on the critical line of \(L\)-functions; see “Bounds for standard \(L\)-functions”, Paul D. Nelson, <a href="https://arxiv.org/abs/2109.15230">arXiv:2109.15230</a>.</p>
</li>
<li>
<p><a href="https://cp4space.hatsya.com/2022/01/14/conway-conjecture-settled/">An unconstructable still life in Conway’s Game of Life</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107621849707591699">\(\mathbb{M}\)</a>).</span> The configuration shown in the link is stable (if its boundary is stabilized appropriately) but, if it appears in any pattern, it must always have been that way, in all predecessors of the pattern. As such, it answers the question “can every still life be constructed by gliders?” negatively.</p>
</li>
<li>
<p><em><a href="http://www.science.smith.edu/~jorourke/PopUps/">Pop-Up Geometry: The Mathematics behind Pop-Up Cards</a></em> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107629200040843502">\(\mathbb{M}\)</a>),</span> new book by Joe O’Rourke, to appear this year. The link goes to Joe’s web site for the book. I haven’t yet seen the actual book, but it looks likely to be very interesting.</p>
</li>
</ul>David EppsteinYou can find plenty of online stories celebrating the release into the public domain of Winnie the Pooh (text, not film), Hemingway’s The Sun Also Rises, etc. But the situation for Ludwig Wittgenstein is more complicated. All his own writing is now public domain in life+70 countries, but the work of later editors might not be. Michele Lavazza explains (\(\mathbb{M}\), via).New Year’s Eve linkage2021-12-31T17:26:00+00:002021-12-31T17:26:00+00:00https://11011110.github.io/blog/2021/12/31/new-years-eve<ul>
<li>
<p><a href="https://diff.wikimedia.org/2021/12/07/from-the-depths-of-wikipedia-an-interview-with-wikimedian-and-influencer-annie-rauwerda/">Interview with Annie Rauwerda</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107461087724307059">\(\mathbb{M}\)</a>,</span> <a href="https://boingboing.net/2021/12/15/interview-with-boing-boing-contributor-annie-rauwerda-of-depths-of-wikipedia-fame.html">via</a>), known for publishing odd stuff from Wikipedia on her social media accounts.</p>
</li>
<li>
<p><a href="http://illusionoftheyear.com/cat/top-10-finalists/2021/">2021 illusion of the year finalists</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107463658141187162">\(\mathbb{M}\)</a>).</span></p>
</li>
<li>
<p><a href="https://www.latimes.com/california/story/2021-12-17/fake-student-bots-enrolled-in-community-colleges-one-professor-has-become-a-bot-sleuthing-continues-to-fight-them">Pierce College professor Kim Rich tracks down fake student bots that enroll in community college courses in order to commit financial aid fraud</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107475116980269890">\(\mathbb{M}\)</a>).</span></p>
</li>
<li>
<p><a href="https://community.wolfram.com/groups/-/m/t/2409294">Fewer 45-60-75 triangles tile the square</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107483368100385397">\(\mathbb{M}\)</a>,</span> <a href="https://twitter.com/mathpuzzle/status/1461421712956956673">via</a>). It’s <a href="https://www.ics.uci.edu/~eppstein/junkyard/acute-square/">possible to tile squares edge-to-edge with fewer acute triangles</a> but if you allow non-edge-to-edge tilings you can use only a single shape (but different sizes) of acute triangle, this one. The minimum number of triangles has been gradually reduced since 1990 when this was discovered; now it’s down to 32.</p>
</li>
<li>
<p>I posted a link to <a href="https://arxiv.org/abs/2102.01543">Ben Green’s super-polynomial lower bounds</a> for off-diagonal van der Waerden numbers <a href="/blog/2021/02/15/linkage.html">last February</a>, based on <a href="https://gilkalai.wordpress.com/2021/02/08/to-cheer-you-up-in-difficult-times-20-ben-green-presents-super-polynomial-lower-bounds-for-off-diagonal-van-der-waerden-numbers-w3k/">a blog post by Gil Kalai</a>; now <a href="https://www.quantamagazine.org/oxford-math"><em>Quanta Magazine</em> has a writeup</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107489055840096416">\(\mathbb{M}\)</a>).</span></p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/Regular_number">Regular number</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107491473069445206">\(\mathbb{M}\)</a>),</span> the numbers that divide powers of 60, now a Good Article on Wikipedia. These actually have different names in the different contexts they come from:</p>
<ul>
<li>
<p>Regular numbers in the study of Babylonian mathematics</p>
</li>
<li>
<p>5-smooth numbers in modern mathematics</p>
</li>
<li>
<p>Harmonic whole numbers in music theory and architecture</p>
</li>
<li>
<p>Hamming numbers in computer science</p>
</li>
</ul>
</li>
<li>
<p><a href="https://github.com/woodrush/lisp-in-life">Lisp in Conway’s Game of Life</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107497380214288478">\(\mathbb{M}\)</a>,</span> <a href="https://lobste.rs/s/lqt472/lisp_interpreter_implemented_conway_s">via</a>). The implementation involves compiling a C implementation of lisp onto a custom CPU in Life, modified from one <a href="https://codegolf.stackexchange.com/questions/11880/build-a-working-game-of-tetris-in-conways-game-of-life/142673">used four years ago to implement Tetris in Life</a>. It would be capable of running other C programs in the same way.</p>
</li>
<li>
<p>Ocean rain, Mendocino, Christmas afternoon <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107511339824111098">\(\mathbb{M}\)</a>):</span></p>
<p style="text-align:center"><img src="https://www.ics.uci.edu/~eppstein/pix/xmen/OceanRainMendocinoXmas-m.jpg" alt="Ocean rain, Mendocino, Christmas afternoon" style="border-style:solid;border-color:black;" /></p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/Square_pyramidal_number">Square pyramidal number</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107516162974520461">\(\mathbb{M}\)</a>),</span> another new Wikipedia Good Article. Some things I learned in working on this article:</p>
<ul>
<li>
<p>They were part of a family of figurate numbers studied by Japanese mathematicians of the wasan period.</p>
</li>
<li>
<p>As well as counting points or balls in a square pyramid shape, they count the number of acute triangles in an odd regular polygon.</p>
</li>
<li>
<p>They give the denominators of an infinite alternating summation for \(\pi-3\).</p>
</li>
</ul>
</li>
<li>
<p>Transfinite algorithm analysis: with real edge weights on a finite graph with \(m\) edges, <a href="https://arxiv.org/abs/1504.04363">the Ford–Fulkerson algorithm can take time \(\omega^{\Theta(m)}\)</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@gnivasch/107462555115098475">\(\mathbb{M}\)</a>).</span> 2015 preprint by Backman and Huynh, <a href="https://doi.org/10.3233/COM-180082">later published in <em>Computability</em></a>.</p>
</li>
<li>
<p><a href="https://mathstodon.xyz/@henryseg/107500629939378459">Approximation to a fundamental domain for the Cannon-Thurston map for the figure eight knot complement</a>. Henry Segerman posts an image from joint work by Saul Schleimer, of an intricately filled fractal-looking shape. One commenter suggests it looks like Escher’s work; my own comparison is to <a href="https://botsin.space/@APoD/107500725269227434">an image of the Crab nebula</a>.</p>
</li>
<li>
<p><a href="https://www.ams.org/journals/notices/202201/rnoti-p22.pdf">On an angle with magical properties</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107533528388789130">\(\mathbb{M}\)</a>),</span> Horgan and Murphy in the <em>Notices</em>. The angle is the larger of the two acute angles in the right triangle formed by a side, short diagonal, and long diagonal of a cube, roughly 54.74°. It appears frequently in cylindrical structures reinforced by helical fibers, as the pitch angle maximizing volume per fiber length. Examples occur in worms, octopi arms, elephant trunks, water hoses, and blood vessels.</p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/Wikipedia:Wikipedia_Signpost/2021-12-28/Serendipity">Born three months before her brother?</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107540664762715818">\(\mathbb{M}\)</a>)</span> I was amused by this example of how errors or discrepancies (in this case, in the birthdate of a pianist) can propagate through historical sources (including Wikipedia) and how the circularity of that propagation can hamper efforts to determine which of two inconsistent claims is the incorrect one.</p>
</li>
<li>
<p><a href="https://webb.nasa.gov/content/features/origami.html">Webb and origami</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107544466738561736">\(\mathbb{M}\)</a>).</span> This site features an origami papercraft model of the 18-hex honeycomb mirror of the James Webb Space Telescope, currently on a path to its L2 orbit. But I’m more interested in <a href="https://www.youtube.com/watch?v=RzGLKQ7_KZQ">how the spaceship unfolds itself as it travels, from a more compact configuration that would fit into a rocket into its final form</a>.</p>
</li>
</ul>David EppsteinInterview with Annie Rauwerda (\(\mathbb{M}\), via), known for publishing odd stuff from Wikipedia on her social media accounts.Raytracing diamonds2021-12-23T15:42:00+00:002021-12-23T15:42:00+00:00https://11011110.github.io/blog/2021/12/23/raytracing-diamonds<p>This comes from a question posed to me and others in 2019 by <a href="https://en.wikipedia.org/wiki/Stefan_Langerman">Stefan Langerman</a>, a computational geometer who also happens to be a diamond dealer. The classic <a href="https://en.wikipedia.org/wiki/Brilliant_(diamond_cut)">brilliant cut</a> shape of diamonds has a flat “table” face on the top (visible) side of the gem, and many other smaller facets on the sides (“crown”) and back (“pavilion”), with angles chosen so that most of the light that enters through the table is reflected back out through the table, making the diamond look bright. Can we simulate this reflection process efficiently, without having to trace all the reflections of all (or a sufficiently dense sample of all) possible light rays?</p>
<p>This appears to be an interesting problem even for a very simple abstraction of the diamond’s shape: a two-dimensional isosceles triangle, with the base of the triangle as its table and the two equal sides as its pavilion. What you need to know about light reflections in gems is the <a href="https://en.wikipedia.org/wiki/Critical_angle_(optics)">critical angle</a>, determined from the high <a href="https://en.wikipedia.org/wiki/Refractive_index">refractive index</a> of diamonds and other gems. Inside the gem, rays that hit a face at an angle shallower than the critical angle; rays that hit more steeply than the critical angle will escape. Any light ray hitting the table will always enter the gem, and will be refracted so that it enters along a ray steeper than the critical angle. It will then bounce around within the gem until it happens to hit a face steeply enough to escape. The question is to predict where this escape ray escapes, more quickly than the obvious algorithm of calculating explicitly the entire sequence of reflections that it performs. Or if we can’t, can we at least provide good bounds on the lengths of these reflection sequences?</p>
<p>Three of the simplest cases involve the isosceles triangles for which the triangle <a href="https://en.wikipedia.org/wiki/Edge_tessellation">tiles the plane by copies reflected across its edges</a>, the equilateral triangle, isosceles right triangle, and 30-30-120 isosceles triangle. The paths of a reflected light ray within such a triangle are combinatorially equivalent to the paths of a straight line through this triangulation: they pass through the same types of edges, at the same angles.</p>
<p style="text-align:center"><img src="/blog/assets/2021/30-30-120.svg" alt="Reflection through many faces in a 30-30-120 gem" width="80%" /></p>
<p>For all three of these triangle shapes, a line that enters the gem through any edge can only pass through a constant number of tiles in the tiling, before passing through another edge with the same angle, at which it must necessarily leave the gem (if it has not done so already). For instance, the red line shown, if it enters at its bottom left endpoint on the table of a green triangle, will exit after at most three reflections, through the parallel table of a blue triangle. The constant in the number of reflections here is absolute, not depending on the critical angle.</p>
<p>The next simplest case is the isosceles triangle with apex angle \(2\pi/5\). This triangle does not tile the plane, but we can still form a partial tiling by “unrolling” the path of reflections through the triangle into a line through a sequence of reflected triangles. In order to avoid exiting through one of the sides (by passing through it more perpendicularly than the entrance angle) and in order to miss the closest two copies of the table that are parallel to the entrance, there is only one passage that can be followed in the unrolled triangulation, the one shown by the red ray in the figure. Because this passage is perpendicular to one of the reflected sides of the triangle, a ray that is more perpendicular to the table than to this side can only continue for \(O(1)\) steps through this passage before hitting an exit. Here, though, the critical angle comes into play: critical angles that are closer to a right angle will allow larger (but constant) numbers of reflections.</p>
<p style="text-align:center"><img src="/blog/assets/2021/pentagonal-isosceles-reflections.svg" alt="Reflection in a 2pi/5 isosceles triangle" width="40%" /></p>
<p>Isosceles triangles with apex \(\pi/4\) are even messier. When a ray entering the table exits by a side, or exits by the table without first bouncing off the table, it always does so within $O(1)$ steps. The trickier cases are when a ray entering through the table misses the opposite table in the octagon formed by reflected copies of the triangle, and passes through a sequence of diagonal or horizontal reflections into other octagons before escaping. In the case that there are no horizontal reflections, only diagonal ones, we just need to divide the vertical distance that the ray needs to travel to hit the next row of vertical edges by the slope of the ray, and round. The case that there is at least one horizontal reflection (shown) is a little more compicated, but again appears to involve a finite calculation. So it seems that with a little more calculation it is still possible to determine algorithmically what happens in this case, in constant time rather than having to simulate the unbounded number of bounces triangle-by-triangle.</p>
<p style="text-align:center"><img src="/blog/assets/2021/octagonal-reflex.svg" alt="Reflection in a pi/4 isosceles triangle" /></p>
<p>All of these triangles have angles that are rational multiples of \(2\pi\). For reflections within polygons of this type, the reflected line will only pass through a constant number of slopes. The rays of a single slope that hit a given line of the polygon can be describes as an interval, and the mapping on rays that takes each ray starting on one of the sides with one of these slopes to the start of its next reflection is a special kind of mapping studied in the theory of dynamical systems, an <a href="https://en.wikipedia.org/wiki/Interval_exchange_transformation">interval exchange transformation</a>. So from a geometric question on ray-tracing, we are led to a more abstract question: given an interval exchange transformation, and a starting point in that transformation, how easy is it to determine the number of times one would need to repeat the transformation to return back to the same interval?</p>
<p>I have no real progress to report on any of these questions, in part because the continuous nature of these problems lead to difficult numerical issues. Instead, I have a new arXiv preprint <a href="https://arxiv.org/abs/2112.11607">“The Complexity of Iterated Reversible Computation” (arXiv:2112.11607
)</a> on related but more combinatorial problems. Suppose one has an invertible mapping \(f\) on a finite (but exponentially large) set of states, that is easy to compute, such as an interval exchange transformation on integers rather than real numbers. Suppose also that you want to repeat this mapping for a given initial state \(x\) and a large number \(n\) of steps. Is there anything you can do to compute the result \(f^{(n)}(x)\) of this iterated mapping, more efficiently than the obvious method of just computing \(x\), \(f(x)\), \(f(f(x))\), one step at a time? One property that appears highly relevant here is that these mappings are reversible: they are one-to-one, and more strongly the inverse mapping is also an interval exchange transformation. In contrast, it is easy to find mappings that are not reversible and for which computing iterated values is \(\mathsf{PSPACE}\)-complete: consider, for instance, the state transition map of a space-bounded Turing machine.</p>
<p>For some similar systems, we do know of effective methods in practice if not in theory. For Conway’s Game of Life, for instance, it appears to be \(\mathsf{PSPACE}\)-complete to compute what happens to an initial state after \(n\) steps (although I’m not sure this exact claim has been published in the literature), but <a href="https://en.wikipedia.org/wiki/Hashlife">hashlife</a> (as implemented in <a href="http://golly.sourceforge.net/">Golly</a>) can run many complicated and large patterns in an amount of runtime substantially less than the number of generated steps. The Game of Life is not reversible, but some other interesting cellular automata with similar behavior such as <a href="https://en.wikipedia.org/wiki/Critters_(cellular_automaton)">Critters</a> are. Can we say anything about the computational complexity of simulating Critters or other reversible rules? My new paper addresses these questions by formulating a complexity class that includes computing \(f^{(n)}(x)\) for reversible cellular automaton simulation, integer interval exchange transformations, and others. It sandwiches this class between \(\mathsf{P}^{\mathsf{PH}}\) and \(\mathsf{PSPACE}\), and finds complete problems for it including the simulation of reversible cellular automata and of piecewise linear tranformations. The complete cellular automata include the two-dimensional billiard ball model, already known for its ability to simulate reversible circuits, and a new one-dimensional automata that can simulate some two-dimensional automata including the billiard ball model. Because Critters can in turn simulate the billiard ball model, it is also complete in the same sense. But I wasn’t able to prove completeness for integer interval exchange transformations, let alone say anything useful about the non-integer transformations needed to understand diamond reflections.</p>
<p>(<a href="https://mathstodon.xyz/@11011110/107498938838238948">Discuss on Mastodon</a> or <a href="https://news.ycombinator.com/item?id=29695281">YC</a>)</p>
<p>PS, added 2021-12-27 to appease the request on the YC discussion for an actual ray-traced diamond image: Here’s one from my paper “<a href="https://arxiv.org/abs/0807.2218">Isometric diamond subgraphs</a>”, otherwise unrelated to this latest post:</p>
<p style="text-align:center"><img src="/blog/assets/2021/diapov.png" alt="Ray-traced diamond" /></p>
<p>Generated by POVray from a scene generated by <a href="/blog/assets/2021/diapov.py">this Python script</a>, which all ran ok in 2008 when I wrote the paper (haven’t re-tested it recently).</p>David EppsteinThis comes from a question posed to me and others in 2019 by Stefan Langerman, a computational geometer who also happens to be a diamond dealer. The classic brilliant cut shape of diamonds has a flat “table” face on the top (visible) side of the gem, and many other smaller facets on the sides (“crown”) and back (“pavilion”), with angles chosen so that most of the light that enters through the table is reflected back out through the table, making the diamond look bright. Can we simulate this reflection process efficiently, without having to trace all the reflections of all (or a sufficiently dense sample of all) possible light rays?Recursive bijective numbering2021-12-19T21:12:00+00:002021-12-19T21:12:00+00:00https://11011110.github.io/blog/2021/12/19/recursive-bijective-numbering<p>Ordinary radix systems for representing numbers, like binary or decimal, use fixed finite sets of digits. The same is true for <a href="https://en.wikipedia.org/wiki/Bijective_numeration">bijective numeration</a>, used for columns of spreadsheets. In bijective numbering, every string of digits represents a unique number, shorter strings represent smaller numbers, and strings of equal length have the usual order. In spreadsheets, the digits are letters A–Z, one-letter strings represent numbers \(1\) through \(26\), two-letter strings represent \(27\) through \(26+26^2=702\), etc. Instead, <a href="https://en.wikipedia.org/wiki/Mixed_radix">mixed radix</a> systems like the <a href="https://en.wikipedia.org/wiki/Factorial_number_system">factorial number system</a> have position-varying digit sets. In factorial numbering, the \(i\)th digit can range from \(0\) to \(i-1\), with place value \((i-1)!\). The value of a digit string is the sum of digits times place values. One could combine these ideas and get a bijective factorial number system, in which strings of at most \(i\) digits can represent numbers up to the <a href="https://oeis.org/A007489">sum of the first \(i\) factorials</a>. But in all of these mixed radix systems, the digits are not drawn from a finite set. Maybe we need another numbering system just to describe each digit of a mixed-radix number? This leads to the idea of a <em>recursive</em> numbering system, where the digits of a mixed-radix system are themselves numbers in the same system.</p>
<p>An example might clarify this idea. Let’s start with a recursive numbering system based on binary. Like other mixed-radix systems, we’ll number the digit positions starting with \(i=0\) at the right. Each position has a place value, the product of the numbers of choices for earlier digits, and the value of a sequence of digits is the sum of digits times place value. We’ll start with two choices of digit in position \(0\), like binary, and in later positions we’ll use the values we’ve already constructed as allowable digits.</p>
<ul>
<li>In position \(i=0\), the two available digits given in the base case are \(0\) and \(1\), allowing us to represent only the numbers \(0\) and \(1\) as one-digit strings.</li>
<li>In position \(i=1\), there are still only two digits available, the two numbers \(0\) and \(1\) that have shorter representations. In this position, they have place value \(2\), allowing any number from \(0\) to \(3\) to be represented as a two-digit string.</li>
<li>In position \(i=2\), we now have four digits available, the numbers from \(0\) to \(3\). These have place value \(4\), allowing any number from \(0\) to \(15\) to be represented with three digits.</li>
</ul>
<p>At each successive level of this structure, the number of available digits and place values will be equal. Each new digit squares the range of representable numbers. In any position \(i>0\), we will have \(2^{2^{i-1}}\) digits available, with place value \(2^{2^{i-1}}\), allowing any number from \(0\) to \(2^{2^{i}}-1\) to be represented. In some sense, though, we haven’t done anything very interesting yet. Like binary, we just get powers of two. The recursive-binary representation of a number can be obtained in a trivial way from its binary representation, by partitioning the bits into groups of 1, 1, 2, 4, 8, … bits.</p>
<p>Instead, a bijective numbering system leads to more interesting results when handled recursively. For recursive bijective numbering, we can start with a much simpler base case, the empty string, which can be interpreted in any bijective numbering system as representing the number \(0\). With this base case, we can define a bijective numbering system in which the available digits in position \(i\) (starting from \(i=0\) in the rightmost digit) are the numbers that can be represented by strings of length at most \(i\):</p>
<ul>
<li>In position \(i=0\), there is only one available digit, the number \(0\) (already represented by the empty string), producing only one single-digit value, representing the number \(1\).</li>
<li>In position \(i=1\), there are two available digits, the numbers \(0\) and \(1\) that we have already represented, so there are two two-digit sequences possible, representing two more numbers \(2\) and \(3\).</li>
<li>In position \(i=2\), there are four available digits, providing eight three-digit sequences that can represent the numbers \(4\) through \(11\).</li>
</ul>
<p>If we let \(n_i\) denote the number of values that can be obtained by strings of exactly \(i\) digits, then we obtain a recurrence \(n_0=1\) (the zero-length strings represent only one value, zero) and \(n_i=n_{i-1}\sum_{j<i}n_j\) (there are \(n_{i-1}\) choices for the string up to its last digit, and \(\sum_{j<i}n_j\) choices for the last digit). This recurrence has the sequence of values <a href="http://oeis.org/A001697">1, 1, 2, 8, 96, 10368, 108615168, …</a> and its partial sums <a href="http://oeis.org/A001696">1, 2, 4, 12, 108, 10476, 108625644, …</a> give the total number of values that can be represented by strings of up to \(i\) digits.</p>
<p>The same idea can be represented graphically. Given a number represented by this recursive bijective numbering system, draw an ordered tree, where an \(i\)-digit number is represented by a tree whose root has \(i\) children, one for each digit, and where each digit is represented in the same way by a subtree. Conversely, if we have an ordered tree, we can think of it as representing a recursive bijective number, whose digits are computed recursively from the children of the root. In our recursive bijective numbers, we required that each digit be representable as a string of length at most its position; translating this requirement into tree terminology, each node that is the \(i\)th child of its parent (again starting with \(i=0\) on the right) must have degree at most \(i\).</p>
<p style="text-align:center"><img src="/blog/assets/2021/recursive-bijective.svg" alt="Equivalence between recursive bijective numbering and tree enumeration" width="60%" /></p>
<p>It follows that the sequences of numbers of representable values for \(i\)-digit strings and for \(\le i\)-digit strings, above, also give the numbers of ordered trees that obey this degree constraint, with root degree \(i\) or \(\le i\), respectively.</p>
<p>(<a href="https://mathstodon.xyz/@11011110/107478037784682149">Discuss on Mastodon</a>)</p>David EppsteinOrdinary radix systems for representing numbers, like binary or decimal, use fixed finite sets of digits. The same is true for bijective numeration, used for columns of spreadsheets. In bijective numbering, every string of digits represents a unique number, shorter strings represent smaller numbers, and strings of equal length have the usual order. In spreadsheets, the digits are letters A–Z, one-letter strings represent numbers \(1\) through \(26\), two-letter strings represent \(27\) through \(26+26^2=702\), etc. Instead, mixed radix systems like the factorial number system have position-varying digit sets. In factorial numbering, the \(i\)th digit can range from \(0\) to \(i-1\), with place value \((i-1)!\). The value of a digit string is the sum of digits times place values. One could combine these ideas and get a bijective factorial number system, in which strings of at most \(i\) digits can represent numbers up to the sum of the first \(i\) factorials. But in all of these mixed radix systems, the digits are not drawn from a finite set. Maybe we need another numbering system just to describe each digit of a mixed-radix number? This leads to the idea of a recursive numbering system, where the digits of a mixed-radix system are themselves numbers in the same system.Linkage with a couple of photos2021-12-15T18:35:00+00:002021-12-15T18:35:00+00:00https://11011110.github.io/blog/2021/12/15/linkage-couple-photos<ul>
<li>
<p><a href="https://blog.archive.org/2021/12/01/the-wikimedian-on-a-mission-to-connect-everything/">The Wikimedian on a mission to connect everything</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107376368598503018">\(\mathbb{M}\)</a>).</span> Nice profile of New Zealand based Wikipedia content-creator <a href="https://en.wikipedia.org/wiki/Siobhan_Leachman">Siobhan Leachman</a> and her use of the Internet Archive in her editing.</p>
</li>
<li>
<p><a href="https://www.ics.uci.edu/~eppstein/pix/foggy-uhills-sunset/index.html">A sunset view from my neighborhood to the foggy flatlands below</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107380531606566173">\(\mathbb{M}\)</a>).</span></p>
<p style="text-align:center"><img src="https://www.ics.uci.edu/~eppstein/pix/foggy-uhills-sunset/foggy-uhills-sunset-m.jpg" alt="Sunset from University Hills, Irvine" style="border-style:solid;border-color:black;" /></p>
</li>
<li>
<p><a href="https://internetfreedom.in/social-science-researchers-move-delhi-high-court-to-protect-libgen-scihub/">The Internet Freedom Foundation and a group of social science researchers weigh in on a publisher copyright suit</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107387353076211417">\(\mathbb{M}\)</a>, <a href="https://news.ycombinator.com/item?id=29366621">via</a>, <a href="https://www.trtworld.com/magazine/indian-academics-throw-weight-behind-sci-hub-and-libgen-in-landmark-case-51780">via2</a>),</span> in India’s Delhi High Court against LibGen and Sci-Hub, arguing that accessing published works for research or educational purposes is legal as fair dealing under Indian law.</p>
</li>
<li>
<p><a href="https://sites.google.com/view/fun2022">The 11th Int. Conf. on Fun with Algorithms, FUN 2022</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107389912789014592">\(\mathbb{M}\)</a>).</span> It is planned for a physical meeting on an Italian resort island (as always) in late May to early June, with hope that unlike last year it will be possible to actually meet. Authors of last year’s papers will also be given a chance to present. Submission deadline mid-February.</p>
</li>
<li>
<p><a href="https://osf.io/preprints/socarxiv/j6ung/download">Surveillance publishing</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107398807276521434">\(\mathbb{M}\)</a>).</span> Jefferson Pooley argues that, whenever you use commercial academic publishing products like Scopus, Mendeley, or even the “enhanced pdf readers” of journals, they are using you, to collect and analyze your detailed behavioral patterns in order to sell the analysis to university administrators and other customers.
<a href="https://golem.ph.utexas.edu/category/2021/12/surveillance_publishing.html">John Baez takes the lesson</a> that the definition of diamond open access should include no surveillance.</p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/Three_utilities_problem">The three utilities problem</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107407156760667067">\(\mathbb{M}\)</a>)</span> of connecting three houses to three utilities by nine non-crossing paths can be formalized as finding a drawing of the graph as a planar graph (no such drawing exists, so it is an impossible puzzle). But that formalization hides a lot of assumptions. What surface are the lines on? Can lines pass through other houses or utilities? Answering these questions differently can make the puzzle solvable. Now a Good Article on Wikipedia.</p>
</li>
<li>
<p><a href="https://www.ics.uci.edu/~eppstein/pix/conjunx/index.html">This month’s conjunction of venus and the moon</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107410218362959232">\(\mathbb{M}\)</a>).</span> It was difficult for me to decide to keep this, mostly because I have a much better crescent moon photo by Galen Rowell on my wall in line of sight of where I edit my photos. But here it is:</p>
<p style="text-align:center"><img src="https://www.ics.uci.edu/~eppstein/pix/conjunx/VenusMoonPalm-m.jpg" alt="Venus-moon conjunction with palm tree" style="border-style:solid;border-color:black;" width="80%" /></p>
</li>
<li>
<p><a href="https://arxiv.org/abs/2112.03726">On a density conjecture about unit fractions</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107418642072585919">\(\mathbb{M}\)</a>, <a href="https://twitter.com/wtgowers/status/1468634931115048960">via</a>),</span> Thomas F. Bloom. This is about the <a href="https://en.wikipedia.org/wiki/Erd%C5%91s%E2%80%93Graham_problem">Erdős–Graham problem on Egyptian fractions</a>. Erdős and Graham suggested that any partition of the integers into finitely many sets has a set containing the denominators of a sum of unit fractions equal to \(1\), like \(1/2 + 1/3 + 1/6 = 1\). The new paper proves more strongly that these sums exist for any positive-density set of integers.</p>
</li>
<li>
<p><a href="https://www.technologyreview.com/2021/10/27/1037123/p-np-theoretical-computer-science">The 50-year-old problem that eludes theoretical computer science</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107421736041022992">\(\mathbb{M}\)</a>).</span> Siobhan Roberts reviews the current status of \(\mathsf{P}\) vs \(\mathsf{NP}\). If you’re familiar with the technical side of the problem or its history, there isn’t much new, but on the social side, strong researchers continue to put effort into it, with some prominent theoreticians such as Toni Pitassi wavering from the \(\mathsf{P}\ne\mathsf{NP}\) orthodoxy and wondering whether maybe \(\mathsf{P}=\mathsf{NP}\) instead. Paywalled but viewable through Firefox reader view.</p>
</li>
<li>
<p><a href="https://3quarksdaily.com/3quarksdaily/2021/11/counting-with-polygons.html">Counting with polygons</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107427430251470408">\(\mathbb{M}\)</a>).</span> You probably know Gauss’s Eureka theorem num = Δ + Δ + Δ. But what other linear combinations of triangular numbers represent all positive integers? You can check whether \(1\), \(2\), \(4\), \(5\), and \(8\) are represented, and if they are then <a href="https://arxiv.org/abs/0905.3594">everything else will be represented!</a> Similar results are known for other types of polygonal numbers; see <a href="https://doi.org/10.1093/imrn/rnz003">a recent result this post seems to have missed</a>.</p>
</li>
<li>
<p><a href="https://arxiv.org/abs/2112.05042">A counterexample to the Ringel circle problem</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107429482866874947">\(\mathbb{M}\)</a>, <a href="https://gilkalai.wordpress.com/2021/12/11/to-cheer-you-up-in-difficult-times-34-ringel-circle-problem-solved-by-james-davies-chaya-keller-linda-kleist-shakhar-smorodinsky-and-bartosz-walczak/">via</a>).</span> Ringel asked whether systems of circles, tangent only in pairs, can be colored with \(O(1)\) colors so no two tangent circles have the same color. Five colors were known to be necessary but unknown to be sufficient; see <a href="https://www.ics.uci.edu/~eppstein/junkyard/tangencies/">the lead image of one of my old web pages</a>. Now Davies, Keller, Kleist, Smorodinsky, and Walczak have found systems of circles requiring arbitrarily many colors.</p>
</li>
<li>
<p><a href="https://www.mayaweihaas.com/articles/we-need-better-face-masksand-origami-might-help">Origami face masks</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107438780835827342">\(\mathbb{M}\)</a>),</span> describing the masks from <a href="https://www.airgami.life/">airgami.life</a>. I saw a friend wearing one of these at a neighborhood craft fair the other day; it looked both functional and aesthetically pleasing. She said it worked well for keeping her glasses unfogged, too.</p>
</li>
<li><a href="https://doi.org/10.1007/s11721-021-00202-9">Metaphor-based metaheuristics, a call for action</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107444183907753853">\(\mathbb{M}\)</a>, <a href="https://retractionwatch.com/2021/12/11/weekend-reads-hundreds-of-researchers-in-china-sanctioned-phony-finance-research-results-of-the-cancer-research-reproducibility-project/">via</a>).</span> The authors’ litany of problems in this area include:
<ul>
<li>Mismatches between metaphor, mathematical model, and implementation.</li>
<li>Dressing up old concepts in neologisms.</li>
<li>Unconvincing straw-man experimental comparisons.</li>
<li>Publication in out-of-scope journals ill-equipped to evaluate the work.</li>
</ul>
<p>They recommend significantly strengthened publication standards to save the reputation of their subfield.</p>
</li>
<li>
<p><a href="https://www.thisiscolossal.com/2021/12/matthew-chambers-ceramic-sculptures/">Concentric vessels nest within larger forms in Matthew Chambers’ perplexing ceramic sculptures</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107450031520475523">\(\mathbb{M}\)</a>, <a href="https://www.matthewchambers.net/">see also</a>).</span> They make pleasing geometric forms, not unlike what we’ve probably all seen for sets of nesting bowls in our kitchens, but the part that perplexes me is: how does he make them nest like that? There are too many in a nest and it doesn’t look like they come apart. Many refirings, from inner to outer?</p>
</li>
<li>Until recently the Wikipedia article on factorials cited the Talmudic Sefer Yetzirah as the oldest known work on the subject <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107453917249769793">\(\mathbb{M}\)</a>).</span> But today I learned that there is an older one from a different part of the world: Anuyogadvāra-sūtra, one of the canonical works of Jain literature on the Indian subcontinent, likely dating from 200 BCE to 100 CE. For details see p. 363 of <a href="https://doi.org/10.1007/978-981-13-732">Datta and Singh, “Use of permutations and combinations in India”</a>.</li>
</ul>David EppsteinThe Wikimedian on a mission to connect everything (\(\mathbb{M}\)). Nice profile of New Zealand based Wikipedia content-creator Siobhan Leachman and her use of the Internet Archive in her editing.Linkage2021-11-30T18:39:00+00:002021-11-30T18:39:00+00:00https://11011110.github.io/blog/2021/11/30/linkage<ul>
<li>
<p><a href="https://doi.org/10.1063/PT.6.4.20211108a">Joanne Cohn and the email list that led to arXiv</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107291497920204652">\(\mathbb{M}\)</a>).</span> If, like me, you thought arXiv was started by Paul Ginsparg, you’re mistaken. Ginsparg deserves a lot of credit for setting up most of arXiv’s infrastructure but he only did it after Cohn gave him a ball to run with.</p>
</li>
<li>
<p>I ran across a reference to French mathematical artist Sylvie Pic in Étienne Ghys’ online book ‘‘<a href="https://arxiv.org/abs/1612.06373">A Singular Mathematical Promenade</a>’’ <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107297267002982515">\(\mathbb{M}\)</a>)</span> and am intrigued by her work but can only find snippets here and there. A few links: <a href="https://les-traces-habiles.org/tag/sylvie-pic/">les traces habiles</a>, <a href="http://www.documentsdartistes.org/artistes/pic/repro7-1.html">documents d’artistes</a>, <a href="https://artuk.org/discover/artists/pic-sylvie-b-1957">Sucharda’s Still Life (2006)</a>, and a Google Books link to an essay by Pic about her work: <a href="https://books.google.com/books?id=i2qnl1P9pyEC&pg=PA253">“Some Aspects of the Use of Geometry in My Artistic Work”, in ‘‘The Visual Mind II’’</a>.</p>
</li>
<li>
<p><a href="https://www.youtube.com/watch?v=w2T12mnk7tg">Colouring Graphs and Fermat’s Conjecture</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107302448008422359">\(\mathbb{M}\)</a>).</span> How Issai Schur used graph Ramsey theory to prove that the Fermat equation \(x^n+y^n=z^n\) has solutions <span style="white-space:nowrap">modulo \(p\)</span> for all but finitely many <span style="white-space:nowrap">primes \(p\).</span> Another Some1 math-explainer video, I think?</p>
</li>
<li>
<p><a href="https://discrete-notes.github.io/contraction-sequences">Contraction sequences</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107308282315835268">\(\mathbb{M}\)</a>).</span> This introduces twin-width, a hot topic in graph structure theory and structure-based algorithms, more broadly than you might get from its research papers. Twin-width is based on repeated merging pairs of vertices with similar neighborhoods, aiming for each cluster to be nonuniformly connected to very few other clusters, but other kinds of width can be formulated in this way and this view leads to an alternative proof of Courcelle’s theorem.</p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/Szemer%C3%A9di_regularity_lemma">Szemerédi regularity lemma</a> now <a href="https://www.isa-afp.org/entries/Szemeredi_Regularity.html">formalized in Isabelle</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107314263241628934">\(\mathbb{M}\)</a>, <a href="https://twitter.com/wtgowers/status/1459271456865591298">via</a>).</span> This is the result that every graph’s vertices can be partitioned into few subsets so that the subgraph between most pairs of subsets resemble random graphs of varying densities. It’s not the Robertson–Seymour theorem or the strong perfect graph theorem, but still it’s good to see some serious graph theory getting attention from the proof assistant crowd.</p>
</li>
<li>
<p><a href="http://gallery.bridgesmathart.org/exhibitions/2022-joint-mathematics-meetings">The 2022 JMM mathematical art gallery is already online</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107319825945929357">\(\mathbb{M}\)</a>),</span> although I’m not sure, maybe it’s still being populated with more to come later. The <a href="http://gallery.bridgesmathart.org/exhibitions/2022-joint-mathematics-meetings/kkshir">rotating hexagon cluster mechanism by Khushbu Kshirsagar</a> makes me want to see something like it for a <a href="https://en.wikipedia.org/wiki/Smoothed_octagon">rotating cluster of smoothed octagons</a>, but I guess that would require a more complicated design.</p>
</li>
<li>
<p>This is a symmetric view of the <a href="https://en.wikipedia.org/wiki/Whitehead_link">Whitehead link</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107325158960438533">\(\mathbb{M}\)</a>),</span> which in its more usual view (an alternating link formed by overlaying a circle and a figure-eight) is not as obviously symmetric. Redrawn from Fig.22 of <a href="https://arxiv.org/abs/2001.01472v1">Skopenkov’s “A user’s guide to basic knot and link theory”</a> and also available <a href="https://commons.wikimedia.org/wiki/File:Symmetric_Whitehead_link.svg">in more garish colors at Wikimedia commons</a>.</p>
<p style="text-align:center"><img src="/blog/assets/2021/symmetric-Whitehead-link.svg" alt="Symmetric Whitehead link" /></p>
</li>
<li>
<p><a href="https://cameroncounts.wordpress.com/2021/11/23/two-pointers/">Two pointers</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107330222887192739">\(\mathbb{M}\)</a>).</span> Peter Cameron warns that accessibility requirements for course lecture notes and the ability to format mathematics in those notes may be on a collision course, because the non-mathematicians who formulate accessibility requirements don’t realize how inadequate non-LaTeX solutions are. Also that requirements for making research data public are being taken to silly levels for research in fields like mathematics where there may well be no data to make public.</p>
</li>
<li>
<p><a href="https://blog.plover.com/math/consecutive-squarefull.html">Consecutive squareful numbers</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@mjd/107324651548000153">\(\mathbb{M}\)</a>).</span> It’s easy to prove by Chinese remaindering that arbitrarily long sequences of non-squarefree numbers exist, but there’s some interesting work on how to find the first such sequence quickly.</p>
</li>
<li>
<p><a href="https://www.youtube.com/watch?v=JvhSRCfCHb4">Strategy on an infinite chessboard between an angel and a devil</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@FreddyR/107334208631308281">\(\mathbb{M}\)</a>).</span> Video clearly explaining the solution to Conway’s angel vs devil problem. There’s a strategy-stealing trick in there, so although you get an explicit algorithm for the angel to escape a weaker adversary, this method only proves the existence of an algorithm for escaping the devil without showing how.</p>
</li>
<li>
<p>Three new Wikipedia Good Articles <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107347230356711269">\(\mathbb{M}\)</a>):</span></p>
<ul>
<li>
<p><a href="https://en.wikipedia.org/wiki/Feedback_arc_set">Feedback arc set</a>, edges touching all cycles in a digraph, with applications to sports ranking, chemical engineering, baboon psychology, etc.</p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/Opaque_set">Opaque set</a>, points or curves blocking all visibility across a shape, with the shortest solution mostly still unknown.</p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/No-three-in-line_problem">No-three-in-line problem</a>, the largest grid set without three points in line, conjecturally \(\approx 1.814n\) despite all experimental evidence pointing <span style="white-space:nowrap">to \(2n\).</span></p>
</li>
</ul>
</li>
<li>
<p>Fractal Kitty, newly on Mathstodon, <a href="https://fractalkitty.com/mathbirbs/">makes playing cards with birds for numbers and plane curves, knots, graphs, and groups as suits</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@fractalkitty/107345972732518709">\(\mathbb{M}\)</a>).</span></p>
</li>
<li>
<p><a href="https://www.gwern.net/Variables">Top-ten underused Greek letter variables on arXiv</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107359400309951476">\(\mathbb{M}\)</a>, <a href="https://news.ycombinator.com/item?id=2">via</a>).</span></p>
</li>
<li>
<p>You’re probably familiar with <a href="https://littlefreelibrary.org/">Little Free Libraries</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107363373181037563">\(\mathbb{M}\)</a>),</span> outdoor bookshelf-boxes on sticks that have popped up like mushrooms all over neighborhoods like mine (we have five) to make it easy to find good homes for books you’d like others to find or don’t want to keep yourself. One of our neighbors has taken it a step further, making a little free dog-stick library, in active use judging by its changing numbers of sticks from week to week.</p>
<p style="text-align:center"><img src="https://www.ics.uci.edu/~eppstein/pix/dsl/DogStickLibrary-m.jpg" alt="Dog stick library in University Hills, Irvine, California" style="border-style:solid;border-color:black;" /></p>
</li>
<li>
<p><a href="https://theoretics.episciences.org/">TheoretiCS</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107369179583359231">\(\mathbb{M}\)</a>)</span> is a new diamond-open-access journal in all areas of theoretical computer science. It is being run as an overlay of arXiv, through the Episciences platform for such overlays, with Javier Esparza and Uri Zwick as editors-in-chief and a large and distinguished editorial board.</p>
</li>
</ul>David EppsteinJoanne Cohn and the email list that led to arXiv (\(\mathbb{M}\)). If, like me, you thought arXiv was started by Paul Ginsparg, you’re mistaken. Ginsparg deserves a lot of credit for setting up most of arXiv’s infrastructure but he only did it after Cohn gave him a ball to run with.Linkage2021-11-15T18:25:00+00:002021-11-15T18:25:00+00:00https://11011110.github.io/blog/2021/11/15/linkage<ul>
<li>
<p><a href="https://www.youtube.com/watch?v=4gsp3CZUtV0">How to tell someone how to get to your house without knowing where they’re starting</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107206208305724024">\(\mathbb{M}\)</a>),</span> how to translate a Penn & Teller trick into Spanish, and other applications of the <a href="https://en.wikipedia.org/wiki/Synchronizing_word">Černý conjecture on synchronizing words</a>. This video by Nóra Szakács is one of an enormous number of recent mathematics explanation videos in the <a href="https://www.youtube.com/watch?v=F3Qixy-r_rQ">“Some1” summer of math exposition video project</a>.</p>
</li>
<li>
<p>One of our instructor’s strategies for dealing with sites like Chegg that cater to homework answer-copiers <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107217545955814360">\(\mathbb{M}\)</a>):</span> seek out and assign homework questions that already have particularly bad answers on Chegg. That way the copiers are more easily caught and the students who actually do the work have a better chance to shine over their copying peers. And if doing this ends up causing Chegg to get more of a reputation for inaccuracy, that’s not a bad thing either.</p>
</li>
<li>
<p><a href="https://www.nature.com/articles/d41586-021-02906-8">Facebook isn’t the only company changing its name in an unsuccessful attempt to separate itself from its poor reputation</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107223269542696792">\(\mathbb{M}\)</a>).</span> Around when the FTC fined OMICS for predatory practices, it began rebranding its journals and past papers with other publisher names (Hilaris, Longdom, iMedPub, and Research & Reviews), rewriting the editorship history of its journals, and even lifting other publishers’ papers to fabricate a legitimate-looking backlog for its journals.</p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/Constructible_number">Constructible number</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107233293561788882">\(\mathbb{M}\)</a>),</span> now a Good Article on Wikipedia. This concerns the correspondence between compass-and-straightedge constructions and formulas using square roots, and the use of that correspondence to prove the impossibility of classical geometric construction problems. Relatedly, see <a href="http://jdh.hamkins.org/the-hierarchy-of-geometric-constructibility-can-we-go-back/">Joel Hamkins’ new blog post</a> on how constructibility of one set of points from another produces an equivalence relation on pairs of points.</p>
</li>
<li>
<p><a href="https://www.smh.com.au/national/nsw/quantum-computers-to-run-sydney-s-transport-network-20211107-p596r5.html">Quantum computers to run Sydney’s transport network</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107236800356354250">\(\mathbb{M}\)</a>,</span> <a href="https://news.ycombinator.com/item?id=29139633">via</a>). In other news, Sydney politicians are unable to distinguish hype from actual technology advancements, or maybe more cynically unwilling to do so when the hype would let them dole out lucrative contracts.</p>
</li>
<li>
<p><a href="https://terrytao.wordpress.com/2021/11/07/venn-and-euler-type-diagrams-for-vector-spaces-and-abelian-groups/">Terry Tao attempts to visualize vector spaces, linear maps, and exact sequences using arrows from arrows to arrows</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107240160987527319">\(\mathbb{M}\)</a>).</span> Ok, some of the arrows are really supposed to be half-open intervals, but drawn with a barred closed end and a pointy open end they look a lot like <span style="white-space:nowrap">\(\mapsto\).</span></p>
</li>
<li>
<p><a href="https://www.inputmag.com/culture/pinterest-sucks-google-image-photo-search-ruining-internet">How Pinterest utterly ruined photo search on the internet</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107246007841558595">\(\mathbb{M}\)</a>, <a href="https://news.ycombinator.com/item?id=29151055">via</a>).</span> The title is a bit of an exaggeration given how easy it is to add <code class="language-plaintext highlighter-rouge">-pinterest</code> to every single image search you do (with quick feedback for why you need to do it when you forget). But they’re not wrong about it being a useless annoyance.</p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/Farthest-first_traversal">Farthest-first traversal / greedy permutation</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107251720248944263">\(\mathbb{M}\)</a>):</span> generate a sequence of points, choosing each one to be as far as possible from already chosen points. Its first \(k\) points form good cluster centers (approximating min-max-diameter or min-max-radius clustering) and are well separated (approximating max-min distance). Its applications include halftoning, color quantization, sensor network distribution, and underwater robot task planning. Now another Wikipedia Good Article.</p>
</li>
<li>
<p>Today in amusingly-named concepts: the <a href="https://en.wikipedia.org/wiki/Lorentz%E2%80%93Lorenz_equation">Lorentz–Lorenz equation</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107257423214935119">\(\mathbb{M}\)</a>)</span> relating refractive index to polarizability. Even more amusingly, it was not a deliberate collaboration: Lorentz and Lorenz discovered the equation independently! Via a comment over on that other site, in <a href="https://twitter.com/hollykrieger/status/1456321630733574144">a thread making fun of the new Meta logo for its resemblance to a strange attractor</a>. Now if only we could somehow connect it to <a href="https://read.somethingorotherwhatever.com/entry/ItislikeeggPaulLorenzenandthecollapseofproofsofconsistency">Paul Lorenzen</a>…</p>
</li>
<li>
<p><a href="https://mathstodon.xyz/@christianp/107258956124702057">How to search for number facts sites without searching for number facts sites</a> and <a href="https://mathstodon.xyz/@jsiehler/107259309683467429">how to search for the mathematics of poker without getting a bunch of sketchy gambling sites</a>: search for the numbers, not the words.</p>
</li>
<li>
<p><a href="https://eli.thegreenplace.net/2021/rust-data-structures-with-circular-references/">How memory-safe programming in Rust can complicate the design of data structures</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107271384674149840">\(\mathbb{M}\)</a>,</span> <a href="https://news.ycombinator.com/item?id=29207397">via</a>, <a href="https://lobste.rs/s/ydstwh/rust_data_structures_with_circular">via2</a>). Rust data structures cannot have circular references, so if you need them you can either fall back to non-memory-safe techniques (reference counting or unsafe blocks) or make your top-level structure implement its own memory allocator and refer to everything by indexes into its vector of objects instead of by proper references.</p>
</li>
<li>
<p><a href="https://rjlipton.wpcomstaging.com/2021/11/13/popl-2022-et-tu-brute/">Too few women at POPL 2022</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107272383946893132">\(\mathbb{M}\)</a>).</span> The low 11% representation on the program committee is especially striking in contrast to the significant historical contributions of women to programming languages (Kathleen Booth, Cicely Popplewell, Grace Hopper, Jean Sammet, Mary Hawes, Gertrude Tierney, and Barbara Liskov among them). According to the same post, the major theoretical computer science conferences are only slightly better.</p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/Handshaking_lemma">Handshaking lemma</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107284266077522291">\(\mathbb{M}\)</a>),</span> now another Good Article on Wikipedia. This is really about two different but closely-related results, both proved by Euler in his 1736 paper that kicked off the field of graph theory: in any finite undirected graph, the sum of vertex degrees equals twice the number of edges, and the number of odd-degree vertices is even.</p>
</li>
</ul>David EppsteinHow to tell someone how to get to your house without knowing where they’re starting (\(\mathbb{M}\)), how to translate a Penn & Teller trick into Spanish, and other applications of the Černý conjecture on synchronizing words. This video by Nóra Szakács is one of an enormous number of recent mathematics explanation videos in the “Some1” summer of math exposition video project.Random independent sets in bounded-treewidth graphs2021-11-14T16:41:00+00:002021-11-14T16:41:00+00:00https://11011110.github.io/blog/2021/11/14/random-independent-sets<p>This week my student Daniel Frishberg posted our new preprint “Rapid mixing of the hardcore Glauber dynamics and other Markov chains in bounded-treewidth graphs”, <a href="https://arxiv.org/abs/2111.03898">arXiv:2111.03898</a>. Despite the somewhat-technical title and content, it’s on an easy-to-explain problem, of generating random combinatorial objects (like independent sets in graphs) using random walks. Start with an undirected graph and an empty subset of its vertices, and then repeatedly choose a random vertex, flipping whether it is in or out of the subset whenever the resulting subset remains independent. How many of these steps does it take until the resulting random distribution on independent sets is nearly uniform?</p>
<p>In general, this can take exponentially many steps, but our paper proves that in graphs of bounded <a href="https://en.wikipedia.org/wiki/Treewidth">treewidth</a> it is only polynomial. Our proof’s exponent depends on the treewidth, but maybe a better proof can get the dependence on treewidth out of the exponent and into the constant factor of the polynomial instead. However, if all you want to do is generate random independent sets, this is not the right way to do it. The point of the paper is less about fast algorithms and more about the connectivity of the space of independent sets. So if you do want a fast algorithm for random generation, what should you do?</p>
<p>This is, unfortunately, an area where some care is required and much of the literature does not take the required care. Problematic issues include:</p>
<ul>
<li>
<p>What is the model of computation for arithmetic operations? Much of the literature for the design and analysis of graph algorithms assumes without much attention that all arithmetic operations take unit time. This is a reasonable assumption for small numbers (of at most polynomial magnitude), as occur in many algorithms including the random walk above. In those cases it is a close match to the kind of operation that can be done in a single instruction on a modern CPU. It is not a reasonable assumption for counting algorithms dealing with numbers of exponential magnitude. Counting is an important subproblem for exact random generation, so we need large numbers. Typically, the number of independent sets is linear in the input size, the number of bits required to store this number is linear, and the amount of time needed to perform a single operation on a number this large should again be assumed to involve a bignum-package subroutine. The slow steps are multiplications, which can by <a href="https://www.jstor.org/stable/10.4007/annals.2021.193.2.4">recent results of Harvey and van der Hoeven</a> be assumed to take \(O(n\log n)\) time.</p>
</li>
<li>
<p>What is the model for generating random numbers? If random numbers are generated as bits, this only allows the direct generation of random choices with probabilities that are <a href="https://en.wikipedia.org/wiki/Dyadic_rational">dyadic rational</a>. For independent sets, we need other probabilities. <a href="https://en.wikipedia.org/wiki/Rejection_sampling">Rejection sampling</a> leads to an algorithm whose running time is itself a random variable, so we need to use expected time or high-probability bounds instead of worst-case time analysis.</p>
</li>
<li>
<p>How is the input presented? For the random-walk method, it is just a graph, but for other algorithms taking advantage of low treewidth we need a good <a href="https://en.wikipedia.org/wiki/Tree_decomposition">tree decomposition</a>, and finding one is nontrivial. We should either state explicitly that a tree decomposition is given and that its width rather than the graph width controls the algorithm’s runtime, or factor in the time to find a decomposition and the width of decomposition that we find.</p>
</li>
</ul>
<p>With that all said, how might we go about computing a random independent set for a given \(n\)-vertex graph of treewidth \(w\), achieving the best theoretical performance?</p>
<p>First, we should find an approximate tree decomposition. There are many known algorithms for this problem, but I think the right choice is the one from the recent paper “An improvement of Reed’s treewidth approximation”, Belbasi and Fürer, WALCOM 2021, <a href="https://arxiv.org/abs/2010.03105">arXiv:2010.03105</a>. It finds a tree decomposition of width at most \(5w\), in time \(O(2^{8.8w}n\log n)\). There are other algorithms with a linear dependence on \(n\), but much worse dependence on \(w\), and the \(n\log n\) part of the bound will be dominated by later steps. We can also bootstrap this decomposition, using dynamic programming on it to find a better decomposition, but I think this is too expensive for the savings it produces.</p>
<p>Second, we should count independent sets. Root the tree decomposition, so that we can talk about the subtree descending from any bag and the subgraph of the given graph that it corresponds to. Then for each bag of the decomposition (in bottom-up order), and each independent subset of the bag, we want to count the number of independent sets in the corresponding subgraph that intersect the bag in the given subset. These independent sets are formed by combining choices of independent sets in child nodes. Therefore, we need to find the numbers of independent sets in each child node that are consistent with the choice of subset at the parent, and multiply them together. Each subset of a bag contributes to exactly one such computation at its parent, so the total number of arithmetic operations for this computation is the product of the number of bags and the number of subsets per bag. With bignum arithmetic, the total time for computing all of these counts is \(O(2^{5w}n^2\log n)\). Our new preprint cites a paper for this subproblem that isn’t sufficiently careful about bignum arithmetic, but still somehow ends up with a slower cubic total time bound; I think they’re just being sloppy and overcounting somehow.</p>
<p>Third, we can then reverse the counting process and step downward through the tree decomposition choosing how the random independent set intersects each bag. When we do this for a bag, we already know the intersection of the independent set with the parent bag. Therefore, all we have to do is choose among the subsets of the child bag that are consistent with that already-made choice, using probabilities that are proportional to the numbers of independent sets that can be formed for each consistent subset. We know these numbers because we already computed them in the second stage. So it’s just a single random choice per bag, which (because it involves bignum probabilities that are not dyadic rational) can reasonably be assumed to take a random amount of time whose expectation is linear. For the overall algorithm, the total expected time is \(O(n^2)\). Also, this stage of the algorithm can be repeated over and over, generating new random independent sets, without having to generate new tree decompositions or new counts.</p>
<p>Putting it all together, it appears that the total time for randomly generating independent sets, using dynamic programming on the tree decomposition to count these sets, and assuming fast bignum arithmetic, is \(O(2^{O(w)}n^2\log n)\) for the preprocessing stages of the algorithm, and then \(O(n^2)\) for each successive generated set.</p>
<p>(<a href="https://mathstodon.xyz/@11011110/107278583702646630">Discuss on Mastodon</a>)</p>David EppsteinThis week my student Daniel Frishberg posted our new preprint “Rapid mixing of the hardcore Glauber dynamics and other Markov chains in bounded-treewidth graphs”, arXiv:2111.03898. Despite the somewhat-technical title and content, it’s on an easy-to-explain problem, of generating random combinatorial objects (like independent sets in graphs) using random walks. Start with an undirected graph and an empty subset of its vertices, and then repeatedly choose a random vertex, flipping whether it is in or out of the subset whenever the resulting subset remains independent. How many of these steps does it take until the resulting random distribution on independent sets is nearly uniform?Gilbert tessellations from a cellular automaton2021-11-02T21:35:00+00:002021-11-02T21:35:00+00:00https://11011110.github.io/blog/2021/11/02/gilbert-tessellations-cellular<p>A <a href="https://en.wikipedia.org/wiki/Gilbert_tessellation">Gilbert tessellation</a> is what you get from choosing a random set of points-with-slopes in the plane, growing line segments in both directions with the chosen slope from each chosen point, at constant speed, and stopping the growth when each line segment runs into something else. The slopes can be in uniformly random directions but one standard variant of the Gilbert tessellation uses only horizontal and vertical slopes.</p>
<p style="text-align:center"><a href="https://commons.wikimedia.org/wiki/File:Gilbert_tessellation_axis.svg"><img src="/blog/assets/2018/Gilbert-rectangles.svg" alt="Axis-aligned Gilbert tessellation subdivides the plane into rectangles, by Claudio Rocchini" /></a></p>
<p>My paper “<a href="https://arxiv.org/abs/0911.2890">Growth and decay in life-like cellular automata</a>” observed that the Life-like cellular automaton rule B017/S1, when started with a sufficiently sparse random set of live cells, forms lines of replicators that look sort of like one of these axis-parallel Gilbert tessellations, as I discussed in <a href="/blog/2018/12/27/motorcycle-graphs-eventual.html">a previous post on sparse Life</a>.</p>
<p style="text-align:center"><img src="/blog/assets/2018/b017s1.png" alt="Replicator chaos in B017/S1" /></p>
<p>But it’s a bit messy: you also get stable or oscillating blobs of live cells, and replicators can sometimes make large gaps big enough for something else to get across them, rather than forming the impenetrable barriers that the segments of a true Gilbert tessellation would do. So I wondered: how easy is it to get Gilbert tessellations with less mess, in a cellular automaton?</p>
<p>Very easy, if you’re willing to make an automaton that hardcodes into its rules the construction process of a Gilbert tessellation. For instance, make an automaton on an infinite square grid with three states, empty, horizontal, and vertical. Horizontal cells always stay horizontal, and vertical cells always stay vertical. Empty cells with exactly one non-empty neighbor that is either a horizontally-adjacent horizontal cell or a vertically-adjacent vertical cell take on the same state as that neighbor, and otherwise stay empty. Then any horizontal cells will grow into horizontal walls, and vertical cells will grow into vertical walls, at constant speed, until running into other non-empty cells, just as the Gilbert tessellation definition demands. If you start with a sparse random set of non-empty cells of both types, you should get a Gilbert tessellation, more or less by definition. But controlling horizontal versus vertical growth by different cell states rather than by the pattern of live cells seems kind of a cheat. It makes creating Gilbert tessellations the only thing this three-state automaton can do, rather than an emergent behavior of the automaton. And it isn’t even symmetric under 90-degree rotations (although it does have a symmetry that combines rotation with state-swapping). Is there an automaton with only two states, and natural symmetric rules that can do other things but that when seeded randomly generates non-messy Gilbert tessellations?</p>
<p>Yes! I don’t know of a Life-like rule that does this (<a href="https://en.wikipedia.org/wiki/Life_without_Death">Life without death</a> does make nice impenetrable walls but with too much other stuff). But I think the rule below fits the bill. It’s the first thing I tried, at least, so I didn’t have to do any fine adjustments of the rules to make it work.</p>
<p>Here’s the rule:</p>
<ul>
<li>
<p>The cells form a square grid with the <a href="https://en.wikipedia.org/wiki/Moore_neighborhood">Moore 8-cell neighborhood</a>.</p>
</li>
<li>
<p>There are two states of cells, live and dead.</p>
</li>
<li>
<p>A dead cell becomes live only under two conditions:</p>
<ol>
<li>
<p>It has exactly two live neighbors (among its eight possible neighbors) that are orthogonally adjacent to each other.</p>
</li>
<li>
<p>It has exactly four live neighbors at the corners of a rectangle (necessarily in two orthogonally adjacent pairs, because we don’t count squares as being rectangles).</p>
</li>
</ol>
</li>
<li>
<p>All live cells immediately die.</p>
</li>
</ul>
<p style="text-align:center"><img src="/blog/assets/2021/gilbert/rule.svg" alt="Rules for the Gilbert cellular automaton" /></p>
<p>Or, in <a href="http://golly.sourceforge.net/">Golly</a> rule format:</p>
<pre>@RULE Gilbert
@TABLE
n_states:2
neighborhood:Moore
symmetries:rotate8reflect
var a={0,1}
var b={0,1}
var c={0,1}
var d={0,1}
var e={0,1}
var f={0,1}
var g={0,1}
var h={0,1}
0,1,1,0,0,0,0,0,0,1
0,1,1,0,1,1,0,0,0,1
1,a,b,c,d,e,f,g,h,0</pre>
<p>Then an initial pattern of two orthogonally adjacent live cells (a “domino”) will in the next step form two side-by-side dominos, in the step after that three dominos (with the center one in the initial location), and so on, building a wall two cells wide that alternates between dominos and dead cells, and oscillates with period two.</p>
<p style="text-align:center"><img src="/blog/assets/2021/gilbert/wall.svg" alt="Wall of alternating dominos in the Gilbert cellular automaton" /></p>
<p>Here’s what it looks like when I selected a large rectangle, randomly filled it with 2% live cells, and ran it in Golly. The red lines in this image are walls like the one above.</p>
<p style="text-align:center"><img src="/blog/assets/2021/gilbert/wide.png" alt="Gilbert cellular automaton on a sparse random field" /></p>
<p>Of course, at the edges of the randomly filled rectangle, the walls shoot off to infinity with no more obstructions. Here’s a closeup, showing the detailed pattern of the walls and how they meet:</p>
<p style="text-align:center"><img src="/blog/assets/2021/gilbert/crop.png" alt="Close-up of Gilbert cellular automaton on a sparse random field" /></p>
<p>It looks a lot like a Gilbert tessellation to me! Even starting with a 50% random fill produces the same sort of pattern at a finer scale:</p>
<p style="text-align:center"><img src="/blog/assets/2021/gilbert/5050.png" alt="Gilbert cellular automaton on a 50/50 random field" /></p>
<p>But rather than just going by intuitive visual appearance here’s some analysis showing that, if the plane is filled with live cells with some small probability \(p\), and then this rule is run on the result, then as \(p\to0\) the probability of seeing something that looks like a Gilbert tessellation in the neighborhood of any cell will tend to one. By “neighborhood” I mean everything within distance \(r\), where \(r\) should be chosen as a function of \(p\) that grows faster than linearly in \(1/p\) (so that we have nontrivial probability of seeing something other than just empty space) but slower than \((1/p)^{4/3}\).</p>
<p>The reason we need to limit the radius of the neighborhoods is that, in a large enough neighborhood, you will likely see something that deviates from a Gilbert tessellation. In the runs above, for instance, there are some right-angle corners where two line segments both meet and stop, or points where it appears that walls met head-to-head, but this shouldn’t happen in a Gilbert tessellation (or more precisely it happens with probability zero). There are two natural ways of getting a corner: you could start with an L-tromino of live cells, or two growing walls could coincidentally run into each other. But the expected number of triples of nearby live cells within the neighborhood is \(O(p^3r^2)\), and the expected number of pairs of dominos whose walls would meet at the same point is \(O(p^4r^3)\). It might also be the case that three or more initial live cells produce more exotic behavior; if so, the expected number of things like this that happen within the neighborhood is still \(O(p^3r^2)\). With our assumption on the growth rate of \(r\) relative to \(p\), these expected numbers, and therefore the probability of seeing any of these situations within the neighborhood, is negligible. For the same reason they have low probability of occurring close enough to the neighborhood to impinge on it before the Gilbert tessellation within the neighborhood forms.</p>
<p>So with high probability, in neighborhoods of radius \(r\), you’ll only see single live cells and double live cells in the initial state, and the pairs of double cells won’t be horizontally, vertically, or diagonally aligned with each other. Some of the double live cells will be dominos, with density \(\Theta(p^2)\). The only thing that can happen with such a state is that dominos start building walls which grow until they hit each other, exactly as described by a Gilbert tessellation. Once the Gilbert tessellation has been set up, it appears indestructible: the alternating live cells along the wall prevent any births into the layers of dead cells on either side, and if a wall is perturbed at its end it quickly grows back. However, proving this indestructability rigorously would require a more careful case analysis.</p>
<p>(<a href="https://mathstodon.xyz/@11011110/107211819080878015">Discuss on Mastodon</a>)</p>David EppsteinA Gilbert tessellation is what you get from choosing a random set of points-with-slopes in the plane, growing line segments in both directions with the chosen slope from each chosen point, at constant speed, and stopping the growth when each line segment runs into something else. The slopes can be in uniformly random directions but one standard variant of the Gilbert tessellation uses only horizontal and vertical slopes.Linkage2021-10-31T18:27:00+00:002021-10-31T18:27:00+00:00https://11011110.github.io/blog/2021/10/31/linkage<ul>
<li>
<p><a href="https://en.wikipedia.org/wiki/Square-difference-free_set">Square-difference-free set</a> (<a href="https://mathstodon.xyz/@11011110/107112823640205029">\(\mathbb{M}\)</a>), now a Good Article on Wikipedia. As the name suggests, these are sets of integers no two of which differ by a square. My favorite such set consists of the losing positions in <a href="https://en.wikipedia.org/wiki/Subtract_a_square">subtract-a-square</a>, where each move removes a square number of coins from a pile of coins, winning by taking the last coin. This general class of sets and the subtract-a-square set have \(o(n)\) elements up to \(n\), but their maximum density remains unknown.</p>
</li>
<li>
<p><a href="https://mathoverflow.net/q/406120/440">Can a convex polyhedron have an odd number of faces, all congruent</a> (<a href="https://mathstodon.xyz/@11011110/107121133147692528">\(\mathbb{M}\)</a>). If so the faces would have to all be kites, per comments at the link. Which raises the question: can a convex polyhedron with congruent kite faces avoid being either a <a href="https://en.wikipedia.org/wiki/Trapezohedron">trapezohedron</a> or formed from deltahedron (a polyhedron with equilateral triangle faces) by subdividing each triangle into three kites? Both automatically have evenly many faces.</p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/Regular_number">You might know about regular numbers</a> (<a href="https://mathstodon.xyz/@11011110/107127099279073309">\(\mathbb{M}\)</a>), of the form \(2^i\cdot 3^j\cdot 5^k\), from Babylonian mathematics, music theory, Plato, or as a test case for functional programming. But did you know that they come up in biology, as numbers of years between mass flowering in certain types of bamboo? See Veller, Nowak and Davis, “<a href="https://doi.org/10.1111/ele.12442">Extended flowering intervals of bamboos evolved by discrete multiplication</a>”, <em>Ecol. Lett.</em> 2015, via Andrey Zabolotskiy at <a href="https://oeis.org/A051037">OEIS A051037</a>.</p>
</li>
<li>
<p>My new paper “<a href="https://arxiv.org/abs/2110.06163">Finding relevant points for nearest-neighbor classification</a>”, has won the best paper award of the SIAM Symposium on Simplicity in Algorithms, SOSA22 <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107132784717543034">\(\mathbb{M}\)</a>).</span> Woo! In other news, the lists of accepted papers at <a href="https://www.siam.org/conferences/cm/program/accepted-papers/sosa22-accepted-papers">SOSA</a>, <a href="https://www.siam.org/conferences/cm/program/accepted-papers/soda22-accepted-papers">SODA</a>, and <a href="https://www.siam.org/conferences/cm/program/accepted-papers/alenex22-accepted-papers">ALENEX</a> are online.</p>
</li>
<li>
<p><a href="https://twitter.com/thienan496/status/1446021847292669953">Animation of the minimum-weight matchings of increasingly many points of two colors in a unit square</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107140270923344318">\(\mathbb{M}\)</a>).</span> Because the color densities fluctuate, the matching develops regions of many parallel long edges transporting excess density from one place to another. This is reflected mathematically in the fact that the expected length is \(\Theta(\sqrt{n\log n})\) compared to \(\Theta(\sqrt{n})\) for non-bipartite matching; see Ajtai, Komlós, and Tusnády, “<a href="https://doi.org/10.1007/BF02579135">On optimal matchings</a>”, <em>Combinatorica</em> 1984.</p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/Jacob_E._Goodman">Jacob E. Goodman</a>, famed as a discrete and computational geometer and cofounder of the top journal in the field, <em>Discrete & Computational Geometry</em>, <a href="https://web.archive.org/web/20211025204323/https://newyorkcomposerscircle.org/index.html">died on October 10</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107143828784210981">\(\mathbb{M}\)</a>,</span> <a href="https://newyorkcomposerscircle.org/composers/jacob-e-goodman.html">see also</a>).</p>
</li>
<li>
<p>The classical CS interview question of destructively reversing a singly-linked list goes back at least to <a href="http://i.stanford.edu/pub/cstr/reports/cs/tr/76/544/CS-TR-76-544.pdf">Ed McCreight in 1973</a> (<a href="https://mathstodon.xyz/@11011110/107147889403810499">\(\mathbb{M}\)</a>). But if you generalize a singly-linked list to a zipper (directed out in both directions from a finger <span style="white-space:nowrap">into it)</span> then reversal is trivial and you get the classical algorithm by moving your finger from start to end. I don’t know of references; maybe the zipper people are too focused on functional/non-destructive/reentrant methods to mention this?</p>
</li>
<li>
<p>I recently learned that the name “Thomsen graph” for comes from the work of Danish chemist <a href="https://en.wikipedia.org/wiki/Hans_Peter_J%C3%B8rgen_Julius_Thomsen">Julius Thomsen</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107154978136052455">\(\mathbb{M}\)</a>)</span> who <a href="https://archive.org/download/crossref-pre-1909-scholarly-works/10.1002%252Fcber.18860190141.zip/10.1002%252Fcber.188601902285.pdf">proposed in 1886 that it describes the structure of benzene</a>. Thomsen was late to the party: Kekulé had already proposed the benzene ring in 1865. But the name for the graph stuck.</p>
</li>
<li>
<p>My UCI colleague <a href="https://recruit.ap.uci.edu/JPF07189">Vijay Vazirani is looking for a postdoc in algorithmic design / algorithmic game theory</a> (<a href="https://mathstodon.xyz/@11011110/107157944689667569">\(\mathbb{M}\)</a>). One-year, renewable.</p>
</li>
<li>
<p><a href="https://sinews.siam.org/Details-Page/fairmandering-generating-fairness-optimized-political-districts">Fairmandering: generating fairness-optimized political districts</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107169485099658532">\(\mathbb{M}\)</a>),</span> Wes Gurnee and David Shmoys. If you generate a hierarchically-organized and large family of partitions of a state into contiguous equal-population regions, you can then optimize over the hierarchy for fairness. Gurnee and Shmoys choose to optimize the <a href="https://en.wikipedia.org/wiki/Efficiency_gap">efficiency gap</a> but their method is a two-edged sword: it would work equally well to optimize for partisan advantage.</p>
</li>
<li>
<p><a href="https://mathstodon.xyz/@christianp/107173511804051329">What high-order regular polygons do you have lying around your house?</a></p>
</li>
<li>
<p><a href="http://skepticsplay.blogspot.com/2013/06/in-praise-of-non-deductive-puzzles.html">In praise of non-deductive puzzles</a> (<a href="https://mathstodon.xyz/@11011110/107183397931741236">\(\mathbb{M}\)</a>). I’m not sure I agree that logic puzzles solved by intuition and guessing are better than ones where you have to make sufficiently deep deductions, but they both beat blind backtracking. I do agree that numberlinks should fill the grid as a natural consequence of connecting the numbers, not an extra constraint. And that <a href="http://mathgrant.blogspot.com/2010/10/grants-review-corner-volume-2.html">non-unique generators for puzzles whose solutions should be unique are an abomination</a>.</p>
</li>
<li>
<p><a href="https://sinews.siam.org/Details-Page/preserving-the-history-of-applied-mathematics">Preserving the history of applied mathematics</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107191450699219701">\(\mathbb{M}\)</a>),</span> John Boyd in <em>SIAM News</em>.</p>
</li>
<li>
<p><a href="https://www.npr.org/2021/10/30/1050817670/university-florida-professors-free-speech-voting-rights">University of Florida blocks faculty from being expert witnesses on voting rights, claiming that lawsuits against the state create a conflict of interest</a> <span style="white-space:nowrap">(<a href="https://mathstodon.xyz/@11011110/107198292249996684">\(\mathbb{M}\)</a>,</span> <a href="https://www.chronicle.com/article/u-of-florida-stops-professors-from-participating-in-voting-rights-suit-raising-cries-of-censorship">also</a>, <a href="https://www.nytimes.com/2021/10/29/us/florida-professors-voting-rights-lawsuit.html">also</a>). Beyond being an assault on academic freedom, this appears to violate the 1st amendment. US states can limit on-the-job speech, but here they would have testified on their own time, a routine activity that was blocked only because of its content.</p>
</li>
</ul>David EppsteinSquare-difference-free set (\(\mathbb{M}\)), now a Good Article on Wikipedia. As the name suggests, these are sets of integers no two of which differ by a square. My favorite such set consists of the losing positions in subtract-a-square, where each move removes a square number of coins from a pile of coins, winning by taking the last coin. This general class of sets and the subtract-a-square set have \(o(n)\) elements up to \(n\), but their maximum density remains unknown.