Моделювання динамічної сівозміни сільськогосподарських культур

Як перетворити багаторічне чергування культур із набору традиційних схем на розрахункову задачу — і що це дає економіці підприємства


Чому річне планування структури посівів не працює

Найприродніший спосіб планувати посівні площі виглядає так: подивитися на прогноз цін, порахувати маржу по кожній культурі й засіяти те, що вигідніше. Цей підхід ламається щонайменше з трьох причин.

Вигідне не можна сіяти часто. Соняшник повертається на поле через 6–7 років, ріпак — через 4, соя — через 2–3. Рішення цього року фактично закриває поле на кілька років уперед, і в момент прийняття рішення ця «плата» ніде не з’являється.

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

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

Звідси висновок, який і робить задачу цікавою: план на п’ять років — це не сума п’яти річних рішень, а одне рішення цілком. Кількість варіантів такого рішення для середнього господарства вимірюється мільярдами, тому вручну його не переберуть ані агроном, ані економіст. Але його можна порахувати.

Класична сівозміна — це наперед задана схема чергування («пар — пшениця — цукровий буряк — ячмінь») і поля, підігнані під неї за площею. Динамічна сівозміна — протилежний підхід: схема не задається, а є результатом розрахунку. Модель отримує фактичний стан кожного поля, бонітети, ціни, витрати й агрономічні обмеження, і сама будує чергування, яке максимізує дохід і при цьому не порушує жодного правила.


Постановка задачі: план — це таблиця

Уявіть таблицю, в якій рядки — це поля, а стовпці — роки. Заповнена таблиця і є планом.

Поле20262027202820292030
№1, 40 гасояпшениця озимакукурудзасояпшениця озима
№2, 55 гасоняшникпшениця озимасоякукурудзапшениця озима
№3, 35 гакукурудзасояпшениця озимасоняшникпшениця озима

Завдання моделі — заповнити цю таблицю найкращим чином. Складність у тому, що цінність кожної клітинки залежить від сусіда зліва, а допустимість — від усього рядка одразу (період повернення культури) і від усього стовпця (структура посівних площ).


Ключова ідея: клітинка як кістка доміно

Уся конструкція тримається на одному прийомі, який варто зрозуміти, навіть якщо решта статті здасться технічною:

У клітинку записується не культура, а перехід: «що було → що стало».

Тобто у клітинці 2027 року поля №1 стоїть не «пшениця», а «соя → пшениця». Така клітинка схожа на кістку доміно з двома половинками. З цього випливає два наслідки.

Перший: правило стикування. Права половинка кістки має збігатися з лівою половинкою наступної кістки в тому самому рядку — так само, як залишок на кінець року дорівнює залишку на початок наступного в бухгалтерському балансі. Найперша кістка стикується з тим, що фактично росло на полі торік; це вихідні дані, а не рішення.

Другий, головний: кожна кістка має власну, наперед пораховану ціну. Оскільки в ній уже зафіксовані і культура, і попередник, і конкретне поле, дохід від неї можна обчислити до початку оптимізації — звичайною формулою в таблиці. Моделі не потрібно нічого рахувати «на ходу», вона лише обирає кістки й стежить, щоб вони стикувалися.

Це принципово. Спроба зберігати для кожного поля повну історію з початку плану призводить до лавиноподібного зростання кількості варіантів і робить задачу нерозв’язною вже на п’ятому році. Насправді ж достатньо пам’ятати попередника та кілька останніх років — а це вкладається у «доміно» плюс одне додаткове правило, описане нижче.


Які дані потрібні

П’ять довідників. У більшості господарств ці дані вже існують, хоч і розкидані по різних файлах.

1. Поля. Номер, площа, культура поточного року. Поле — неподільна одиниця: культура займає його цілком. Якщо поле дуже велике, його варто заздалегідь розбити в довіднику на робочі ділянки.

2. Придатність ґрунтів. Для кожної пари «поле — група культур» бал бонітету від 0 до 100. Нуль означає «тут не сіємо ніколи», і такі варіанти взагалі не розглядаються.

3. Технології. Технологія — це культура плюс спосіб її вирощування. Для кожної: планова врожайність, ціна реалізації, прямі витрати на гектар. Одна культура може мати кілька технологій (інтенсивна й базова, з зрошенням і без) — модель обере сама.

4. Попередники. Для кожної пари «було → стало» коефіцієнт від 0 до 1. Нуль означає, що поєднання заборонене, і така кістка доміно просто не існує. Одиниця — ідеальний попередник без втрат урожаю. Ця матриця — найважливіший і водночас найгірше формалізований довідник у більшості господарств.

5. Групи культур і норми. Зернові, олійні, бобові, технічні, пар і трави. Для кожної групи — мінімальна та максимальна частка в площі господарства, а для культур — період повернення на поле.


Правила, за якими план вважається допустимим

Шість правил. Перші чотири — обов’язковий мінімум, решта роблять модель придатною до практичного використання.

Правило 1. Кожна клітинка заповнена рівно однією кісткою. Поле не буває ані під двома культурами одночасно, ані «ніяким». Якщо потрібно дозволити чорний пар — його заводять як окрему технологію з нульовою виручкою і власними витратами. Тоді пар стає усвідомленим вибором моделі, а не діркою в плані.

Правило 2. Кістки стикуються. Описано вище.

Правило 3. Період повернення — «правило вікна». Формулюється так: у будь-яких N поспіль розташованих клітинках одного рядка дана культура трапляється не більше одного разу, де N — період повернення. Для соняшнику з періодом 6 років перевіряються всі шестирічні вікна: 2026–2031, 2027–2032 і так далі.

Це просте правило важливіше, ніж здається, бо воно однаково добре працює для груп культур, а не лише для окремих: «соняшник, ріпак і соя разом — не частіше ніж раз на три роки на полі» (спільні збудники, зокрема склеротиніоз). Через зберігання історії таку вимогу висловити майже неможливо, а через вікно — тривіально.

Правило 4. Структура посівних площ. Для кожного року й кожної групи культур: сумарна площа полів цієї групи має вкладатися в задані відсотки від площі господарства. Рахується по стовпцю таблиці.

Правило 5. Норми структури мають бути м’якими, а не жорсткими. У господарстві 25 полів нерівної площі, і вимога «рівно 10 % бобових» із них практично ніколи не складається точно. Жорстке правило змусить програму відповісти «розв’язку не існує» — відповідь абсолютно марна.

Правильний підхід: дозволити порушувати норму, але призначити штраф за кожен гектар відхилення й віднімати його з доходу. Тоді розв’язок є завжди, а у звіті написано: «норма по бобових недовиконана на 12 га, це коштувало 40 тис. грн штрафу». Економіст сам вирішить, чи це прийнятно. Розмір штрафу — налаштування: високий означає «норма майже обов’язкова», низький — «це побажання».

Правило 6. Замикання горизонту. Без нього модель в останній рік посіє найдохідніше, не переймаючись тим, що залишиться на 2031-й. Лікується двома способами: або додати фіктивний шостий рік із середніми цінами (тоді модель «думає» на рік уперед), або вимагати, щоб план був циклічним — тобто після 2030-го можна було знову почати з 2026-го. Другий варіант — це і є класична замкнена сівозміна, тільки розрахована під конкретні поля, а не взята з підручника.


Що саме максимізуємо

Ціна однієї кістки доміно рахується заздалегідь:

Дохід клітинки = площа поля × ( врожайність × поправочний коефіцієнт × ціна − витрати на гектар )

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

  • Закон мінімуму факторів — береться менше з двох значень: бала бонітету та коефіцієнта попередника. Логіка: врожай обмежується найдефіцитнішим фактором.
  • Мультиплікативний — коефіцієнти перемножуються. Логіка: ґрунт і попередник діють різними механізмами, тож їхні впливи накладаються.

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

Цільова величина — сума доходів усіх клітинок за всі роки, приведена до сьогоднішнього дня за ставкою дисконтування, мінус штрафи за порушення норм. Дисконтування обов’язкове: без нього гривня 2030 року вважається рівною гривні 2026-го, і модель охоче відкладе дохід на потім.

Одне застереження, на якому спотикаються майже всі: не можна відкидати варіанти з від’ємним доходом. Пар, сидерати, багаторічні трави, а часто й бобові збиткові у свій рік, але окуповуються через попередника й через норми структури. Модель зобов’язана їх бачити і сама вирішувати, чи варті вони своїх грошей.


Хто це рахує

Існують готові програми-розв’язувачі, які називають солверами. Ви описуєте задачу — які рішення можна ухвалювати, які правила діють, що максимізується, — а солвер знаходить найкращий допустимий варіант. Перебирати все підряд він не буде: він уміє доводити, що цілі гілки варіантів завідомо гірші за вже знайдений, і відкидати їх.

Найважливіше, що дає солвер і не дає жодна евристика чи «розумний перебір», — це гарантія якості. Відповідь приходить у вигляді «знайдено план на 14,2 млн грн, і математично доведено, що кращого не існує» або «…і кращого за 14,35 млн бути не може», тобто ви недобираєте щонайбільше 1 %. Цей розрив налаштовується: можна вимагати точний оптимум, а можна попросити «дай за 30 секунд розв’язок із точністю 2 %».

Щодо розмірності. Господарство на 800 га, 25 полів, 5 років, 20 варіантів технологій — це близько 2500 рішень типу «так/ні». Для сучасного солвера це дуже мала задача: секунди роботи. Запас за швидкістю тут не декоративний — саме він дозволяє потім рахувати десятки сценаріїв і будувати ризик-аналіз.


Що має бути на виході

План — це лише початок. Цінність інструменту у звітах:

  1. План по полях і роках — основна таблиця.
  2. Структура посівних площ по роках у гектарах і відсотках, із позначенням відхилень від норм.
  3. Валовий збір по культурах і роках — основа для переговорів із трейдерами й планування зберігання.
  4. Фінансовий результат: виручка, прямі витрати, маржинальний дохід по роках, сумарний дисконтований результат.
  5. Звіт про порушення норм: де, на скільки гектарів, якою ціною.
  6. Вартість обмежень. Солвер уміє відповісти на питання, яке інакше не має відповіді: «вимога тримати 10 % бобових коштує господарству 340 тис. грн на рік». Для економічної служби це, ймовірно, найцінніше число з усіх — воно перетворює агрономічну норму з догми на предмет розмови.
  7. Порівняння сценаріїв пліч-о-пліч: базовий, «ціни на олійні −20 %», «посушливий рік», «придбали ще один комбайн».

Дві сходинки складності: з чого почати

Сходинка А — вибір із готових схем. Найпростіший варіант, який економіст може зібрати самостійно в Excel. Ви вручну складаєте 10–20 схем чергування (наприклад: соя → пшениця → кукурудза → пшениця → соняшник), для кожної рахуєте середній дохід з гектара за ротацію, і модель вирішує єдине питання: скільки гектарів пустити по кожній схемі. Десятки змінних, звичайні відсотки, жодного доміно.

Мінус очевидний: схема не прив’язана до конкретного поля з його бонітетом і поточним станом, і результат доведеться вручну «розкладати» по полях. Але як перший робочий інструмент і як спосіб перевірити самі довідники — річ чесна й дуже швидка.

Сходинка Б — модель, описана вище. Пополевий план, урахування поточного стану кожного поля, реальних бонітетів і реальних попередників. Потребує справжнього солвера, зате це вже система підтримки рішень, а не оцінка.

Розумний шлях — зробити А за тиждень, переконатися, що довідники в порядку, і лише потім переходити до Б.


План розвитку моделі

Етап 1. Ядро. Усе, що описано вище. Це вже повноцінний працюючий інструмент.

Етап 2. Агрономічна повнота. Пар, сидерати й багаторічні трави (останні займають поле кілька років поспіль — це кістка доміно завдовжки у 2–3 клітинки). Післядія гербіцидів: обмеження слід прив’язувати не до культури, а до технології, бо імідазолінони та сульфонілсечовини обмежують наступну культуру, а сама культура — ні. Озимі: попередник зобов’язаний звільнити поле до строку сівби.

Етап 3. Техніка і строки. Найцінніше розширення. Додається правило: у кожному місяці сумарний обсяг польових робіт не повинен перевищувати можливостей парку машин. На практиці структуру посівів частіше визначає пік на збиранні, а не бонітет. Сюди ж логічно додати змінну «найняти сторонній комбайн за такою-то ціною» — і модель сама скаже, чи це окупається.

Етап 4. Гроші. Обмеження за оборотним капіталом помісячно: витрати не мають перевищувати залишок коштів плюс надходження плюс доступний кредит. Плюс місткість складу, плюс зобов’язання за форвардними контрактами.

Етап 5. Ризик. Тут є пастка, в яку потрапляють майже всі: якщо просто порахувати план окремо для кожного цінового сценарію, ви отримаєте тридцять різних планів, і жоден із них не є відповіддю на питання «що сіяти у 2026-му».

Коректна постановка інша: рішення першого року має бути однаковим для всіх сценаріїв (сіяти доведеться до того, як стануть відомі ціни), а наступні роки модель має право підлаштовувати під кожен сценарій. І максимізувати не середній дохід, а комбінацію «середній дохід мінус плата за ризик», де ризик вимірюється втратами в найгірших 10 % сценаріїв. На виході — крива, яка показує, скільки очікуваного прибутку коштує стійкість плану. Для розмови з власником або банком це набагато переконливіше за одну цифру.

Етап 6. Ковзне планування. План перераховується щороку заново з урахуванням фактичного стану полів. Горизонт залишається п’ятирічним, але реально виконується завжди лише перший рік — решта потрібна для того, щоб перший рік був правильним.


Практична реалізація

Дані можна залишити там, де вони є, — у базі даних або в Excel. Єдина обов’язкова зміна стосується зберігання результату: замість колонок «Рік 1 … Рік 10» у таблиці полів потрібна окрема таблиця плану зі стовпцями сценарій, поле, рік, технологія. Інакше сценарії просто ніде зберігати, а без сценаріїв уся конструкція втрачає половину сенсу.

Сходинка А рахується безкоштовним доповненням OpenSolver для Excel. Штатний «Пошук розв’язку» не підійде через обмеження у 200 змінних.

Сходинка Б — це приблизно 300–400 рядків коду на Python із безкоштовною бібліотекою-розв’язувачем (OR-Tools або HiGHS). Для програміста це робота на один-два тижні за умови, що змістовний опис моделі йому вже передали. Найважча частина роботи — саме цей опис, і він у цій статті.

Перевірка даних. Обов’язковий блок, який чомусь роблять останнім. Модель рівно настільки розумна, наскільки розумні бонітети й матриця попередників; за порожньої або суперечливої матриці вона видасть красиву нісенітницю і не попередить про це. Мінімальний контроль: кожна культура має тип і період повернення, кожне поле — площу й поточну культуру, бонітети в діапазоні 0–100, коефіцієнти попередників у діапазоні 0–1, для кожної культури визначено хоча б одного допустимого попередника.


Чого модель не робить

Чесний перелік обмежень, який варто озвучити до впровадження, а не після.

Модель не знає погоди. Урожайність у ній планова. Саме тому етап 5 із ризик-аналізом — не прикраса, а необхідність.

Модель не замінює агронома. Вона лише перебирає варіанти за правилами, які їй задав агроном. Якість результату дорівнює якості матриці попередників і бонітетів; якщо матриця складена «на око», результат буде таким самим, тільки з точністю до гривні, що створює хибне відчуття надійності.

Модель оптимізує те, що їй сказали. Якщо в цільовій функції лише маржинальний дохід, вона з готовністю виснажить ґрунт до кінця горизонту. Замикання горизонту (правило 6) і норми структури — це і є спосіб пояснити їй те, що агроному очевидно без пояснень.

Оптимум чутливий до цін. Зміна ціни на олійні на 15 % може повністю перекроїти план. Це не вада моделі, а властивість задачі, але з неї випливає практичний висновок: цінність має не сам оптимальний план, а порівняння сценаріїв і розуміння, які рішення стійкі, а які тримаються на одному ціновому припущенні.


Замість висновку

Динамічна сівозміна — це задача, яку економічна наука вміє розв’язувати щонайменше з 1986 року, а обчислювальні засоби для неї стали безкоштовними й доступними приблизно десять років тому. Бар’єр сьогодні не математичний і не програмний, а організаційний: потрібно звести докупи довідники, які в господарстві існують окремо, і формалізувати агрономічні знання, які зазвичай передаються усно.

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


Література

  1. El-Nazer, T., McCarl, B. A. (1986). The choice of crop rotation: a modeling approach and case study. American Journal of Agricultural Economics, 68(1), 127–136. — Класична робота, з якої починається економічне моделювання вибору сівозміни.
  2. Dogliotti, S., Rossing, W. A. H., van Ittersum, M. K. (2003). ROTAT, a tool for systematically generating crop rotations. European Journal of Agronomy, 19, 239–250. — Систематична генерація допустимих схем чергування; корисно для «сходинки А».
  3. Klein Haneveld, W. K., Stegeman, A. W. (2005). Crop succession requirements in agricultural production planning. European Journal of Operational Research, 166(2), 406–429. — Формалізація вимог до послідовності культур.
  4. Detlefsen, N. K., Jensen, A. L. (2007). Modelling optimal crop sequences using network flows. Agricultural Systems, 94(2), 566–572. — Ключова стаття: чергування культур як задача про потоки в мережі. Саме та ідея, що описана в цьому тексті як «доміно».
  5. dos Santos, L. M. R., Michelon, P., Arenales, M. N., Santos, R. H. S. (2011). Crop rotation scheduling with adjacency constraints. Annals of Operations Research, 190(1), 165–180. — Урахування сусідства полів (актуально для органічного виробництва та боротьби зі шкідниками).
  6. Alfandari, L., Lemalade, J.-L., Nagih, A., Plateau, G. (2011). A MIP flow model for crop-rotation planning in a context of forest sustainable development. Annals of Operations Research, 190(1), 149–164. — Потокова модель змішаного цілочислового програмування з обмеженнями попиту та несумісності.
  7. Dury, J., Schaller, N., Garcia, F., Reynaud, A., Bergez, J. E. (2012). Models to support cropping plan and crop rotation decisions. A review. Agronomy for Sustainable Development, 32(2), 567–580. — Оглядова стаття; найкраща відправна точка для того, хто входить у тему.
  8. Forrester, R., Rodriquez, M. (2018). An integer programming approach to crop rotation planning at an organic farm. UMAP Journal, 39(1), 5–23. — Компактний навчальний приклад, придатний для студентських робіт.
  9. Rockafellar, R. T., Uryasev, S. (2000). Optimization of conditional value-at-risk. Journal of Risk, 2(3), 21–41. — Технічна основа для етапу 5: як враховувати ризик найгірших сценаріїв у лінійній моделі.
  10. Optimization models and algorithms for sustainable crop planning and rotation: an arc flow formulation and a column generation approach (2025). Omega. — Сучасний стан справ: потокова модель плюс генерація стовпців для задач великої розмірності з обмеженнями сталого землеробства.

Матеріал підготовлено в якості експерименту та дискусії з використанням штучного інтелекту Claude Opus 5.


Коментарі

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *