martes, 20 de octubre de 2015

El hotel de Hilbert

Supongamos que tenemos un hotel con 1000 habitaciones individuales. Y supongamos que la ocupación es del 100%, es decir, todas las habitaciones están ocupadas por una persona. Si en esta situación llega una persona más al hotel pidiendo una habitación no podrá ser hospedada en él. Básicamente esto se debe a que no podemos poner en correspondencia biunívoca el conjunto de las habitaciones del hotel (de tamaño 1000) con el conjunto de personas que tendríamos en ese instante (de tamaño 1001).
El hotel de Hilbert es un poco especial, ya que tiene infinitas habitaciones, una por cada natural positivo. Todas las habitaciones son individuales, por lo que no pueden coincidir dos personas en la misma habitación. Para simplificar un poco la explicación de cada una de las situaciones que vamos a presentar podemos suponer que las habitaciones están dispuestas en línea recta, una al lado de otra, de izquierda a derecha. Por tanto tenemos una primera habitación…pero no tenemos última.
Un huésped más
Supongamos, como antes, que todas las habitaciones del hotel de Hilbert están ocupadas y que en ese momento llega una persona más al hotel buscando una habitación. En la situación anterior no se podía dar cobijo a este nuevo huésped, pero ahora sí. ¿Cómo? Muy sencillo. El gerente del hotel pide a todos los huéspedes que se muden a la habitación de su derecha, es decir, el de la 1 pasa a la 2, el de la 2 a la 3, y así sucesivamente. Como no tenemos última habitación todos los ocupantes del hotel siguen teniendo habitación, quedando además la habitación 1 libre. Ya tenemos dónde instalar a nuestro nuevo huésped.
De hecho cualquier conjunto finito de nuevos huéspedes seguiría sin plantearnos problemas. Por ejemplo, podríamos alojar a una excursión de 200 personas pidiendo a cada huésped actual que se mudara a la habitación n+200, siendo n el número de la habitación que ocupa.
Época estival: infinitos nuevos huéspedes
Estamos ahora en época de vacaciones. El hotel de Hilbert está en la ciudad de moda, razón por la que acuden a él un número infinito de nuevos huéspedes, uno por cada natural positivo. ¿Podremos acomodarlos ahora? Pues sí, también se puede. Lo único que tenemos que hacer es mudar a cada huésped a la habitación que se obtiene de multiplicar por 2 la que tiene en este momento, es decir, si un huésped está en la habitación n lo mudamos a la habitación 2n. Así quedan ocupadas todas las habitaciones pares, quedando libres todas las impares. En ellas es donde colocamos a los nuevos clientes, de la siguiente forma: los colocamos en fila, los numeramos y después colocamos al nuevo cliente m en la habitación 2m-1 (el nuevo cliente 1 va a la habitación 1, el nuevo cliente 2 a la habitación 3, y así sucesivamente).
Estamos en crisis: cierre de establecimientos
En una época de auge hotelero la empresa propietaria de nuestro hotel decidió adquirir infinitos hoteles de Hilbert, uno por cada natural positivo. Pero la crisis llega tiempo después y dicha empresa decide cerrar todos los hoteles menos uno. El problema es bastante serio, ya que en el momento del cierre todos sus hoteles de Hilbert tienen ocupación completa, y después de cerrar deben dejar a todos los huéspedes de todos los hoteles alojados. ¿Cómo podemos, en esta ocasión, acomodar a tal cantidad de clientes? En este caso la solución es algo más complicada, pero posible.
Primero nos vamos al hotel que quedará abierto y mudamos a cada inquilino a la habitación cuyo número corresponde con el doble de su habitación actual, como hicimos antes. Quedan entonces ocupadas todas las habitaciones pares y libres todas las impares. Después numeramos los hoteles que vamos a cerrar con los números primos, es decir, el primer hotel que cerramos es el hotel 3, el segundo el hotel 5, el tercero el 7, el cuarto el 11, y así sucesivamente. Y aquí está la clave: colocamos a los inquilinos del hotel p en las habitaciones p^1,p^2, \ldots, p^n, \ldots. Esto es, los inquilinos del hotel 3 quedarán alojados en las habitaciones 3,9,27,81, \ldots; los del hotel 5 en las habitaciones 5,25,125,625, \ldots; así con todos los hoteles cerrados. Como el conjunto de números primos es infinito  podemos así dar acomodo a todos los huéspedes de todos los hoteles.
Una explicación más gráfica:


2 comentarios:

  1. Hola Daniel, es muy interesante un explicación muy simple para un problema más complejo.

    ResponderEliminar
  2. Hola Daniel, es muy interesante un explicación muy simple para un problema más complejo.

    ResponderEliminar