En matemáticas , una explosión combinatoria es el rápido aumento de la complejidad de un problema debido a la forma en que su combinatoria depende de la entrada, las restricciones y los límites. La explosión combinatoria se utiliza a veces para justificar la intratabilidad de ciertos problemas. [ 1 ] [ 2 ] Ejemplos de tales problemas incluyen ciertas funciones matemáticas , el análisis de algunos rompecabezas y juegos, y algunos ejemplos patológicos que pueden modelarse como la función de Ackermann .
Ejemplos
cuadrados latinos
Un cuadrado latino de orden n es una matriz de n × n con entradas de un conjunto de n elementos con la propiedad de que cada elemento del conjunto aparece exactamente una vez en cada fila y en cada columna de la matriz. Un ejemplo de un cuadrado latino de orden tres se da por:
Un ejemplo común de cuadrado latino sería un rompecabezas de Sudoku completo. [ 3 ] Un cuadrado latino es un objeto combinatorio (a diferencia de un objeto algebraico) ya que solo importa la disposición de las entradas y no cuáles son las entradas en sí. El número de cuadrados latinos en función del orden (independientemente del conjunto del que se extraen las entradas) (secuencia A002860 en la OEIS ) proporciona un ejemplo de explosión combinatoria como se ilustra en la siguiente tabla.
Sudoku
También puede producirse una explosión combinatoria en algunos rompecabezas que se juegan en una cuadrícula, como el Sudoku. [ 2 ] Un Sudoku es un tipo de cuadrado latino con la propiedad adicional de que cada elemento aparece exactamente una vez en subsecciones de tamaño √ n × √ n (llamadas casillas ). La explosión combinatoria se produce a medida que n aumenta, creando límites a las propiedades de los Sudokus que se pueden construir, analizar y resolver, como se ilustra en la siguiente tabla.
Juegos
Un ejemplo de un juego donde la complejidad combinatoria conduce a un límite de resolubilidad es el ajedrez (un juego con 64 casillas y 32 piezas). El ajedrez no es un juego resuelto . En 2005 se resolvieron todos los finales de partidas de ajedrez con seis piezas o menos, mostrando el resultado de cada posición si se jugara a la perfección. Se necesitaron diez años más para completar la base de datos con una pieza de ajedrez adicional, completando así una base de datos de 7 piezas. Agregar una pieza más a un final de ajedrez (creando así una base de datos de 8 piezas) se considera intratable debido a la complejidad combinatoria adicional. [ 6 ] [ 7 ]
Además, la perspectiva de resolver juegos más grandes similares al ajedrez se vuelve más difícil a medida que aumenta el tamaño del tablero, como en las variantes de ajedrez grandes y el ajedrez infinito . [ 8 ]
Computación
La explosión combinatoria puede ocurrir en entornos informáticos de forma análoga a la comunicación y el espacio multidimensional . Imaginemos un sistema simple con una sola variable, una booleana llamada A. El sistema tiene dos estados posibles: A = verdadero o A = falso. Si añadimos otra variable booleana B , el sistema tendrá cuatro estados posibles: A = verdadero y B = verdadero, A = verdadero y B = falso, A = falso y B = verdadero, A = falso y B = falso. Un sistema con n booleanas tiene 2ⁿ estados posibles, mientras que un sistema de n variables, cada una con Z valores permitidos (en lugar de solo los 2 (verdadero y falso) booleanos), tendrá Zⁿ estados posibles.
Los estados posibles pueden considerarse como los nodos hoja de un árbol de altura n , donde cada nodo tiene Z hijos. Este rápido aumento de nodos hoja puede ser útil en áreas como la búsqueda , ya que se puede acceder a muchos resultados sin tener que descender demasiado. Sin embargo, también puede ser un obstáculo al manipular dichas estructuras.
En un lenguaje orientado a objetos, la jerarquía de clases puede representarse como un árbol, donde los distintos tipos de objetos heredan de sus padres. Si es necesario combinar diferentes clases, como en una comparación (por ejemplo, A < B ), el número de combinaciones posibles se multiplica exponencialmente. Si cada tipo de comparación debe programarse, esto se vuelve rápidamente inmanejable incluso para un número reducido de clases. La herencia múltiple resuelve este problema, permitiendo que las subclases tengan múltiples padres, de modo que se pueden considerar unas pocas clases padre en lugar de todas las hijas, sin alterar la jerarquía existente.
Un ejemplo es una taxonomía donde las diferentes verduras heredan de sus especies ancestrales. Intentar comparar el sabor de cada verdura con las demás resulta inviable, ya que la jerarquía solo contiene información genética y no menciona el sabor. Sin embargo, en lugar de tener que escribir comparaciones para zanahoria/zanahoria, zanahoria/patata, zanahoria/brote, patata/patata, patata/brote, brote/brote, todas pueden heredar por multiplicación de una clase separada de sabor manteniendo su jerarquía actual basada en ancestros; entonces todo lo anterior se puede implementar con una simple comparación de sabor/sabor.
Comunicación
En administración e informática , una explosión combinatoria es el rápido aumento de las líneas de comunicación a medida que se incorporan organizaciones a un proceso. (Este crecimiento suele describirse informalmente como "exponencial", pero en realidad es polinómico ).
Si dos organizaciones necesitan comunicarse sobre un tema en particular, lo más sencillo puede ser hacerlo directamente de forma puntual ; basta con un único canal de comunicación . Sin embargo, si se añade una tercera organización, se requieren tres canales distintos. Si se añade una cuarta, se necesitan seis canales; cinco, diez; seis, quince; etc.
En general, tomará líneas de comunicación para n organizaciones, que es simplemente el número de combinaciones de 2 elementos (véase también coeficiente binomial ). [ 9 ]
La alternativa consiste en identificar cuándo esta comunicación no será un requisito puntual y desarrollar una forma genérica o intermedia de transmitir información. El inconveniente es que esto requiere más trabajo para la primera pareja, ya que cada una debe adaptar su enfoque interno al común, en lugar de optar por la solución aparentemente más sencilla de simplemente comprender al otro.
Véase también
Referencias
- ↑ Krippendorff, Klaus. "Explosión combinatoria" . Diccionario web de cibernética y sistemas . PRINCIPIA CYBERNETICA WEB. Archivado del original el 6 de agosto de 2010. Recuperado el 29 de noviembre de 2010 .
- 1 2 http://intelligence.worldofcomputing/combinatorial-explosion Archivado el 23/08/2011 en Wayback Machine Combinatorial Explosion.
- ↑ Todos los rompecabezas completados son cuadrados latinos, pero no todos los cuadrados latinos pueden ser rompecabezas completos, ya que existe una estructura adicional en un rompecabezas de Sudoku.
- 1 2 Sloane, N. J. A. (ed.). "Secuencia A107739 (Número de sudokus (o sudokus) (completados) de tamaño n^2 X n^2)" . La enciclopedia en línea de secuencias enteras . Fundación OEIS . Consultado el 14 de abril de 2017 .
- ↑ "Problemas de enumeración de Sudoku" . Afjarvis.staff.shef.ac.uk . Consultado el 20 de octubre de 2013 .
- ↑ http://chessok.com/Lomonosov Endgame Tablebases Lomonosov Endgame Tablebases
- ↑ "7-piece-endgame-tablebase (ajedrez)" . Stack Exchange .
- ↑ Aviezri Fraenkel; D. Lichtenstein (1981), "El cálculo de una estrategia perfecta para el ajedrez n×n requiere un tiempo exponencial en n", J. Combin. Theory Ser. A , 31 (2): 199– 214, doi : 10.1016/0097-3165(81)90016-9
- ↑ Benson, Tim. (2010). Principios de interoperabilidad en salud HL7 y SNOMED . Nueva York: Springer. pág. 23. ISBN 9781848828032OCLC 663097524
- Combinatoria
- teoría de juegos combinatoria