Topological data analysis, Machine learning, Complexity Theory
Current Projects
Exact and Stable Computation of Persistent Relative Homology
Working under Drs. Lori Ziegelmeier and Gregory Henselman-Petrusek (PNNL), we
have developed a novel algorithm for the direct computation of persistent relative homology. Utilizing a recently presented
matrix factorization scheme, our method can compute the barcode decomposition
and persistence module of a pair of topological spaces equipped with arbitrary filtrations. The only restriction on these filtrations
is that the inclusion of spaces is preserved at each level. To our knowledge, there are no existing algorithms to perform this
calculation. Further, existing methods for computing persistent relative homology place heavy restrictions on the filtrations,
and are indirect in that they only provide a persistence diagram summary. I am presently the lead author on a manuscript in preparation
which proves the correctness and stability of our method. As an undergradute, I completed an honors thesis related to this work,
which can be viewed at the links below.
Persistent Relative Homology for Data Science
Related to the project above, I am currently working as the sole author of an open-source software module to implement a flexible method
for persistent relative homology with an emphasis on applications in TDA and data science. The implementation is written in low-level
Rust for performance purposes, and is complete with Python bindings in the
Open Applied Topology (OAT) project. The code utilizes modern data structures for matrix
algebra which not only compress sparse matrices, but lazily generate their rows and columns on an as-needed basis, allowing this algorithm
to circumvent major memory use choke-points that have previously plagued algorithms in applied topology. The images below give a few examples
of our algorithm in action!
phantom text here
Undergraduate Capstones
--
Evolving Mobile Agents in Conway’s Game of Life
This project was completed as my computer science capstone during the Fall of 2023, when I took an introductory
course in Artificial Intelligence with my academic advisor Susan Fox.
Using the popular cellular automaton Conway's Game of Life,
we investigated to capacity for agents (or cell tilings) within the game to exhibit emergent or intelligent behavior.
The explicit goal was to write a genetic algorithm which, given a randomly generated popualtion of cell tilings, could
be used to evolve subsequent generations of cell tilings which are capable of directed growth and movement. Our
genetic algorithm is implemented in Python and required the NumPy library and elementary linear algebra in order
to assess the behavior and fitness of the population. The project also includes a front-end animation built with
Matplotlib. Check out the links below to see the project in more detail.
Numerical Techniques for the Wave Equation
This project was completed as my mathematics capstone during the Fall of 2023, when I took a math modeling
course with Will Mitchell. This
was primarily an investigation of numerical techniques for approximating solutions to partial
differential equations, and in particular finite differences and the Fourier spectral method. I studied each of
these techniques using the wave equation, and implemented both. Check out the links below to see my work in
more detail.