Materi
Analisis sensitivitas bertanya seberapa jauh data soal boleh berubah sebelum rencana optimum ikut berubah. Dokumentasi linprog metode HiGHS menyebut isian ineqlin sebagai informasi solusi dan sensitivitas: residual (slack) dan marginals, yaitu turunan parsial nilai tujuan terhadap ruas kanan. Turunan hanya menjelaskan perubahan kecil, dan daftar isian hasil linprog tidak memuat rentang berlakunya. Rentang itu dicari dengan menjalankan ulang soal memakai nilai yang berbeda lalu membandingkan hasilnya.
Untuk koefisien tujuan, gambarannya ada di Sekhon dan Bloom (§3.1): garis laba digeser sejajar dengan kemiringan yang ditentukan koefisien tujuan, dan titik sudut terakhir yang disentuh adalah optimum. Mengubah satu koefisien memutar garis itu. Selama titik sudut yang sama tetap disentuh terakhir, rencana x tidak berubah walaupun nilai labanya berubah. Begitu garis laba lebih curam atau lebih landai daripada salah satu kendala aktif, optimum pindah ke titik sudut tetangga; tepat di batasnya garis laba sejajar dengan kendala itu dan solusinya majemuk.
Untuk ruas kanan, harga bayangan berlaku selama kendala yang aktif tidak berganti. Coffelt dan Hendrickson (§5.2) menyebut kendala seperti itu mengikat. Bila sumber daya ditambah terus, pada titik tertentu kendala lain yang menjadi pembatas, dan tambahan berikutnya tidak lagi menaikkan laba.
import numpy as np
from scipy.optimize import linprog
# toko roti: maks c1*a + 30b; 3a + 2b <= 36; a + 2b <= 20
for c1 in range(10, 55, 10):
res = linprog([-c1, -30], A_ub=[[3, 2], [1, 2]], b_ub=[36, 20])
print(c1, res.x)
# 10 [0. 10.] | 20, 30, 40 [8. 6.] | 50 [12. 0.]