Safekipedia
Computational topologyHomology theory

Persistent homology

Adapted from Wikipedia · Adventurer experience

Persistent homology

In topological data analysis, persistent [homology](/wiki/Homology_(mathematics) is a way to study the shape of things. It helps us see important patterns in data, like holes or connected parts, by looking at the data from different distances. Features that stay the same from far to near are thought to be real parts of the data.

To use persistent homology, we need to represent the space we are studying as something called a simplicial complex. This breaks down a space into simple pieces, like points, lines, and triangles. We then use a distance measure to create a steps of these pieces, getting bigger step by step.

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

Definition

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

To do this, we turn the shape into 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 lasting features are thought to be the true parts of the shape, while shorter ones might just be random details.

Stability

Persistent homology is a strong tool because it stays stable. This means it doesn’t change much, even if there is some noise or small changes in the data. We measure this stability using something called the bottleneck distance. This 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. This ensures 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 trying to find simpler ways to represent these shapes. They want to make the calculations faster and easier. They aim to use fewer simplices while still getting good results.

Software

There are different software tools that help scientists study how shapes change. These tools work with special math ideas to find important patterns in shapes.

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.