Estoy tratando de simular un elevador, como siempre comencé de manera muy simple tomando solo un pedido a la vez, luego agregué memoria al elevador en forma de colas para que los pisos se desplacen en el orden en que fueron presionados, que obviamente no es el mejor enfoque.
Así que en este momento estoy usando una lógica muy simple y "miope" que es, para el piso actual, encuentre el piso más cercano a mí y configúrelo como mi próximo destino y repita hasta que no haya más pisos en la lista.
Pero esto no siempre funciona, por ejemplo, el elevador estaba en el 3er piso de un edificio de 5 pisos y recibió órdenes 4,5,2, el camino más corto sería 2-> 4-> 5 que cuesta 4 pisos pero usando esta lógica 4-> 5-> 2 que cuesta 5 tiene la misma posibilidad de ser elegido, dependiendo del código.
¿Cómo encuentro el camino más corto y hago que el ascensor sea más eficiente?