Safekipedia
Computational topologyHomology theory

Persistent homology

Adapted from Wikipedia · Discoverer experience

In topological data analysis, persistent homology is a special way to study the shape of things by looking at their topological features. This means it helps us understand important patterns in data, like holes or connected parts, by looking at the data at different scales or resolutions. Features that stay the same over many scales are considered more important because they are likely real parts of the data, not just mistakes or noise.

To use persistent homology, we first need to represent the space we are studying as something called a simplicial complex. This is a mathematical way to break down a space into simple building blocks, like points, lines, and triangles. We then use a distance function to create a sequence of these blocks, getting bigger and bigger step by step.

One common way to do this is by using a group of points called a point cloud. We can look at how these points change as we move away from them, creating what’s called a offset filtration. We can also use something called the nerve to get a special kind of filtration known as the Čech filtration. Another method uses a sequence of structures called Vietoris–Rips complexes, known together as the Vietoris–Rips filtration. These tools help scientists and mathematicians understand complex shapes and patterns hidden in data.

Definition

Persistent homology is a way to study shapes by looking at their features at different scales. Imagine taking a photo of a landscape and then zooming in and out — some features, like a big mountain, stay visible even when you change the zoom. In persistent homology, we want to find these "sturdy" features that don’t disappear easily when we change how we look at the shape.

To do this, we need to represent the shape as a network of connected points and lines, called a simplicial complex. By looking at this network from many different "zoom levels," we can see which features last the longest. These long-lasting features are thought to be the true characteristics of the shape, while shorter ones might just be random noise or small details.

Stability

Persistent homology is a strong tool because it stays stable, meaning it doesn’t change much even if there is some noise or small changes in the data. This stability is measured using something called the bottleneck distance, which helps us understand how similar two sets of data are. When we make small changes to the data we are studying, the results from persistent homology also change only a little bit. This makes persistent homology reliable for finding real patterns in complicated spaces.

The study of these patterns uses special mathematical tools to compare different functions and their effects, ensuring that the important features of the space are captured accurately.

Computation

The main way to calculate persistent homology uses special math tools called upper-triangular matrices. This process can take a lot of time, depending on how many small shapes, or simplices, are involved.

Researchers are working hard to find simpler ways to represent these shapes, so the calculations can be done faster and more easily. They aim to use fewer simplices while still getting good results.

Software

There are different software tools that help scientists study how shapes change by looking at their features across various sizes. These tools work with special mathematical representations of spaces to find important patterns.

Software packageCreatorLatest releaseRelease dateSoftware licenseOpen sourceProgramming languageFeatures
OpenPHRodrigo Mendoza-Smith, Jared Tanner0.0.125 April 2019Apache 2.0YesMatlab, CUDAGPU acceleration
javaPlexAndrew Tausz, Mikael Vejdemo-Johansson, Henry Adams4.2.514 March 2016CustomYesJava, Matlab
DionysusDmitriy Morozov2.0.1027 Jun 2023Modified BSDYesC++, Python bindings
PerseusVidit Nanda4.0 betaGPLYesC++
PHAT Ulrich Bauer, Michael Kerber, Jan Reininghaus1.4.1YesC++
DIPHAJan ReininghausYesC++
Gudhi INRIA3.10.11 July 2024MIT/GPLv3YesC++, Python bindings
CTLRyan Lewis0.2BSDYesC++
phomAndrew TauszYesR
TDABrittany T. Fasy, Jisu Kim, Fabrizio Lecci, Clement Maria, Vincent Rouvreau1.516 June 2016YesRProvides R interface for GUDHI, Dionysus and PHAT
EireneGregory Henselman1.0.19 March 2019GPLv3YesJulia
RipserUlrich Bauer1.0.115 September 2016MITYesC++
CubicleHubert Wagnerv0.8 betaMay 2018GPLYesC++Handles large 3D and 2D grayscale images (scalar voxel data)
the Topology ToolKitJulien Tierny, Guillaume Favelier, Joshua Levine, Charles Gueunet, Michael Michaux0.9.829 July 2019BSDYesC++, VTK and Python bindings
libstickStefan Huber0.227 November 2014MITYesC++
Ripser++Simon Zhang, Mengbai Xiao, and Hao Wang1.0March 2020MITYesCUDA, C++, Python bindingsGPU acceleration

This article is a child-friendly adaptation of the Wikipedia article on Persistent homology, available under CC BY-SA 4.0.