айближчий запит, почати посадку пасажирів
В· якщо є поверхи призначення, визначити найближчий
В· запитати у системи управління найближчий запит, перевірити якщо ліфти без найближчого запиту, але знаходяться ближче до цього запиту, і якщо ні, то прийняти найближчий запит
В· якщо визначений найближчий поверх призначення, визначити напрямок руху до нього, рішення прийнято
В· якщо визначений найближчий запит, визначити напрямок руху до нього, рішення прийнято
В· якщо ліфт не виробляє завантаження або вивантаження пасажирів, то зупинитися, рішення прийнято
Дані правила вказані в порядку їх пріоритетності. При цьому, для ліфта завжди буде визначатися найближчий запит і найближчі поверх призначення, якщо такі є. h4> Набір правил № 2
В· якщо поточний поверх, найближчий поверх призначення, почати висадку пасажирів, рішення прийнято
В· якщо є поверхи призначення, визначити найближчий, рухатися до нього, рішення прийнято
В· якщо поточний поверх, найближчий запит, почати посадку пасажирів, рішення прийнято
В· запитати у системи управління найближчий запит, перевірити якщо ліфти без найближчого запиту, але знаходяться ближче до цього запиту, і якщо ні, то прийняти найближчий запит
В· зупинитися
Правила вказані в порядку їх пріоритетності. Істотна відмінність даного набору правил криється в тому, що з цього набору, якщо у ліфта є поверхи призначення, то він не реагує на нові запити, реакція відбувається тільки в тому випадку, якщо ліфт розвіз всіх пасажирів.
В
Передбачувані відмінності
У умовах даних правил припускаємо, що модель з набором правил № 1 буде обслуговувати запити пасажирів швидше, ніж № 2 і при цьому ліфти будуть проходити меншу відстань. Даний виграш буде забезпечуватися істотною відмінністю набору правил № 2 від набору правил № 1, про який говорилося вище. І буде тим більше, чим більше число запитів по руху ліфта при доставці пасажирів до поверхах призначення. При наборі правил № 2 запити з поверхів будуть обслуговуватися в порядок надходження, при наборі № 1 немає. p> Тепер досліджуємо поведінку даних моделей на практиці, з метою виявлення оптимального набору правил. <В
Моделювання
Для моделювання ліфтової системи були написані дві програми на мові C + +. p> Будемо досліджувати модель 50-ти поверхового будинку з 4-ю ліфтами. Насамперед, наведемо опис вікна працюючої програми:
В
Перший стовпець, що складається з цифр - це номери поверхів. Наступні два стовпці відображають запити з поверхів вгору і вниз у вигляді трикутників. Далі великими прямокутниками позначаються ліфти, маленькими (вздовж шахти кожного з ліфтів) поверхи призначення. Під шахтою кожного з ліфтів знаходиться число, що характеризує пройдене ліфтом відстань. Далі слід напис: В«Сумарний час очікування ліфтів пасажирами одно: ... В». І запрошення для введення запиту. При натисканні на [Enter] система запитує номер поверху, на якому знаходитися пасажир, і напрям в якому він бажає рухатися. Якщо ліфт досяг запиту, у пасажира запитуються поверхи призначення. p> Для виявлення більш відповідного набору правил, розробимо ряд експериментів, і будемо фіксувати реакцію системи на них. Результатом експерименту буде сумарна відстань, пройдену всіма ліфтами, і сумарний час очікування ліфтів пасажирами.
В
Експерименти
Результати експериментів зведемо в таблицю:
Номер експерименту
Пройдені шляхи для № 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 вниз (4...