# Simplicial homology Information

*https://en.wikipedia.org/wiki/Simplicial_homology*

In
algebraic topology, **simplicial homology** is the sequence of
homology groups of a
simplicial complex. It formalizes the idea of the number of holes of a given dimension in the complex. This generalizes the number of
connected components (the case of dimension 0).

Simplicial homology arose as a way to study
topological spaces whose building blocks are *n*-
simplices, the *n*-dimensional analogs of triangles. This includes a point (0-simplex), a line segment (1-simplex), a triangle (2-simplex) and a tetrahedron (3-simplex). By definition, such a space is
homeomorphic to a
simplicial complex (more precisely, the
geometric realization of an
abstract simplicial complex). Such a homeomorphism is referred to as a *
triangulation* of the given space. Many topological spaces of interest can be triangulated, including every smooth
manifold (Cairns and
Whitehead).^{
[1]}^{: sec.5.3.2 }

Simplicial homology is defined by a simple recipe for any abstract simplicial complex. It is a remarkable fact that simplicial homology only depends on the associated topological space.^{
[2]}^{: sec.8.6 } As a result, it gives a computable way to distinguish one space from another.

## Definitions

### Orientations

A key concept in defining simplicial homology is the notion of an
orientation of a simplex. By definition, an orientation of a *k*-simplex is given by an ordering of the vertices, written as (*v*_{0},...,*v*_{k}), with the rule that two orderings define the same orientation if and only if they differ by an
even permutation. Thus every simplex has exactly two orientations, and switching the order of two vertices changes an orientation to the opposite orientation. For example, choosing an orientation of a 1-simplex amounts to choosing one of the two possible directions, and choosing an orientation of a 2-simplex amounts to choosing what "counterclockwise" should mean.

### Chains

Let *S* be a simplicial complex. A
simplicial *k*-chain is a finite
formal sum

where each *c*_{i} is an integer and σ_{i} is an oriented *k*-simplex. In this definition, we declare that each oriented simplex is equal to the negative of the simplex with the opposite orientation. For example,

The group of *k*-chains on *S* is written *C _{k}*. This is a
free abelian group which has a basis in one-to-one correspondence with the set of

*k*-simplices in

*S*. To define a basis explicitly, one has to choose an orientation of each simplex. One standard way to do this is to choose an ordering of all the vertices and give each simplex the orientation corresponding to the induced ordering of its vertices.

### Boundaries and cycles

Let σ = (*v*_{0},...,*v*_{k}) be an oriented *k*-simplex, viewed as a basis element of *C _{k}*. The

**boundary operator**

is the homomorphism defined by:

where the oriented simplex

is the *i*^{th} face of *σ*, obtained by deleting its *i*^{th} vertex.

In *C _{k}*, elements of the subgroup

are referred to as **cycles**, and the subgroup

is said to consist of **boundaries**.

### Boundaries of boundaries

Because , where is the *second* face removed, . In geometric terms, this says that the boundary of anything has no boundary. Equivalently, the abelian groups

form a
chain complex. Another equivalent statement is that *B _{k}* is contained in

*Z*.

_{k}As an example, consider a tetrahedron with vertices oriented as w,x,y,z. By definition, its boundary is given by: xyz - wyz + wxz - wxy. The boundary of the boundary is given by: (yz-xz+xy)-(yz-wz+wy)+(xz-wz+wx)-(xy-wy+wx) = 0.

### Homology groups

The *k*^{th} homology group *H _{k}* of

*S*is defined to be the quotient abelian group

It follows that the homology group *H _{k}*(

*S*) is nonzero exactly when there are

*k*-cycles on

*S*which are not boundaries. In a sense, this means that there are

*k*-dimensional holes in the complex. For example, consider the complex

*S*obtained by gluing two triangles (with no interior) along one edge, shown in the image. The edges of each triangle can be oriented so as to form a cycle. These two cycles are by construction not boundaries (since every 2-chain is zero). One can compute that the homology group

*H*

_{1}(

*S*) is isomorphic to

**Z**

^{2}, with a basis given by the two cycles mentioned. This makes precise the informal idea that

*S*has two "1-dimensional holes".

Holes can be of different dimensions. The
rank of the *k*th homology group, the number

is called the *k*th
Betti number of *S*. It gives a measure of the number of *k*-dimensional holes in *S*.

## Example

### Homology groups of a triangle

Let *S* be a triangle (without its interior), viewed as a simplicial complex. Thus *S* has three vertices, which we call *v*_{0}, *v*_{1}, *v*_{2}, and three edges, which are 1-dimensional simplices. To compute the homology groups of *S*, we start by describing the chain groups *C*_{k}:

*C*_{0}is isomorphic to**Z**^{3}with basis (*v*_{0}), (*v*_{1}), (*v*_{2}),*C*_{1}is isomorphic to**Z**^{3}with a basis given by the oriented 1-simplices (*v*_{0},*v*_{1}), (*v*_{0},*v*_{2}), and (*v*_{1},*v*_{2}).*C*_{2}is the trivial group, since there is no simplex like because the triangle has been supposed without its interior. So are the chain groups in other dimensions.

The **boundary homomorphism** ∂: *C*_{1} → *C*_{0} is given by:

Since *C*_{−1} = 0, every 0-chain is a cycle (i.e. *Z*_{0} = *C*_{0}); moreover, the group *B*_{0} of the 0-boundaries is generated by the three elements on the right of these equations, creating a two-dimensional subgroup of *C*_{0}. So the **0th homology group** *H*_{0}(*S*) = *Z*_{0}/*B*_{0} is isomorphic to **Z**, with a basis given (for example) by the image of the 0-cycle (*v*_{0}). Indeed, all three vertices become equal in the quotient group; this expresses the fact that *S* is
connected.

Next, the group of 1-cycles is the kernel of the homomorphism ∂ above, which is isomorphic to **Z**, with a basis given (for example) by (*v*_{0},*v*_{1}) − (*v*_{0},*v*_{2}) + (*v*_{1},*v*_{2}). (A picture reveals that this 1-cycle goes around the triangle in one of the two possible directions.) Since *C*_{2} = 0, the group of 1-boundaries is zero, and so the **1st homology group** *H*_{1}(*S*) is isomorphic to **Z**/0 ≅ **Z**. This makes precise the idea that the triangle has one 1-dimensional hole.

Next, since by definition there are no 2-cycles, *C*_{2} = 0 (the
trivial group). Therefore the **2nd homology group** *H*_{2}(*S*) is zero. The same is true for *H*_{i}(*S*) for all *i* not equal to 0 or 1. Therefore, the
homological connectivity of the triangle is 0 (it is the largest *k* for which the reduced homology groups up to *k* are trivial).

### Homology groups of higher-dimensional simplices

Let *S* be a
tetrahedron (without its interior), viewed as a simplicial complex. Thus *S* has four 0-dimensional vertices, six 1-dimensional edges, and four 2-dimensional faces. The construction of the homology groups of a tetrahedron is described in detail here.^{
[3]} It turns out that *H*_{0}(*S*) is isomorphic to **Z**, *H*_{2}(*S*) is isomorphic to **Z** too, and all other groups are trivial.Therefore, the
homological connectivity of the tetrahedron is 0.

If the tetrahedron contains its interior, then *H*_{2}(*S*) is trivial too.

In general, if *S* is a *d*-dimensional simplex, the following holds:

- If
*S*is considered without its interior, then*H*_{0}(*S*) =**Z**and*H*_{d}_{−1}(*S*) =**Z**and all other homologies are trivial; - If
*S*is considered with its interior, then*H*_{0}(*S*) =**Z**and all other homologies are trivial.

## Simplicial maps

Let *S* and *T* be
simplicial complexes. A **simplicial map** *f* from *S* to *T* is a function from the vertex set of *S* to the vertex set of *T* such that the image of each simplex in *S* (viewed as a set of vertices) is a simplex in *T*. A simplicial map *f*: *S* → *T* determines a homomorphism of homology groups *H*_{k}(*S*) → *H*_{k}(*T*) for each integer *k*. This is the homomorphism associated to a
chain map from the chain complex of *S* to the chain complex of *T*. Explicitly, this chain map is given on *k*-chains by

if *f*(*v*_{0}), ..., *f*(*v*_{k}) are all distinct, and otherwise *f*((*v*_{0}, ..., *v*_{k})) = 0.

This construction makes simplicial homology a functor from simplicial complexes to abelian groups. This is essential to applications of the theory, including the Brouwer fixed point theorem and the topological invariance of simplicial homology.

## Related homologies

**
Singular homology** is a related theory which is better adapted to theory rather than computation. Singular homology is defined for all topological spaces and depends only on the topology, not any triangulation; and it agrees with simplicial homology for spaces which can be triangulated.^{
[4]}^{: thm.2.27 } Nonetheless, because it is possible to compute the simplicial homology of a simplicial complex automatically and efficiently, simplicial homology has become important for application to real-life situations, such as
image analysis,
medical imaging, and
data analysis in general.

Another related theory is **
Cellular homology**.

## Applications

A standard scenario in many computer applications is a collection of points (measurements, dark pixels in a bit map, etc.) in which one wishes to find a topological feature. Homology can serve as a qualitative tool to search for such a feature, since it is readily computable from combinatorial data such as a simplicial complex. However, the data points have to first be
triangulated, meaning one replaces the data with a simplicial complex approximation. Computation of
persistent homology^{
[5]} involves analysis of homology at different resolutions, registering homology classes (holes) that persist as the resolution is changed. Such features can be used to detect structures of molecules, tumors in X-rays, and cluster structures in complex data.

More generally, simplicial homology plays a central role in topological data analysis, a technique in the field of data mining.

## Implementations

- A MATLAB toolbox for computing persistent homology, Plex ( Vin de Silva, Gunnar Carlsson), is available at this site.
- Stand-alone implementations in C++ are available as part of the Perseus and Dionysus software projects.
- For Python, there are libraries such as scikit-tda, Persim and giotto-tda, the latter aimed at generating topological features for machine learning. These can be found at the PyPI repository.

## See also

## References

**^**Prasolov, V. V. (2006),*Elements of combinatorial and differential topology*, American Mathematical Society, ISBN 0-8218-3809-1, MR 2233951**^**Armstrong, M. A. (1983),*Basic topology*, Springer-Verlag, ISBN 0-387-90839-0, MR 0705632**^**Wildberger, Norman J. (2012). "More homology computations". Archived from the original on 2021-12-22.**^**Hatcher, Allen (2002),*Algebraic topology*, Cambridge University Press, ISBN 0-521-79540-0, MR 1867354**^**Edelsbrunner, H.; Letscher, D.; Zomorodian, A. (2002). "Topological Persistence and Simplification".*Discrete & Computational Geometry*.**28**: 511–533. doi: 10.1007/s00454-002-2885-2.

Robins, V. (Summer 1999). "Towards computing homology from finite approximations" (PDF).*Topology Proceedings*.**24**: 503–532.