🧮 Computational Mathematics

Inicio · Parte 04 — Matemática discreta para computación

090 — Principio del palomar

intermedio clase 10 de 20 4 horas demostración pigeonhole

El principio del palomar demuestra que existe una colisión sin construir ninguna.

Fórmulas

n objetos en m cajas con n > m ⟹ alguna caja tiene ≥ ⌈n/m⌉
colisión de hash garantizada si entradas > tamaño del espacio

Desarrollo

El principio del palomar es de una simplicidad desarmante: si se reparten n objetos en m cajas y n > m, alguna caja recibe al menos dos. Su potencia está en que demuestra una existencia sin ofrecer un método para encontrarla, y ese tipo de argumento —no constructivo— es habitual en matemáticas y muy útil en informática.

La aplicación directa es a las funciones hash. Una función que mapea un dominio infinito —o simplemente mayor— en un espacio de 2ⁿ valores tiene colisiones necesariamente. No es un defecto de la función: es una consecuencia lógica. Por eso la pregunta correcta sobre una función hash criptográfica no es «¿tiene colisiones?» sino «¿es computacionalmente factible encontrarlas?».

La forma generalizada da una cota más fina: alguna caja tiene al menos ⌈n/m⌉ objetos. Con 400 personas y 365 días del año, alguna fecha tiene al menos dos cumpleaños; con 800, al menos tres.

Conviene no confundirlo con la paradoja del cumpleaños, que es un resultado probabilístico distinto: con solo 23 personas la probabilidad de coincidencia supera el 50 %. El palomar da certeza con 366; la paradoja da probabilidad alta con 23. La segunda es la que determina la seguridad real de un hash frente a ataques de colisión, y aparece en la clase 090 como contraste.

Ejemplo trabajado

Cumpleaños y colisiones de hash.

400 personas, 365 días:
  400 > 365 → coincidencia GARANTIZADA
  mínimo de repeticiones: ⌈400/365⌉ = 2

Hash de 16 bits (65 536 valores), 100 000 entradas:
  100 000 > 65 536 → colisión GARANTIZADA

Contraste con la paradoja del cumpleaños:
  con 23 personas, P(coincidencia) > 0.5
  el palomar da certeza; la paradoja da probabilidad

Lección: no hace falta encontrar la colisión
         para demostrar que existe.

Qué calcula el laboratorio

Principio del palomar: colisiones garantizadas sin construirlas.

python classes/part-04-matematica-discreta-para-computacion/090-principio-del-palomar/lab.py
compmath run 090

Salidas del laboratorio (8)

Muestra de la ejecución real

{
  "personas": 400,
  "dias_del_año": 365,
  "coincidencia_de_cumpleaños_garantizada": true,
  "minimo_repeticiones": 2,
  "espacio_hash": 65536,
  "entradas": 100000
}

Errores comunes

Dónde se usa

Análisis de funciones hash, límites de compresión sin pérdida, diseño de tablas hash y argumentos de existencia en teoría de la complejidad.

Idea rectora de la parte

El principio del palomar demuestra colisiones sin construir un ejemplo.

Error a evitar

Contar dos veces al aplicar el principio de inclusión-exclusión.

Conexión con IA

Los grafos de cómputo, la búsqueda en árbol y las GNN son estructuras discretas; el conteo sostiene la probabilidad que después usa todo modelo generativo.

Bibliografía de la clase

Archivos de la clase