Pulsas el botón del ascensor y contemplas cómo los indicadores de planta cambian número a número. Puede que pienses que es cuestión de mala suerte, pero en realidad estás ante un problema de optimización matemática que ingenieros e informáticos llevan investigando más de un siglo.
Ayer (1 de agosto), una explicación interactiva sobre algoritmos de ascensores creada por el desarrollador web John Allsopp alcanzó el número uno en Hacker News y sigue debatiéndose hoy en Lobsters (52 puntos, 6 comentarios). En lugar de anunciar noticias bomba, la publicación convierte la compleja lógica del despacho de ascensores en un simulador interactivo arrastrable. Su éxito reside en responder a una pregunta que todos nos hemos hecho en el vestíbulo: Cuando pulso el botón, ¿el ascensor me ha escuchado realmente?
Sí, te ha escuchado. Lo que pasa es que tiene demasiado en qué pensar.
Qué optimizan los ascensores: por qué los promedios engañan
Planteémonos primero una pregunta clave: ¿cómo se mide si un algoritmo de ascensor funciona bien?
La respuesta intuitiva es «el tiempo medio de espera». Sin embargo, al trazar los tiempos de espera de miles de trayectos simulados en un gráfico de distribución, los promedios resultan profundamente engañosos. La simulación de John destaca dos métricas principales: un tiempo p50 de 1 minuto (lo que significa que la mitad de los pasajeros sube en menos de un minuto) y un p90 de 2 minutos (es decir, el 90 % no espera más de dos minutos).
Ese único minuto de diferencia entre el p50 y el p90 oculta el gran secreto de la industria de los ascensores: el cerebro humano no recuerda promedios; solo recuerda el peor escenario. Ese 10 % de esperas agónicas ocupa un espacio desproporcionadamente grande en nuestra memoria. Como resultado, la sensación de que «el ascensor nunca llega» es en gran medida una ilusión creada a partes iguales por distribuciones estadísticas y sesgos cognitivos. En realidad, la mitad de las veces el ascensor llega en menos de un minuto.
Los compromisos de ingeniería son igualmente complejos: el tiempo medio de espera, la espera máxima y el consumo energético compiten directamente entre sí. Enviar ascensores únicamente a recoger al pasajero más cercano minimiza el promedio, pero en casos extremos alguien en otra planta podría terminar esperando 5 minutos. Sacrificar un poco el promedio para eliminar los valores extremos de «espera interminable» es la elección pragmática de la mayoría de los edificios de oficinas. No hay almuerzo gratis: los fabricantes simplemente eligen una matriz de decisiones que rara vez nos paramos a pensar.
Fig.: Demostración de distribución del tiempo de espera generada a partir de miles de simulaciones en el artículo original. Fuente: john.fun
La regla más antigua: avanzar hasta el final y regresar
Antes de que los algoritmos asumieran el control, dentro del ascensor había una persona. La profesión de ascensorista fue muy común hasta mediados del siglo XX: abría las puertas, preguntaba la planta de destino y dirigía manualmente la cabina. Con la llegada de la automatización, los ascensoristas desaparecieron, las reglas se codificaron en máquinas y la gestión pasó del criterio humano a las matemáticas puras.
Las primeras reglas automatizadas eran sorprendentemente sencillas. El algoritmo SCAN, patentado en 1961, establece que el ascensor parte del vestíbulo y sube continuamente recogiendo y dejando pasajeros por el camino hasta llegar a la última planta antes de cambiar de sentido, repitiendo este ciclo indefinidamente. Más tarde, los ingenieros comprendieron que era ineficiente subir hasta arriba cuando no quedaban peticiones, lo que dio lugar a la versión mejorada LOOK: la cabina solo sube hasta la planta más alta solicitada y luego cambia de sentido. Hoy en día, la mayoría de la gente da por sentada esta lógica sin ser consciente de que se trata de un algoritmo formal.
Este concepto tiene además un pariente famoso en la informática: la planificación de los cabezales de los discos duros mecánicos. Cuando el cabezal de un disco busca datos en los platos magnéticos, se desplaza siguiendo exactamente el mismo patrón. La ciencia de la computación adoptó directamente el término llamándolo «Algoritmo del ascensor» (Elevator Algorithm). Una patente de hace más de 60 años sigue funcionando hoy simultáneamente en tu disco duro y en los huecos de ascensor de tu edificio: las reglas simples suelen sobrevivir a la mayoría del software moderno.
Sin embargo, las reglas para un solo ascensor fracasan durante las horas punta matutinas. Imagina un edificio de oficinas a las 9:00 de la mañana: cientos de empleados pulsan a la vez el botón de subir en el vestíbulo. Si un sistema ingenuo enviara todas las cabinas al vestíbulo, tres vehículos abrirían sus puertas al mismo tiempo y subirían semivacíoss juntos. Para evitarlo, los despachadores deben realizar acciones aparentemente ilógicas: enviar una cabina vacía dando un rodeo para recoger pasajeros en otra planta. Si estás en la planta 15 y ves pasar un ascensor de largo, no es que haya ignorado tu llamada, sino que está ejecutando un plan de optimización global más amplio.
Fig.: Demostración interactiva en la página de inicio: un ascensor haciendo viajes en un edificio de 4 plantas, ejecutable a velocidad 25x. Fuente: john.fun
Coordinación de múltiples ascensores: recalculando cada 5 segundos
Cuando varios ascensores operan en paralelo, el problema se vuelve exponencialmente más difícil: ¿qué cabina debe atender cada llamada?
Los sistemas modernos de control de grupos (como el algoritmo RSR de Otis) emplean modelos de puntuación dinámica. A cada ascensor se le asigna continuamente una puntuación en función del tiempo estimado de llegada, la carga actual, la proximidad con otras cabinas, el sentido de marcha y si está libre cerca. El ascensor con el menor coste numérico recibe la asignación. La elegancia de este sistema reside en su capacidad de rectificación: cada 5 segundos, el algoritmo vuelve a evaluar todo el edificio. Si el ascensor asignado se retrasa por bloqueo en las puertas, la petición se transfiere sin problemas a otra cabina.
La simulación de John revela una conclusión contraintuitiva: bajo un tráfico extremadamente denso, la regla clásica y simple LOOK empieza a superar a algoritmos complejos como RSR. Las reglas simples también dominan en edificios pequeños con pocos huecos. «A veces es mejor mantener las cosas simples»: esta observación directa destaca como una de las lecciones más valiosas de todo el análisis.
Despacho por destino: más información, ¿más lento?
En los últimos años, los edificios de oficinas de alta gama han popularizado el despacho por destino (Destination Dispatch): antes de entrar a la zona de ascensores, los pasajeros seleccionan su planta en una pantalla táctil en el vestíbulo, que les indica, por ejemplo, «Vaya al ascensor 3». En teoría suena impecable: si el sistema conoce de antemano el destino exacto de todos, ¿no debería organizar las rutas mucho mejor?
Los resultados de la simulación demostraron justo lo contrario: en la gran mayoría de los escenarios, el despacho por destino genera tiempos medios de espera peores que los botones tradicionales de subir/bajar. El único escenario donde gana el despacho por destino es en rascacielos gigantescos que operan baterías de 8 o más ascensores. ¿La razón? La flexibilidad en tiempo real para reoptimizar cada 5 segundos queda bloqueada en el momento en que la pantalla te asigna una cabina específica. 30 segundos después de tocar la pantalla, las condiciones del tráfico en el edificio pueden haber cambiado, pero el sistema ya no puede cambiar su compromiso.
Ingenieros en Lobsters aportaron anécdotas del mundo real. El usuario vbernat señaló que el despacho por destino requiere que cada pasajero registre responsablemente su planta en la pantalla. Los usuarios impacientes suelen pulsar la pantalla varias veces, lo que provoca que dos ascensores distintos acudan a la misma planta. mitsuhiko (creador del framework Flask) añadió que en la práctica es muy común que los pasajeros se equivoquen de ascensor o pierdan la asignación. También hay experiencias positivas cuando se integra con tarjetas de acceso: al pasar la tarjeta se asigna inmediatamente una cabina, agilizando las mañanas. Pero el precio a pagar suele ser esperar varios minutos para bajar al final de la jornada, ya que el sistema dedica todos sus recursos a resolver la hora punta de entrada.
Esto deja una lección fundamental: dar más información a un sistema no garantiza que sepa utilizarla mejor. El óptimo global del sistema entra con frecuencia en conflicto directo con el deseo individual de «que el ascensor venga a mi planta primero». En el libro de contabilidad de un algoritmo despachador, tu minuto individual y los minutos combinados de cientos de personas no valen lo mismo.
Por qué la espera parece interminable: la psicología de la espera
Por último, los fabricantes de ascensores descubrieron hace décadas que la «espera percibida» importa tanto como el tiempo real de espera. La investigación psicológica indica que cuanto más aburrida se siente una persona mientras espera, más lento parece pasar el tiempo. Una solución arquitectónica clásica consistió en colocar grandes espejos junto a las puertas del ascensor, un truco adoptado con notable éxito por administradores de edificios. La mitad de tu impaciencia al esperar el ascensor procede del algoritmo, pero la otra mitad la genera tu propio cerebro.
Existe también un fenómeno desconcertante: dado que los ascensores realizan el mismo número de viajes hacia arriba que hacia abajo, ¿por qué siempre parece que el ascensor se mueve en sentido contrario? Parte de la respuesta reside en las horas punta: las cabinas llenas pasan de largo por las plantas intermedias sin detenerse al alcanzar el límite de capacidad. Nuestra memoria retiene de forma selectiva el recuerdo de las cabinas abarrotadas pasando de largo ante nuestros ojos.
Volviendo a la pregunta inicial: ¿escuchó el ascensor tu botón? Sí, lo escuchó. Simplemente está ocupado evaluando cientos de destinos, capacidades, límites energéticos y criterios de equidad cada 5 segundos. La próxima vez que esperes un ascensor y se vaya primero a otra parte, piénsalo como un sistema haciendo optimización global: en su balance, sopesa tu minuto individual frente al tiempo colectivo de todo el edificio.
Enlaces de referencia:
- John Allsopp: Elevators (Guía interactiva)
- Discusión en Lobsters (s/jxqf1w/elevators)
- Wikipedia: Elevator algorithm
- Signal v. Noise: Defining the problem of elevator waiting times
- Scientific American: The reason why elevators feel slow