Местное сообщество для доставки еды пациентам с COVID-19, находящимся на лечении дома

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

Мы запускаем систему, благодаря которой люди, больные COVID-19 и находящиеся дома, могут заказывать очень недорогие обеды (два приема пищи в день за 10 долларов) и получать ежедневную доставку от волонтёров.

Мы договорились с ресторанами о том, что они будут готовить «пайки» (то есть ужин + обед на следующий день) за 10 долларов в день. Потребители, уже зарегистрировавшиеся на нашем экземпляре Discourse, должны звонить в рестораны, заказывать пайки на следующий день и оплачивать заказ. Каждый день наши водители будут приезжать в рестораны, забирать заказы и доставлять их.

Здесь, в районе залива, практически невозможно найти два приема пищи за 10 долларов, особенно с доставкой. Так что это действительно выгодное предложение.

Я пока не могу дать ссылку, так как мы ещё официально не запустились. Но мы размещаемся на платформе Discourse, и весь рабочий процесс и коммуникация происходят именно там.

Мы разрабатываем некоторый пользовательский код для извлечения информации о клиентах, автоматической маршрутизации водителей (задача коммивояжёра) и т. д. По мере завершения мы будем выкладывать весь наш код на GitHub.

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

20 лайков

Спасибо, что сообщили нам! Кейс-стади и идеи по улучшению работы Discourse для этого сценария будут очень кстати.

Не стесняйтесь обращаться за помощью к участникам по адресу Calling out for volunteer Community Managers 📣.

16 лайков

Как здорово видеть силу человеческого :heart: и духа! Так держать, отличная работа!

6 лайков

Рад, что другие тоже обращают на это внимание. Мне стало известно о другой группе, которой поручено готовить 26 тысяч порций в день, и они только что обратились ко мне за решениями. :astonished:

С нетерпением жду результатов; возможно, они сразу же подойдут для того другого проекта и сэкономят мне массу нервов.

9 лайков

26 тысяч приёмов пищи в день с доставкой?

Логистика доставки такого объёма — задача непростая. Мы исходим из того, что наши водители-волонтёры могут перевозить 15 рационов, то есть 30 приёмов пищи за одну поездку, и предоставляем им оптимизированные маршруты. Тем не менее, одна такая поездка занимает у них около 1,5–2 часов, что, по нашему мнению, является устойчивой нагрузкой при работе 2–3 дня в неделю для наших волонтёров.

Для нас 26 тысяч приёмов пищи означают 13 тысяч рационов. Мы предполагаем, что это потребует примерно 7 тысяч остановок (около 2 рационов на остановку). При использовании волонтёрских водителей и обычных автомобилей для доставки это потребовало бы 700 водителей, работающих ежедневно, то есть на практике около 2000 водителей (поскольку наши волонтёры не готовы ездить каждый день).

Если вы контролируете источник приготовления пищи (мы сами не готовим еду, поэтому для нас это гораздо сложнее), то вам достаточно разделить список адресов между водителями и оптимизировать каждый маршрут. Наш объём значительно меньше вашего (мы планируем 2–3 тысячи приёмов пищи в день, что составляет 1/10 от вашего), поэтому мы не автоматизируем разделение списка адресов. Каждый адрес доставки относится к определённому району, а наши диспетчеры вручную распределяют список доставки по районам (это делается простым сортированием в электронной таблице). Затем мы оптимизируем маршрут каждого водителя через веб-сервер, работающий на AWS, и предоставляем каждому водителю оптимизированный маршрут (простой алгоритм задачи коммивояжёра).

Мы рассматривали возможность автоматического разделения полного списка адресов. Но пока в этом нет необходимости, и у нас не так много денег, поэтому мы хотим минимизировать расходы на AWS и Google Maps API :-). Для обобщённой задачи маршрутизации нескольких транспортных средств существуют простые алгоритмические решения, например, вот здесь:

Однако, учитывая такое количество доставок, я предполагаю, что вы охватываете очень большую географическую область, поэтому, возможно, вам также нужно учитывать домашние адреса водителей, что выводит задачу за рамки стандартной задачи маршрутизации транспортных средств (VRP). Возможно, простые эвристики позволят разделить группы водителей и адреса доставки на подзадачи, где и доставки, и водители находятся в одной географической зоне; в этом случае вы снова сможете использовать готовое решение VRP.

Кстати, мы используем продолжительность поездки по данным GMap в качестве расстояния между точками.

5 лайков

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

8 лайков