Sto provando a simulare un ascensore, come sempre ho iniziato in modo molto semplice prendendo solo un singolo ordine alla volta, quindi ho aggiunto memoria all'ascensore sotto forma di code in modo che i pavimenti siano percorsi nell'ordine in cui essi sono stati premuti, il che ovviamente non è l'approccio migliore.
Quindi al momento sto usando una logica molto semplice e "miope" che è, per il piano corrente, trovare il pavimento più vicino a me e impostarlo come la mia prossima destinazione e fare un ciclo finché non ci sono più piani nell'elenco .
Ma questo non sempre funziona, ad esempio l'ascensore si trovava al 3 ° piano di un edificio di 5 piani e ha ottenuto ordini 4,5,2 il percorso più breve sarebbe stato 2- > 4- > 5, che costa 4 ma usando questa logica 4- > 5 > 2 che costa 5 ha la stessa possibilità di essere scelto, a seconda del codice.
Come faccio a trovare il percorso più breve e rendere l'ascensore più efficiente?