Основные алгоритмы снабжения на простом примере

13.02.20

Разработка - Математика и алгоритмы

Надо же что-то полезное иногда писать

Написать эту статью я решил после посещения одного офиса – там не оказалось черного чая. Зеленого было полно, а черного не было. И с кофе были перебои.

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

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

Итак, представьте, что вы какими-то судьбами стали вдруг офис-менеджером. Предыдущий уволился месяц назад и уехал жить в Индонезию. Как он что делал – неизвестно. И вам надо организовать нормальное снабжение офиса, полного программистов, тестировщиков, тимлидов, менеджеров и т.п.
 

Объемно-календарное планирование


Объемно-календарное планирование, или ОКП – самый кайф для снабженца, потому что требует минимума усилий и ответственности.

Суть заложена в самом названии. Вам просто дают перечень того, что надо купить, с указанием номенклатуры и количества. Например, 10 пачек черного чая, 5 зеленого, 15 упаковок кофе в зернах и т.д. К перечню обычно есть приписка, вроде «это план на месяц». Вот и получается объемно-календарное планирование – нужно купить определенный объем на определенный период. Период обычно называют горизонтом планирования.

Откуда взялся этот план, вас не особо-то и волнует. Всё, что надо сделать – найти поставщиков и заказать. Ну или пешком с авоськой до Ашана сбегать. На этом ваша миссия окончена до наступления следующего периода планирования.

Особо ленивые снабженцы просят делать им план на год. Тогда поработать надо, по сути, раз в год.

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

Другой вариант – составлять план, исходя из фактических показателей прошлого периода. Например, известно, что в декабре выпито 20 пачек черного чая, 10 зеленого, 40 упаковок кофе в зернах и т.д. Можно просто взять и скопировать эти данные в план на январь, и делать так каждый месяц.

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

Бешеная экзотика – вкрутить сюда MRP, методику определения материальных ресурсов предприятия. Правда, вас тогда точно выгонят с должности. Просто заставьте всех составлять планы.

Пусть менеджеры составят план продаж. Потом, исходя из него, программисты и тимлиды пусть набросают план производства – ну, чего они собираются делать в этом году, какие работы, проекты, и т.д. А потом наймите и посадите человека, который вас создаст «спецификацию работы программиста», а в придачу – технологическую карту. В ресурсной спецификации будет написано, например: для производства одного часа работы программиста требуется 0.75 пакетика черного чая, 20 г сахара и 8 г зернового кофе.

Ну и всё. Программисты напишут вам программу, которая будет «разузловывать» планы производства – вычислять, сколько надо купить кофе, чая и т.д. для производства нужного объема работ программистов.

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

А вот остальным ребятам придется туго. В первую очередь – тем программистам, которых вы выгоните с рабочих мест, чтобы разместить весь закупленный объем кофе, чая и сахара. Особенно, если затарились на год. У нас ведь офис, а не завод, и склада нет. Есть маленькая подсобка, но там уже разместился сис.админ, и уборщица со своими швабрами. Да и туалетную бумагу где-то надо хранить.

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

ОКП очень нечувствительно к изменениям спроса. Ему наплевать. Как говорится, чего заказали, то и пейте, даже если передумали.

А потом еще прибежит директор и спросит: а где деньги? Оборотные средства, живые, настоящие деньги. А нету их, все ушли на закуп чая, кофе и сахара. Чаем придется выдавать зарплату, платить за электричество, устраивать бартер на новые ноутбуки. Деньги заморожены в чае и кофе.
 

Заказ под заказ


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

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

Так обычно ноутбуки покупают, но и чай с кофе можно.

Преимущества очевидны. Вам, опять же, париться не надо вообще. Просто исполняете заявку – отправляете поставщику, получаете счет, пересылаете его в фин.отдел для оплаты, ждете поставки и выдаете счастливчику его пачку чая.

С деньгами тут чуть сложнее – бюджет заранее не известен. Сегодня заказали 10 пачек чая, завтра – 50. Финансисты взбунтуются и потребуют вводить ограничения, лимиты. Например, в натуральном выражении – не больше 20 пачек черного чая в месяц. Что-то вроде лимитно-заборных карт.

И вот тут начнется самая интересная история, которую приносит с собой схема «заказ под заказ». Говоря по-простому, это срач.

Судите сами. Каждый делал заказ для себя – значит, купленный чай – его. Нет никакого общего запаса, только персональный. Неважно, это запас отдела, команды или лично какого-то программиста. Делиться? Не. Ведь человек прошел сложную процедуру заказа, визирования, согласования оплаты и т.д.

Значит, кто-то будет сидеть с чаем, а кто-то – без. Ну, те, кто проворонил «трансфертное окно». Заказал – попьёшь, забыл – тащи из дома.

Если финансисты установят-таки лимит на закуп, то срач будет по поводу использования этого лимита. Все будут стараться заказать побольше, чтобы не остаться без такого важного ресурса. А лимит не резиновый. Придется всем программистам дружить с вами, офис-менеджером, чтобы обеспечить себе приоритетное право заказа. Готовьте ящик в столе под шоколадки.

А потом вам понадобится новый сотрудник, который будет заниматься перераспределением ресурсов. Назовем его ПДО – планово-диспетчерский отдел. Вам будут нести заявки на закуп, а ему – заявки на перемещение резервов. Ну, вроде «прошу забрать у тестировщиков 10 пачек черного чая и отдать нам, разрабам, потому что мы финализируем проект, и нам ооооооооочень надо». Человеку из ПДО придется отводить под шоколадки целый шкаф.

А в конце прибежит директор и будет орать: почему никто не работает? А когда им работать, они сахар ложками делят.
 

Теория ограничений систем


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

В разных системах вы встретите несколько вариантов названий этого метода, но практически никогда не упоминается ТОС. Например, ББВ (барабан-буфер-веревка), поддержание запаса, планирование по потреблению, страховой запас и т.д.

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

Итак, вы приходите в первый день, берете авоську и тащитесь в Ашан. Берете черный и зеленый чай, кофе в зернах, сахар. Сколько – вообще пофиг. Но лучше – поменьше. Возьмите по одной.

Потом решаете для себя, что ходить в Ашан будете раз в день. Это будет называться «период пополнения». Можно называть «буфер времени», или просто буфер.

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

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

Если чего-то не осталось вообще, сегодня купите этого побольше. Например, две пачки кофе вместо одной. Если остался зеленый чай, то сегодня его не покупайте.

Теперь немного терминологии. Количество каждой позиции, которое вы хотите держать на кухне – это целевой уровень. Его тоже называют «буфером». Обнаруженная вами утром картина на кухне – это статус буфера, т.е. процент фактического запаса от размера буфера.

Например, если вы купили пачку зеленого чая, а утром видите, что осталась половина, статус буфера равен 50%. Если зернового кофе нет вообще, то статус буфера равен 0%. А если кто-то притащил из дома две пачки черного чая, а вашу вчерашнюю уже выпили, то статус буфера 200 %.

ТОС не любит ковыряния в точных цифрах, или, как говорил сам Голдратт, измерения шума. Надо, говорил он, с высоты птичьего полета смотреть. И делить буфер на три зоны. Статус буфера 0-33% — красная зона, 33-66 % — желтая зона, 66-100 % — зеленая зона. Цвет для статуса буфера выше 100% придумайте сами, я обычно фиолетовый делаю. Бывает и отрицательный статус буфера, его маркируют черным, но это не наш случай.

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

Возникает вопрос: а на сколько единиц увеличивать буфер? Голдратт говорил – на парьтесь с вычислениями, регулируйте на одну треть буфера. Ну, в нашем примере так не получится, мы ж по одной покупали, а в промышленном масштабе – вполне нормально. Для первого раза можно и вдвое увеличить буфер.

Красный цвет говорит, что потребление идет быстрее, чем пополнение, и надо увеличить размер буфера, чтобы не попасть под голодный паёк. Желтый цвет говорит, что всё нормально, так и надо жить. Зеленый цвет говорит, что потребление отстает, и вы затариваетесь слишком сильно.

Собственно, всё. Посчитали по цветам, чего и сколько купить, сбегали в Ашан, и работайте себе дальше. Утром заходите на кухню и повторяете расчеты. Это и есть саморегуляция системы. Думать не надо вообще. Разумеется, если не считать думанием определение статуса буфера.

Постепенно размеры буферов устаканятся, и надо будет просто пополнять запас. Тогда можно отдать снабжение офиса чаем и кофе кому-то менее смышленому, чем вы. Выдадите простую инструкцию: каждое утро на кухне должно быть 10 пачек черного чая, 3 – зеленого, 15 – зернового кофе и 20 упаковок рафинада. Купи, чего не хватает.

А дальше надо просто поглядывать иногда, как оно там. Ситуация ведь меняется – сезонность, отпуска, предпочтения, количество сотрудников и т.д. Надо просто поглядывать за цветом буфера, и немного его регулировать по отдельным позициям.

Кофе несколько дней оказывается в красном? Увеличиваем буфер на треть. Зеленый чай всегда в зеленом? Минус треть. Ну и т.д.

И все в шоколаде, после нескольких дней самонастройки. Да, в реальной практике, конечно, не начинают с одной пачки – просто берут историческую информацию о потреблении, и начинают первый день с этих цифр. Это просто стартовая точка отсчета саморегуляции системы.

Финансист теперь снова знает, сколько надо денег на чай и кофе, потому что объемы закупа скачут редко и известны достаточно точно. Сотрудники счастливы, потому что всё всегда есть, и с небольшим запасцом. Сисадмин счастлив, потому что вы его не гоните из подсобки. Вы счастливы, потому что работать легко и просто.

А директор счастлив, потому что все счастливы.

См. также

Метод Дугласа-Пойкера для эффективного хранения метрик

Математика и алгоритмы Платформа 1C v8.2 Конфигурации 1cv8 Россия Абонемент ($m)

На написание данной работы меня вдохновила работа @glassman «Переход на ClickHouse для анализа метрик». Автор анализирует большой объем данных, много миллионов строк, и убедительно доказывает, что ClickHouse справляется лучше PostgreSQL. Я же покажу как можно сократить объем данных в 49.9 раз при этом: 1. Сохранить значения локальных экстремумов 2. Отклонения от реальных значений имеют наперед заданную допустимую погрешность.

1 стартмани

30.01.2024    1756    stopa85    12    

33

Алгоритм симплекс-метода для решения задачи раскроя

Математика и алгоритмы Бесплатно (free)

Разработка алгоритма, построенного на модели симплекс-метода, для нахождения оптимального раскроя.

19.10.2023    4425    user1959478    50    

34

Регулярные выражения на 1С

Математика и алгоритмы Инструментарий разработчика Платформа 1С v8.3 Мобильная платформа Россия Абонемент ($m)

Что ж... лучше поздно, чем никогда. Подсистема 1С для работы с регулярными выражениями: разбор выражения, проверка на соответствие шаблону, поиск вхождений в тексте.

1 стартмани

09.06.2023    7464    4    SpaceOfMyHead    17    

56

Модель распределения суммы по базе

Математика и алгоритмы Платформа 1С v8.3 Россия Абонемент ($m)

Обычно под распределением понимают определение сумм пропорционально коэффициентам. Предлагаю включить сюда также распределение по порядку (FIFO, LIFO) и повысить уровень размерности до 2-х. 1-ое означает, что распределение может быть не только пропорциональным, но и по порядку, а 2-ое - это вариант реализации матричного распределения: по строкам и столбцам. Возможно вас заинтересует также необычное решение этой задачи через создание DSL на базе реализации текучего интерфейса

1 стартмани

21.03.2022    7856    7    kalyaka    11    

44

Изменения формата файлов конфигурации (CF) в 8.3.16

Математика и алгоритмы Платформа 1С v8.3 Бесплатно (free)

Дополнение по формату файлов конфигурации (*.cf) в версии 8.3.16.

16.12.2021    4446    fishca    13    

36

Интересная задача на Yandex cup 2021

Математика и алгоритмы Бесплатно (free)

Мое решение задачи на Yandex cup 2021 (frontend). Лабиринт. JavaScript.

12.10.2021    8842    John_d    73    

46

Механизм анализа данных. Кластеризация.

Математика и алгоритмы Анализ учета Платформа 1С v8.3 Анализ и прогнозирование Бесплатно (free)

Подробный разбор, с примером использования, встроенного механизма кластеризации 1С.

31.08.2021    7807    dusha0020    8    

70
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Igorro82IT 77 13.02.20 09:55 Сейчас в теме
Было бы здорово добавлять в статьи промежуточных иллюстраций.
Хоть и знакомо все написанное, но с позитивом. Плюсанул.
2. 1c-intelligence 12771 13.02.20 09:58 Сейчас в теме
(1) Еще бы ты не плюсанул, Игорян. Я же знаю, где ты живешь.
torbeev; Drivingblind; Monte Carlo; wau8824ru; JohnyDeath; +5 Ответить
21. TerveRus 17.02.20 15:45 Сейчас в теме
(1) Еще и кода бы готового добавить - вообще было бы хорошо)
3. user1199277 13.02.20 10:06 Сейчас в теме
Привет ТОС, звучал-звучал, а теперь формализовался)
4. TODD22 18 13.02.20 10:29 Сейчас в теме
Снабжение офиса чаем и кофе достойная задача, ждём следующую статью "Применение MES систем для управления очередью к кофе машине".
Andreeei; h00k; lunjio; oldcopy; Award; alest; user764477; Yakud3a; User_south; Senator_I; acanta; +11 1 Ответить
12. leemuar 13.02.20 15:53 Сейчас в теме
(4) вполне достойная для обучения на простых и понятных примерах, не находите? Потом можно уже усложнять и экстраполировать на ракетостроение и ядерную энергетику
JohnyDeath; +1 Ответить
13. TODD22 18 13.02.20 16:09 Сейчас в теме
(12)
вполне достойная для обучения на простых и понятных примерах, не находите?

Согласен с вами на все 100% по этому и предложил тему для следующей статьи.
Потом можно уже усложнять и экстраполировать на ракетостроение и ядерную энергетику

Примерно как статьи об отношениях из женских журналов усложнять и экстраполировать на клиническую психиатрию. Потом у каждой второй в инсте подпись "Психолог".
14. leemuar 13.02.20 16:32 Сейчас в теме
(13) да уж, и не говорите. Хорошо что у нас работа не в женском журнале и психиатрии, а всего лишь в учете вполне себе материальных вещей
15. genayo 13.02.20 19:29 Сейчас в теме
(13) А что, ви таки думаете, шо ТОС не работает?
17. TODD22 18 14.02.20 01:05 Сейчас в теме
(15)
А что, ви таки думаете, шо ТОС не работает?

Издательство ‘Шалом» выпустило в продажу новую версию ‘Камасутры» для евреев. На всех картинках присутствует мама, и таки дает советы…
oldcopy; acanta; +2 Ответить
5. kiv1c 809 13.02.20 10:49 Сейчас в теме
Очень простыми словами и на примерах объяснено, здорово!
starik-2005; AgentNiCho; +2 Ответить
6. acanta 13.02.20 10:54 Сейчас в теме
Еще управление многопоточной очередью на примере кофе машины, автоматов для сухариков, чипсов и пепсиколы с формированием неуставных отношений в коллективе.
Оптимальное размещение торговых автоматов по результатам формирования неуставных отношений.
7. Senator_I 166 13.02.20 11:24 Сейчас в теме
Хорошая тема. Простая и на пальцах. Применю в проекте или хотя бы попонтуюсь. 😊
8. acanta 13.02.20 11:32 Сейчас в теме
.... Перестройка офиса в опен-спейс и обратно с целью оптимизации доставки к торговым автоматам...
...Полный хаос в результате увольнения одного из ключевых сотрудников и как его избежать...
9. Alistan007 13.02.20 12:02 Сейчас в теме
А можете Шесть сигм так же расписать? )
24. 1c-intelligence 12771 17.02.20 19:41 Сейчас в теме
(9) не именно шесть сигм, а вообще, суть и основу методов управления качеством, базирующихся на нормальном законе распределения.
10. Petr54-ru 90 13.02.20 12:04 Сейчас в теме
На этот раз шикарная статья. Годнота. Плюсанул.
11. pm74 199 13.02.20 12:21 Сейчас в теме
хотелось бы увидеть реализацию алгоритма хотя бы на примере кофе или чая
22. 1c-intelligence 12771 17.02.20 19:38 Сейчас в теме
(11) так вот же - https://infostart.ru/public/690271/
Там в конце есть два кейса, как настроить для ТОС, обычного и смешанного с заказами. На заводе уже 6 лет работает, даже после моего увольнения боятся выключить.
25. pm74 199 17.02.20 21:21 Сейчас в теме
(22) я про алгоритм изменения буфера говорю

программа сама его меняет или это делает человек ?
26. 1c-intelligence 12771 17.02.20 21:47 Сейчас в теме
(25) а, так это обработка простецкая. Буфер лежит в РС, устанавливает его документ, обработка запускается регл. заданием, проверяет зону буфера и время с прошлого изменения, ну и создает автоматом документ изменения.
28. pm74 199 18.02.20 07:26 Сейчас в теме
(26)
обработка простецкая.


ну т.е логика примерно такая
Если ВремяСПрошлогоИзменения >=  НужноеКоличествоДней И 
Буфер >= ??  Тогда 

// тут меняем буфер на 1/3



или нет ?

какие условие изменения вверх и вниз
29. 1c-intelligence 12771 18.02.20 07:58 Сейчас в теме
(28) нужное количество дней - это длина периода пополнения.

Внутри периода пополнения надо посчитать количество дней нахождения в красной или зеленой зоне.

Если слишком долго в красной, то увеличить буфер на треть. Если слишком долго в зеленой, то уменьшить буфер на треть.

Осталось понять, что есть "слишком долго". Честно нашел свою старую обработку, написанную под руководством Виктора Вальчука (https://tocpeople.com/), и увидел там вариативность. Самый чувствительный вариант - увеличивать, если суммарный остаток товара в красной зоне за период пополнения больше размера красной зоны. Менее чувствительный вариант - если 1/3 дней статус буфера был в красной зоне.

Вот тут натолкнулся на статью, там тоже нет рекомендаций. Вопрос-то, оказывается, не праздный, и зависит от конкретной среды. Видимо, поэтому я и сделал вариативно.
30. pm74 199 18.02.20 08:46 Сейчас в теме
(29)
надо посчитать количество дней нахождения в красной или зеленой зоне.

вот подходим к самому интересному

поясните этот момент

суммарный остаток товара в красной зоне за период пополнения


можете написать это в виде простого алгоритма с комментариями откуда что берется ?
31. 1c-intelligence 12771 18.02.20 09:30 Сейчас в теме
(30) давайте просто обработку вышлю.
32. pm74 199 18.02.20 09:38 Сейчас в теме
33. pm74 199 18.02.20 10:35 Сейчас в теме
(31) так все таки человек менял (с помощю обработки) или программа сама меняла целевые уровни - это важный момент
16. catv 13.02.20 23:13 Сейчас в теме
Известная метода, неплохо изложена. В бюджетных учреждениях неприменима по естественным причинам ))
18. starik-2005 3033 14.02.20 15:35 Сейчас в теме
Хорошо и полезно написано.
23. 1c-intelligence 12771 17.02.20 19:39 Сейчас в теме
19. acanta 15.02.20 22:58 Сейчас в теме
Глаз страуса больше чем его мозг.
https://youtu.be/4AsP4VjoR44
starik-2005; +1 Ответить
20. acanta 15.02.20 23:17 Сейчас в теме
27. oldcopy 173 18.02.20 01:50 Сейчас в теме
Может же Иван, когда захочет. И главное никаких Сергеев, которые во всем белом... Поставил заслуженный плюс и сам удивился...
34. lunjio 66 18.02.20 16:13 Сейчас в теме
Все похвалили, но все-таки я думаю нужна и критика, потому что нет выделения главных моментов (можно хотя бы жирным подчеркнуть ключевые моменты), можно же примитивные алгоритмами это было продемонстрировать, чтобы не терять время в комментариях на ответы ? В конечно целом спасибо, но такое ощущение, что надо было что-то написать, чтобы одобрение вызвало можно же лучше и можете.
Подытожу - В целом спасибо, но сухой текст, без формул, примера и акцентов на ключевые слова.
35. 1c-intelligence 12771 18.02.20 16:26 Сейчас в теме
(34) выделять жирным меня отучили - сказали, что так я подразумеваю, будто читатели тупые, и сами не в состоянии выделить ключевые мысли.
36. VAAngelov 364 01.03.20 13:16 Сейчас в теме
Статья - огонь! Все просто и на пальцах. Вот бы еще читали это те, кто ответственный за это.
Оставьте свое сообщение