7 заметок с тегом

симулятор

Группы риска не существует: мы все в одной лодке

Часть 8.

Читаю такое: в связи с риском заболевания вирусом предприятие переводится на удаленную работу. Или, в Москве 300 заболевших, мы считаем риск заболеть низким.

Это полная хрень. Риск не в заболевании кого-то на предприятии. Риск не в том, что лично вы подхватите вирус — это вообще не риск. 30-50 человек у нас каждый день гибнут в ДТП, но дороги никто не перекрывает. ДТП — ваш индивидуальный риск. Если кто-то попал в ДТП, это не вызывает еще тысячу ДТП в районе.

Вирус — риск не индивидуальный, а коллективный и нелинейный. Это значит, что произойдет что-то более масштабное, чем просто вы заболеете. Во-первых, не только вы, во-вторых, не только заболеете.

Посмотрим на процесс в США:
изначально было известно, что в медицинских учреждениях в наличии примерно 40 тысяч аппаратов искусственного дыхания. Казалось, что это много. Но, поскольку увеличивается сама скорость роста инфицированных, количество людей, которым требуются аппараты, растет нелинейно, взрывным образом.

http://www.cashin.ru/virus/confirmedgrowth/

В результате даже в США при такой экономической мощи появляются десятки оупен-сорсных проектов по самостоятельному изготовлению аппаратов искусственного дыхания. Гляньте хотя-бы сюда:

https://medium.com/@RobertLeeRead/analysis-of-open-source-covid-19-pandemic-ventilator-projects-27acf9075f7e

Это только один из примеров нелинейных эффектов второго порядка. На что это повлияет далее — нельзя предсказать. Но точно можно предсказать, что последствия будут невероятно плохими, если нелинейный рост продолжится.

Риск в том, что по мере распространения вируса масштаб увеличивается и это приводит к непредсказуемым последствиям. Вирус уже распространяется, и что люди полагают, что риска нет — больше ничего и не нужно. Этих двух составляющих достаточно.

Обычно, когда говорят про риск, имеют в виду нечто из будущего. А у нас это не будущее, а уже сработавший риск. Теперь это не риск, а реальный процесс.

Есть посев, есть высокий коэффициент передачи. Нужно снижать, иначе...

https://meltingasphalt.com/interactive/outbreak/

* * *
P. S.
С симуляторами нынче есть хорошая и плохая новости.

Хорошая — они наглядно показывают распространение инфекции в зависимости от коэффициента передачи и количества социальных контактов.

Плохая — все симуляторы, которые я видел, после достижения пика за каким-то хреном выводят все случаи в состояние «выздоровевших». Этот ход мне кажется безответственным — складывается впечатление, что если просто немного подождать, все станут выздоровевшими сами собой. Это глупость — никак не отображаются последствия. И их в принципе невозможно показать, потому что это непредсказуемые эффекты второго порядка.

Увы, хорошо «визуализировать» сегодня уже недостаточно.

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

* * *
Ранее:
Часть 1.
Мы путаем локальный риск с системным.
http://www.cashin.ru/blog/all/virus/

Часть 2.
Мы не понимаем сдвига во времени между причиной и следствием.
http://www.cashin.ru/blog/all/virus-2/

Часть 3.
Откуда данные?
http://www.cashin.ru/blog/all/virus-3/

Часть 4.
Ищи то, чего нет на виду.
http://www.cashin.ru/blog/all/virus-4/

Часть 5.
Риск срабатывает моментально
http://www.cashin.ru/blog/all/virus-5/

Часть 6.
Вирус распространяется по Москве
http://www.cashin.ru/blog/all/virus6/

Часть 7.
Действия каждого для общей безопасности
http://www.cashin.ru/blog/all/virus-7/

Часть 8.
Группы риска не существует: мы все в одной лодке
http://www.cashin.ru/blog/all/virus-8/

Все заметки на тему коронавируса
http://www.cashin.ru/blog/tags/koronavirus/

Симулятор Монте-Карло к задаче про дополнительные стрелы

Разминка выходного дня: дизайн + программирование + теория вероятностей.

Сын решает задачу по теории вероятностей:
«Есть 14 стрел. Вероятность попадания одной стрелы — 0,1. За каждое попадание стрелок получает ещё 3 стрелы. Нужно определить математическое ожидание количества выстрелов.»

Даня решил задачу на бумаге, а я взял себе на разминку — найти решение численным методом, наглядно показать задачу с процессом решения и результатом, параметризировать для возможности попробовать другие настройки.

Решение численным методом — симулятор Монте-Карло с настройкой параметров задачи:
https://observablehq.com/@realsergeykashin/monte-carlo-arrows-v1-0

График показывает результаты каждой серии выстрелов. Красные штрихи — отдельные выстрелы. Чем чаще стрелок попадает, тем больше дополнительных стрел получает и так же их выпускает:

Интересно наблюдать, как меняется результат при изменении входных параметров задачи:

Редактируется
— вместительность графика. При определенных настройках получается очень много стрел, осторожно!
— начальное количество стрел;
— вероятность попадания стрелы;
— сколько новых стрел выдают за каждое попадание.

Так что вот вам еще один симулятор.
https://observablehq.com/@realsergeykashin/monte-carlo-arrows-v1-0

Поздравляю девочек с 8 марта!

Я не знаю, как так получилось, но вот так совпало. Читал Александра Маркова об эволюции человека. Из главы о «митохондриальных Евах»:

У всех ныне живущих существ женского пола в прошлом была одна общая праматерь.

Мне захотелось наглядно проиллюстрировать этот феномен, и я сделал очередной симулятор с визуализацией. Закончил как раз сегодня утром. И понял, что... женские особи... Ева... проматерь... митохондрии... да это же 8 марта!

Так что получилась своеобразная 8-мартовская открытка.
Запускайте:


Девочки, с 8 марта!

;-)

Как симулятор лифтов рисует графики

Продолжение.
Начало тут: http://www.cashin.ru/blog/all/lift-upd1/

В симуляторе лифтов графики показывают большое количество данных. На картинке пример пробки у лифтов, если в час пик много народу. Интересно, что здесь люди тратят больше времени на ожидание в холле. Внутри лифтов ждут гораздо меньше — оранжевый график стабильно показывает малые числа.


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


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

Визуализация сделана с помощью библиотеки d3js,
https://d3js.org

Прожарить парочку лифтов:
http://www.cashin.ru/vis/lift/

В следующем посте — про микро- и макроуровень.

2017   canvas   svg   визуализация   лифты   проект   симулятор

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

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

Это программа, которая показывает, как люди ездят на лифтах. Сколько времени посетители ждут лифта в холле. Сколько лифтов требуется, чтобы перевезти людей без задержек.
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

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

2017   визуализация   лифты   проект   симулятор

Симулятор лифтов

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

http://cashin.ru/vis/lift/

2017   визуализация   лифты   проект   симулятор