Одновременно поступают запросы:
· 35 вверх (45, 48, 49)
· 36 вверх (40, 50)
· 37 вверх (50 ,43 ,44)
· 20 вниз (1)
В силу одновременности, хотя и имелись запросы, расположенные по движению, существенных преимуществ модели использующей набор правил №1 не выявлено, в силу того, что лифт определяет для себя только один ближайший запрос.
В начальный момент времени поступают запросы:
· 10 вверх (15, 27, 36, 45, 50)
· 45 вниз (1, 8, 15, 40)
Когда лифт, среагировавший на запрос с 10-ого этажа, погрузил пассажиров и получил этажи назначения, производится запрос:
· 15 вверх (34, 50)
Когда лифт, среагировавший на запрос с 45-ого этажа, погрузил пассажиров и получил этажи назначения, производится запрос:
· 35 вниз(1)
Чего и следовало ожидать, на лицо существенный выигрыш, как во времени ожидания лифтов, так и в пройденном расстоянии.
Усугубим ситуацию, в начальный момент времени поступают запросы:
· 5 вверх (7, 29, 46, 49, 50)
· 50 вниз (10, 28, 35, 45)
Когда лифт, среагировавший на запрос с 5-ого этажа, погрузил пассажиров и получил этажи назначения, производится запрос:
· 10 вверх (35, 45)
Когда лифт, среагировавший на запрос с 50-ого этажа, погрузил пассажиров и получил этажи назначения, производится запрос:
· 30 вниз (10)
Когда лифт, среагировавший на запрос с 10-ого этажа, погрузил пассажиров и получил этажи назначения, производится запрос:
· 47 вверх (50)
Хоть и превышение в скорости реакции на запрос, модели использующей набор правил №1 не существенно, пройденное лифтами расстояние примерно на 70% меньше.
Модель, действующая по набору правил №1, даёт результаты, как минимум не хуже, чем результаты, получаемые от модели с набором правил №2. В ряде случаев даёт преимущество в пройденном расстоянии ~70% и времени ожидания ~60%. В последствии следует развивать модель с набором правил №1, введя в неё возможность сохранения запросов в порядке времени достижимости. Причём прилагаемый код программ может быть использован повторно.
Прилагаемая к данной работе реализация моделей использует STL языка С++ и корректно будет работать только если скомпилирована компилятором Microsoft Visual C++. Данные ограничения обусловлены, различиями в реализации STL различными разработчиками компиляторов. В свою очередь компилятор от Microsoft рекомендован разработчиками STL как корректно поддерживающий её.