Чем ИТ может сильно помочь колхозу «Путь коммунизма» или агрохолдингу


    Было-стало после кластеризации и оптимизации культур

    Колхозы и агрохолдинги в России почти не автоматизированы. А там на почти ровном месте с минимальными затратами можно получить до 10 % прироста доходности за счёт выбора оптимального портфеля выращиваемых культур, точного распределения техники по работам и вообще нормального планирования. Мы пришли на несколько объектов и провели расчёты для них, о чём сейчас я и расскажу.

    Сформулировали три фундаментальных вопроса:

    1. В каких пропорциях что нужно вырастить и где, чтобы больше заработать?
    2. Когда какая техника и где будет работать?
    3. Что должно быть в парке техники, чтобы не возникало рисков срывов сроков проведения агроопераций или больших затрат на найм?

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

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

    Почему задаёмся такими вопросами?


    — В каких пропорциях что нужно вырастить и где, чтобы больше заработать?

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

    — Когда какая техника и где будет работать?

    Культуры по полям распределили и возникает необходимость теперь распределить технику по ним. И вот каждый день линейные менеджеры решают следующую задачу: распределить Х техники на Y полей выполнять Z видов операций по W культур. А еще надо бы учесть, успели ли все операции сделать вчера в срок, а если не успели, то какую именно долю?.. Как-то уже слишком много факторов для процесса, который решается в экселе, вам так не кажется? Но при этом данную задачу ежедневно решают во всех агрохолдингах и колхозах, опираясь на опыт и используя порой грубые допущения, пренебрегая оптимальностью конечного результата.

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

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

    С вопросами разобрались. Перейдём к тому, как же мы искали на них ответы.

    Что выращиваем и где?


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

    Вы, конечно же, хорошо себе представляете ATX-корпус, жизнерадостно хрустящий жёстким диском, как в детстве, за которым работает агроном Василий. У него открыт эксель, в котором развёрнута пугающая таблица всех полей. В общей сложности есть 300 полей.

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

    Почему это так важно? Потому что есть море особенностей и нюансов, к примеру, разные культуры по разному изменяют свойства почвы и иногда почве дают «отдыхать», засеивая её паром (на самом деле это означает — засеять ничем). Ещё и удобрения, и пестициды значительно меняют бонитет почвы, и нужно дождаться нейтрализации части элементов, и есть ещё много-много других интересностей, которые были задокументированы ещё в СССР в виде жёсткого набора правил, но основополагающим правилам вообще несколько веков, если не тысячелетий. Если агроном Василий упростит себе жизнь и распределит культуры рандомом по полям, то «Путь коммунизма» понесёт ТАКИЕ потери, в связи со значительно низкой урожайностью по большей части полей, а местами и вовсе полнейшим неурожаем, что полетит его прекрасная кепка с его кудрявой головы.

    И начали мы разбираться:

    1. На какие данные обычно опирается агроном.
    2. Какие дополнительно ещё понадобятся нам.
    3. Откуда ноги растут у этих всех данных с точки зрения того, из каких систем они берутся.
    4. Как максимально элегантно этот процесс распределения культур можно автоматизировать, чтобы минимально отвлекать трудяг нашими умными-разумными скриптами оптимизации, но при этом вписать их в обыденные рабочие процессы.

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

    Помимо данных по истории полей и их состоянию, нам так же потребовались дополнительные ограничения, вытекающие из особенностей бизнес-процесса «Пути коммунизма», к примеру, необходимо ли учитывать потребности рынка или других групп предприятий. Вот пример такого ограничения — «У нас должно быть не менее 50 % пшеницы озимой, потому что мы в экспортной зоне производства. При этом есть связи в вертикали с масложировыми комбинатами, и нам необходим подсолнечник не менее чем 10 % от общего объёма. На выращивание нута и других нишевых бобовых отводим не больше 5 %».

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

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

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

    — А вот вы план на семь лет сделали, а если мы в следующем году решим-таки купить часть полей?
    — А вот мы подумываем сократить производство пшеницы и часть полей свеклой засеять, потому что всё же верится, что сахарный завод запустят наконец?
    — А что же делать если вдруг засуха в сезоне?
    — Да и вообще, некогда нам в сезоне ваши цифры разглядывать! Поля зовут!

    Все вопросы и замечания были учтены, но помимо Василия есть ещё поставщик техники, финдиректор и много других людей, которые определяют будущий бюджет и будущее земель. С каждым прогоном результатов подключался кто-то новый и мы узнавали про всё новые и новые нюансы и ограничения, которые стоит учитывать. Но в один из прогонов результатов мы потеряли нашего Василия. Как оказалось позднее, у него был «home office» по причине плохого самочувствия, вызванного затянувшейся депрессией на фоне остановившихся полевых работ, связанных с недельными дождями.

    В итоге близкий к финишному вариант скрипта оптимизации назывался «final_666_13_2019», потому что постоянно всплывали какие-то расхождения или условий становилось так много, что оптимального решения не находилось и приходилось придумывать как же всё учесть.

    В итоге сформировался инструмент, который работает следующим образом:

    1. Есть интерфейс, где пользователь может сперва просмотреть значения всех входных в оптимизацию ограничений. При необходимости их изменить и запустить пересчёт.
    2. Далее запускается оптимизационная модель.
    3. Результаты оптимизации подгружаются в дешборды.

    Таким образом пользователь-агроном может самостоятельно создавать разные сценарии оптимизации и дальше в подготовленных уже отчётах делать сравнение нескольких. Но когда только подобные проекты внедряются в агрохолдинги или колхозы, мы первое время являемся операторами такой системы в режиме «вопрос=ответ».

    Операционное планирование


    Долгосрочный севооборот согласован, все счастливы или должны быть счастливы (это приказ директора). Теперь нужно составить график работ на каждом поле.

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

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


    График операций и необходимой/используемой техники

    В реальной жизни такими задачами занимаются линейные менеджеры. И если вы представляете себе линейных менеджеров, как героев фильма Звягинцева «Левиафан», то смею вас огорчить — это не так! По крайней мере, в нашем «Пути коммунизма». Но Россия — страна большая и окунуться в «Левиафан» можно с лихвой. Проверял. Но всё же для нас, людей, сидящих в мегаполисе, режим дня работников нашего «Пути коммунизма» будет дик. Как же без вот этих часовых-двухчасовых маршрутов от дома до офиса и обратно? Мы и подумать не можем о возможности доехать до дома в обед на велосипеде, успеть покушать и посмотреть «Обзор. Чрезвычайные происшествия» или «СашаТаня», а потом снова вернуться «в поля»!

    И вот на одного линейного менеджера приходится примерно по 30 полей. И, конечно, сквозного планирования между этими линейными менеджерами нет, что уж говорить о том, что даже подумать об оптимальном графике здесь нереально, не то, чтобы его сделать. Сама размерность задачи не позволяет её решить оптимально силами нескольких человек.

    Вы уже примерно понимаете, что в сельском хозяйстве не всё так просто — ультрамногофакторная сфера со сложнопрогнозируемым исходом, и всё категорически зависит от рынка, погоды и ещё кучи внешних факторов. Это означает не просто неопределённость, а неопределённость в степени n. В этом хаосе что-то сформулировать дико сложно.


    Работы по операциям

    А мы ведь ещё планировали парк техники, помните? Был заранее долгосрочный расчёт по типам: мы видим, что есть перекосы в распределении, делаем балансировку, перекидываем три трактора шестой серии с одного подразделения на другое. У кого-то сокращаем трактор с неполной утилизацией. Дефициты у нас будут везде, но менее острые, без провалов. «Путь коммунизма» несколько в шоке, потому что мы отвязываем технику от подразделений и даём оптимальное распределение вот этими перемещениями. Это не меняя структурный парк, а ведь можно ещё учесть получение новых моделей и аренду уборочной техники и грузовиков (на самом деле рынка аренды техники условно нет, кроме вот этих двух типов).


    Данные о сцепках

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

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


    Пример технологической карты по гороху

    Итог


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

    На входе от разных агрохолдингов были разные форматы данных. Мы приводили их для своей модели в следующие справочники:

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

    На самом деле нашей головной болью по мелким ручным операциям была как раз унификация процесса. Переход от интуитивных решений к оцениваемым численно очень нужен, но отсутствие каких-то чётких методологий решений деталей и единых форматов описания для той же техники очень всё сдерживает. В части данных мы добились полноценного процесса, часть ещё не до конца сделана, но в целом решения уже принимаются достаточно оптимизированные. В итоге мы приходим в агрохолдинги с аналитической платформой, которая даёт набор гипотез. Строится цифровой двойник. Если холдинг как раз готов или уже переходит от «тушения пожаров» к управлению через планирование, то обычно интересуются и спрашивают. Дальше, видя прогноз по нескольким полям и сравнивая со своим, верят.

    Если вам интересно посмотреть на продукт или вы вдруг хотите рассказать об этом знакомым агрономам — пожалуйста, напишите на мою почту Alexander.Efimov@sas.com.

    До начала проектов с сельским хозяйством я знал, что всё не просто в нём, но не представлял, насколько, и сколько там на самом деле может оказаться никакого там data science, а настоящей математики. Теперь могу уверенно сказать: удивительно, что мы туда ещё не дошли с методами анализа данных. Потому что тема большая, очень важная и удивительно хорошо поддающаяся оптимизации.
    SAS
    106,10
    Компания
    Поделиться публикацией

    Комментарии 40

      +1
      Я более того скажу, вы ещё только верх копнули. Грубо говоря, реализовали управление складом там, где можно внедрять производственную ERP. Как насчет, например, сбора данных с установленных на полях метеостанций, и с провайдера прогноза погоды для расчёта даты и объемов внесения удобрений? А только эта задача влияет на доходность агрохолдинга куда больше, чем 10% ;)
        0
        Мы работаем с крупными холдингами, где сложно задавать дату внесения удобрений для каждого поля и потом по разным причинам выдерживать этот график, именно поэтому мы решаем оптимизационную задачу для всего холдинга.

        Для расчета внесения удобрений можно применить другой кейс расчета необходимой дозы внесения с учетом плодородия почвы. Для этого нужны данные о химическом составе почвы, которые нужно собирать раз в 3-5 лет и не каждый Агрохолдинг может себе это позволить.

        Погодные данные учитываются в задаче операционного планирования техники, операция может не выполняться из-за того, что не подходит температурный режим или идёт дождь, если трактор вышел из строя, или механизатор «заболел», все эти факторы учитываются на коротком периоде и создается план работ на неделю-две.
          0
          Вообще, подобная «математика» — это как раз и есть прерогатива крупных холдингов. Метеостанции, это штука дорогая, равно как и инфраструктура для них. У небольших агропредприятий, когда идёт посевная, утром агроном объезжает поля на УАЗиках, берёт пробы, и решает, что вот завтра надо садить, завтра надо вносить удобрения и т.д. У крупных это более автоматизировано (кто до этого дорос, естественно).
          Для расчета внесения удобрений можно применить другой кейс расчета необходимой дозы внесения с учетом плодородия почвы.

          Это не исключает, а дополняет внесение с учетом метеоданных. Способность молодых всходов усваивать удобрения из почвы сильно зависит от температуры и влажности.
            +1
            Можно и нужно привлекать студентов биолого-почвенников. У них, обычно, практики не хватает.
              0
              Хех, потребность в разных удобрениях, в разных стадиях развития растения — это база, с которой знакомят студента на первом курсе.
              Неправильным внесением урожай можно сильно испохабить.
              Реально, необходимо разрабатывать схему внесения удобрений основываясь на фазе роста и текущей погоды, а так же, принимая в расчёт как прошедшую погоду (для корректировки негативных факторов), так и принимая в расчёт прогноз (для подготовки растения к неблагоприятным факторам).

              По хим.составу плюс-минус лапоть, придумать можно. В общем случае проще держать небольшую лабораторию на постоянной основе.
            0
            Зашел на sas.com и про сельское хозяйство не нашел ни единой статьи :(
              0
              Плохо искали.
              В 1966 году решения SAS еще не было. Но имелась потребность в компьютерной программе для статистического анализа огромного количества сельскохозяйственных данных, собранных благодаря грантам министерства сельского хозяйства США.

                0
                Вот ссылка на раздел про сельское хозяйство на нашем сайте: www.sas.com/ru_ru/industry/agriculture.html. А еще мы регулярно проводим агросекцию на SAS Forum Russia (уже два форума подряд в 2019 году и в 2017 году), а также отраслевые мероприятия, например, в прошлом году провели бизнес-завтрак и в этом году недавно провели бизнес-ужин.
                  0
                  Кажется, на сайте и не обещали ничего из аграрных проектов показывать. Желающим посмотреть на их продукт рекомендовали написать на почту.
                  +1
                  Вот, чтобы понять задачу оперативного планирования, нужно взять СЛОЖНЫЙ объект. Иначе кажется, что задачу можно решить каким-нибудь линейным программированием или еще чем-то описанным в учебниках.
                  Я первый раз столкнулся с подобной задачей 40 леи назад. Это был цех механообработки, где узким местом мог быть то станок, то рабочий, то оснастка, то вообще энергопотребление цеха.
                  С тех пор усвоил:
                  1.Не должно быть ограничений по количеству ВИДОВ ресурсов.
                  2.Нет смысла выделять критерий оптимизации среди ограничений.
                  3.Должно быть три режима управления: по плану, с коррекцией плана и прямая диспетчеризация.
                  Насколько я понял, автору пришлось до всего этого дойти в процессе обследования агрохолдинга.
                    0
                    Дело в том, что в агрохолдингах узкое место — количество ресурсов, поэтому оптимизация строится таким образом, чтобы минимизировать потери при возможном несоблюдении технологии, это же является целевой функцией оптимизации.
                      +3
                      Узкое место, по определению, нехватка какого-то ресурса :)
                      Вопрос в том, что есть простые (или, если хотите, несбалансированные) системы, где узкое место явное и неизменное. Там оптимизация всего остального не дает заметного выигрыша. А есть системы сложные (сбалансированные), в которых на каждом плановом периоде узким местом может оказаться ресурс любого вида. Более того, узкое место может меняться по мере составления плана. Вот тут автоматизация планирования позволяет получить принципиальный выигрыш.
                      У нас получилось поднять среднюю загрузку оборудования с 0.3 до 0.7-0.8. Второй аналогичный цех был попросту закрыт.
                      В агропроизводстве вполне может оказаться узким местом и земля, и техника, и семенной материал, и удобрения и еще что-то. Поэтому легко верю в 10% выигрыша, а может и больше.
                    –3
                    В 2000 году на 3-ем курсе в курсовой по экономико-математическому моделированию примерно такие задачи решали. Только были еще коровы, свиньи и птица нужно было при планировании растениеводства учесть потребность в кормах и сбалансировать рацион.
                    И кстати ексель с этим прекрасно и тогда справлялся, там специальный инструмент для этого есть.
                      +1
                      Что за специальный инструмент? VBA?
                        0
                        Возможно речь идет о SOLVER, но у него очень серьезные ограничения на количество оптимизируемых параметров в дефолтной версии.
                          0
                          Надстройка «Поиск решений»
                          мы делали матрицу в 60 переменных и 60 ограничений
                          и искали максимум прибыли
                          0
                          Не понимаю, почему минусуют коллегу. Все, что описано выше — классическая задача линейного программирования. В объеме, указанном в статье, эксель наверное не справится, но это задача вполне реализуется студентом 4 курса на питоне (или если он умный, то сам напишет на .Net симплекс метод).

                          По сути вся задача упирается в несколько справочников и обычный симплекс метод. Я конечно не знаю, сколько заплатил колхоз за это решение, но уверен, что лучше бы они наняли бы студента, а на сэкономленные деньги бы купили трактор нормальный вместо МТЗ-80, например от Ростсельмаша. Потому что нормальный трактор может использовать сеялки в 3 раза шире и нуждается в обслуживании в 2 раза реже. Соответственно, нужно меньше трактористов и механиков, а также эконом деньги на солярке.
                            +1

                            Почти наверняка не линейного программирования. Иначе получится, что надо выделить 3,68 трактора на поле #1 :)

                              0
                              Совершенно справедливо. Значительная часть задачи относится к комбинаторному программированию. Еще в начале 70-х было доказано, что задача составления расписания в классической постановке относится к числу NP-полных. По сути решение сводится к полному перебору вариантов и на реальных размерностях невозможно.
                              Однако решать задачу надо и пришлось выдумывать другие подходы. Расписания сейчас составляют, кто с каким качеством — разговор отдельный.
                                0
                                Мне все-таки интересно, если бы авторы статьи не были ограниченны возможностями своего солвера, то насколько бы более эффективно решалась задача? Согласно моему опыту, в ограничения MIP упираешься очень быстро и дальше только нелинейные ограничения спасают, но их должен поддерживать движок…
                                  0
                                  Основное противоречие применения методов оптимизации в том, что они стремятся найти самое-самое лучшее решение с точки зрения критерия, выбранного достаточно случайно. Оптимизируем критерий, который умеем.
                                  Нам удавалось строить очень сложные расписания при помощи принципиально другого подхода:
                                  1. все ограничения делятся на обязательные и оптимизирующие. Если хотите на физические и психологические :)
                                  2.оптимизирующие ограничения упорядочиваются по важности.
                                  3.если алгоритм не находит ни одного решения, самое малозначимое ограничение отбрасывается и процесс повторяется.
                                  Там много тонкостей, но главное, что удается добиться полиномиальной сложности алгоритма.
                                    0
                                    Можно пару уточнений?

                                    1) Это в смысле, жесткие (ограничения области определения) и мягкие (штрафы)?

                                    2) Вот это не совсем понял, как именно? Веса штрафов различаются? Но это балансировать надо очень долго…

                                    3) Тоже не очень понял. Движок SAS вроде бы не умеет нарушать запрет на область определения и игнорировать границы?
                                      0
                                      В смысле общая электрическая мощность цеха ограничена и все оборудование одновременно включено быть не может физически. Сюда же ограничения производительности оборудования и т.п.
                                      А вот «еще бы вот эту детальку сегодня сделать» и «Петрович просил его на полчасика раньше отпустить» это ограничения оптимизирующие. Учтем — хорошо, не сумеем — так сойдет.
                                      И тут все просто. Без всяких штрафов. Скажите точно, что важнее сделать дополнительную деталь или пойти на встречу Петровичу?
                                      Если окажется, что сможем составить расписание с обоими ограничениями, замечательно. Если не сможем, одно из них нужно просто отменить. Скажите заранее какое.
                                      Фокус в том, что чем больше ограничений, тем быстрее получаем результат. Положительный или отрицательный. Если расписание не составилось, отменяем наименее значимое ограничение и пробуем снова. Работает очень быстро на реальных размерностях.
                                      Да, это не SAS.
                                        0
                                        Фокус в том, что чем больше ограничений, тем быстрее получаем результат.

                                        Да, но только пока они линейные или целочисленные :)

                                        А какой движок используете вместо САСа?
                                          0
                                          «Да, но только пока они линейные или целочисленные :)»
                                          Все ограничения имеют вид логической функции на совместимость нескольких ресурсов разного вида. Можно ли назначить работу Петрову с 10 до 11? Встанет ли эта оснастка на этот станок? Внутреннее устройство ограничений влияет очень слабо.
                                          «А какой движок»
                                          Первый раз я участвовал в разработке такой системы в 1978 году. Какие еще движки? ЭВМ СМ-2 с 128к памяти. Для управления цехом на 30 станков хватало. Самым забавным техническим решением було оснащение рабочих мест дисковыми номеронаберателями :) Получил контейнер с работой, набрал 1; Установил оснастку на станок — 2 и т.д.
                          0
                          Но при этом данную задачу ежедневно решают во всех агрохолдингах и колхозах, опираясь на опыт и используя порой грубые допущения, пренебрегая оптимальностью конечного результата.

                          И это еще не учитывая тот факт, что сам эксель априори грешит грубыми допущениями и ошибочными округлениями…
                            0
                            сождалось впечатление что на карте оптимизация заключалась в том, что бы собрать поля с одной культурой в одном месте. Сомневаюсь, что агроному было недоступно это знание. На самом деле, в больших хозяйствах внутренняя логистика очень важна. Поля располагаются часто в привязке к стоянке МТС. Их может быть несколько и карта будет пестрая. Но самая большая проблема в том что такие инструменты предполагают высокий уровень входных данных. А в хозяйствах входные данные надо очень сильно фильтровать. Когда я вижу очередной проект, который все сам решает, я вспоминаю деревенские реалии: если данные не пляшут -думай, кому это выгодно. А так же датчики урожайности, внесение по норме — самое слабое место это агрегат в поле. А с математикой все в порядке.
                              0
                              Действительно, в агротехнологии много факторов, которые могу повлиять на урожайность и отследить каждый из них невозможно. Однако есть научные исследования, какие последовательности сева культур наиболее оптимальны при прочих равных, например на одном поле сеют последовательно пшеницу — кукурузу — ячмень — горох. Мы рассчитываем, как выбрать севообороты для каждого поля таким образом, чтобы соблюсти все условия и получить наибольшую прибыль. Например, на некоторые поля нельзя сеять определенные культуры, и часть севооборотов для них не подходит. В варианте на картинке была задача максимально близко расположить поля с одной культурой для того, чтобы оптимизировать уборку урожая. Есть ограничения по пропорциям культур, которые тоже нужно соблюсти. С учётом всех ограничений для каждого поля такую же задачу агроном будет выполнять месяц, затем требования менеджмента изменятся и ему придется рассчитывать все заново. В нашем интерфейсе можно быстро оптимизировать севооборот при заданных ограничениях, увидеть результат на карте и посмотреть, какую прибыль компания получит при этих вводных.
                              0

                              Спасибо за статью.
                              Скажите, какая была размерность модели и какой солвер Вы использовали?

                                +2
                                Для каждого кейса решаем смешанную целочисленную линейную задачу, алгоритм решения branch-and-bound, почитать про него можно тут: support.sas.com/documentation/cdl/en/ormpug/66851/HTML/default/viewer.htm#ormpug_milpsolver_details01.htm.
                                Размерность задачи расчета структуры посевных площадей порядка 1e6 переменных и такого же порядка количество линейных же ограничений (1e7 коэффициентов линейных ограничений). Кроме выбора оптимальных севооборотов рассчитывается план работ техники в периоды сева и уборки, площади культур ограничены количеством своей техники. Задача операционного планирования включает распределение техники по полям (трактор + прицепное устройство) и расчет логистики перемещения каждой единицы техники. Для типичного среднего хозяйства (200 полей, 100 единиц техники и 2000 вариантов пар техники) размерность задачи составляет 1 млн. переменных и 20 млн. линейных коэффициентов в ограничениях. Сложности чаще возникают не столько из-за размерности модели (решается расширением используемой памяти), а в сложности сходимости задачи, либо поиска начального решения. Часто помогает декомпозиция задачи.
                                0
                                Оптимизация по испоьзованию техники и обработке земель- вижу.
                                Сбор однотипных культур на ограниченном пространстве для усиления скорости поражения грибками/болезнями/насекомыми, усиления межвидового опыления и получения непонятных и неплодородных гибридов — тоже вижу. Как быть с этим?
                                  0
                                  В оптимизационной модели фиксируется параметр укрупнения севооборотов (http://uchebnikirus.com/geografia/zemlerobstvo_-_gudz_vp/polovi_sivozmini.htm), который можно регулировать по условиям заказчика. В одних холдингах важнее близкое расположение полей с одной культурой для оптимизации затрат на уборку, в этом случае параметр будет максимальным и поля будут объединять в кластеры. В больших холдингах, где ресурсы на проведение работ по защите полей ограничены и важно более хаотичное расположение полей, этот параметр будет меньше.
                                    0
                                    Эм… И Вам удалось все ограничения выразить на уровне MILP? Только линейные зависимости в колхозе? :)
                                      0
                                      Учитываем назначение техники на поле (бинарный индикатор), выручка и затраты линейно зависят от урожайности. Учитывается влияние на урожайность того, была или не была проведена операция на поле, через линейный коэффициент. Есть много факторов, которые влияют на урожайность, но пока в агрокомпаниях нет такого массива данных, чтобы создать нелинейную модель.
                                        0
                                        Спасибо за пояснения!

                                        А вот эта связь из примера в статье, когда не то было засеяно на поле и урожайность упала катастрофически — ее тоже удалось выразить в линейных терминах?
                                  +1
                                  мне кажется что в случае болезней/вредителей/непогоды сведение посевов в один кластер чревато потерей всего урожая культуры, при чередовании полей этого можно избежать. но это не точно.
                                    0
                                    имхо противоречивая концепция: у нас есть плохой агроном, плохой механизатор наверное такие же плохие рядовые работники но вот пришли люди с «новыми технологиями» и стало лучше? это проблемы разных уровней и если в хозяйстве плохие работники то никакая оптимизация не поможет.
                                    единственное что ваша оптимизация реально может сделать это освободить время агронома на планировании полей, механизатора на планирование ремонтов-подготовку техники, обернуть это в быстрые и красивые отчёты для начальства НО не более того.
                                    если у вас есть супер агроном и супер механизатор то они в екселе и с помощью распечатанных скринов с гугл мапс сделают ничуть не хуже всю эту работу а в 99% даже и лучше ибо они учтут процессы выветривания, воровства(садить скажем клевер впритык к населённому пункту ну такое себе) и прочие прелести о которых парни в очках и с компами даже не подозревают.
                                      –2
                                      наверное это распространенная среді погромістов болезнь — кодіть не разбіраясь в суті вопроса.
                                        0
                                        Не про агротехнику (но в остальном мире все то же):

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

                                        Это как 0.5 (так себе работник) на 0.5 (так себе процессы) умножить — на выходе будет еще меньше, чем на входе (0.25 — так себе результат). Подтянули процессы — 0.5 умножили на 1 — уже что-то, на 0.25 больше прежнего. И наоборот: даже если есть крутой агроном (1) на неоптимальное планирование (0.5) — будут те же 0.5 результата. Даем крутому сотруднику возможность вместо ковыряния в экселе и переваривания кучи факторов в голове возможность заниматься своей работой и влиять на процессы в организации в лучшую сторону — и получаем 1*1
                                          0
                                          не нужно ставить параллель между автоматизацией и эффективностью
                                          автоматизация работы агронома или механизатора влияет на работу этих должностей, возможно исправляет ошибки связанные с человеческим фактором(работает как органайзер) возможно более явно показывает изъяны скажем если нам нужно 3 комбайна а у нас их два то знать об этом нужно заранее, а не в момент уборочной бегать по соседям брать в долг и платить в тридорога НО так или иначе автоматизация освобождает-разгружает определённые должности на предприятии и единственный прямой экономический эффект это когда вместо механизатора и 3х его помощников останется только один работник, аналогично с агрономом.
                                          и я уверен что этот эффект не будет иметь 10% рентабельности сельхозпредприятия.
                                          вся эта лабуда действительно нравится хозяевам предприятий ибо отчётики, графики, таблички внушают им чувство контроля, независимости от агронома-механика-механизатора… и в коей то мере это даже правда и это даже полезно ибо это позволяет людям без аврала болеть, хоронить, ездить в отпуск «без телефона» но это не % рентабельности это скорее «культура организации производства»

                                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                      Самое читаемое