Применение теории массового обслуживания в организации работы лифтов
Анализ теории массового обслуживания как раздела теории вероятностей. Проблема организации работы лифтов в высотном здании. Изучение работы системы массового обслуживания для двух лифтов и ее оптимизации с помощью деления этажей на зоны обслуживания.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 28.08.2016 |
Размер файла | 467,4 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://allbest.ru
Введение
массовый обслуживание лифт
Теория массового обслуживания как раздел теории вероятностей возникла сравнительно недавно. Первые работы появились в началепрошлого столетия и были вызваны потребностями современного общества. Сегодня модели теории массового обслуживания помогают описать изучить любые системы, состоящие из многих однородных элементарныхопераций, на осуществление которых влияют случайные факторы.
В своей работе я сделала попытку изучить систему массового обслуживания, описывающую работу двух лифтов в многоэтажном здании с большим потоком посетителей. Главным критерием эффективности функционирования системы было выбрано среднее время ожидания лифта, то есть математическое ожидание разницы между моментами прихода посетителя и началом обслуживания.
Идея, описанная в моей работе, основана на наблюдении за организацией работы лифта в одном из многоэтажных зданий Москвы. Изначально это здание обслуживалось двумя лифтами, которые работали параллельно, одинаково обслуживая все этажи, как, например, в здании МИЭМ в Строгино. По утрам, когда входящий поток сотрудников был особенно плотным, многие сталкивались с тем, что время ожидания лифта доходило до 20 минут. Очевидно, что спустя некоторое время было решено реорганизовать работу лифта. Изменение заключалось в том, что все этажи были разделены на две непересекающиеся области, каждой из которых соответствовал один лифт. Другими словами, один лифт стал обслуживать только нижние этажи, а другой - только верхние. Таким образом, сотрудники стали определять заранее, какой лифт едет на необходимый этаж, и общая очередь расформировываласьна две независимые очереди. Например, такой тип организации можно встретить в главном здании МГУ. После того, как идея была реализована, среднее время ожидания начала обслуживания значительно сократилось и стало удовлетворять принятым стандартам.
В крупных городах можно встретить много примеров с подобной организацией работы лифтов. Тем не менее, на сегодняшний день, эта тема мало изучена, сложно найти научные работы, описывающие метод деления на зоны обслуживания, его результативность или причины, по которым он был выбран. Можно встретить много учебных задач, заключающихся в изучении работы лифта с разными целями (повышение надежности или уменьшение времени ожидания), но я не смогла найти те, которые бы удовлетворяли реальным условиям. Именно поэтому, чтобы проанализировать описанный метод повышения эффективности адекватно реальности, я начала его изучение, не опираясь на исследования других авторов.
Проблема организации работы лифтов мне кажется актуальной, так как высотные здания сейчас становятся все более популярными. Кроме того, вышеописанная идея является очень перспективной, потому что она эффективно справляется с высокой загруженностью системы обслуживания, не требуя при этом дополнительных затрат. Однако чтобы пользоваться этим методом, необходимо знать заранее, что он приведет к положительному результату. Моя работа направлена на изучение работы системы массового обслуживания для двух лифтов и ее оптимизации с помощью деления этажей на зоны обслуживания. Я хотела бы понять, действительно ли предложенный метод оптимизации является эффективным?
1.Обзор литературы
массовый обслуживание лифт
Как я уже отметила раньше, научную литературу по моей теме я не смогла найти. Тем не менее, интересным результатом моих поисков стала статья про американскую женщину-математика Терезу Кристи. Она работает в компании OtisElevatorCo. и считается одним из лучших специалистов по вертикальному транспорту.Недавно она участвовала в реконструкции EmpireStateBuilding, а затем - в громком проекте последних лет -- строительстве 451-метрового небоскрёба PetronasTowers в Малайзии, в то время самого высокого здания в мире.
Основная работа Терезы Кристи осуществляется в компьютерных симуляторах, затем результат проверяется в реальных экспериментах, что доказывает отсутствие аналитических результатов в этой области. Как и в моей работе, в ее методах основным критерием эффективности является время ожидания.
Одним из самых выдающихся изобретений Терезы Кристи стала интеллектуальная система управления лифтами Compass от OtisElevator, в которой каждый пассажир перед посадкой указывает этаж, куда направляется. После этого система сообщает, в какой лифт садиться и через сколько секунд он придёт. На схеме пассажиры окрашены в разные цвета, в зависимости от их пункта назначения.
Пассажиров близких этажей сажают в одинаковые лифты, чтобы минимизировать время поездки и количество остановок.
Идея Кристи запатентована, поэтому никаких более подробных деталей этого изобретения найти не удалось.
Фактически, моя работа стала упрощенным вариантом изобретения Терезы Кристи, так как у нее деление этажей плавающее, зависящее от пришедших заявок, а в моем случае деление определено заранее и в ходе обслуживания его невозможноизменить.
2. Теоретическая часть
Итак, начнем изучение системы массового обслуживания, состоящей из двух лифтов в многоэтажном доме с плотным входящим потоком. Для конкретизации задачи я выберу период времени, в который все заявка будут поступать на нулевой этаж. Такая задача, например, может соответствовать обслуживанию высотного офисного здания за несколько минут до начала рабочего дня: в этот момент все заявки будут поступать на нулевойэтаж и поток обслуживания будет очень плотным.
В первую очередь я сделала попытку сделать выводы об этой системе аналитически. Входящий поток требований, поступающих в систему -пуассоновский случайный процесс, но что мы можем сказать о времени обслуживания требований? Он был бы тоже пуассоновским, если бы мы сделали поправку на то, что лифт может обслужить только одного человека. Однако я хотела бы максимально приблизить свою модель к реальности, поэтому я ввела константу ?, которая определяет максимальное количество людей в лифте (вместимость лифта). Таким образом, будет происходить обслуживание не одного человека, а группы, состоящей из нескольких людей ( от 1 до ?), успевших прийти в промежуток времени от начала предыдущего обслуживания до возвращения лифта на начальный этаж.В этом случае мы не можем говорить о том, что время обслуживанияявляется пуассоновским процессом, так как оно зависит от всех предыдущих заявок: длительности обслуживания складываются из числа остановок (числа разных этажей в заявке), умноженных на длительность одной остановки, и номера самого высокого этажа, умноженного на время передвижения на один этаж вверх и обратно. Очевидно, что описанная система массового обслуживания имеет зависимое время обслуживания и не является марковской.
Описание моделей массового обслуживания с зависимыми длительностями обслуживания рассматриваются математиками в разных контекстах. Один из примеров исследования я нашла в книге В.М. Вишневского “ Теоретические основы проектирования компьютерных сетей”. В ней изучаются сети массового обслуживания с зависимым обслуживанием, которые наиболее адекватно отражают реальную информацию в сетях передачи информации, где длина сообщения в процессе его передачи узла к другому узлу не меняется. Отличие этой модели от моей модели заключается в том, что в ней заявка проходит маршрут через множество узлов сети.
Также системы с зависимым временем обслуживания рассматриваются в диссертации Зорина А.В. “Кибернетический подход при моделировании и изучении конфликтных систем обслуживания”.В §2.1. “Обслуживание конфликтных потоков с зависимыми интервалами между требованиями”автор описывает модель на примере потока автотранспорта. В транспортном потоке выделяются медленные и быстрые машины, причём медленные машины образуют поток с простой вероятностной структурой, а быстрые машины маневрируют и совершают обгоны. Зорин пишет:“Получить математическое описание входящего потока в виде совокупности конечномерных распределений интервалов между моментами поступления требований практически не удаётся”. Ученый использует методимитационного моделирования, в ходе которого возникают необходимость в разработке математических моделей образования транспортных «пачек». При решении этой задачи, как результат, получаются классы распределений вероятностей для числа требований в транспортной «пачке», что позволяет решать задачи статистики таких потоков.
Изучив доступную на сегодняшний день научную литературу по теме системы массового обслуживания с зависимыми временами обслуживания, я сделала вывод, что единственным методом, позволяющим проанализировать мою модель самым простым и удобным способом, является эмпирический метод с использованием имитационного моделирования.
3.Практическая часть
Практическая часть моей работы заключается в реализации имитационной модели обслуживания входящего потока заявок двумя лифтами, затем применения к ней метода оптимизации с помощью деления на зоны обслуживания и определение этажа, при делении на котором будет наименьшее среднее время ожидания.
Чтобы приблизить модель к реальности, входными данными будут:
· интенсивность входящего потока (среднее число людей, приходящих в единицу времени);
· вместимость лифта (максимальное количество людей в лифте);
· число этажей в здании;
· время, которое лифт тратит на передвижение на один этаж вверх и один этаж вниз;
· длительность одной остановки.
Входящий поток заявок будет генерироваться случайным образом с помощью экспоненциального распределения, для каждой заявки случайно равновероятно будет выбран номер этажа.
Для имитационного моделирования удобно использовать такие программные пакеты как MatLab, Python или C++, однако я столкнулась с тем, что алгоритм работы этой модели, кажущийся очевидным, не такпрост. На самом деле в нем существует множество нюансов, найти которые можно, только если отслеживать каждый шаг в ходе выполнения программы. Такую возможность дает использование документа Excel, дополненного языком программирования VBA.
VBA (VisualBasicforApplications) - это диалект языка программирования VisualBasic, расширяющий возможности языка VisualBasic и предназначен для работы с приложениями MicrosoftOffice. Считается, что VBA - самый удобный язык для работы с приложениями Office. Главная причина проста -- язык VBA встроен в приложения Office, и код на языке VBA можно хранить внутри документов приложений Office -- документах Word, книгах Excel, презентациях PowerPoint. Кроме того, код можно запускать оттуда на выполнение, поскольку среда выполнения кода VBA встроена внутрь этих приложений.
При описании алгоритма удобнее всего разделить его на три части: входящий поток заявок, формирование группы заявок, обслуживание заявок. Входящий поток представляет собой поток людей, постепенно приходящих на первый этаж здания и встающих в очередь к лифту; для каждого из них генерируется время прихода. Далее формируется группа заявок, для которой известно количество остановок, которые лифт должен совершить, и максимальный этаж, до которого лифт должен доехать. Следующий блок заключается в обслуживание группы, в результате которого определяется время начала обслуживания. Время ожидания для каждой заявки считается как разность между временем ее поступления и началом обслуживания группы, которой она принадлежит. Необходимо реализовать два алгоритма:
· для модели, в которой лифты одинаково обслуживают все этажи (см.рисунок 1)
· для модели, в которой этажи разделены между двумя зонами обслуживания, закрепленными за каждым лифтом (см. рисунок 2)
Алгоритмы для двух моделей отличаются друг от друга, поэтому опишем их отдельно.
Для модели без деления.
1. Входящий поток.
XF(x)=P(X<x)
F(x)
F(x)=Y
X=
1-=Y
X=- - интервалы между приходами заявок, где - интенсивность потока.
рисунок 1 рисунок 2
В столбце входящего потока будем фиксировать время, в которое поступают клиенты (для этого к предыдущему времени поступления будем прибавлять момент входящего потока).
Для каждой заявки случайным образом генерируется этаж, на котором заявка должна оказаться.
2. Формирование группы заявок.
Для начала ответим на вопрос: может заявка начать обслуживаться в момент прихода? Очевидно, что один из лифтов стоит на первом этаже и в очереди меньше, чем ? человек, то заявка начнет обслуживаться.
Затем для заявки определим номер группы. Если число людей в предыдущей заявке равно ?, то номер группы будет равняться предыдущему номеру группы +1. В ином случае, если для предыдущей заявки обслуживание началось, то номер группы будет также равняться предыдущему номеру группы+1. Если не началось, то текущий номер группы будет равен предыдущему номеру.
Число людей в заявке будем считать как число повторений для текущей заявки.
Максимальный этаж равен текущему этажу заявки, если предыдущий номер группы не равен текущему. В ином случае, максимуму между предыдущим значением максимального этажа и текущим этажом заявки.
Для подсчета числа разных этажей введем код этажа, сформированный следующим образом: “номер заявки”&”0”&”номер текущего этажа”. Например, 56015 значит, что в 56 группу попала заявка с 15-ым этажом. Таким образом, одинаковые этажи в разных заявках будут отличаться. Если предыдущий номер группы равен текущему и число повторений кода в предыдущих заявках равно 0, то число разных этажей будет равняться предыдущему числу разных этажей +1, если повторения были - то число разных этажей не изменится. Если номера групп не совпали, то число разных этажей будет равняться 1.
3. Обслуживание заявок.
Теперь определим, какой лифт будет обслуживать поступившего клиента. Занятность лифта 1 (2) будет обозначаться цифрой 1, а цифрой 0 - незанятость. Заметим, что если оба лифта готовы начать обслуживание заявки в одно и то же время, то занятым окажется первый лифт, а второй - свободным. Кроме того, очевидно, но необходимо указать, что обслуживать заявку может только один лифт. Алгоритм занятости удобно продемонстрировать на блок-схеме, например, для первого лифта:
В блок-схеме упоминалось значение времени освобождения лифта 1 или 2. Под этим определением я имею в виду моменты времени, в которые лифт оказывается на начальном этаже, то есть, готов к новому обслуживанию. Эти значения определяется следующим образом (на примере лифта 1):
Моменты обслуживания определяются по формуле:
занятость*(число разных этажей*время остановки + номер максимального этажа*время передвижения).
Начало обслуживания:
Время ожидания обслуживания будет являться разницей между началом обслуживания и приходом заявки.
Алгоритм модели с делением.
В этой части программы к входным данным добавится следующий параметр:
Ш номер этажа деления
1. Входящий поток.
Формирование входящего потока будет проходить аналогично предыдущей модели. Также я добавлю переменнуютип, которая будет принимать значение “1” в случае, если этаж заявки ниже или совпадает с этажом деления, и в ином случае - “2”.
2. Для облегчения работы модели я отсортирую строки получившейся матрицы по возрастанию столбца “тип”. Для этого я использую макрос, написанный на VBA (использовать встроенную сортировку невозможно, так как в матрице есть случайные значения, см. “Описание макросов”). При этой манипуляции времена входящего потока останутся неизменными, также они сохранят свой порядок. Каждой заявке будет соответствовать два набора переменных, включающих в себя все переменные для первого и второго лифтов. Если заявка будет принадлежать первому типу, то первый набор переменных будет считаться и использоваться, а второй набор примет нулевые значения. Алгоритмы работы лифтов будут совпадать. Формирование группы заявок будет проходить аналогично первой модели, и будет основано на переменной “занятость”.
3. Занятость.
1-свободен; 2-занят
4. Принципы нахождения максимального этажа в группе, числа разных этажей, интервала обслуживания и времени освобождения будут считаться так, как это описано выше.
5. Если заявка поступила после того, как лифт возвратился на начальный этаж, то она начнет обслуживаться немедленно. Иначе, ее обслуживание начнется в момент возвращения лифта на начальный этаж.
Описаниерезультатов
Пример 1
Входные данные:
Ш интенсивность потока = 9 человек в минуту
Ш время передвижения на один этаж вверх и обратно = 0,06 минуты
Ш количество этажей = 20
Ш вместимость лифта = 5 человек
Ш время остановки = 0,02 минуты
Результат:
среднее время ожидания = 1,022
График времени ожидания выглядит следующим образом:
При запуске макроса “GetTime” получаем следующий результат для 10 попыток:
1 |
10 |
0,482886972 |
|
2 |
10 |
0,730851987 |
|
3 |
10 |
0,380146594 |
|
4 |
10 |
0,927259484 |
|
5 |
10 |
0,542047897 |
|
6 |
10 |
0,453698554 |
|
7 |
11 |
0,567778971 |
|
8 |
10 |
0,583692243 |
|
9 |
10 |
0,504791818 |
|
10 |
10 |
0,616782759 |
При этом график средних времен ожидания при делении на этажах от 1-го до 20-го выглядит следующим образом:
В каждой попытке среднее время ожидания значительно меньше, чем в первой модели, значит, в этом случае метод эффективен.
Этаж деления можно выбрать как наиболее часто встречающийся в попытках, в нашем случае - 10-ый.
Для проверки запустим макрос “GetData”, подставив 10 в значение этажа деления и нажав кнопку “GetData”: в результате получим среднее время ожидания 0, 55 минуты при делении на 10-ом этаже, что говорит о соответствии результатов работы макросов.
Вывод:в этом случае предложенный метод оптимизации может сократить время ожидания на 0,47 минуты, если этажом деления выбрать 10-ый.
Заметим, что 0,3 минуты составляет 28 секунд, что довольно большая разница. Считается, что время ожидание лифта не должно превышать 20 секунд, так как в ином случае посетитель начинает нервничать.
Пример 2
Входные данные:
Ш интенсивность потока = 4 человек в минуту
Ш время передвижения на один этаж вверх и обратно = 0,06 минуты
Ш количество этажей = 20
Ш вместимость лифта = 5 человек
Ш время остановки = 0,02 минуты
Результат:
среднее время ожидания = 0,013
График времени ожидания выглядит следующим образом:
При запуске макроса “GetTime” получаем следующий результат для 10 попыток:
1 |
11 |
0,202221745 |
|
2 |
11 |
0,168237836 |
|
3 |
11 |
0,175078227 |
|
4 |
11 |
0,171389863 |
|
5 |
11 |
0,177568294 |
|
6 |
11 |
0,159915996 |
|
7 |
10 |
0,132533582 |
|
8 |
12 |
0,192796517 |
|
9 |
11 |
0,163874412 |
|
10 |
11 |
0,151236031 |
Вывод:в каждой попытке среднее время ожидания больше, чем в первой модели, значит, в этом случае метод неэффективен.
Статистический анализ
Описанным выше эмпирическим методом были получены данные, опираясь на которые стало возможно провести статистический анализ системы. Итак, начнем с модели, описывающей систему лифтов, обслуживающих все этажи одинаково.
Первая гипотеза, которую решено было проверить, заключалась в том, будет ли распределение времени обслуживания экспоненциальным? Для этого по полученным в ходе выполнения программы значениям была вычислена эмпирическая функция распределения для первого лифта по формуле
.
Затем был построен ее график и, для большей убедительности, с помощью статистического пакета IBMSPSSStatisticsDataEditor был проведен тест Колмогорова-Смирнова.
Эта проверка была проведена много раз для экспериментов с одинаковыми входными данными. Результаты были разными, однако для нескольких экспериментов функция времени обслуживания с большой вероятностью была распределена экспоненциально.
Этотфактбыл удивительным, так как он продемонстрировал то, что данную систему лифтов можно свести к уже известной системе массового обслуживания. Однако полностью полагаться на результаты анализа эмпирической функции нельзя, поэтому была предпринята попытка построить теоретическую функцию распределения времени обслуживания.
Пусть G(y) - функция распределения времени обслуживания, - число людей в заявке при условии, что лифт вмещает в себя только пять человек.
Тогда .
Расчет (вероятность того, что в заявкеnчеловек) был затруднен, так как число людей в заявке зависит от длины очереди, от времени освобождения двух лифтов и от многих других факторов. Поэтому при первом рассмотрении теоретической функции распределения было решено взять для всех n. В дальнейшем, будет рассчитываться на основе эмпирических данных в каждом конкретном опыте как отношения числа заявок, обслуживающих n человек, к числу всех заявок. Так функция перестанет быть теоретической, однако поможет проверить корректность имитационной модели. Кроме того, можно рассматривать как характеристику работы модели, показывающую, насколько система лифтов справляется с заявками.
Пусть m-число этажей в здании, T- время передвижения на один этаж, k - максимальный этаж в заявке и t - длительность остановки. Поочередно рассмотрим для nот 1 до 5:
1)
2)
3)
4)
5)
Введем следующие обозначения:
,
,
,
,
.
Допустим, . Судя по графику, расположенному ниже и изображающему две функции распределения, теоретическую и эмпирическую, становится очевидным, что такое допущение не будет соответствовать действительности.
Понятно, что теоретически возможно сравнить лишь функции распределения времени обслуживания отдельно для заявок с разным числом людей:. Построим такие функции для всех n.
В качестве пример ниже приведены графики теоретической и эмпирической функций распределения для одного эксперимента, в котором . Видно, что обе функции незначительно отличаются. Та же ситуация наблюдается и для остальных n.
Таким образом, можно говорить о том, что построенные эмпирические функцииблизки к теоретическим функциям для всех n.
Интересно посмотреть, будут ли совпадать функции распределения времени обслуживания без условия, что . Для этого, как предлагалось ранее, подставим в формулу для G(y) эмпирически найденные .
На приведенном выше графике видно, что, действительно, функция распределения времени обслуживания с использованием эмпирически полученных вероятностей незначительно отличается от эмпирической функции распределения. С одной стороны, этот факт подтверждает корректность работы имитационной модели, а с другой - позволяет приблизиться к теоретическому обоснованию или опровержению того, что время обслуживания в описанной системе работы лифтов распределено экспоненциально.
Теперь перейдем к модели, описывающей работу системы лифтов, обслуживающих две разные зоны этажей. Заметим, что такая модель будет соответствовать двум системам массового обслуживания M|G|1|, так как время прихода заявки будет распределено экспоненциально, а время обслуживания - произвольно.
Заметим, что ? и должны удовлетворять соотношению , где - интенсивность входящего потока, а - среднее время обслуживания. В противном случае не сложно доказать, что система не будет справляться с обслуживанием. В имитационную модель была добавлена таблица, в которой для зафиксированных входных параметров для каждого лифта при делении зон обслуживания на каждом этаже рассчитывалось значение . Приведу пример:
интенсивность потока |
2 |
|
время передвижения |
0,09 |
|
количесвто этажей |
20 |
|
вместимость лифта |
5 |
|
время остановки |
0,05 |
Имитационная модель показала, что лучшим этажом деления является 11-ый этаж:
Рассмотрим параметр для тех же входных параметров при делении на каждом из этажей:
1 |
0 |
0 |
0 |
0,585638356 |
2,471543086 |
1,44743043 |
|
2 |
0,025506438 |
0,151942519 |
0,00388 |
0,614920274 |
2,347965932 |
1,44381185 |
|
3 |
0,061012876 |
0,333885038 |
0,02037 |
0,644202191 |
2,224388778 |
1,43295612 |
|
4 |
0,068651931 |
0,455827556 |
0,03129 |
0,673484109 |
2,100811623 |
1,41486324 |
|
5 |
0,152025751 |
0,707770075 |
0,1076 |
0,702766027 |
1,977234469 |
1,38953321 |
|
6 |
0,157532189 |
0,759712594 |
0,11968 |
0,732047945 |
1,553657315 |
1,13735164 |
|
7 |
0,163038627 |
0,911655113 |
0,14863 |
0,761329863 |
1,27008016 |
0,96694995 |
|
8 |
0,204545064 |
1,063597632 |
0,21755 |
0,79061178 |
1,206503006 |
0,95387549 |
|
9 |
0,275051502 |
1,215540151 |
0,33434 |
0,819893698 |
0,982925852 |
0,80589471 |
|
10 |
0,453728209 |
1,481493011 |
0,6722 |
0,849175616 |
0,982040201 |
0,83392459 |
|
11 |
0,472785388 |
1,683123645 |
0,79576 |
0,878457534 |
0,870571429 |
0,76476003 |
|
12 |
0,473849234 |
2,102331872 |
0,99619 |
0,907739451 |
0,671346994 |
0,60940815 |
|
13 |
0,499355672 |
2,394274391 |
1,19559 |
0,937021369 |
0,569322342 |
0,5334672 |
|
14 |
0,500021096 |
2,40621691 |
1,20316 |
0,966303287 |
0,558983997 |
0,54014807 |
|
15 |
0,500536855 |
2,658159428 |
1,33051 |
0,995585205 |
0,458023737 |
0,45600166 |
|
16 |
0,500874985 |
2,710101947 |
1,35742 |
1,024867123 |
0,457147314 |
0,46851525 |
|
17 |
0,501381423 |
2,862044466 |
1,43498 |
1,05414904 |
0,452270891 |
0,47676093 |
|
18 |
0,506887861 |
3,013986985 |
1,52775 |
1,083430958 |
0,450394469 |
0,48797131 |
|
19 |
0,512394298 |
3,165929504 |
1,6222 |
1,112712876 |
0,449518046 |
0,50018452 |
|
20 |
0,513128755 |
3,238850376 |
1,66195 |
1,141994794 |
0,448484848 |
0,51216736 |
По таблице понятно, что при делении на нижних или верхних этажах один из лифтов не будет справляться с обслуживанием. Кроме того видно, что параметр у первого лифта растет с ростом этажа, а у второго - уменьшается. При этом оптимальный этаж соответствует параметрам , расположенным друг к другу наиболее близко.
С помощью этих математических вычислений было показано, что часть имитационной модели, описывающей работу системы лифтов для двух зон этажей, работает корректно.
Заключение
Алгоритм, написанный мной, показал, что в различных исходных условиях метод деления этажей на зоны обслуживания может быть как эффективным, так и неэффективным. Моя программа может быть полезна для оптимизации работы лифта в высотных зданиях, так как она помогает определить, стоит ли использовать предложенный метод. Рассмотренные теоретические задачи помогли перейти от эмпирического изучения системы к аналитическому. Однако это лишь первый шаг в попытке изучить сложную систему массового обслуживания, состоящую из набора лифтов.
Область задач, связанных с оптимизацией работы лифтов, очень широка, по словам Терезы Кристи, “ в здании с шестью лифтами и 10 пассажирами существует 60 миллионов возможных комбинаций для их перемещения, это очень ресурсоёмкая задача, ведь условия решения меняются каждую секунду, когда новый человек где-нибудь нажимает кнопку”. Тем не менее, существующего разнообразия алгоритмов работы лифта зачастую недостаточно, чтобы описать конкретную ситуацию. Это говорит, что тема, поднятая в моей работе, только начинает изучаться в полной мере, но является очень перспективной и полезной для общества.
Список литературы
1. Кибернетический подход при моделировании и изучении конфликтных cистем обслуживания/Зорин А.В.// Диссертация на соискание учёной степени доктора физико-математических наук -Нижний Новгород: Нижегородский государственный университет им. Н.И. Лобачевского, 2015
2. Теоретические основы проектирования компьютерных сетей/ В.М. Вишневский - Москва: Техносфера, 2003. - 512с
3. Теория массового обслуживания/ Ивченко Г.И., Каштанов В.А., Коваленко И.Н. -Москва: Издательство «Высшая школа», 1982
Приложение
Описание работы макросов
Макрос GetData: запускается кнопкой “GetData” с листа “с делением”. Подходит для подсчета математического ожидания времени, проведенного в очереди, один раз для конкретного этажа (нужно ввести значение “этаж деления” на лист “модель с делением” и запускать макрос).
Описание:
Ш генерирует значения времени прихода заявок и номера этажей;
Ш сохраняет их фиксированные значения на лист “данные”;
Ш сортирует в порядке возрастания по значению;
Ш после алгоритма обслуживания сохраняет среднее время обслуживания
Листинг:
SubGetData(floor)
' Application.ScreenUpdating = False 'отключаемобновлениеэкрана
Sheets("с делением").Select 'переходим на лист 'с делением'
'параметр 'этаж деления'в ячейке AH6
'фиксируем набор случайных чисел копируя только значения в столбцы C, D.
' Range("A2:B500").Select
' Selection.Copy 'копировать
' Range("C2:D500").Select
' Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
' :=False, Transpose:=False 'вставить только значения
' Application.CutCopyMode = False
Range("H1").Select
'копируем значения этажа деления во вспомогательный столбец
Range("AH6").Select
Selection.Copy
Range("J2:J500").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("H1").Select
'копируем только значения на лист 'данные'
Sheets("сделением").Select
Range("K2:K500").Select 'вероятность
Application.CutCopyMode = False
Selection.Copy
Sheets("данные").Select
Range("E2:E500").Select 'вероятностьвспомогательныйстолбец
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("сделением").Select
Range("N2:N500").Select 'этаж
Application.CutCopyMode = False
Selection.Copy
Sheets("данные").Select
Range("F2:F500").Select 'этаж
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A1").Select
Application.CutCopyMode = False
'сортируемпостолбцу F 'тип'
Range("E1:G500").Sort Key1:=Range("G1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("A1").Select
Range("E2:E500").Select 'вероятностьвспомогательныйстолбец
Selection.Copy
Range("B2:B500").Select 'вероятность
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("A1").Select
Sheets("сделением").Select
Range("H1").Select
' Application.ScreenUpdating = True 'включаемобновлениеэкрана
' ActiveWorkbook.Save 'сохраняемся
End Sub
EndSubМакросGetTime: запускается кнопкой “GetTime” с листа “ с делением”, реализует нахождения этажа деления, при котором время ожидания будет минимальным.
Описание:
Ш генерирует случайные данные, фиксирует их;
Ш подставляет поочередно все этажи и записывает среднее время ожидания;
Ш выбирает этаж наилучшего деления;
Ш повторяет пункты 1-3 10 раз, записывая каждый раз этаж с минимальным суммарным временем ожидания.
Листинг:
Sub GetTime()
Dim floor 'этаж
Dimnumrandom 'номернабораслучайныхчисел
'отключаемобновлениеэкрана
Application.ScreenUpdating = False
'переходим на лист 'с делением'
Sheets("с делением").Select
'собираем статистику на 10 наборах случайных знчений 'вероятность'= [1; 100[, 'этаж'= [1; 20].
Fornumrandom = 1 To 10
'фиксируем набор случайных чисел копруя только значения в столбцы C, D.
Range("A2:B500").Select
Selection.Copy 'копировать
Range("C2:D500").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False 'вставить только значения
Application.CutCopyMode = False
Range("H1").Select
'подставляем параметр 'этаж деления' от 1 до 20
Forfloor = 1 To 20
'копируем номер этажа в параметр 'этаж деления'
Range("E" & (floor + 1)).Select
Selection.Copy 'копировать
Range("AH6").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False 'вставить только значения
'сохраняем рассчитанное 'среднее время ожидания' для текущего этажа
' Range("AH8").Select
' Application.CutCopyMode = False
' Selection.Copy 'копировать
' Range("F" & (floor + 1)).Select
' Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
' :=False, Transpose:=False 'вставить только значения
EndSub
Размещено на Allbest.ru
Подобные документы
Характеристика системы массового обслуживания, куда поступают заявки обслуживания. Особенности моделирования системы массового обслуживания. Имитация работы системы массового обслуживания с относительными приоритетами. Отчеты полного факторного плана.
курсовая работа [1,1 M], добавлен 14.07.2012Программа, моделирующая систему массового обслуживания. Изучение режима функционирования обслуживающей системы и исследование явлений, возникающих в процессе обслуживания. Описание программного модуля, руководство пользователя для работы с программой.
курсовая работа [277,5 K], добавлен 20.01.2010Система массового обслуживания как одна из основных моделей, используемых инженерами-системотехниками, примеры: телефонные станции, ремонтные мастерские, билетные кассы. Характеристика и особенности многоканальной системы массового обслуживания.
контрольная работа [404,2 K], добавлен 19.11.2012Основные направления в численном анализе ТМО. Системы массового обслуживания, поведение которых описывается марковскими процессами при некотором расширении пространства состояний. Метод имитационного моделирования для исследования произвольных СМО.
учебное пособие [785,1 K], добавлен 12.10.2010Определение назначения и описание функций имитационных моделей стохастических процессов систем массового обслуживания. Разработка модели описанной системы в виде Q-схемы и программы на языке GPSS и C#. Основные показатели работы имитационной модели.
курсовая работа [487,4 K], добавлен 18.12.2014Общая характеристика системы массового обслуживания, исходные данные для ее создания. Особенности построения алгоритма имитационной модели задачи о поступлении заявок (клиентов) в канал (парикмахерскую). Описание функционирования математической модели.
курсовая работа [154,1 K], добавлен 19.05.2011Основные элементы системы массового обслуживания, ее модель, принципы и задачи работы. Выбор входных распределений. Построение генераторов случайных чисел. Логика работы программы, планирование эксперимента. Результаты моделирования и рекомендации.
курсовая работа [2,5 M], добавлен 05.11.2009Построение имитационной модели системы массового обслуживания, список и содержание ее активностей. Блок-схема алгоритма моделирования и текст процедуры. Моделирование случайных независимых величин и процессов. Оптимизация системы массового обслуживания.
курсовая работа [4,0 M], добавлен 28.05.2013Определение функциональных характеристик систем массового обслуживания (СМО) на основе имитационного моделирования; синтез СМО с заданными характеристиками. Разработка программы на языке SIMNET II; расчет процесса работы СМО; подбор требуемого параметра.
лабораторная работа [623,8 K], добавлен 11.03.2011Описание модели в терминах PDEVS формализма с дискретными событиями DEJaView. Исследование принципов функционирования простейших моделей теории массового обслуживания, разработка ее алгоритма функционирования. Сущность терминов PDEVS под DEJaView.
курсовая работа [219,1 K], добавлен 31.10.2009