Модель висотного ліфта
Реферат з математичного моделювання на тему:
Виконав: ст. гр. МП-30 Савченко В. Ю.
Перевірив: к. ф.-м. н. Лисовець Ю. П.
Об'єкт дослідження
Є висотна будівля з
Спрощувальні припущення
ліфтова система програма
- ліфти рухаються з однаковою швидкістю
- висадка та посадка пасажирів проводитися миттєво
- механічне зношування системи не враховується
- кожен ліфт може перевозити необмежену кількість пасажирів
Теоретичний розрахунок
Необхідно розробити модель ліфтової системи з
Для кількісної характеристики даних інтересів модель вводиться дві величини. Для окремого ліфта – відстань, пройдена цим ліфтом з початку обслуговування потреб пасажирів. Для будівлі загалом – сумарний час очікування на виконання запиту з поверху.
Обмовимося відразу, вимоги пасажирів та власників суперечать один одному. Так якщо вимоги пасажирів мають найвищий пріоритет, як тільки надійшов запит з поверху, система повинна миттєво відправляти ліфт у напрямку до запиту. В силу того, що на практиці, запитів більше ніж ліфтів, вимога про мінімальність часу очікування буде виконуватися лише тоді, коли кількість вільних ліфтів більша або дорівнює кількості запитів з поверхів.
Вища пріоритетність мінімальності витрат означатиме наступне, жоден ліфт не зрушить з місця доки всі пасажири бажаючі кудись їхати не натиснуть на кнопки виклику. І лише після цього, за умови, що більше не буде запитів із поверхів, ліфти почнуть рух.
Таким чином, необхідно знайти компромісне рішення, яке задовольнятиме інтересам як пасажирів, так і власників.будівлі.
Модель системи керування
Для управління рухом ліфтів система зберігає такі дані:
- запити з поверхів (номер поверху та напрямок)
- сумарний час очікування ліфтів пасажирами
На систему управління покладаються такі функції:
- збирання запитів пасажирів з поверхів
- визначення для окремого ліфта найближчого запиту, який може бути обслужений цим ліфтом
- обчислення сумарного часу очікування
Якщо ліфт рухається в певному напрямку, то для нього найближчим запитом вважається будь-який запит у напрямку його руху в тій частині будівлі, в якій ліфт знаходиться в даний момент. Наприклад, ліфт знаходиться на 34-му поверсі і рухається вгору до поверхів призначення або запитів, несподівано надійшов запит із 38-го поверху на рух вгору та запит з 37-го на рух вниз. У цьому випадку, оскільки ліфт рухається вгору, система управління визначить йому запит з 38-го поверху як найближчий.
Якщо ліфт стоїть, то найближчим до нього вважається запит, який перебуватиме від нього на найменшій відстані незалежно від того, в яку сторону направлений даний запит і з якої частини видання він надійшов.
Модель ліфта
Ліфт характеризуватиметься такими величинами:
- поточний напрямок руху
- найближчий поверх призначення
І виконувати такі дії:
- ухвалення рішення про подальший напрямок руху
- збирання поверхів призначення
- рух до поверхів призначення чи запиту
- обчислення пройденої відстані
Далі розглянемо дві моделі ліфта з різними правилами щодо того, куди далі слід рухатися. З метою виявлення набору правил, який задовольнятимекомпромісного рішення, сформульованого вище.
Набір правил №1
- якщо поточний поверх, найближчий поверх призначення, розпочати висадку пасажирів
- якщо поточний поверх, найближчий запит, розпочати посадку пасажирів
- якщо є поверхи призначення, визначити найближчий
- запитати у системи управління найближчий запит, перевірити якщо ліфти без найближчого запиту, але що знаходяться ближче до цього запиту, і якщо ні, то прийняти найближчий запит
- якщо визначено найближчий поверх призначення, визначити напрямок руху до нього, рішення прийнято
- якщо визначено найближчий запит, визначити напрямок руху до нього, рішення прийнято
- якщо ліфт не здійснює завантаження або вивантаження пасажирів, то зупинитися, рішення прийняте
Дані правила вказані у порядку їхньої пріоритетності. При цьому, для ліфта завжди визначатиметься найближчий запит та найближчі поверх призначення, якщо такі є.
Набір правил №2
- якщо поточний поверх, найближчий поверх призначення, розпочати висадку пасажирів, рішення прийнято
- якщо є поверхи призначення, визначити найближчий, рухатися до нього, рішення прийнято
- якщо поточний поверх, найближчий запит, розпочати посадку пасажирів, рішення прийнято
- запитати у системи управління найближчий запит, перевірити якщо ліфти без найближчого запиту, але що знаходяться ближче до цього запиту, і якщо ні, то прийняти найближчий запит
Правила вказані у порядку їхньої пріоритетності. Істотна відмінність даного набору правил полягає в тому, що за цим набором, якщо ліфт має поверхи призначення, то він не реагує на нові запити, реакція відбувається тільки в тому випадку, якщо ліфт розвіз усіх пасажирів.
Можливі відмінності
В умовах цих правил припускаємо, щомодель з набором правил №1 обслуговуватиме запити пасажирів швидше, ніж №2, і при цьому ліфти проходитимуть меншу відстань. Цей виграш забезпечуватиметься суттєвою відмінністю набору правил №2 від набору правил №1, про який йшлося вище. І буде тим більше, чим більше кількість запитів щодо руху ліфта при доставці пасажирів до поверхів призначення. При наборі правил №2 запити з поверхів обслуговуватимуться у порядку надходження, при наборі №1 немає.
Тепер досліджуємо поведінку даних моделей на практиці з метою виявлення оптимального набору правил.
Моделювання
Для моделювання ліфтової системи було написано дві програми мовою C++.
Досліджуватимемо модель 50-ти поверхової будівлі з 4-ма ліфтами. Насамперед, наведемо опис вікна працюючої програми:

Перший стовпець, що складається з цифр, – це номери поверхів. Наступні два стовпці відображають запити з поверхів угору та вниз у вигляді трикутників. Далі великими прямокутниками позначаються ліфти, невеликими (вздовж шахти кожного з ліфтів) поверхи призначення. Під шахтою кожного з ліфтів знаходиться число, що характеризує відстань, пройдену ліфтом. Далі слідує напис: «Сумарний час очікування ліфтів пасажирами дорівнює: …». І запрошення для введення запиту. При натисканні на [Enter] система запитує номер поверху, у якому перебуватиме пасажир, і напрям у якому він хоче рухатися. Якщо ліфт досяг запиту, у пасажира запитують поверхи призначення.
Для виявлення відповідного набору правил, розробимо ряд експериментів, і фіксуватимемо реакцію системи на них. Результатом експерименту буде сумарна відстань, пройдена всіма ліфтами та сумарний час очікування ліфтів пасажирами.
Експерименти
Результатиекспериментів зведемо до таблиці:
| Номер експерименту | Пройдені шляхи для №1 | Час очікування ліфта для №1 | Пройдені шляхи для №2 | Час очікування ліфта для №2 |
| 1 | 36, 58, 78, 79 | 136 | 79, 78, 58, 36 | 140 |
| 2 | 49, 70, 84, 0 | 92 | 94, 48, 70, 0 | 115 |
| 3 | 34, 48, 49, 49 | 124 | 48, 49, 49, 38 | 128 |
| 4 | 49, 88, 0, 0 | 65 | 49, 88, 49, 68 | 105 |
| 5 | 49, 89, 0, 0 | 92 | 49, 89, 49, 49 | 99 |
Експеримент №1
Тест спрямований на моделювання ситуації, коли одночасно надходить безліч запитів з верхніх поверхів на рух донизу, а саме:
- 50 вниз (40, 30, 20)
- 40 вниз (38, 36, 1)
Як і слід очікувати сумарні шляхи, пройдені ліфтами рівні. Час очікування не суттєво відрізняється. Отримані результати пояснюються тим, що не було запитів, які можна було підхопити за рухом, тому перевага набору правил №1 і не мають місця.
Експеримент №2
Тест містить один запит, який може бути виконаний паралельно із розвезенням пасажирів, запити надійшли одночасно:
- 1 вгору (20, 30, 40, 50)
- 10 вгору (38, 44, 45, 49)
- 45 вниз (30, 20, 10, 5)
Тут уже починають спостерігатися переваги моделі, яка використовує набір правил №1. Сумарний пройдений шлях менший, час очікування так само менший. При цьому обидві моделі задіяли по 3 ліфти для виконання завдання.