Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
red255;Московский государственный институт электронной техники (Технический университет)
Выполнил: ст. гр. МП-30 Савченко В. Ю.
Проверил: к. ф.-м. н. Лисовец Ю. П.
Москва, 2007 г.
Имеется высотное здание из этажей, в котором действуют лифтов. На каждом этаже имеются две кнопки для вызова лифта. Пассажиры желающие попасть на этажи выше, нажимают кнопку «вверх», ниже «вниз». Заранее не известно, какой лифт обслужит запрос, и на какой именно этаж выше (или ниже), относительно этажа, с которого поступил запрос, намерены попасть пассажиры.
лифтовый система программа
Необходимо разработать модель лифтовой системы из независимых лифтов, удовлетворяющую интересу владельцев здания в минимальности затрат на обслуживание лифтов, и пассажиров минимальности времени ожидания.
Для количественной характеристики данных интересов в модель вводиться две величины. Для отдельно взятого лифта расстояние, пройденное данным лифтом с момента начала обслуживания потребностей пассажиров. Для здания в целом суммарное время ожидания выполнения запроса с этажа.
Оговоримся сразу, требования пассажиров и владельцев противоречат друг другу. Так если требования пассажиров имеют высший приоритет то, как только поступил запрос с этажа, система должна мгновенно отправлять лифт по направлению к запросу. В силу того, что на практике, запросов больше чем лифтов, требование о минимальности времени ожидания, будет выполняться только тогда, когда число свободных лифтов больше или равно числу запросов с этажей.
Высшая приоритетность минимальности затрат будет означать следующее, ни один лифт не сдвинется с места пока все пассажиры желающие куда-либо ехать не нажмут на кнопки вызова. И только после этого, при условии, что больше не будет запросов с этажей, лифты начнут движение.
Таким образом, необходимо найти компромиссное решение, которое будет удовлетворять интересам, как пассажиров, так и владельцев здания.
Для осуществления управления движением лифтов система хранит следующие данные:
На систему управления возлагаются следующие функции:
Дадим некоторый комментарий по поводу функции определения ближайшего запроса. Каждый лифт может находиться в трёх состояниях это: движение вверх, движение вниз и простой. Причём если лифт выгружает или загружает пассажиров, и у него есть этажи назначения или ближайший запрос, то считается, что он к ним движется. Будем говорить, что лифт находиться в состоянии простоя тогда, когда у лифта нет ни этажей назначения, ни запросов.
Если лифт движется в некотором направлении, то для него ближайшим запросом считается любой запрос в направлении по его движению в той части здания, в которой лифт находится в данный момент. Например, лифт находится на 34-ом этаже и движется вверх к этажам назначения или запросам, неожиданно поступил запрос с 38-ого этажа на движение вверх и запрос с 37-ого на движение вниз. В данном случае, так как лифт движется вверх, система управления определит ему запрос с 38-ого этажа, как ближайший.
Если лифт стоит, то ближайшим к нему считается запрос, который находиться от него на наименьшем расстоянии в не зависимости от того, в какую сторону направлен данный запрос и из какой части издания он поступил.
Лифт будет характеризоваться следующими величинами:
И выполнять следующие действия:
Далее рассмотрим две модели лифта с разными правилами относительного того, куда далее следует двигаться. С целью выявления набора правил, который будет удовлетворять компромиссному решению, сформулированному выше.
Набор правил №1
Данные правила указаны в порядке их приоритетности. При этом, для лифта всегда будет определяться ближайший запрос и ближайшие этаж назначения, если таковые имеются.
Набор правил №2
Правила указаны в порядке их приоритетности. Существенное отличие данного набора правил кроется в том, что по этому набору, если у лифта есть этажи назначения, то он не реагирует на новые запросы, реакция происходит только в том случае, если лифт развёз всех пассажиров.
Предполагаемые отличия
В условиях данных правил предполагаем, что модель с набором правил №1 будет обслуживать запросы пассажиров быстрее, чем №2 и при этом лифты будут проходить меньшее расстояние. Данный выигрыш будет обеспечиваться существенным отличием набора правил №2 от набора правил №1, о котором говорилось выше. И будет тем больше, чем больше число запросов по движению лифта при доставке пассажиров к этажам назначения. При наборе правил №2 запросы с этажей будут обслуживаться в порядке поступления, при наборе №1 нет.
Теперь исследуем поведение данных моделей на практике, с целью выявления оптимального набора правил.
Для моделирования лифтовой системы были написаны две программы на языке C++.
Будем исследовать модель 50-ти этажного здания с 4-ю лифтами. Прежде всего, приведём описание окна работающей программы:
Первый столбец, состоящий из цифр это номера этажей. Следующие два столбца отображают запросы с этажей вверх и вниз в виде треугольников. Далее большими прямоугольниками обозначаются лифты, маленькими (вдоль шахты каждого из лифтов) этажи назначения. Под шахтой каждого из лифтов находится число, характеризующее пройденное лифтом расстояние. Далее следует надпись: «Суммарное время ожидания лифтов пассажирами равно: …». И приглашение для ввода запроса. При нажатии на [Enter] система запрашивает номер этажа, на котором находиться пассажир, и направление в котором он желает двигаться. Если лифт достиг запроса, у пассажира спрашиваются этажи назначения.
Для выявления более подходящего набора правил, разработаем ряд экспериментов, и будем фиксировать реакцию системы на них. Результатом эксперимента будет суммарное расстояние, пройденное всеми лифтами, и суммарное время ожидания лифтов пассажирами.
Результаты экспериментов сведём в таблицу:
Номер эксперимента |
Пройденные пути для №1 |
Время ожидания лифта для №1 |
Пройденные пути для №2 |
Время ожидания лифта для №2 |
1 |
, 58, 78, 79 |
, 78, 58, 36 |
||
2 |
, 70, 84, 0 |
, 48, 70, 0 |
||
3 |
, 48, 49, 49 |
, 49, 49, 38 |
||
4 |
, 88, 0, 0 |
, 88, 49, 68 |
||
5 |
, 89, 0, 0 |
, 89, 49, 49 |
Эксперимент №1
Тест направлен на моделирование ситуации, когда одновременно поступает множество запросов с верхних этажей на движение вниз, а именно:
Как и следовало ожидать суммарные пути, пройденные лифтами равны. Время ожидания не существенно разниться. Полученные результаты объясняются тем, что не было запросов, которые можно было подхватить по движению, по этому преимущество набора правил №1 и не имеют места.
Эксперимент №2
Тест содержит один запрос, который может быть выполнен параллельно с развозом пассажиров, запросы поступили одновременно:
Здесь уже начинают наблюдаться преимущества модели использующей набор правил №1. Суммарный пройденный путь меньше, время ожидания так же меньше. При этом обе модели задействовали по 3 лифта для выполнения задачи.
Эксперимент №3
Одновременно поступают запросы:
В силу одновременности, хотя и имелись запросы, расположенные по движению, существенных преимуществ модели использующей набор правил №1 не выявлено, в силу того, что лифт определяет для себя только один ближайший запрос.
Эксперимент №4
В начальный момент времени поступают запросы:
Когда лифт, среагировавший на запрос с 10-ого этажа, погрузил пассажиров и получил этажи назначения, производится запрос:
Когда лифт, среагировавший на запрос с 45-ого этажа, погрузил пассажиров и получил этажи назначения, производится запрос:
Чего и следовало ожидать, на лицо существенный выигрыш, как во времени ожидания лифтов, так и в пройденном расстоянии.
Эксперимент №5
Усугубим ситуацию, в начальный момент времени поступают запросы:
Когда лифт, среагировавший на запрос с 5-ого этажа, погрузил пассажиров и получил этажи назначения, производится запрос:
Когда лифт, среагировавший на запрос с 50-ого этажа, погрузил пассажиров и получил этажи назначения, производится запрос:
Когда лифт, среагировавший на запрос с 10-ого этажа, погрузил пассажиров и получил этажи назначения, производится запрос:
Хоть и превышение в скорости реакции на запрос, модели использующей набор правил №1 не существенно, пройденное лифтами расстояние примерно на 70% меньше.
Модель, действующая по набору правил №1, даёт результаты, как минимум не хуже, чем результаты, получаемые от модели с набором правил №2. В ряде случаев даёт преимущество в пройденном расстоянии ~70% и времени ожидания ~60%. В последствии следует развивать модель с набором правил №1, введя в неё возможность сохранения запросов в порядке времени достижимости. Причём прилагаемый код программ может быть использован повторно.
Прилагаемая к данной работе реализация моделей использует STL языка С++ и корректно будет работать только если скомпилирована компилятором Microsoft Visual C++. Данные ограничения обусловлены, различиями в реализации STL различными разработчиками компиляторов. В свою очередь компилятор от Microsoft рекомендован разработчиками STL как корректно поддерживающий её.
Размещено на Allbest.ru
Размещено на http://www.allbest.ru/