In
mathematics
Mathematics is a field of study that discovers and organizes methods, Mathematical theory, theories and theorems that are developed and Mathematical proof, proved for the needs of empirical sciences and mathematics itself. There are many ar ...
, a combinatorial explosion is the rapid growth of the complexity of a problem due to the way its
combinatorics
Combinatorics is an area of mathematics primarily concerned with counting, both as a means and as an end to obtaining results, and certain properties of finite structures. It is closely related to many other areas of mathematics and has many ...
depends on input, constraints and bounds. Combinatorial explosion is sometimes used to justify the intractability of certain problems.
[http://intelligence.worldofcomputing/combinatorial-explosion](_blank)
Combinatorial Explosion. Examples of such problems include certain mathematical
functions, the analysis of some puzzles and games, and some pathological examples which can be modelled as the
Ackermann function.
Examples
Latin squares
A
Latin square of order is an array with entries from a set of elements with the property that each element of the set occurs exactly once in each row and each column of the array. An example of a Latin square of order three is given by,
:
A common example of a Latin square would be a completed
Sudoku puzzle. A Latin square is a combinatorial object (as opposed to an algebraic object) since only the arrangement of entries matters and not what the entries actually are. The number of Latin squares as a function of the order (independent of the set from which the entries are drawn) provides an example of combinatorial explosion as illustrated by the following table.
Sudoku
A combinatorial explosion can also occur in some puzzles played on a grid, such as Sudoku.
A Sudoku is a type of Latin square with the additional property that each element occurs exactly once in sub-sections of size (called ''boxes''). Combinatorial explosion occurs as increases, creating limits to the properties of Sudokus that can be constructed, analyzed, and solved, as illustrated in the following table.
Games
One example in a game where combinatorial complexity leads to a solvability limit is in
solving chess (a game with 64 squares and 32 pieces). Chess is not a
solved game. In 2005 all chess game endings with six pieces or fewer were solved, showing the result of each position if played perfectly. It took ten more years to complete the tablebase with one more chess piece added, thus completing a 7-piece tablebase. Adding one more piece to a chess ending (thus making an 8-piece tablebase) is considered intractable due to the added combinatorial complexity.
Furthermore, the prospect of solving larger chess-like games becomes more difficult as the board-size is increased, such as in large
chess variants, and
infinite chess.
Computing
Combinatorial explosion can occur in computing environments in a way analogous to communications and
multi-dimensional space. Imagine a simple system with only one variable, a
boolean called ''A''. The system has two possible states, ''A'' = true or ''A'' = false. Adding another boolean variable ''B'' will give the system four possible states, ''A'' = true and ''B'' = true, ''A'' = true and ''B'' = false, ''A'' = false and ''B'' = true, ''A'' = false and ''B'' = false. A system with ''n'' booleans has 2
''n'' possible states, while a system of ''n'' variables each with ''Z'' allowed values (rather than just the 2 (true and false) of booleans) will have ''Z''
''n'' possible states.
The possible states can be thought of as the leaf nodes of a
tree
In botany, a tree is a perennial plant with an elongated stem, or trunk, usually supporting branches and leaves. In some usages, the definition of a tree may be narrower, e.g., including only woody plants with secondary growth, only ...
of height ''n'', where each node has ''Z'' children. This rapid increase of leaf nodes can be useful in areas like
searching, since many results can be accessed without having to descend very far. It can also be a hindrance when manipulating such structures.
A
class hierarchy in an
object-oriented language can be thought of as a tree, with different types of object inheriting from their parents. If different classes need to be combined, such as in a comparison (like ''A'' < ''B'') then the number of possible combinations which may occur explodes. If each type of comparison needs to be programmed then this soon becomes intractable for even small numbers of classes.
Multiple inheritance can solve this, by allowing subclasses to have multiple parents, and thus a few parent classes can be considered rather than every child, without disrupting any existing hierarchy.
An example is a taxonomy where different vegetables inherit from their ancestor species. Attempting to compare the tastiness of each vegetable with the others becomes intractable since the hierarchy only contains information about genetics and makes no mention of tastiness. However, instead of having to write comparisons for carrot/carrot, carrot/potato, carrot/sprout, potato/potato, potato/sprout, sprout/sprout, they can all
multiply inherit from a separate class of tasty whilst keeping their current ancestor-based hierarchy, then all of the above can be implemented with only a tasty/tasty comparison.
Arithmetic
Suppose we take the
factorial
In mathematics, the factorial of a non-negative denoted is the Product (mathematics), product of all positive integers less than or equal The factorial also equals the product of n with the next smaller factorial:
\begin
n! &= n \times ...
of ''n'':
:
Then 1! = 1, 2! = 2, 3! = 6, and 4! = 24. However, we quickly get to extremely large numbers, even for relatively small ''n''. For example, 100! ≈ , a number so large that it cannot be displayed on most calculators, and vastly larger than the estimated number of fundamental particles in the observable universe.
Communication
In administration and
computing
Computing is any goal-oriented activity requiring, benefiting from, or creating computer, computing machinery. It includes the study and experimentation of algorithmic processes, and the development of both computer hardware, hardware and softw ...
, a combinatorial explosion is the rapidly accelerating increase in communication lines as organizations are added in a process. (This growth is often casually described as "exponential" but is actually
polynomial.)
If two organizations need to communicate about a particular topic, it may be easiest to communicate directly in an ad hoc manner—only one
channel of communication is required. However, if a third organization is added, three separate channels are required. Adding a fourth organization requires six channels; five, ten; six, fifteen; etc.
In general, it will take
communication lines for ''n'' organizations, which is just the number of 2-
combinations of ''n'' elements (see also
Binomial coefficient
In mathematics, the binomial coefficients are the positive integers that occur as coefficients in the binomial theorem. Commonly, a binomial coefficient is indexed by a pair of integers and is written \tbinom. It is the coefficient of the t ...
).
The alternative approach is to realize when this communication will not be a one-off requirement, and produce a generic or intermediate way of passing information. The drawback is that this requires more work for the first pair, since each must convert its internal approach to the common one, rather than the superficially easier approach of just understanding the other.
See also
*
Birthday problem
*
Exponential growth
Exponential growth occurs when a quantity grows as an exponential function of time. The quantity grows at a rate directly proportional to its present size. For example, when it is 3 times as big as it is now, it will be growing 3 times as fast ...
*
Metcalfe's law
*
Curse of dimensionality
*
Information explosion
*
Intractability (complexity)
*
Second half of the chessboard
References
{{reflist, 33em
Combinatorics
Combinatorial game theory