¿Por qué prácticamente todos los algoritmos de ascensor son tan ineficientes y cuáles son las razones por las que aún no se han optimizado?

Cuando era más joven estaba en un hotel con alguna familia. Pusieron a todos los niños en una habitación y, aprovechando esto, deambulé en medio de la noche. Tomé el ascensor hasta la planta baja, presioné todos los botones y me fui. Regresé unos segundos después, y cuando presioné el botón, la puerta se abrió nuevamente. Sorpresa, el ascensor no se había movido.

Los ascensores son más inteligentes de lo que piensas, pero responden a preocupaciones que no entiendes. En algún momento del camino, un joven ingeniero emprendedor observó toda la energía desperdiciada empujando esta caja de metal gigante hacia arriba y hacia abajo de un pozo de concreto innecesariamente, y ordenó que el elevador no fuera a ninguna parte, gracias, a menos que alguien esté dentro, o a menos Se llama a un piso específicamente. Esto representa una preocupación demostrada del cliente : quiere ahorrar energía. Esto en algunos casos (¿la mayoría?) Es mucho más importante que reducir segundos de latencia para los clientes, lo que de todos modos no notarán.

Algunos sistemas resuelven este problema. 7 WTC en la ciudad de Nueva York en realidad requiere que los usuarios ingresen el piso antes de tomar el elevador. Conociendo estos datos con anticipación, el despacho del elevador puede optimizar la programación del piso rigurosamente, minimizando la latencia, la duración del viaje y el consumo de energía de una sola vez. Más concretamente, incluso puede minimizar problemas como enviar dos ascensores diferentes al mismo piso al mismo tiempo. (!!!)

( Este sistema, por supuesto, puede tener algunos problemas de usabilidad, que a menudo es el caso cuando cambia la interfaz de usuario a algo. Es importante reconocerlo, ya que contribuye a otra razón por la cual los ascensores no están “optimizados”, pero yo no detallaré tales razones aquí por razones de brevedad ) .

Por otro lado, la “solución” que implica la pregunta no es óptima. En primer lugar, el hecho de que los ascensores deben entrar en una gran cantidad de edificios diferentes, con usos potencialmente muy diferentes, lo que significa que un algoritmo debe ajustarse seguramente a todos los ascensores posibles que la compañía pretende vender. Pero además, el elevador es una serie de hardware integrado : está hecho de sistemas para rastrear dónde está el elevador, sistemas para despachar ascensores, sistemas para controlar interrupciones, etc. Todo funciona con memoria limitada y pequeña, con potencia limitada. En general, generalmente es más importante que el software sea correcto que inteligente, especialmente porque los dispositivos integrados son mucho más propensos a errores de compilación. Y si una compañía de ascensores ni siquiera puede estar segura de que un ML tan complicado afectará notablemente la utilidad del sistema (y creo que no lo haría), tienen pocos incentivos para desarrollarlo (particularmente si podría generar incertidumbre en la corrección del sistema). Y, por último, como se señaló anteriormente, puede haber problemas más pertinentes que un elevador que simplemente está a tiempo. Como el consumo de energía.

Además, y finalmente, el problema del que hablas no existe . Eso no quiere decir que lo que ha mencionado sea necesariamente incorrecto, sino que no es una preocupación visible para el cliente que lo compra, y es difícil vender a las personas una solución a un problema que no está allí.

SOY NUEVO AQUI. AYÚDAME A MEJORAR MIS RESPUESTAS Y MI ESCRITURA AGREGANDO COMENTARIOS.

En las oficinas de Google en Londres, intentan crear un algoritmo inteligente para los ascensores (ascensores). La idea es que todos los que esperan deben presionar el botón, de modo que el sistema aprenda cuántas personas están esperando en momentos específicos en qué piso y puede priorizar en las horas pico. Requiere que todas las personas que esperan presionen el botón de llamada una vez (8 personas = 8 llamadas) y luego, al ingresar al elevador, presionen el botón de piso requerido la cantidad correspondiente de veces (3 personas quieren el tercer piso = 3 pulsaciones de ese botón )

Parece torpe y fácil jugar el sistema para que su piso sea la máxima prioridad, pero me gusta pensar.

Supongo que hay dos razones principales por las que el controlador toma algunas malas decisiones: 1) no aprenden patrones basados ​​en la recopilación de estadísticas de uso o conocimientos previos, sino que se basan en un conjunto de supuestos iniciales o generales que pueden quedar desactualizados a medida que cambia la circunscripción del edificio y 2) están diseñados para ser justos con cada piso, lo que puede conducir a la ineficiencia en el edificio en general.

En el caso 1, por ejemplo, a las 6:00 hay dos ascensores, uno en el sexto piso y otro en el primer piso. Alguien toca el botón de abajo en el tercer piso. ¿Qué ascensor elegir? Si el sexto piso comienza a descender y luego aparece otra persona en el piso y presiona el botón arriba, el controlador del elevador se ve bastante estúpido. Pero, basándose en el conocimiento previo de la probabilidad de que alguien suba o baje en el sexto piso en comparación con el primer piso alrededor de esta hora del día, hizo al menos una elección igualmente arbitraria (o tal vez incluso una heurística informada de que hay más personas) es probable que aparezca en el primer piso que en cualquier otro piso) eligiendo enviar el auto del sexto piso hacia abajo en lugar del auto del primer piso hacia arriba. Si el elevador supiera que el tráfico entre el sexto y el piso 13 era muy probable a esta hora del día, podría haber tomado una decisión diferente.

En el segundo caso, por ejemplo, si el 13 °, el segundo y el primer piso son los más poblados, tendría sentido mantener el elevador durante un tiempo mínimo en estos pisos antes de moverlos a otro piso al segundo o al segundo piso. primer piso, y luego de regreso al otro lado, como un tren lanzadera. Esto sería excelente para las personas en los pisos más poblados, que en promedio verían disminuir sus tiempos de espera, pero no tan bueno para las personas intermedias. Debido a que a más personas se les sirve mejor que a otras personas peor, la calidad general del servicio aumentaría. Sin embargo, algunos pisos pueden tener su tiempo de espera duplicado o peor, lo cual es realmente malo para el peor tiempo de servicio.

En cuanto a por qué no ha habido muchos cambios obvios, quizás sea porque los sistemas más simples hacen que todos sientan que han sido tratados de manera justa.

More Interesting

¿Cuál es el algoritmo para expulsar a los pasajeros del avión si está sobrevendido?

¿Cuál es el peor caso, el caso promedio y la mejor complejidad de tiempo de un algoritmo?

Sea X la solución del costo O (n ^ k) para un problema Q en NP-c. ¿Implicaría que existe una solución de costo O (n ^ k) para todos los problemas Q 'en NP-c?

¿Cuál es la complejidad de T (n) = 2T (n-3)?

¿Cómo construiría una estructura de datos compartidos para un alto rendimiento y disponibilidad?

¿Qué estructuras de datos y algoritmos de programación heredados se enseñan en la universidad pero que no se usan después de la academia? ¿Aún debemos aprenderlos?

¿Por qué Lua está diseñado de tal manera que obtener el tamaño de una tabla es O (n) en el tamaño de la tabla?

Cómo resolver esta cuestión de las fuerzas

¿Cuáles son algunos problemas de nivel intermedio en los que es imprescindible comprender la corrección de los algoritmos (y por qué)?

¿Qué tipo de algoritmo de procesamiento del lenguaje natural se usaría para replicar los resultados de esta charla TED?

Soy un desarrollador de fuerza bruta, ¿cómo puedo mejorar mis habilidades de algoritmos?

¿Qué es un algoritmo para darme sistemáticamente todas las combinaciones de elementos r de una matriz de elementos K?

¿Existe alguna noción del algoritmo más eficiente posible para alguna tarea?

¿Dónde puedo encontrar las preguntas solo sobre búsqueda y clasificación?

¿Cuál es una explicación simple de por qué BFS bidireccional se ejecuta en [math] \ Theta (\ sqrt {n}) [/ math]?