Sto cercando di 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 piani vengano spostati nell'ordine in cui sono stati premuti, che ovviamente non è l'approccio migliore.
Quindi al momento sto usando una logica molto semplice e "miope" che è, per il piano attuale trova il piano più vicino a me e impostalo come mia prossima destinazione e continua fino a quando 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 riceveva ordini 4,5,2 il percorso più breve sarebbe 2-> 4-> 5 che costa 4 piani ma usando questa logica 4-> 5-> 2 che costa 5 ha la stessa possibilità di essere scelto, a seconda del codice.
Come posso trovare il percorso più breve e rendere l'ascensore più efficiente?