• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
UT Shield
Texas Experimental Geometry Lab
  • Home
  • Projects
  • People
  • Resources
  • Contact

November 28, 2024, Filed Under: New Algorithm, Ping Pong Patches

New Algorithm

Ping pong patches
New Algorithm
Demos
Future Work

At the end of last semester, we had an idea for a new searching algorithm that we called ‘image patching’. You can read more about our initial idea on the old project page here.

New Visualization Tool

Our previous algorithms were able to find some valid intervals for smaller groups, but as after moving to the (3,4,4)-triangle group, our visualization of  RP1RP1 as a circle started to become crowded and difficult to debug (it is known that the valid intervals for this group needed to cover all of RP1RP1). To solve this visualization problem before continuning to work on the algorithm, we decided to display each disconnected interval on its own copy of RP1RP1 which we represented as horizontal lines which wrapped around. This gave us the much more satisfying image below:

triangle from one word

Intializing Intervals

As before, we initialize intervals around the singular directions of words of reasonable length (usually 5-7 letters) which are selected by taking paths along the automatic structure which represents the particular group presentation we are using. The idea of this was that since valid intervals must contain the singular directions of infinite length words of the graph, we can approximate these spots with shorter words to start our search. For each of these singular directions, we initialize a small interval around it with interval endpoints plus or minus ϵϵ from the angle of the singular direction.

Patching Intervals

Our previous algorithms all tried to then expand these intial intervals, checking if they were valid at each step. They usually each had the flaw of expanding too far, skipping over what would have been valid intervals. This was where we had the idea for image patching. Each interval would expand by exactly the amount that it needed to at each iteration. This would mean that we would never expand more than necessary guaranteeing we would find valid intervals if they did in fact exist (assuming the initial intervals were placed in a reasonable enough location).

Algorithm Pseudocode

The algorithm can be broken down as follows:

    A) For each node of the graph associated to the group presentation, do the following:

        1) Initialize an empty disconnected interval for the current node.

        2) Recursively find all words of length 5 starting from the current node (paths of length along the graph)

        3) For each word, do the following:

            i) Find the matrix representation of the word by multiplying all of the SL(2,R)SL(2,R) representations of the letters together from right to left.

            ii) Get the SVD of the matrix representation and find the location of the singular direction associated with the largest singular value in RP1RP1.

            iii) Initialize an interval with endpoints plus or minus ϵϵ from the singular direction and add it to the disconnected interval for the current node.

    B) Patch intervals according to the following until valid intervals are found:

        1) For each disconnected interval:

            i) Initialize an empty list of failed containments

            ii) For each disconnected interval which must be contained in the current interval according to the graph associated to the group presentation:

                a) Find the image of the disconnected interval under the letter associated with edge connecting the two disconnected interval’s nodes.

                b) If the images of any of the components are not contained in the current disconnected interval, add them to the list of failed containments.

            iii) For each failure, create a new interval with endpoints plus or minus ϵϵ of the failed interval and add it to the current disconnected interval.

            iv) Merge all of the intervals in the current disconnected interval.

        2) Check if any of the disconnected intervals cover are equal to RP1RP1. If any of them are, the search has failed.

        3) Check all of the containments of the new disconnected intervals. If none of them have failed containments, we have found valid intervals.

This summarizes the general idea of the algorithm. There are many small optimizations we use that are not included in this description but following exactly what is outlined here will still define an algorithm which works to find the desired intervals.

See the code on GitHub here: https://github.com/CapSnCrunch/TXGL

Primary Sidebar

Upcoming Projects

  • Ψ S 3 : Pseudo self-similar structures
  • Visualizing Markov codings for geodesic flow
  • Surfaces in Triangulated 4-Manifolds

Past Project

  • Ping Pong Patches
  • Billiards in the Projective Plane
  • Stable Commutator Length
  • Automatic Ping-Pong
  • Convex domains in projective geometry
  • Ping pong and beyond

UT Home | Emergency Information | Site Policies | Web Accessibility | Web Privacy | Adobe Reader

© The University of Texas at Austin 2025