7. Diagramas de árbol para resolver problemas de conteo

Un diagrama de árbol representa decisiones sucesivas mediante ramas y permite visualizar, enumerar y contar las posibilidades de un problema.

7.1 Introducción

Los diagramas de árbol son una herramienta visual para organizar problemas de conteo. Cada rama representa una decisión y cada recorrido completo desde el inicio hasta una hoja representa un resultado posible.

Cuando un problema tiene pocas etapas, el diagrama permite observar todos los casos. Cuando tiene muchas, ayuda a descubrir una regla de conteo, como el principio del producto, sin necesidad de dibujar cada rama.

7.2 Elementos de un diagrama de árbol

  • Raíz: punto inicial del problema.
  • Nivel: etapa o decisión del proceso.
  • Rama: una opción disponible en una etapa.
  • Nodo: punto intermedio que representa una decisión parcial.
  • Hoja: resultado completo al final de un recorrido.
  • Camino: secuencia de ramas desde la raíz hasta una hoja.

El número de hojas representa la cantidad de resultados completos cuando cada hoja corresponde a una configuración válida.

7.3 Ejemplo con dos decisiones

Supongamos que una operación puede ejecutarse en 2 modos y que cada modo puede utilizar 3 niveles de prioridad.

Modo 1 → prioridad baja, media o alta
Modo 2 → prioridad baja, media o alta

Total de hojas = 2 × 3 = 6 configuraciones

Cada rama del primer nivel se divide en 3 ramas del segundo nivel. Como hay 2 grupos de 3 hojas, el total es 6.

7.4 Simulación de un diagrama de árbol

Elige la cantidad de opciones de tres etapas. La simulación genera las hojas del árbol y muestra el cálculo correspondiente al principio del producto.

Explorador de ramas y hojas

7.5 Cómo contar las hojas

Si todos los nodos de un nivel tienen la misma cantidad de ramas, podemos contar las hojas multiplicando la cantidad de ramas de cada nivel.

Nivel 1: 3 ramas
Nivel 2: 2 ramas por nodo
Nivel 3: 4 ramas por nodo

Hojas = 3 × 2 × 4 = 24

El diagrama de árbol explica visualmente por qué se aplica el principio del producto: cada rama de un nivel se combina con todas las ramas válidas del nivel siguiente.

7.6 Un ejemplo en JavaScript

El siguiente programa genera recorridos completos para dos niveles de decisiones.

const modos = ["manual", "automático"];
const niveles = ["bajo", "alto"];
const resultados = [];

for (const modo of modos) {
  for (const nivel of niveles) {
    resultados.push(`${modo}-${nivel}`);
  }
}

console.log(resultados);
console.log(`Hojas del árbol: ${resultados.length}`);

El primer recorrido elige un modo y el segundo elige un nivel. El árbol tiene 2 × 2 = 4 hojas.

7.7 Árboles con opciones diferentes

No todos los diagramas tienen que ser regulares. Una rama puede tener más o menos continuaciones que otra.

Camino A → 2 continuaciones
Camino B → 3 continuaciones
Camino C → 1 continuación

Total de hojas = 2 + 3 + 1 = 6

Cuando el número de ramas depende de las decisiones anteriores, se cuentan las hojas de cada rama y luego se suman. En ese caso, un producto único podría dar un resultado incorrecto.

7.8 Árboles con restricciones

Una restricción puede impedir que ciertas ramas continúen. Por ejemplo, si una opción ya fue utilizada y no se permite repetirla, esa opción desaparece de los niveles siguientes.

const simbolos = ["A", "B", "C"];
const secuencias = [];

for (const primero of simbolos) {
  for (const segundo of simbolos) {
    if (segundo === primero) continue;
    secuencias.push(`${primero}${segundo}`);
  }
}

console.log(secuencias);
console.log(`Hojas válidas: ${secuencias.length}`);

Hay 3 opciones para la primera posición y solo 2 para la segunda, porque no se permite repetir el símbolo elegido. El total es 3 × 2 = 6.

7.9 Árboles y búsqueda de soluciones

En informática, cada camino de un árbol puede representar una secuencia de decisiones de un algoritmo. Las hojas pueden ser soluciones válidas, soluciones inválidas o estados que deben seguir explorándose.

  • Una rama puede representar elegir un elemento.
  • Un nivel puede representar una posición de una secuencia.
  • Una hoja puede representar una configuración completa.
  • Una poda puede eliminar ramas que ya no pueden producir una solución.

Contar las ramas permite estimar el tamaño del espacio de búsqueda. Explorar solo algunas ramas o podar las imposibles puede hacer que un algoritmo sea mucho más eficiente.

7.10 Árboles y principio de la suma

Los diagramas de árbol también muestran cuándo deben combinarse suma y producto. Si la raíz tiene caminos alternativos, se suman las hojas de esos caminos. Si cada camino tiene varios niveles, se multiplican sus ramas internas.

Camino A: 2 ramas × 3 ramas = 6 hojas
Camino B: 4 ramas × 2 ramas = 8 hojas

Total = 6 + 8 = 14 hojas

Esta representación es equivalente a la expresión (2 × 3) + (4 × 2).

7.11 Aplicaciones en informática

  • Representar decisiones de un algoritmo.
  • Enumerar configuraciones de una secuencia.
  • Modelar recorridos posibles en una estructura.
  • Analizar búsquedas con retroceso.
  • Contar combinaciones de opciones de un sistema.
  • Visualizar estados y transiciones de un proceso.

El árbol no solo sirve para contar: también ayuda a explicar por qué una solución tiene determinada cantidad de casos y dónde aparecen las restricciones.

7.12 Errores frecuentes

  • Olvidar una rama posible.
  • Agregar una rama que viola una restricción.
  • Contar nodos intermedios en lugar de hojas cuando se buscan soluciones completas.
  • Multiplicar niveles aunque las ramas no tengan la misma cantidad de continuaciones.
  • Contar dos veces una misma secuencia con recorridos diferentes.

7.13 Qué debes recordar de este tema

  • La raíz representa el inicio y cada rama representa una decisión.
  • Una hoja representa un resultado completo.
  • El número de hojas puede calcularse con el principio del producto en árboles regulares.
  • En árboles irregulares se suman las hojas de las ramas principales.
  • Las restricciones eliminan ramas y reducen el número de resultados.
  • En informática, un árbol puede representar un espacio de búsqueda.

7.14 Conclusión

Los diagramas de árbol convierten un problema de conteo en una secuencia visible de decisiones. Al recorrer sus ramas podemos enumerar resultados, detectar restricciones y reconocer cuándo aplicar suma, producto o una combinación de ambos.

En el próximo tema estudiaremos tablas y técnicas de enumeración para organizar resultados de forma sistemática.