Materi
Slack adalah sisa sebuah kendala ≤ pada solusi: b_ub − A_ub @ x, yang di hasil linprog tersedia sebagai res.slack. Sekhon dan Bloom (§4.2) menggambarkannya sebagai variabel yang menampung selisih antara sumber daya yang tersedia dan yang terpakai. Coffelt dan Hendrickson (§5.2) memakai istilah mengikat (binding): kendala dengan slack positif tidak mengikat, sedangkan kendala dengan slack nol adalah kendala aktif yang benar-benar membatasi solusi optimum.
Dokumentasi linprog menyebut res.ineqlin.marginals sebagai nilai dual, yang juga dikenal sebagai harga bayangan (shadow price). Setiap marginal adalah turunan parsial nilai tujuan terhadap ruas kanan kendala itu. Contoh di dokumentasinya: marginal −1 berarti menambah ruas kanan sebesar eps kecil menurunkan nilai tujuan sebesar eps, dan kendala dengan residual 39 bisa dikurangi 39 tanpa mengubah solusi optimum.
Karena maksimasi dijalankan dengan tujuan yang dinegasikan, tandanya ikut berbalik: marginal −30 pada kendala mesin berarti setiap tambahan satu jam mesin menaikkan laba sekitar 30. Kendala yang tidak aktif selalu bermarginal nol, karena sumber dayanya masih bersisa.
from scipy.optimize import linprog
res = linprog([-25, -30], A_ub=[[3, 2], [1, 2]], b_ub=[36, 20])
print(res.slack) # [0. 0.] -> oven dan tepung sama-sama aktif
print(res.ineqlin.marginals) # [-5. -10.]
# satu kg tepung tambahan menaikkan laba sekitar 10 ribu