Я работал с LimSolve, чтобы использовать их пример смешивания (https://www.rdocumentation.org/packages/limSolve/versions/1.5.6/topics/Blending) для ассортимента продуктов, которые использовались здесь. Я смог использовать его для решения своей проблемы, но хотел добавить дополнительные ограничения.
В настоящее время смесь ингредиентов x1 + x2 + x3 .... = 1, являются положительными.
Может кто-нибудь помочь мне добавить дополнительные ограничения. Главное, что мне нужно здесь - это если / то для используемого ингредиента. Если используется ингредиент, он должен составлять> 10 процентов от общего количества. Таким образом, я не получаю такой результат, как 0,97 ингредиента 1, 0,03 ингредиента 2. Для нашей цели нам нужно как минимум 10 процентов от общего количества для любого данного ингредиента.
Кроме того, для нашей целевой смеси есть ли способ оставить ограничение для +/-? Таким образом, из примера, если конечной смеси требуется 1,0 питательного вещества A, есть ли способ добавить ограничение для 1 +/- 0,1 в limSolve вместо простого == 1,0?
Спасибо за помощь.
#LimSolve Blending example
# Generate the equality condition (sum of ingredients = 1)
E <- rep(1, 3)
F <- 1
G <- Blending$G
H <- Blending$H
# add positivity requirement
G <- rbind(G, diag(3))
H <- c(H, rep(0, 3))
# 1. Solve the model with linear programming
res <- linp(E = t(E), F = F, G = G, H = H, Cost = Blending$Cost)
# show results
print(c(res$X, Cost = res$solutionNorm))