Recent from talks
Nothing was collected or created yet.
Strahler number
View on Wikipedia
In mathematics, the Strahler number or Horton–Strahler number of a mathematical tree is a numerical measure of its branching complexity.
These numbers were first developed in hydrology, as a way of measuring the complexity of rivers and streams, by Robert E. Horton (1945) and Arthur Newell Strahler (1952, 1957). In this application, they are referred to as the Strahler stream order and are used to define stream size based on a hierarchy of tributaries. The same numbers also arise in the analysis of L-systems and of hierarchical biological structures such as (biological) trees and animal respiratory and circulatory systems, in register allocation for compilation of high-level programming languages and in the analysis of social networks.
Definition
[edit]All trees in this context are directed graphs, oriented from the root towards the leaves; in other words, they are arborescences. The degree of a node in a tree is just its number of children. One may assign a Strahler number to all nodes of a tree, in bottom-up order, as follows:
- If the node is a leaf (has no children), its Strahler number is one.
- If the node has one child with Strahler number i, and all other children have Strahler numbers less than i, then the Strahler number of the node is i again.
- If the node has two or more children with Strahler number i, and no children with greater number, then the Strahler number of the node is i + 1.
The Strahler number of a tree is the number of its root node.
Algorithmically, these numbers may be assigned by performing a depth-first search and assigning each node's number in postorder. The same numbers may also be generated via a pruning process in which the tree is simplified in a sequence of stages, where in each stage one removes all leaf nodes and all of the paths of degree-one nodes leading to leaves: the Strahler number of a node is the stage at which it would be removed by this process, and the Strahler number of a tree is the number of stages required to remove all of its nodes. Another equivalent definition of the Strahler number of a tree is that it is the height of the largest complete binary tree that can be homeomorphically embedded into the given tree; the Strahler number of a node in a tree is similarly the height of the largest complete binary tree that can be embedded below that node.
Any node with Strahler number i must have at least two descendants with Strahler number i − 1, at least four descendants with Strahler number i − 2, etc., and at least 2i − 1 leaf descendants. Therefore, in a tree with n nodes, the largest possible Strahler number is log2 n + 1.[1] However, unless the tree forms a complete binary tree its Strahler number will be less than this bound. In an n-node binary tree, chosen uniformly at random among all possible binary trees, the expected index of the root is with high probability very close to log4 n.[2]
Applications
[edit]River networks
[edit]In the application of the Strahler stream order to hydrology, each segment of a stream or river within a river network is treated as a node in a tree, with the next segment downstream as its parent. When two first-order streams come together, they form a second-order stream. When two second-order streams come together, they form a third-order stream. Streams of lower order joining a higher order stream do not change the order of the higher stream. Thus, if a first-order stream joins a second-order stream, it remains a second-order stream. It is not until a second-order stream combines with another second-order stream that it becomes a third-order stream. As with mathematical trees, a segment with index i must be fed by at least 2i − 1 different tributaries of index 1. Shreve noted that Horton's and Strahler's Laws should be expected from any topologically random distribution. A later review of the relationships confirmed this argument, establishing that, from the properties the laws describe, no conclusion can be drawn to explain the structure or origin of the stream network.[3][4]
To qualify as a stream a hydrological feature must be either recurring or perennial. Recurring (or "intermittent") streams have water in the channel for at least part of the year. The index of a stream or river may range from 1 (a stream with no tributaries) to 12 (globally the most powerful river, the Amazon, at its mouth). The Ohio River is of order eight and the Mississippi River is of order 10. Estimates are that 80% of the streams on the planet are first to third order headwater streams.[5]
If the bifurcation ratio of a river network is high, then there is a higher chance of flooding. There would also be a lower time of concentration.[6] The bifurcation ratio can also show which parts of a drainage basin are more likely to flood, comparatively, by looking at the separate ratios. Most British rivers have a bifurcation ratio of between 3 and 5.[7]

Gleyzer et al. (2004) describe how to compute Strahler stream order values in a GIS application. This algorithm is implemented by RivEX, an ESRI ArcGIS Pro 3.4.x tool. The input to their algorithm is a network of the centre lines of the bodies of water, represented as arcs (or edges) joined at nodes. Lake boundaries and river banks should not be used as arcs, as these will generally form a non-tree network with an incorrect topology.
Alternative stream ordering systems have been developed by Shreve[8][9] and Hodgkinson et al.[3] A statistical comparison of Strahler and Shreve systems, together with an analysis of stream/link lengths, is given by Smart.[10]
Other hierarchical systems
[edit]The Strahler numbering may be applied in the statistical analysis of any hierarchical system, not just to rivers.
- Arenas et al. (2004) describe an application of the Horton–Strahler index in the analysis of social networks.
- Ehrenfeucht, Rozenberg & Vermeir (1981) applied a variant of Strahler numbering (starting with zero at the leaves instead of one), which they called tree-rank, to the analysis of L-systems.
- Strahler numbering has also been applied to biological hierarchies such as the branching structures of trees[11] and of animal respiratory and circulatory systems.[12]
Register allocation
[edit]When translating a high-level programming language to assembly language the minimum number of registers required to evaluate an expression tree is exactly its Strahler number. In this context, the Strahler number may also be called the register number.[13]
For expression trees that require more registers than are available, the Sethi–Ullman algorithm may be used to translate an expression tree into a sequence of machine instructions that uses the registers as efficiently as possible, minimizing the number of times intermediate values are spilled from registers to main memory and the total number of instructions in the resulting compiled code.
Related parameters
[edit]Bifurcation ratio
[edit]Associated with the Strahler numbers of a tree are bifurcation ratios, numbers describing how close to balanced a tree is. For each order i in a hierarchy, the ith bifurcation ratio is
where ni denotes the number of nodes with order i.
The bifurcation ratio of an overall hierarchy may be taken by averaging the bifurcation ratios at different orders. In a complete binary tree, the bifurcation ratio will be 2, while other trees will have larger bifurcation ratios. It is a dimensionless number.
Pathwidth
[edit]The pathwidth of an arbitrary undirected graph G may be defined as the smallest number w such that there exists an interval graph H containing G as a subgraph, with the largest clique in H having w + 1 vertices. For trees (viewed as undirected graphs by forgetting their orientation and root) the pathwidth differs from the Strahler number, but is closely related to it: in a tree with pathwidth w and Strahler number s, these two numbers are related by the inequalities[14]
- w ≤ s ≤ 2w + 2.
The ability to handle graphs with cycles and not just trees gives pathwidth extra versatility compared to the Strahler number. However, unlike the Strahler number, the pathwidth is defined only for the whole graph, and not separately for each node in the graph.
See also
[edit]- Main stem of a river, typically found by following the branch with the highest Strahler number
- Pfafstetter Coding System
Notes
[edit]- ^ Devroye & Kruszewski (1996).
- ^ Devroye and Kruszewski (1995, 1996).
- ^ a b Hodgkinson, J.H., McLoughlin, S. & Cox, M.E. 2006. The influence of structural grain on drainage in a metamorphic sub-catchment: Laceys Creek, southeast Queensland, Australia. Geomorphology, 81: 394–407.
- ^ Kirchner, J.W., 1993. Statistical inevitability of Horton Laws and the apparent randomness of stream channel networks. Geology 21, 591–594.
- ^ "Stream Order – The Classification of Streams and Rivers". Archived from the original on 2011-11-27. Retrieved 2011-12-11.
- ^ Bogale, Alemsha (2021). "Morphometric analysis of a drainage basin using geographical information system in Gilgel Abay watershed, Lake Tana Basin, upper Blue Nile Basin, Ethiopia". Applied Water Science. 11 (7) 122. Bibcode:2021ApWS...11..122B. doi:10.1007/s13201-021-01447-9. S2CID 235630850.
- ^ Waugh (2002).
- ^ Shreve, R.L., 1966. Statistical law of stream numbers. Journal of Geology 74, 17–37.
- ^ Shreve, R.L., 1967. Infinite topologically random channel networks. Journal of Geology 75, 178–186.
- ^ Smart, J.S. 1968, Statistical properties of stream lengths, Water Resources Research, 4, No 5. 1001–1014
- ^ Borchert & Slade (1981)
- ^ Horsfield (1976).
- ^ Ershov (1958); Flajolet, Raoult & Vuillemin (1979).
- ^ Luttenberger & Schlund (2011), using a definition of the "dimension" of a tree that is one less than the Strahler number.
References
[edit]- Arenas, A.; Danon, L.; Díaz-Guilera, A.; Gleiser, P. M.; Guimerá, R. (2004), "Community analysis in social networks", European Physical Journal B, 38 (2): 373–380, arXiv:cond-mat/0312040, Bibcode:2004EPJB...38..373A, doi:10.1140/epjb/e2004-00130-1, S2CID 9764926.
- Borchert, Rolf; Slade, Norman A. (1981), "Bifurcation ratios and the adaptive geometry of trees", Botanical Gazette, 142 (3): 394–401, doi:10.1086/337238, hdl:1808/9253, JSTOR 2474363, S2CID 84145477.
- Devroye, Luc; Kruszewski, Paul (1995), "A note on the Horton–Strahler number for random trees", Information Processing Letters, 56 (2): 95–99, doi:10.1016/0020-0190(95)00114-R.
- Devroye, L.; Kruszewski, P. (1996), "On the Horton–Strahler number for random tries", RAIRO Informatique Théorique et Applications, 30 (5): 443–456, doi:10.1051/ita/1996300504431, MR 1435732
- Ehrenfeucht, A.; Rozenberg, G.; Vermeir, D. (1981), "On ETOL systems with finite tree-rank", SIAM Journal on Computing, 10 (1): 40–58, doi:10.1137/0210004, MR 0605602.
- Ershov, A. P. (1958), "On programming of arithmetic operations", Communications of the ACM, 1 (8): 3–6, doi:10.1145/368892.368907, S2CID 15986378.
- Flajolet, P.; Raoult, J. C.; Vuillemin, J. (1979), "The number of registers required for evaluating arithmetic expressions", Theoretical Computer Science, 9 (1): 99–125, doi:10.1016/0304-3975(79)90009-4.
- Gleyzer, A.; Denisyuk, M.; Rimmer, A.; Salingar, Y. (2004), "A fast recursive GIS algorithm for computing Strahler stream order in braided and nonbraided networks", Journal of the American Water Resources Association, 40 (4): 937–946, Bibcode:2004JAWRA..40..937G, doi:10.1111/j.1752-1688.2004.tb01057.x, S2CID 128399321.
- Horsfield, Keith (1976), "Some mathematical properties of branching trees with application to the respiratory system", Bulletin of Mathematical Biology, 38 (3): 305–315, doi:10.1007/BF02459562, PMID 1268383, S2CID 189888885.
- Horton, R. E. (1945), "Erosional development of streams and their drainage basins: hydro-physical approach to quantitative morphology", Geological Society of America Bulletin, 56 (3): 275–370, doi:10.1130/0016-7606(1945)56[275:EDOSAT]2.0.CO;2, S2CID 129509551.
- Lanfear, K. J. (1990), "A fast algorithm for automatically computing Strahler stream order", Journal of the American Water Resources Association, 26 (6): 977–981, Bibcode:1990JAWRA..26..977L, doi:10.1111/j.1752-1688.1990.tb01432.x.
- Luttenberger, Michael; Schlund, Maxmilian (2011), An extension of Parikh's theorem beyond idempotence, arXiv:1112.2864, Bibcode:2011arXiv1112.2864L
- Strahler, A. N. (1952), "Hypsometric (area-altitude) analysis of erosional topology", Geological Society of America Bulletin, 63 (11): 1117–1142, doi:10.1130/0016-7606(1952)63[1117:HAAOET]2.0.CO;2.
- Strahler, A. N. (1957), "Quantitative analysis of watershed geomorphology", Transactions of the American Geophysical Union, 38 (6): 913–920, Bibcode:1957TrAGU..38..913S, doi:10.1029/tr038i006p00913.
- Waugh, David (2002), Geography, An Integrated Approach (3rd ed.), Nelson Thornes.
Strahler number
View on GrokipediaDefinition and Fundamentals
Formal Definition
The Strahler number, also known as the Horton–Strahler number, is a measure of branching complexity defined on rooted trees, which are directed acyclic graphs consisting of a single root node with edges directed away from the root and no directed cycles.[5] The Strahler number is assigned recursively to each node in the tree. All leaf nodes (those with no children) are assigned the Strahler number 1. For a non-leaf node, let be the maximum Strahler number among its children. The node is then assigned the Strahler number if exactly one child has Strahler number (and all others have strictly smaller values); otherwise, if two or more children have Strahler number , the node is assigned .[5] The Strahler number of the entire tree, denoted for a rooted tree , is the value assigned to the root node.[5] This measure is equivalent to the Horton–Strahler stream order used in geomorphology to quantify the hierarchical structure of river networks.[6]Illustrative Examples
To illustrate the Strahler number, consider simple tree structures where the assignment proceeds bottom-up, starting with leaves labeled as order 1 and propagating orders to internal nodes based on the maximum order among children, incrementing only when multiple children share that maximum.[7][8] A linear chain tree, or path graph, consisting of a single sequence of n nodes from root to leaf with no branching, has a Strahler number of 1 at every node, as there are never multiple children to trigger an increment.[9] For example, in a chain of three nodes—root connected to an internal node connected to a leaf—the leaf receives order 1, the internal node inherits 1 from its single child, and the root inherits 1 similarly.[7] In contrast, a complete binary tree of height h, where every level is fully filled and all leaves are at depth h, has a Strahler number of h at the root, with orders increasing uniformly by 1 at each level due to symmetric branching.[8] This reflects the balanced case where the Strahler number equals the tree's height.[10] For an unbalanced tree, consider a root with three direct subtrees: one is a single leaf (order 1), and the other two are each complete binary trees of height 1 (roots with two leaves each, yielding order 2 for those subroots). The bottom-up assignment begins with all leaves labeled 1; the two subroots then each receive order 2, as they have two children of order 1; finally, the main root has children of orders 1, 2, and 2, so its order is the maximum (2) incremented by 1 to 3, since two children share that maximum.[7][8] This labeling highlights how asymmetry in branching affects the overall order without proportional depth increase.[9]Historical Development
Origins in Hydrology
The concept of stream ordering, which laid the groundwork for the Strahler number, was first introduced by Robert E. Horton in his 1945 paper on the erosional development of streams and drainage basins. Horton proposed a hierarchical classification system for streams within a drainage basin, defining stream order based on the branching structure and introducing the bifurcation ratio as a quantitative measure of how stream numbers decrease with increasing order. This approach aimed to provide a hydrophysical framework for analyzing basin morphology, emphasizing the role of stream networks in erosion processes and overall landscape evolution.[11] Arthur N. Strahler built upon Horton's ideas, formalizing the system in his 1957 quantitative analysis of watershed geomorphology. There, he established a rule where the order of a stream segment increases only when two streams of the same order join, creating a higher-order channel otherwise. These refinements shifted the focus from qualitative descriptions to a more objective, numerical scheme for classifying stream hierarchies, enabling precise evaluations of basin geometry, erosional dynamics, and flood potential. The motivation stemmed from the need to quantify drainage basin characteristics to predict hydrological behaviors, such as water flow patterns and sediment transport, which were critical for geomorphic studies.[1] By the 1960s, Strahler's stream ordering system had gained widespread adoption in hydrological research and mapping efforts. This integration facilitated standardized topographic mapping and supported the development of predictive tools for erosion and flooding risks in diverse watersheds.Adoption and Extensions
Following its initial formulation in hydrology, the Strahler number underwent mathematical formalization in graph theory and combinatorics during the 1970s and 1980s, where it was recognized as a measure of branching complexity applicable to abstract tree structures. In 1979, Philippe Flajolet, Jean-Luc Raoult, and Jean Vuillemin analyzed the distribution of Strahler numbers in binary trees, connecting the concept to stack depth and register requirements in computational processes. This work highlighted its utility in evaluating tree shapes for algorithmic efficiency. Concurrently, in 1981, N. Megiddo, S. L. Hakimi, M. R. Garey, D. S. Johnson, and C. H. Papadimitriou established a link between the Strahler number and pathwidth in undirected trees, equating the former to the search number needed to clear a graph of contaminants, thus integrating it into broader graph searching paradigms.[12] In computer science, the Strahler number was independently rediscovered as the "register function" for optimizing register allocation in compilers, particularly for evaluating arithmetic expressions represented as trees. This connection traces back to Andrei Ershov's 1958 work on the minimal number of registers required, later formalized in the Sethi–Ullman algorithm (1970), which computes labeling equivalent to Strahler numbers to minimize spills during code generation. By the 1980s, these insights influenced compiler design, with the Strahler-based labeling ensuring optimal register usage for binary operator trees.[13] From the 1990s onward, extensions proliferated into formal language theory and modeling applications. In 1979, Andrzej Ehrenfeucht, Grzegorz Rozenberg, and Dirk Vermeir introduced tree-rank—a variant of the Strahler number—for analyzing derivation trees in ET0L systems, a class of parallel rewriting systems akin to L-systems used for simulating plant morphogenesis and branching patterns. This facilitated quantitative assessment of structural complexity in developmental models.[14] Similarly, the Strahler number found application in social network analysis, where it quantifies hierarchical branching in affiliation networks and communication trees, as explored in recent combinatorial studies. Key milestones in practical adoption include its integration into geographic information systems (GIS) during the 2000s. ArcGIS, developed by Esri, incorporated Strahler ordering in its Spatial Analyst toolbox for automated stream network delineation from digital elevation models, enabling efficient classification of drainage hierarchies in geospatial datasets.[15] Theoretically, Luc Devroye and Pawel Kruszewski's 1995 analysis of Strahler numbers in random binary trees provided asymptotic results on expected values and variances, influencing probabilistic models of tree growth.[16] Recent extensions, particularly as of 2025, have advanced probabilistic interpretations on Galton–Watson trees. For instance, Robin Khanfir's work derives limit theorems for the Strahler number under stable offspring distributions, conditioning on tree size.[17] Similarly, updated analyses by Khanfir and others on Galton–Watson trees with infinite variance establish central limit theorems, bridging branching processes with hydrological laws.[18] These contributions, often disseminated via arXiv, underscore ongoing interdisciplinary growth beyond pre-2021 literature.Computation and Properties
Algorithms for Calculation
The Strahler number of a tree can be computed using a recursive algorithm based on post-order traversal, such as depth-first search, which processes the tree bottom-up from the leaves to the root. For a leaf node (with no children), the Strahler number is assigned as 1. For an internal node, the Strahler number is determined by examining the Strahler numbers of its children: let be the maximum Strahler number among the children; if exactly one child has Strahler number , then the node's Strahler number is ; otherwise (if two or more children have ), it is .[8] This approach operationalizes the branching complexity measure by propagating orders upward, ensuring that confluences of high-order branches increase the order only when multiple equivalent maxima merge. The recursive procedure can be expressed in pseudocode as follows:function Strahler(node):
if node has no children:
return 1
child_orders = [Strahler(child) for child in node.children]
m = max(child_orders)
count_max = number of children with order m
if count_max >= 2:
return m + 1
else:
return m
function Strahler(node):
if node has no children:
return 1
child_orders = [Strahler(child) for child in node.children]
m = max(child_orders)
count_max = number of children with order m
if count_max >= 2:
return m + 1
else:
return m