Позвольте мне повторить попытку.
Мы можем сформулировать проблему следующим образом:
max sum(i, s(i)*(F+p*q(i)))
s(i)*(F+p*q(i)) ≤ w(i)
for variables s(i) ∈ {0,1}, p ≥ 0, F ≥ 0
Это может быть линеаризовано как:
max sum(i, y(i))
y(i) ≤ F+p*q(i)
y(i) ≤ s(i)*w(i)
y(i) ≥ F+p*q(i) - (1-s(i))*M
for variables s(i) ∈ {0,1}, p ≥ 0, F ≥ 0, y(i) ≥ 0
with M a large enough constant
Многие решатели допускают ограничения индикатора , Это упростит вещи:
max sum(i, y(i))
s(i) = 1 ==> y(i) = F+p*q(i)
y(i) ≤ s(i)*w(i)
for variables s(i) ∈ {0,1}, p ≥ 0, F ≥ 0, y(i) ≥ 0
или использование двух ограничений индикатора ::
max sum(i, y(i))
s(i) = 1 ==> y(i) = F+p*q(i)
s(i) = 0 ==> y(i) = 0
for variables s(i) ∈ {0,1}, p ≥ 0, F ≥ 0, y(i) ∈ [0,w(i)]