A ver, el ascensor no sabe si vas a subir o bajar, así que lo correcto es que el usuario le diga su "intención". El "algoritmo" que resuelve el camino óptimo que minimiza los tiempos de parada y apertura de puertas es muy simple: si subo, paro a recoger a los que suben, y si bajo, paro a recoger a los que bajan, atiendo las paradas de forma secuencial según pulsan los botones de dentro. Use su "IA" favorita para realizar simulaciones complejas que le dirán que siempre es más óptimo pulsar el botón de su intención o que le haga el programa en Python o C para manejar un ascensor.
Desde luego, cree el hilo pensando que todos estaríamos de acuerdo en que la gente que pulsaba los dos botones era estulta. Veo con desaliento que el foro está también lleno de gente que no lo entiende. En fin, si sois incapaces de entender el "algoritmo" de optimización del ascensor, para qué hablar de cosas más complicadas.