Wiener index

From formulasearchengine
Jump to navigation Jump to search

In chemical graph theory, the Wiener index (also Wiener number) is a topological index of a molecule, defined as the sum of the lengths of the shortest paths between all pairs of vertices in the chemical graph representing the non-hydrogen atoms in the molecule.[1]


The Wiener index is named after Harry Wiener, who introduced it in 1947; at the time, Wiener called it the "path number".[2] It is the oldest topological index related to molecular branching.[3] Based on its success, many other topological indexes of chemical graphs, based on information in the distance matrix of the graph, have been developed subsequently to Wiener's work.[4]

The same quantity has also been studied in pure mathematics, under various names including the gross status,[5] the distance of a graph,[6] and the transmission.[7] The Wiener index is also closely related to the closeness centrality of a vertex in a graph, a quantity inversely proportional to the sum of all distances between the given vertex and all other vertices that has been frequently used in sociometry and the theory of social networks.[6]


Butane (C4H10) has two different structural isomers: n-butane, with a linear structure of four carbon atoms, and isobutane, with a branched structure. The chemical graph for n-butane is a four-vertex path graph, and the chemical graph for isobutane is a tree with one central vertex connected to three leaves.

The n-butane molecule has three pairs of vertices at distance one from each other, two pairs at distance two, and one pair at distance three, so its Wiener index is

The isobutane molecule has three pairs of vertices at distances one from each other (the three leaf-center pairs), and three pairs at distance two (the leaf-leaf pairs). Therefore, its Wiener index is

These numbers are instances of formulas for special cases of the Wiener index: it is for any -vertex path graph such as the graph of n-butane,[8] and for any -vertex star such as the graph of isobutane.[9]

Thus, even though these two molecules have the same chemical formula, and the same numbers of carbon-carbon and carbon-hydrogen bonds, their different structures give rise to different Wiener indices.

Relation to chemical properties

Wiener showed that the Wiener index number is closely correlated with the boiling points of alkane molecules.[2] Later work on quantitative structure–activity relationships showed that it is also correlated with other quantities including the parameters of its critical point,[10] the density, surface tension, and viscosity of its liquid phase,[11] and the van der Waals surface area of the molecule.[12]

Calculation in arbitrary graphs

The Wiener index may be calculated directly using an algorithm for computing all pairwise distances in the graph. When the graph is unweighted (so the length of a path is just its number of edges), these distances may be calculated by repeating a breadth-first search algorithm, once for each starting vertex.[13] The total time for this approach is O(nm), where n is the number of vertices in the graph and m is its number of edges.

For weighted graphs, one may instead use the Floyd–Warshall algorithm[13][14][15] or Johnson's algorithm,[16] with running time O(n3) or O(nm + n2 log n) respectively. Alternative but less efficient algorithms based on repeated matrix multiplication have also been developed within the chemical informatics literature.[17][18]

Calculation in special types of graph

When the underlying graph is a tree (as is true for instance for the alkanes originally studied by Wiener), the Wiener index may be calculated more efficiently. If the graph is partitioned into two subtrees by removing a single edge e, then its Wiener index is the sum of the Wiener indices of the two subtrees, together with a third term representing the paths that pass through e. This third term may be calculated in linear time by computing the sum of distances of all vertices from e within each subtree and multiplying the two sums.[19] This divide and conquer algorithm can be generalized from trees to graphs of bounded treewidth, and leads to near-linear-time algorithms for such graphs.[20]

An alternative method for calculating the Wiener index of a tree, by Bojan Mohar and Tomaž Pisanski, works by generalizing the problem to graphs with weighted vertices, where the weight of a path is the product of its length with the weights of its two endpoints. If v is a leaf vertex of the tree then the Wiener index of the tree may be calculated by merging v with its parent (adding their weights together), computing the index of the resulting smaller tree, and adding a simple correction term for the paths that pass through the edge from v to its parent. By repeatedly removing leaves in this way, the Wiener index may be calculated in linear time.[13]

For graphs that are constructed as products of simpler graphs, the Wiener index of the product graph can often be computed by a simple formula that combines the indices of its factors.[21] Benzenoids (graphs formed by gluing regular hexagons edge-to-edge) can be embedded isometrically into the Cartesian product of three trees, allowing their Wiener indices to be computed in linear time by using the product formula together with the linear time tree algorithm.[22]

Inverse problem

Template:Harvtxt considered the problem of determining which numbers can be represented as the Wiener index of a graph.[23] They showed that all but two positive integers have such a representation; the two exceptions are the numbers 2 and 5, which are not the Wiener index of any graph. For graphs that must be bipartite, they found that again almost all integers can be represented, with a larger set of exceptions: none of the numbers in the set

{2, 3, 5, 6, 7, 11, 12, 13, 15, 17, 19, 33, 37, 39}

can be represented as the Wiener index of a bipartite graph.

Gutman and Yeh conjectured, but were unable to prove, a similar description of the numbers that can be represented as Wiener indices of trees, with a set of 49 exceptional values. The conjecture was later proven by Wagner, Wang, and Yu.[24][25]


  1. {{#invoke:citation/CS1|citation |CitationClass=citation }}.
  2. 2.0 2.1 {{#invoke:citation/CS1|citation |CitationClass=citation }}.
  3. {{#invoke:citation/CS1|citation |CitationClass=citation }}.
  4. Template:Harvtxt. See in particular Table 2 on p. 32.
  5. {{#invoke:citation/CS1|citation |CitationClass=citation }}
  6. 6.0 6.1 {{#invoke:citation/CS1|citation |CitationClass=citation }}.
  7. {{#invoke:citation/CS1|citation |CitationClass=citation }}.
  8. As Template:Harvtxt describes, this formula was already given by Template:Harvtxt.
  9. {{#invoke:citation/CS1|citation |CitationClass=citation }}.
  10. {{#invoke:citation/CS1|citation |CitationClass=citation }}.
  11. {{#invoke:citation/CS1|citation |CitationClass=citation }}.
  12. {{#invoke:citation/CS1|citation |CitationClass=citation }}.
  13. 13.0 13.1 13.2 {{#invoke:citation/CS1|citation |CitationClass=citation }}.
  14. {{#invoke:citation/CS1|citation |CitationClass=citation }}.
  15. {{#invoke:citation/CS1|citation |CitationClass=citation }}.
  16. {{#invoke:citation/CS1|citation |CitationClass=citation }}.
  17. {{#invoke:citation/CS1|citation |CitationClass=citation }}.
  18. {{#invoke:citation/CS1|citation |CitationClass=citation }}.
  19. {{#invoke:citation/CS1|citation |CitationClass=citation }}.
  20. {{#invoke:citation/CS1|citation |CitationClass=citation }}.
  21. {{#invoke:citation/CS1|citation |CitationClass=citation }}.
  22. {{#invoke:citation/CS1|citation |CitationClass=citation }}. For earlier algorithms for benzenoids based on their partial cube structure, see {{#invoke:citation/CS1|citation |CitationClass=citation }}.
  23. {{#invoke:citation/CS1|citation |CitationClass=citation }}.
  24. {{#invoke:citation/CS1|citation |CitationClass=citation }}.
  25. {{#invoke:citation/CS1|citation |CitationClass=citation }}.

External links