Rose debug info
---------------

Обновился симулятор лифтов

Что за симулятор?

Это программа, которая показывает, как люди ездят на лифтах. Сколько времени посетители ждут лифта в холле. Сколько лифтов требуется, чтобы перевезти людей без задержек.
http://cashin.ru/vis/lift

Зачем?

В одном из примеров к лекции по визуализации данных мне понадобился генератор большого количества данных. Придумал я такую штуку: люди ездят на лифтах, координаты и время сохраняются для визуализации.

Сначала я планировал обойтись без пользовательского интерфейса. Казалось, настроек в виде кода будет достаточно. Но без интерфейса управлять симулятором оказалось тяжело. Пришлось сделать и интерфейс.

Что в этом интересного?

Интересно наблюдать, как при разных настройках работают лифты и перемещаются люди.

При каких условиях лифты ездят почти пустые,


а при каких собирается толпа в лифтовых холлах:



Ржачно смотреть, как два очень быстрых и вместительных лифта не справляются с 50-этажным зданием и графики выходят из берегов:


А что будет, если лифты медленные, но вместительные? Попробуйте.
Получился и генератор для работы, и прикольная штука:
http://cashin.ru/vis/lift


Как пользоваться?

Симулятор запускается сразу как только вы зашли на страницу. Работает по заданным настройкам. Нажмите паузу — появятся настройки. Меняйте количество этажей, лифтов и другие параметры. Запускайте и смотрите, как изменится загрузка лифтов.


Смотрите, почему у лифтов возникают очереди. Настраивайте скорость симуляции: ход времени можно увеличить до 50-кратного.

Симулятор схематически показывает этажи, лифты и людей. Чтобы показать происходящее не только в реальном времени, но на всем пройденном диапазоне, программа сохраняет данные на графиках. Графики показывают, как работают лифты в течение дня.


Почему люди едут именно на эти этажи?

Каждый раз симулятор случайным образом составляет план перемещения людей по зданию. В начале дня люди едут с нижнего этажа на верхние, расходятся по своим местам. Днем все обычно идут обедать. В течение дня перемещаются между этажами. План выглядит так:


Каждая точка показывает перемещение одного человека на определенный этаж в определенный момент. По горизонтали — временная ось, по вертикали — номер этажа. Нижние этажи показаны синим, верхние — красным. Чем выше, тем краснее.


Сколько данных показывает симулятор?

При настройках 500 человек симулятор каждые 20 миллисекунд генерирует 50 × 500 = 25 000 записей в секунду. Каждая запись содержит координаты, номер этажа, номер лифта, время ожидания и перемещения.

Симулятор собирает и показывает записи о перемещении людей за 11 часов, с 9 до 20. Это 39 600 секунд. Получается 39 600 × 25 000 = 990 000 000 записей за один день работы лифтов.

Насколько реалистично программа показывает работу лифтов?

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

Симулятор помогает грубо прикинуть эффективность лифтов, но не подходит для точного расчета. Для этого не хватает дополнительных деталей, которых я пока не запрограммировал. Лифты движутся без учета разгона и торможения. Нет группового управления лифтами: если человек вызвал лифт, и два лифта свободны, то оба приедут по вызову. Нет отдельных настроек для каждого лифта. Нельзя указать разные рабочие этажи для разных лифтов. Я упростил управление лифтами, чтобы не превращать в долгострой.

Играйте:
http://cashin.ru/vis/lift

Как симулятор рисует графики — в следующих постах.

Поделиться
Отправить
Запинить