agriflow-api / docs /AgriFlow_Architecture.tex
masterAAA123's picture
Space deploy v5: orphan snapshot of main, zero binary files
b81a86b
Raw
History Blame Contribute Delete
26.7 kB
% AgriFlow — Detailed Architecture & Methodology
% Compile: xelatex AgriFlow_Architecture.tex (or pdflatex)
\documentclass[11pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[a4paper,margin=2.4cm]{geometry}
\usepackage{amsmath,amssymb}
\usepackage{booktabs}
\usepackage{longtable}
\usepackage{enumitem}
\usepackage{xcolor}
\usepackage[hidelinks]{hyperref}
\usepackage{titlesec}
\titleformat{\section}{\Large\bfseries\color{black!85}}{\thesection}{0.6em}{}
\setlist{nosep,leftmargin=1.3em}
\newcommand{\code}[1]{\texttt{#1}}
\title{\textbf{AgriFlow --- Detailed Architecture \& Methodology}\\[2pt]
\large Food Security Intelligence Platform for Sub-National Indonesia}
\author{AgriFlow Team --- PIDI DIGDAYA $\times$ Hackathon 2026, Bank Indonesia}
\date{Revisi: Mei 2026}
\begin{document}
\maketitle
\begin{abstract}
\noindent
AgriFlow adalah platform intelijen ketahanan pangan sub-nasional dengan tiga fungsi inti:
\textbf{Deteksi} (anomali harga), \textbf{Prediksi} (peramalan harga), dan \textbf{Distribusi}
(pencocokan surplus--defisit antar-kabupaten). Dokumen ini menjelaskan, untuk setiap fungsi:
metodologi yang dipakai, alasan pemilihan metode, cara kerja, efektivitas, serta evaluasi dan
validasi terhadap data nyata BPS/PIHPS Jawa Timur. Setiap pilihan metode didukung literatur
terkini (2021--2026). Prinsip rancangan kami: \emph{honest engineering} --- memilih metode yang
tepat untuk skala saat ini (38 kabupaten Jawa Timur), bukan yang paling rumit, dan menyatakan
keterbatasan secara eksplisit.
\end{abstract}
\section{Ikhtisar Sistem}
AgriFlow memproses tiga lapis nilai di atas satu sumber data bersama (harga PIHPS harian,
produksi/konsumsi/populasi BPS per-kabupaten):
\begin{enumerate}
\item \textbf{Deteksi} --- mengidentifikasi anomali harga (lonjakan/anjlok) dari deret harga harian.
\item \textbf{Prediksi} --- meramalkan harga 30 hari ke depan dengan foundation model time-series.
\item \textbf{Distribusi} --- mencocokkan kabupaten surplus dengan kabupaten defisit melalui
\emph{matching engine} 4-lapis yang sadar masa-simpan, jarak jalan nyata, dan keadilan.
\end{enumerate}
Ketiganya terhubung: prediksi dan deteksi memberi sinyal dini, distribusi menindaklanjuti dengan
alokasi yang efisien sekaligus adil.
\paragraph{Positioning.} AgriFlow adalah \emph{alat bantu keputusan untuk pemerintah}
(Bapanas/Pemda), \textbf{bukan} marketplace komersial. Ini membedakannya dari platform seperti
eNAM~\cite{enam} (lelang harga India) atau MealConnect~\cite{mealconnect} (penyelamatan pangan AS),
dan dari B2B agritech Indonesia yang gagal karena margin tipis (mis. TaniHub~\cite{tanihub}). Karena
insentif kami adalah KPI ketahanan pangan + stabilitas harga + keadilan --- bukan margin per-transaksi
--- dimensi \emph{equity} antar-kabupaten menjadi tujuan utama, bukan afterthought.
% =====================================================================
\section{Distribusi --- Matching Engine}
\subsection{Formulasi masalah}
Diberikan himpunan node \emph{surplus} $S$ dan \emph{defisit} $D$ per komoditas, kami mencari
alokasi yang memaksimalkan kesejahteraan agregat dengan bobot keadilan. Karena \emph{kedua sisi
menilai pasangan melalui satu fungsi skor bersama} (bukan preferensi ordinal independen seperti
pasar dua-sisi), setting yang tepat adalah \textbf{centralized bipartite assignment dengan equity
weighting} --- seorang perencana terpusat (Bapanas/Pemda), bukan pasar terdesentralisasi.
Pandangan ini sejalan dengan kerangka \emph{optimal transport}/assignment di mana preferensi
berasal dari surplus bersama~\cite{galichon2021}. Kami secara sadar \emph{tidak} mengklaim
"stable matching Gale--Shapley pemenang Nobel": teorema stabilitas Roth--Sotomayor~\cite{roth1990}
mensyaratkan preferensi ordinal independen, yang tidak berlaku di sini.
\subsection{Cara kerja: arsitektur 4-lapis}
\begin{itemize}
\item \textbf{Layer 0 --- Tier classification.} Tiap kabupaten ditandai Tier~1 (8 kota IHK,
harga harian PIHPS, confidence \emph{HIGH}) atau Tier~2 (kab non-IHK, mingguan, \emph{MEDIUM}).
\item \textbf{Layer 1 --- Hard constraints.} Filter cepat: kecocokan komoditas, jarak $\leq$
maksimum (jarak jalan nyata OSRM, fallback haversine), umur panen $\leq$ masa-simpan,
volume minimum, no self-match, mode darurat, override Pemda, prioritas Bulog.
\item \textbf{Layer 2 --- Multi-objective scoring.} Skor 0--100 dari 5 dimensi berbobot:
Distance 22\%, Volume 22\%, Price 22\%, Perishability 18\%, Climate 16\%
(\emph{weighted-sum scalarization}).
\item \textbf{Layer 3 --- Equity-weighted allocation.} $\text{Final} = \text{Base} \times
m(\text{IPM})$, dengan $m$ \emph{equity multiplier} untuk kabupaten ber-IPM rendah; alokasi
via modified Gale--Shapley (Tier~1$\leftrightarrow$Tier~1) atau greedy berprioritas-equity.
\end{itemize}
\subsection{Alasan pemilihan metode}
\textbf{Weighted-sum scalarization} dipilih karena interpretable dan murah secara komputasi; kami
menyadari ia hanya menjangkau solusi Pareto \emph{supported}~\cite{bazgan2021}, dan menyediakan
3 skema bobot (default/Ramadan/import) sebagai mitigasi parsial. \textbf{Equity multiplier}
post-score dipilih demi transparansi bagi audiens kebijakan; literatur menunjukkan formulasi
in-objective (penalty factor~\cite{firouz2021}) atau Gini-derived~\cite{alem2021} dan leximin
maximin~\cite{hakimifar2022} lebih \emph{principled} secara teori --- ini kami tetapkan sebagai
arah v2.
\subsection{Efektivitas, evaluasi, dan validasi}
Kami memvalidasi nilai keadilan secara \textbf{empiris} dengan membandingkan AgriFlow terhadap
empat baseline (\emph{pure-greedy} = efisiensi, \emph{uniform} \& \emph{proportional-to-deficit}
= acuan pemerataan, dan varian \emph{smoothed}) pada \textbf{dua skenario terkontrol} yang sengaja
dirancang untuk mengisolasi efek keadilan: satu \emph{pasokan melimpah} dan satu \emph{pasokan
langka} (\emph{shock} La Ni\~na yang menghapus surplus tiga sentra beras). Metrik: cakupan
(volume-weighted), Gini (dari kurva Lorenz, weighted), Atkinson ($\varepsilon{=}1$), dan
\emph{leximin} (fulfillment kabupaten terburuk).
\begin{center}
\begin{tabular}{lccccc}
\toprule
\textbf{Skenario / Strategi} & Coverage & Gini & Atkinson($\varepsilon{=}1$) & Sampang & Bangkalan \\
\midrule
\multicolumn{6}{l}{\emph{Pasokan melimpah (surplus $>$ defisit)}}\\
\quad pure\_greedy & 0.890 & 0.093 & 0.113 & 1.00 & 1.00 \\
\quad uniform & 0.993 & 0.008 & 0.094 & 1.00 & 1.00 \\
\quad proportional & 0.993 & 0.007 & 0.094 & 1.00 & 1.00 \\
\quad \textbf{AgriFlow} & 0.880 & 0.099 & 0.114 & 1.00 & 1.00 \\
\midrule
\multicolumn{6}{l}{\emph{Pasokan langka (shock La Ni\~na; defisit $>$ surplus)}}\\
\quad pure\_greedy & 0.665 & 0.302 & 0.984 & \textbf{0.00} & \textbf{0.20} \\
\quad uniform & 0.627 & 0.252 & 0.186 & 1.00 & 1.00 \\
\quad proportional & 0.702 & 0.159 & 0.137 & 0.78 & 0.78 \\
\quad \textbf{AgriFlow} & 0.665 & 0.290 & 0.938 & \textbf{1.00} & \textbf{1.00} \\
\bottomrule
\end{tabular}
\end{center}
\noindent\textbf{Temuan kunci (jujur).} Saat pasokan melimpah, equity nyaris tak berdampak (kab
termiskin sudah terlayani; Gini AgriFlow $\approx$ greedy). \emph{Nilai sebenarnya muncul saat
langka}: greedy menelantarkan Sampang (0\%) dan Bangkalan (20\%), sedangkan \textbf{AgriFlow
menjamin keduanya 100\% dengan biaya cakupan agregat nol} (0.665 = 0.665), Gini turun
$0.302\!\rightarrow\!0.290$. Klaim presisi kami: \emph{"AgriFlow memprioritaskan kabupaten
terlemah saat pasokan langka,"} bukan \emph{"menurunkan ketimpangan secara umum."}
\paragraph{Dua jenis validasi (tidak dicampur).} (i) \emph{Perbandingan baseline} di atas
dijalankan pada skenario terkontrol untuk mengisolasi efek keadilan secara apples-to-apples.
(ii) Secara \emph{terpisah}, engine dijalankan \emph{end-to-end} pada \textbf{data BPS/PIHPS Jawa
Timur asli per-kabupaten (tahun acuan 2022)} untuk 5 komoditas (beras, cabai merah \& rawit, bawang
merah \& putih) --- membuktikan pipeline bekerja pada angka nyata, bukan sintetis. Seluruh hasil
reproducible dan teruji otomatis (404 tes; 403 lulus, 1 di-skip --- lihat \S\ref{sec:pengujian}).
\subsection{Mengapa metode ini tepat}
Untuk konteks perencana terpusat dengan satu fungsi kesejahteraan, assignment terbobot lebih tepat
dan dapat diaudit daripada mekanisme pasar dua-sisi. Pendekatan Food~Drop berbasis
\emph{power-of-two-choices} dengan jaminan aproksimasi~\cite{diaby2024} adalah arah pelengkap v2
(menambah \emph{provable bound} yang saat ini belum ada).
% =====================================================================
\section{Prediksi --- Peramalan Harga (TimesFM)}
\subsection{Metode dan cara kerja}
Peramalan harga 30 hari memakai \textbf{TimesFM 2.0}~\cite{timesfm2023}, \emph{decoder-only
foundation model} time-series Google yang dilatih pada $\sim$100 miliar titik data dan mampu
\emph{zero-shot} (tanpa pelatihan per-komoditas). Input: deret harga harian PIHPS per kota/komoditas;
output: titik ramalan + interval prediksi (P10/P90). Prophet dan XGBoost dipakai sebagai
\emph{baseline} pembanding.
\subsection{Alasan pemilihan \& efektivitas}
Bukti agri-spesifik terkini menunjukkan foundation model time-series \textbf{secara konsisten
mengungguli} metode klasik (ARIMA/Prophet) maupun ML (XGBoost) untuk harga komoditas
pertanian~\cite{wangzhang2026}, membalik anggapan lama bahwa "metode sederhana menang untuk
komoditas." Pada leaderboard zero-shot independen (GIFT-Eval), keluarga TimesFM berada di tier
teratas baik untuk akurasi titik (MASE) maupun probabilistik (CRPS)~\cite{timesfm2023}. Kami
\emph{tidak} mengklaim TimesFM mutlak terbaik --- Chronos-2/Moirai-2.0 bersaing ketat.
\subsection{Evaluasi dan validasi}
Evaluasi memakai \emph{rolling-origin backtest} dengan MAPE \& MASE serta kalibrasi cakupan
interval P10/P90. Keterbatasan jujur: konfigurasi \emph{univariate} melewatkan variabel eksogen.
Untuk beras/cabai Indonesia, literatur menunjukkan indikator ENSO/iklim~\cite{alanshari2025} dan
musim hari raya~\cite{eidpihps2026} \emph{material} terhadap akurasi --- karenanya v2 akan
menambahkan kovariat (kalender Ramadan, indeks ENSO) yang secara teknis dapat di-\emph{retrofit}
ke foundation model~\cite{chronosx2025}.
% =====================================================================
\section{Deteksi --- Anomali Harga}
\subsection{Metode dan cara kerja}
Deteksi anomali memakai pendekatan \textbf{Seasonal-Hybrid ESD (S-H-ESD)}~\cite{shesd2017}:
(1) \emph{deseasonalize} deret (buang trend + komponen musiman), lalu (2) terapkan statistik
\emph{robust} median + MAD pada \emph{residual}, dengan flag
$|r - \tilde{r}| > k \cdot 1.4826 \cdot \mathrm{MAD}$. Ditambahkan \emph{persistence threshold}
(flag hanya jika bertahan $\geq 2$ observasi) dan \emph{floor} skala untuk komoditas
bervolatilitas-rendah (beras).
\subsection{Alasan pemilihan: mengapa BUKAN deep learning}
Benchmark TSAD yang andal (NeurIPS~2024) menunjukkan bahwa di bawah evaluasi yang adil, detektor
transformer (mis. AnomalyTransformer/TranAD) \emph{tidak} secara reliabel mengungguli metode
statistik sederhana --- keunggulan mereka sebagian artefak metrik \emph{point-adjustment} yang
bias~\cite{liu2024}. Untuk konteks kebijakan di mana \emph{interpretability} menentukan, memilih
S-H-ESD adalah keputusan yang \emph{defensible}, bukan malas.
\subsection{Efektivitas dan validasi}
Pada harga PIHPS Jawa Timur 2021--2025, upgrade ke S-H-ESD memangkas jumlah flag
$\sim$\textbf{60\%} (14.261 $\rightarrow$ 5.686) dengan menyaring \emph{noise} musiman rutin
sambil \textbf{mempertahankan kejadian nyata}: lonjakan bawang merah Probolinggo $+$73--81\%
pada April 2024 (pasca-Idul Fitri) tetap terdeteksi sebagai event \emph{sustained}. Validasi
kontekstual: anomali teratas konsisten dengan kalender hari raya dan pola pasar nyata.
Keterbatasan: \emph{binning} musiman bulanan mengaburkan pergeseran kalender Hijriah ($\sim$11
hari/tahun); trend rolling-median tertinggal $\sim$15 observasi saat \emph{regime shift}.
% =====================================================================
\section{Data \& Validasi Empiris}
Engine berjalan pada \textbf{data nyata BPS/PIHPS Jawa Timur per-kabupaten}: produksi
(BPS Jatim), konsumsi per-kapita (Susenas BPS --- untuk beras bahkan \emph{per-kabupaten}, bukan
asumsi nasional), populasi (BPS), dan harga harian PIHPS 2021--2025. Surplus/defisit diturunkan
sebagai \emph{food balance}: $\text{surplus\_deficit} = \text{produksi} - \text{konsumsi}$, dengan
satuan/konversi terdokumentasi (kuintal $\div 10$ = ton; padi GKG $\times 0.6286$ = beras giling).
Lima komoditas inti tervalidasi nyata (beras, cabai merah \& rawit, bawang merah \& putih) pada
tahun acuan konsisten 2022. Seluruh pipeline reproducible dan diuji otomatis (404 tes; 403 lulus, 1 di-skip).
\section{Keterbatasan \& Roadmap (Phase 3)}
\begin{itemize}
\item Data nyata 5 komoditas, tahun 2022; daging \& telur menunggu data produksi per-kab lengkap.
\item Konsumsi cabai/bawang memakai rata-rata nasional $\times$ populasi (proxy); beras sudah per-kab.
\item Equity multiplier post-score (heuristik) $\rightarrow$ migrasi ke penalty/leximin
in-objective~\cite{firouz2021,hakimifar2022}.
\item Tanpa \emph{provable bound} $\rightarrow$ adopsi power-of-two-choices~\cite{diaby2024}.
\item Prediksi univariate $\rightarrow$ tambah kovariat eksogen (ENSO/Ramadan)~\cite{alanshari2025,chronosx2025}.
\item Skala provinsi (Jatim) siap; nasional 514 kab perlu spatial partitioning + precompute.
\end{itemize}
% =====================================================================
\section{Pengujian \& Validasi}
\label{sec:pengujian}
\subsection{Kenapa: keputusan kebijakan butuh bukti yang dapat direproduksi}
AgriFlow bukan rekomendasi belanja biasa; outputnya menggerakkan alokasi pangan
antar-kabupaten yang menyentuh kabupaten IPM-rendah. Untuk sistem keputusan
seperti ini, klaim ``adil'' dan ``robust'' tidak boleh berhenti di narasi. Tiga
alasan teknis menuntut suite uji otomatis yang tebal. \emph{Pertama,
reproducibility}: seluruh pipeline food-balance (produksi $-$ konsumsi, konversi
satuan BPS, surplus/defisit per-kabupaten) harus menghasilkan angka yang sama di
mesin yang berbeda, sehingga uji data-nyata mengunci angka acuan 2022 sebagai
\emph{golden numbers}. \emph{Kedua, regression-safety}: equity multiplier,
bobot skor Layer~2, dan ambang anomali adalah parameter kebijakan yang sensitif;
perubahan kecil tanpa sengaja dapat membalik pemenang alokasi, sehingga setiap
seam (mis. \code{equity\_fn}) diuji \emph{default-preserving} agar refactor tidak
diam-diam menggeser hasil. \emph{Ketiga, robustness terhadap kondisi nyata
Indonesia}: literatur evaluasi deteksi anomali menunjukkan bahwa metrik yang
tampak baik pada benchmark sintetis sering runtuh pada data lapangan dan
flagging musiman~\cite{liu2024}; karena itu deteksi anomali AgriFlow diuji
secara adversarial, bukan hanya pada lonjakan buatan. Filosofi ini sejalan dengan
\emph{honest-engineering}: kami menguji justru pada kasus yang paling mungkin
mempermalukan sistem, mengikuti pelajaran dari kegagalan agritech yang
mengabaikan kondisi tepi pasar~\cite{tanihub}.
\subsection{Apa: enam kategori uji}
Suite memuat \textbf{404 tes terkumpul} dalam tujuh kelompok fungsional, dijalankan
lintas-OS pada CI (matriks pytest). Tabel~\ref{tab:kategori-uji} merangkum cakupan.
\begin{center}
\begin{longtable}{p{5.4cm}rp{6.2cm}}
\caption{Kategori uji AgriFlow dan apa yang dijaga.}\label{tab:kategori-uji}\\
\toprule
\textbf{Kategori} & \textbf{\#} & \textbf{Yang divalidasi} \\
\midrule
\endfirsthead
\toprule
\textbf{Kategori} & \textbf{\#} & \textbf{Yang divalidasi} \\
\midrule
\endhead
Unit per-layer (L0--L3) & 73 & Tier IPM (16), constraint jarak/perishability (19), skor weighted-sum (24)~\cite{bazgan2021}, alokasi equity-weighted (14)~\cite{firouz2021} \\
24 skenario edge-case (A--F) & 27+ & Volume, spasial, temporal, disrupsi, politis, kualitas; memetakan kejadian nyata Jatim (lihat Tabel~\ref{tab:skenario}) \\
Validasi data nyata BPS/PIHPS & 57 & Food-balance beras (16) \& hortikultura 2022 (18), pipeline reproducible (23) \\
Deteksi anomali harga & 49 & S-H-ESD pada residual deseasonalized~\cite{shesd2017}; adversarial musiman~\cite{liu2024} \\
Forecast \& API & 40 & Endpoint forecast/anomali; fallback bila TimesFM/FastAPI absen~\cite{timesfm2023} \\
Baseline \& equity & 39 & Perbandingan greedy/uniform/proporsional vs AgriFlow (24) + skenario supply-constrained (15)~\cite{alem2021,hakimifar2022} \\
Ingest \& integrasi & 73 & Loader DB (11), ingest harga PIHPS (33), jarak jalan OSRM (9), bot WhatsApp (20) \\
\bottomrule
\end{longtable}
\end{center}
\noindent
Inti dari lapisan kedua adalah \textbf{24 skenario edge-case} (kelas
\code{TestA1}\,$\ldots$\,\code{TestF2}), masing-masing memetakan satu kondisi
operasional nyata Jawa Timur, bukan kasus buatan: lonjakan Ramadan, erupsi
Semeru di Lumajang, banjir Madura, kenaikan BBM, dan kontrak Bulog. Tabel
\ref{tab:skenario} memuat seluruhnya satu baris per skenario.
\begin{center}
\begin{longtable}{p{0.9cm}p{4.4cm}p{8.0cm}}
\caption{24 skenario edge-case dan kondisi nyata yang dimodelkan.}\label{tab:skenario}\\
\toprule
\textbf{Kode} & \textbf{Nama} & \textbf{Yang divalidasi} \\
\midrule
\endfirsthead
\toprule
\textbf{Kode} & \textbf{Nama} & \textbf{Yang divalidasi} \\
\midrule
\endhead
A1 & One-to-many & Satu surplus memasok banyak defisit; split volume konsisten \\
A2 & Many-to-one & Surabaya 200t cabai dipasok dari banyak sentra \\
A3 & Volume mismatch drastis & Surplus 5t vs defisit 100t (ratio 5\%) $\rightarrow$ flag warning \\
A4 & Zero demand & Surplus tanpa defisit komoditas $\rightarrow$ peluang ekspor eksternal \\
B1 & Cross-tier & Tier~1 (Kota Kediri) surplus $\rightarrow$ Tier~2 (Sampang) defisit \\
B2 & Long distance & Pacitan$\rightarrow$Banyuwangi $\sim$400km melampaui batas 200km $\rightarrow$ ditolak \\
B3 & Cluster Madura & Empat kab Madura ditangani sebagai klaster spasial \\
C1 & Ramadan spike & Pra-Idul~Fitri H$-$14, bobot temporal disesuaikan \\
C2 & Post-harvest & Pasca-panen: margin perishability menyempit \\
C3 & Stale data & Data $>$24 jam $\rightarrow$ flag \code{STALE\_DATA\_24H}, confidence turun \\
C4 & Holiday calendar & Event spike non-Ramadan ter-deteksi engine (multi-holiday) \\
D1 & Banjir rute & Hujan 75mm rute Kediri--Surabaya $\rightarrow$ climate score 0.3 \\
D2 & Komoditas rusak & Cabai harvest\_age=4 (max 5) $\rightarrow$ perish score 0 \\
D3 & Harga anomali & Outlier $>3\sigma$ dari ambang statis per komoditas $\rightarrow$ exclude (pra-filter $z$-score, bukan S-H-ESD) \\
D4 & Erupsi gunung & Lumajang erupsi Semeru $\rightarrow$ unreachable, semua match ditolak \\
D5 & Banjir multi-kab & Bojonegoro+Lamongan+Tuban (sentra padi) banjir bersamaan \\
D6 & Route blackout & Rute ditutup (mudik/demo/maintenance) $\rightarrow$ re-route/reject \\
E1 & Equity tie-break & Skor seri $\rightarrow$ IPM lebih rendah menang~\cite{firouz2021} \\
E2 & Pemda override & \code{do\_not\_export\_cabai\_merah=True} dihormati \\
E3 & Bulog priority & Surplus beras di kab procurement Bulog $\rightarrow$ 60\% reserve \\
E4 & Import policy & Kebijakan impor bawang aktif $\rightarrow$ bobot price diturunkan \\
E5 & BBM naik & BBM +20\% $\rightarrow$ biaya logistik naik, max\_distance menyusut \\
E6 & Contract reserve & Kontrak swasta (MoU Carrefour, gula Indofood) dipotong dulu \\
F1 & Grade substitution & Surplus premium boleh memenuhi demand medium (opt-in) \\
F2 & Demand segmentation & HORECA \& RETAIL untuk komoditas+kab sama hidup berdampingan; \code{segment\_multiplier} mengubah ranking \\
\bottomrule
\end{longtable}
\end{center}
\subsection{Hasil}
Pada commit terakhir suite menjalankan \textbf{403 tes lulus, 1 di-skip}
(404 terkumpul), konsisten lintas-OS di CI. Satu skip itu jujur kami catat:
\code{test\_timesfm\_importorskip} memakai \code{pytest.importorskip} sehingga
uji spesifik-TimesFM dilewati bila pustaka berat tersebut tidak terpasang di
runner CI; jalur forecasting tetap diuji lewat fallback statistik dan kontrak
API~\cite{timesfm2023}. Dua hasil validasi paling load-bearing:
\paragraph{Equity hanya terbukti saat pasokan langka, dan diperoleh tanpa
biaya efisiensi.} Pada skenario \emph{abundant} (surplus $>$ defisit), greedy
maupun AgriFlow sama-sama menutup Sampang dan Bangkalan 100\%; tidak ada
trade-off untuk diukur. Perbedaan baru muncul pada skenario \emph{supply-constrained}
(La~Ni\~na: banjir simultan Ngawi+Madiun+Bojonegoro, surplus turun ke 3962t vs
defisit 5249t, ratio 0.754). Di sana strategi greedy murni \textbf{menelantarkan
Madura}: Sampang terlayani 0\% dan Bangkalan 20\%. AgriFlow mengangkat keduanya ke
\textbf{100\%} sambil mempertahankan \emph{coverage agregat yang identik}
(0.6649 untuk kedua strategi) dan menurunkan ketimpangan (Gini $0.3017
\rightarrow 0.2905$). Artinya equity multiplier membeli keadilan pada
\textbf{biaya efisiensi nol} dalam skenario ini, sebuah klaim yang diuji,
bukan diasumsikan~\cite{firouz2021,alem2021,hakimifar2022}. Kami sengaja tidak
mengklaim keunggulan equity pada kondisi pasokan melimpah, karena di sana
tidak ada yang harus dikorbankan.
\paragraph{Deteksi anomali sadar-musiman, bukan sekadar ambang $3\sigma$.}
Detektor S-H-ESD menandai penurunan harga tajam (uji DROP, mis. anjlok
$\sim$60\% terhadap rolling median) dan lonjakan ekstrem, namun yang lebih
penting: \emph{pola musiman murni tidak ikut ter-flag}. Pada uji seasonal,
sinus musiman beramplitudo $\sim$30\% (mis. siklus harga jelang Lebaran)
menghasilkan residual mendekati nol setelah deseasonalisasi sehingga tidak
memicu false positive, sementara anomali genuine yang ditumpangkan di atas
pola musiman tetap terdeteksi~\cite{shesd2017}. Inilah sifat yang ditekankan
literatur benchmark anomali sebagai pembeda detektor yang andal di lapangan
dari yang hanya bagus di kertas~\cite{liu2024}.
\noindent
Singkatnya, suite ini mengubah klaim arsitektur menjadi properti yang dapat
diaudit ulang: setiap angka equity dan setiap perilaku anomali di dokumen ini
memiliki tes yang menjaganya tetap benar pada commit berikutnya.
% =====================================================================
\section*{Lampiran A --- Ringkasan Matematis}
\addcontentsline{toc}{section}{Lampiran A --- Ringkasan Matematis}
Seluruh formula yang \emph{load-bearing} di sistem, untuk acuan cepat (turunan lengkap di luar
cakupan dokumen ini):
\begin{center}
\begin{longtable}{p{3.2cm}p{6.4cm}p{4.6cm}}
\toprule
\textbf{Komponen} & \textbf{Formula} & \textbf{Peran} \\
\midrule
\endhead
Skor Layer 2 & $\text{Base} = 100\sum_i w_i\,s_i$, \; $w=(0.22,0.22,0.22,0.18,0.16)$ & weighted-sum: Distance, Volume, Price, Perishability, Climate \\
Alokasi Layer 3 & $\text{Final} = \text{Base}\times m(\text{IPM})$ & equity-weighted assignment \\
Equity multiplier $m$ & $\text{IPM}{<}68\!\rightarrow\!1.30$; $68\text{--}72\!\rightarrow\!1.15$; $72\text{--}78\!\rightarrow\!1.05$; $\geq 78\!\rightarrow\!1.00$ & tier keadilan (kuartil IPM Jatim 2024) \\
Flag anomali & $|r-\tilde{r}| > k\cdot 1.4826\cdot \mathrm{MAD}(r)$, \; $k{=}3$, residual $r$ & S-H-ESD pada residual deseasonalized \\
Food balance & $\text{surplus/defisit} = \text{produksi} - \text{konsumsi}$ & turunan node surplus \& defisit \\
Konversi satuan & kuintal $\div 10 =$ ton; \; padi GKG $\times 0.6286 =$ beras giling & normalisasi data BPS \\
\bottomrule
\end{longtable}
\end{center}
\noindent\emph{Catatan:} metrik evaluasi (Gini dari kurva Lorenz, Atkinson dengan parameter
inequality-aversion $\varepsilon$, leximin, serta MAPE/MASE untuk forecasting) memakai definisi
standar; pemilihannya dibahas di seksi terkait. Equity multiplier saat ini \emph{step-function}
(interpretable bagi audiens kebijakan); migrasi ke bentuk \emph{smooth}/in-objective adalah arah v2
(\S Keterbatasan).
% =====================================================================
\begin{thebibliography}{99}
\bibitem{galichon2021} A.~Galichon. \emph{The unreasonable effectiveness of optimal transport in economics.} arXiv:2102.03875, 2021.
\bibitem{roth1990} A.~E.~Roth, M.~Sotomayor. \emph{Two-Sided Matching: A Study in Game-Theoretic Modeling and Analysis.} Cambridge University Press, 1990.
\bibitem{bazgan2021} C.~Bazgan et al. \emph{The power of the weighted sum scalarization for approximating multiobjective optimization problems.} arXiv:1908.01181, 2021.
\bibitem{firouz2021} M.~Firouz et al. \emph{On the equity-efficiency trade-off in food-bank network operations.} arXiv:2111.05839, 2021.
\bibitem{alem2021} D.~Alem, A.~Caunhye, A.~Moreno. \emph{Revisiting Gini for equitable humanitarian logistics.} 2021.
\bibitem{hakimifar2022} M.~Hakimifar, V.~Hemmelmayr, F.~Tricoire. \emph{A lexicographic maximin approach to the selective assessment routing problem.} arXiv:2201.09599, 2022.
\bibitem{diaby2024} M.~Diaby et al. \emph{Automating Food Drop: The Power of Two Choices for Dynamic and Fair Food Allocation.} ACM EC, arXiv:2406.06363, 2024.
\bibitem{wangzhang2026} Wang, Zhang. \emph{The Promise of Time-Series Foundation Models for Agricultural Forecasting: Evidence from Commodity Prices.} arXiv:2601.06371, 2026.
\bibitem{timesfm2023} A.~Das et al. \emph{A decoder-only foundation model for time-series forecasting (TimesFM).} arXiv:2310.10688, 2023 (TimesFM-2.5, GIFT-Eval 2026).
\bibitem{chronosx2025} \emph{ChronosX / TFMAdapter: extending time-series foundation models with exogenous covariates.} arXiv:2509.13906, 2025.
\bibitem{alanshari2025} Al~Anshari. \emph{Forecasting Rice Price Volatility in Indonesia: Integrating ENSO Indicators with Machine Learning.} IJSDP, 2025.
\bibitem{eidpihps2026} \emph{Multi-Commodity Food Price Forecasting Ahead of Eid Al-Fitr in Indonesia.} MALCOM Indonesian J. of ML \& CS, 2026.
\bibitem{liu2024} Q.~Liu, J.~Paparrizos. \emph{The Elephant in the Room: Towards A Reliable Time-Series Anomaly Detection Benchmark.} NeurIPS 2024 (Datasets \& Benchmarks).
\bibitem{shesd2017} J.~Hochenbaum, O.~Vallis, A.~Kejariwal. \emph{Automatic Anomaly Detection in the Cloud Via Statistical Learning (Seasonal-Hybrid ESD).} arXiv:1704.07706, 2017.
\bibitem{enam} \emph{e-NAM (Electronic National Agriculture Market), India} --- pasar lelang terpadu; tinjauan dampak \& tantangan (systematic literature review).
\bibitem{mealconnect} \emph{MealConnect (Feeding America)} --- platform pencocokan penyelamatan pangan donor--bank, AS.
\bibitem{tanihub} \emph{TaniHub Group collapse} --- pelajaran dari kegagalan agritech B2B terbesar Indonesia (margin tipis, ekspansi berlebih).
\end{thebibliography}
\end{document}