Ich versuche, einen Aufzug zu simulieren. Wie immer habe ich sehr einfach damit begonnen, immer nur eine Bestellung aufzunehmen und dann dem Aufzug Speicher in Form von Warteschlangen hinzuzufügen, damit die Stockwerke in der Reihenfolge zurückgelegt werden, in der sie gedrückt wurden. Das ist natürlich nicht der beste Ansatz.
Im Moment verwende ich eine sehr einfache und "kurzsichtige" Logik, bei der für die aktuelle Etage die nächstgelegene Etage ermittelt und als nächstes Ziel festgelegt wird und die Schleife ausgeführt wird, bis keine Etagen mehr in der Liste enthalten sind.
Dies funktioniert jedoch nicht immer. Zum Beispiel befand sich der Aufzug im 3. Stock eines 5-stöckigen Gebäudes und erhielt Aufträge 4,5,2. Der kürzeste Weg wäre 2-> 4-> 5, was 4 Stockwerke kostet, aber unter Verwendung dieser Logik 4-> 5-> 2, was 5 kostet, hat die gleiche Chance, abhängig vom Code ausgewählt zu werden.
Wie finde ich den kürzesten Weg und mache den Aufzug effizienter?