Модель висотного ліфта

Реферат з математичного моделювання на тему:

Виконав: ст. гр. МП-30 Савченко В. Ю.

Перевірив: к. ф.-м. н. Лисовець Ю. П.

Об'єкт дослідження

Є висотна будівля з

Спрощувальні припущення

ліфтова система програма

  • ліфти рухаються з однаковою швидкістю
  • висадка та посадка пасажирів проводитися миттєво
  • механічне зношування системи не враховується
  • кожен ліфт може перевозити необмежену кількість пасажирів

Теоретичний розрахунок

Необхідно розробити модель ліфтової системи з

Для кількісної характеристики даних інтересів модель вводиться дві величини. Для окремого ліфта – відстань, пройдена цим ліфтом з початку обслуговування потреб пасажирів. Для будівлі загалом – сумарний час очікування на виконання запиту з поверху.

Обмовимося відразу, вимоги пасажирів та власників суперечать один одному. Так якщо вимоги пасажирів мають найвищий пріоритет, як тільки надійшов запит з поверху, система повинна миттєво відправляти ліфт у напрямку до запиту. В силу того, що на практиці, запитів більше ніж ліфтів, вимога про мінімальність часу очікування буде виконуватися лише тоді, коли кількість вільних ліфтів більша або дорівнює кількості запитів з поверхів.

Вища пріоритетність мінімальності витрат означатиме наступне, жоден ліфт не зрушить з місця доки всі пасажири бажаючі кудись їхати не натиснуть на кнопки виклику. І лише після цього, за умови, що більше не буде запитів із поверхів, ліфти почнуть рух.

Таким чином, необхідно знайти компромісне рішення, яке задовольнятиме інтересам як пасажирів, так і власників.будівлі.

Модель системи керування

Для управління рухом ліфтів система зберігає такі дані:

  • запити з поверхів (номер поверху та напрямок)
  • сумарний час очікування ліфтів пасажирами

На систему управління покладаються такі функції:

  • збирання запитів пасажирів з поверхів
  • визначення для окремого ліфта найближчого запиту, який може бути обслужений цим ліфтом
  • обчислення сумарного часу очікування

Якщо ліфт рухається в певному напрямку, то для нього найближчим запитом вважається будь-який запит у напрямку його руху в тій частині будівлі, в якій ліфт знаходиться в даний момент. Наприклад, ліфт знаходиться на 34-му поверсі і рухається вгору до поверхів призначення або запитів, несподівано надійшов запит із 38-го поверху на рух вгору та запит з 37-го на рух вниз. У цьому випадку, оскільки ліфт рухається вгору, система управління визначить йому запит з 38-го поверху як найближчий.

Якщо ліфт стоїть, то найближчим до нього вважається запит, який перебуватиме від нього на найменшій відстані незалежно від того, в яку сторону направлений даний запит і з якої частини видання він надійшов.

Модель ліфта

Ліфт характеризуватиметься такими величинами:

  • поточний напрямок руху
  • найближчий поверх призначення

І виконувати такі дії:

  • ухвалення рішення про подальший напрямок руху
  • збирання поверхів призначення
  • рух до поверхів призначення чи запиту
  • обчислення пройденої відстані

Далі розглянемо дві моделі ліфта з різними правилами щодо того, куди далі слід рухатися. З метою виявлення набору правил, який задовольнятимекомпромісного рішення, сформульованого вище.

Набір правил №1

  • якщо поточний поверх, найближчий поверх призначення, розпочати висадку пасажирів
  • якщо поточний поверх, найближчий запит, розпочати посадку пасажирів
  • якщо є поверхи призначення, визначити найближчий
  • запитати у системи управління найближчий запит, перевірити якщо ліфти без найближчого запиту, але що знаходяться ближче до цього запиту, і якщо ні, то прийняти найближчий запит
  • якщо визначено найближчий поверх призначення, визначити напрямок руху до нього, рішення прийнято
  • якщо визначено найближчий запит, визначити напрямок руху до нього, рішення прийнято
  • якщо ліфт не здійснює завантаження або вивантаження пасажирів, то зупинитися, рішення прийняте

Дані правила вказані у порядку їхньої пріоритетності. При цьому, для ліфта завжди визначатиметься найближчий запит та найближчі поверх призначення, якщо такі є.

Набір правил №2

  • якщо поточний поверх, найближчий поверх призначення, розпочати висадку пасажирів, рішення прийнято
  • якщо є поверхи призначення, визначити найближчий, рухатися до нього, рішення прийнято
  • якщо поточний поверх, найближчий запит, розпочати посадку пасажирів, рішення прийнято
  • запитати у системи управління найближчий запит, перевірити якщо ліфти без найближчого запиту, але що знаходяться ближче до цього запиту, і якщо ні, то прийняти найближчий запит

Правила вказані у порядку їхньої пріоритетності. Істотна відмінність даного набору правил полягає в тому, що за цим набором, якщо ліфт має поверхи призначення, то він не реагує на нові запити, реакція відбувається тільки в тому випадку, якщо ліфт розвіз усіх пасажирів.

Можливі відмінності

В умовах цих правил припускаємо, щомодель з набором правил №1 обслуговуватиме запити пасажирів швидше, ніж №2, і при цьому ліфти проходитимуть меншу відстань. Цей виграш забезпечуватиметься суттєвою відмінністю набору правил №2 від набору правил №1, про який йшлося вище. І буде тим більше, чим більше кількість запитів щодо руху ліфта при доставці пасажирів до поверхів призначення. При наборі правил №2 запити з поверхів обслуговуватимуться у порядку надходження, при наборі №1 немає.

Тепер досліджуємо поведінку даних моделей на практиці з метою виявлення оптимального набору правил.

Моделювання

Для моделювання ліфтової системи було написано дві програми мовою C++.

Досліджуватимемо модель 50-ти поверхової будівлі з 4-ма ліфтами. Насамперед, наведемо опис вікна працюючої програми:

висотного

Перший стовпець, що складається з цифр, – це номери поверхів. Наступні два стовпці відображають запити з поверхів угору та вниз у вигляді трикутників. Далі великими прямокутниками позначаються ліфти, невеликими (вздовж шахти кожного з ліфтів) поверхи призначення. Під шахтою кожного з ліфтів знаходиться число, що характеризує відстань, пройдену ліфтом. Далі слідує напис: «Сумарний час очікування ліфтів пасажирами дорівнює: …». І запрошення для введення запиту. При натисканні на [Enter] система запитує номер поверху, у якому перебуватиме пасажир, і напрям у якому він хоче рухатися. Якщо ліфт досяг запиту, у пасажира запитують поверхи призначення.

Для виявлення відповідного набору правил, розробимо ряд експериментів, і фіксуватимемо реакцію системи на них. Результатом експерименту буде сумарна відстань, пройдена всіма ліфтами та сумарний час очікування ліфтів пасажирами.

Експерименти

Результатиекспериментів зведемо до таблиці:

Номер експериментуПройдені шляхи для №1Час очікування ліфта для №1Пройдені шляхи для №2Час очікування ліфта для №2
136, 58, 78, 7913679, 78, 58, 36140
249, 70, 84, 09294, 48, 70, 0115
334, 48, 49, 4912448, 49, 49, 38128
449, 88, 0, 06549, 88, 49, 68105
549, 89, 0, 09249, 89, 49, 4999

Експеримент №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 ліфти для виконання завдання.