Qué poderosos algoritmos deciden cuándo ese elevador finalmente irá a recogerte
— Jesse Dunietz —
Camina hacia la plataforma del ascensor, presiona el botón “arriba” y se queda parado por lo que parece ser una eternidad antes de escuchar ese tranquilizador “ding”. Es suficiente para hacerlo gritar, especialmente cuando vé donde están las otras cabinas y se pregunta por qué no vienen por usted.
Cuando aprieta los dientes en el lobby de ese hotel, es fácil pasar por alto el hecho de que les hemos dado a nuestros ascensores una gran cantidad de desafíos computacionales. Sufren muchas cosas cuando se presiona ese botón: el sistema del ascensor debe decidir qué coche enviar por usted y cuándo. Debe decidir si sube desde el quinto piso para recoger a esas personas del piso 7 antes de bajar al vestíbulo para contestar su llamada. Debe considerar quién ha estado esperando más tiempo y cuál de los muchos caminos es el más eficiente y menos doloroso para todos. El tráfico de los ascensores es una danza elaborada y delicada, y una vez que ve los pasos, no puede evitar sacarse el sombrero frente a los ingenieros que lo coreografían todo.
La ruta del ascensor no siempre fue tan compleja. Los primeros ascensores eléctricos fueron controlados por los caprichos de sus operadores humanos. Un empleado que estaba dentro hacía funcionar el elevador con una especie de acelerador, deteniéndose donde él o un despachador vieran a un pasajero esperando. Pero los humanos demostraron ser torpes, caros y propensos a las huelgas, y en la década de 1950, los interruptores eléctricos se hicieron cargo de sus puestos de trabajo.
Con los ascensores dirigiéndose a sí mismos, los ingenieros tenían que deletrear las reglas para cuándo ir adónde. El método más simple era que los ascensores se movieran hacia arriba y hacia abajo entre los “pisos terminales” predefinidos a intervalos programados. Era como tomar un autobús: esperabas el coche de las 3:10 hasta el décimo piso y luego seguías tu camino desde allí. Esto, por supuesto, fue extremadamente ineficiente. Durante las horas más ocupadas del día, las cabinas de los ascensores perderían el tiempo de todos sentados en el piso de la terminal hasta su partida programada. Durante las horas no pico harían viajes vacíos sin sentido.
Para 1965, estaba claro para todos que esta era una mala idea. Así que los ingenieros de ascensores se decidieron por el modelo que todos conocemos y amamos: los pasajeros presionan los botones para llamar a un elevador y éstos responden a estas solicitudes. Pero aquí comienza a ser complicado. En cualquier momento podría haber cualquier cantidad de solicitudes para ir a buscar y llevar desde diferentes partes del edificio. Con tantas opciones a dónde ir después, ¿qué debe hacer un ascensor?
Pasan muchas cosas cuando se aprieta un botón
Índice de dolor
Intenta imaginarte el sistema de ascensores perfecto. ¿Qué hace que ese sistema sea tan bueno? ¿Sirve a la persona que ha estado esperando más tiempo? ¿O siempre va a la llamada más cercana? ¿Dónde se reduce el compromiso entre el servicio rápido y el consumo de energía?
Los ingenieros de ascensores lidian con todas estas preguntas, y ninguna de ellas es tan simple como parece. Por ejemplo: claramente, un ascensor debe intentar reducir el tiempo de viaje. Pero, ¿cómo debería priorizar su tiempo? Si esperas un minuto en lugar de 20 segundos para que venga un coche, ¿eso es tres veces peor, o tal vez seis o incluso nueve veces peor?
Incluso el más básico de estos objetivos no es un hecho. A veces, en realidad es mejor hacer que el viaje de un pasajero sea más largo. Imagine dos escenarios, uno en el que su ascensor tarda 10 segundos en llegar y luego un minuto en llegar a su destino, y otro en el que cada parte tarda treinta segundos. A muchas personas les resulta tan doloroso esperar que prefieren la primera opción, a pesar de que llegarían a su destino 10 segundos después (aunque las personas que se sienten claustrofóbicas en los ascensores preferirían minimizar el tiempo dentro del coche). En consecuencia, algunos ascensores optimizan no por el tiempo, sino por un “índice de dolor” personalizado, en el que el sistema informático evalúa la gravedad de cada tipo de retraso.
Más complicado es el hecho de que un ascensor funciona bajo muchas limitaciones. Tiene límites físicos en su velocidad, y sólo tiene uno o dos segundos para elegir su próximo movimiento. Tampoco debe hacer nada que pueda molestar seriamente a los pasajeros, como pasar por alto el piso deseado de alguien sin detenerse, lo cual es sólo conseguir un puñetazo en el panel de control. Un buen sistema tendrá como objetivo equilibrar todos estos objetivos y preocupaciones, incluso cuando usted hubiera necesitado estar arriba, hace 10 minutos. Oiga, nadie dijo que hacer que los trenes llegaran a tiempo fuera fácil.
El algoritmo del elevador
El enfoque más simple y precoz para el despacho de ascensores sigue siendo sorprendentemente común. Conocido como “control colectivo” o simplemente “el algoritmo del ascensor”, consta de dos reglas:
- Mientras haya alguien dentro o delante del elevador que quiera ir en la dirección actual, siga en esa dirección.
- Una vez que el ascensor ha agotado las solicitudes en su dirección actual, cambia de dirección si hay una solicitud en contrario. Sino, se detiene y espera una llamada.
Muy simple y directo. Esta es la razón por la que los llamadores del ascensor típico tienen botones de llamada para subida y bajada, por lo que el coche que ya se dirige hacia arriba de todo puede detenerse para recoger a cualquiera que esté subiendo. Esta política no tiene en cuenta la mayoría de los factores mencionados anteriormente, pero no es un mal lugar para comenzar. El algoritmo del ascensor es fácil de seguir, bastante eficiente en el consumo de energía, y todos reciben un ascensor en un viaje de ida y vuelta. (Dato curioso: el mismo algoritmo controla el cabezal de lectura / escritura en muchos discos duros por razones similares).
Los edificios de oficinas pequeños o edificios de departamentos, que normalmente no necesitan exprimir al máximo la eficiencia de sus ascensores, tienden a utilizar este enfoque simple. Sin embargo, en edificios más grandes, el control colectivo comienza a causar problemas. Por un lado, el ascensor da servicio a los pisos intermedios cada vez que pasa, pero nunca se detendrá en el sótano en su camino hacia el piso 7. En los edificios altos, entonces, la espera en la parte superior e inferior, las áreas más necesitadas de ascensor, pueden ser una pesadilla.
Más importante aún, los edificios grandes generalmente tienen baterías de ascensores, no sólo uno. Si cada uno de ellos sigue el algoritmo del ascensor, entonces, bajo un tráfico intenso, los ascensores comienzan a saltarse entre sí algunos pisos a la vez. Se agrupan en el medio del edificio, posiblemente incluso sirviendo las mismas llamadas dos veces. Es lo más grave que puede pasar para el mal humor de los lunes por la mañana.
Para manejar estas configuraciones más grandes, los ingenieros desarrollaron una serie de trucos. El simple hecho de que los ascensores se comuniquen entre sí ya es importante. Si el coche 1 se dirige hacia arriba, el 2 puede en cambio manejar una solicitud del lobby. Además, los ascensores se pueden asignar a grupos específicos de pisos. También puede haber visto ascensores pasando el rato en un vestíbulo con sus puertas bien abiertas. Esta es la estrategia del “estacionamiento”, donde los ascensores inactivos vuelven a un piso comúnmente solicitado. Gracias a la predicción del tráfico y el monitoreo en tiempo real, los ascensores pueden alternar entre estrategias para adaptarse al apuro de la mañana o la hora de cierre de los negocios.
Complejidad informática
El golpe que realmente llevó a la programación de ascensores de pocas plantas ocurrió en la década de 1970, cuando aparecieron las computadoras reprogramables. Si alguien tenía una nueva estrategia de routing de ascensores, ya no necesitaba vender la idea a un magnate y esperar a que un edificio lo utilizara. En cambio, podían probar y ajustar sus ideas en simulaciones de software.
Una ráfaga de nuevos algoritmos sacuden los pasadizos. Una estrategia, aún hoy popular, se llama “tiempo estimado de control de llegada”. Básicamente, la computadora considera que todos los ascensores responden a una llamada y la asigna al que cree que llegará más rápido. Otra estrategia era entregar siempre la llamada más urgente al ascensor predicho para crear el “mejor” resultado para ese pasajero: minimizar el tiempo de viaje, usar la menor cantidad de energía o cualquier otra cosa que los diseñadores eligieran priorizar.
¿Responde a la persona que ha estado esperando más tiempo? ¿O siempre va a la llamada más cercana?
El vértice de la tendencia informática es el “despacho de destino”, que puede experimentar si visita cualquier rascacielos construido o modernizado desde la década de 1990. En estos edificios, en lugar de simplemente presionar “arriba” o “abajo”, ingresa al piso al que quiere ir, y le dice qué ascensor lo llevará hasta allí. (La base de operaciones de Popular Mechanics, la Torre Hearst en Manhattan, EE.UU.,utiliza este tipo de despacho de ascensores).
Como saben exactamente hacia dónde se dirigen, estos sistemas se acercan más a la eficiencia perfecta. Las personas que se dirigen al mismo piso están agrupadas, convirtiendo cada ascensor en un tren expreso. Como tal, puede que tenga que esperar más tiempo para un ascensor, por lo que los sistemas de envío de destino a menudo cambian sus prioridades según la hora del día. Durante la prisa de la mañana, cuando la capacidad neta es clave, sufrirá más de una espera para que el sistema pueda reducir el tiempo total de viaje. En la tarde, cuando menos personas circulan al mismo tiempo, pueden permitirse el lujo de recogerlo antes para reducir la angustia mental de esperar.
Con todas estas opciones de estrategia, los ingenieros se enfrentan con una meta versión del problema original de cómo elegir el mejor algoritmo. Y francamente, uno de los enfoques más exitosos ha sido levantar las manos y dejar que la computadora decida. Utilizando técnicas de aprendizaje automático, los ingenieros pueden especificar qué aspecto tiene el éxito y luego dejar que el control experimente por sí solo en la simulación. En cada momento, el sistema inspecciona el estado de cada ascensor simulado y los parámetros de cada solicitud pendiente, decide qué hacer y mide los resultados. El software finalmente aprende una política para cada combinación de factores. Con estas políticas más sofisticadas, incluso las personas que crearon el software a menudo no saben por qué está haciendo lo que hace.
El envío de ascensores es un acto de equilibrio intrincado. Cada vez que presiona un botón de llamada, se convierte en parte de la danza, otro punto en movimiento entre la cacofonía de altibajos en los que el sistema de envío intenta imponer el orden con valentía. Así que la próxima vez que tenga un minuto para matar esperando que se abran esas puertas de acero, tómese un momento para admirar la magnífica complejidad del humilde ascensor.
Cuando puedes ver la magia oculta detrás de las máquinas, incluso una demora en el ascensor puede ser estimulante.
Epígrafes:
Instalación de Otis de 1926; dos todavía están en funcionamiento en el 1212 de la Fifth Avenue, NY.
Foto: Wikimedia Commons (Pinterest)
El pasadizo de un ascensor visto a través del techo de vidrio de un ascensor en un rascacielos nuevo. El Leadenhall Building de Londres, Inglaterra.
Foto: Getty Images (Pinterest)
Panel del ascensor en la torre Hearst. No hay botones adentro del ascensor.
Foto: Andrew Moseman (Pinterest)
————————————-
* Popularmechanics.com