J'essaie de simuler un ascenseur, comme toujours j'ai commencé très simplement en ne prenant qu'une seule commande à la fois, puis j'ai ajouté de la mémoire à l'ascenseur sous forme de files d'attente afin que les étages soient parcourus dans l'ordre dans lequel ils ont été pressés, ce qui n'est évidemment pas la meilleure approche.
Donc, pour le moment, j'utilise une logique très simple et à courte vue qui, pour l'étage actuel, trouve l'étage le plus proche de moi et le définit comme ma prochaine destination et boucle jusqu'à ce qu'il n'y ait plus d'étages dans la liste.
Mais cela ne fonctionne pas toujours, par exemple l'ascenseur était au 3ème étage d'un immeuble de 5 étages et a reçu des commandes 4,5,2 le chemin le plus court serait 2-> 4-> 5 qui coûte 4 étages mais en utilisant cette logique 4-> 5-> 2 qui coûte 5 a la même chance d'être choisi, selon le code.
Comment trouver le chemin le plus court et rendre l'ascenseur plus efficace?