Я смотрю на фирму, которая может производить продукцию в течение четырех часов, продала и выдает S0, что указывает на среднюю проданную продукцию.Я стремлюсь минимизировать разницу между произведенной и проданной продукцией.У нас есть начальное значение, и подвох состоит в том, что если предыдущее производство составляет 100 или более, мы можем увеличить или уменьшить следующее на 10, а если не только на 5.
Я использую lpSolveAPI в R, и мои коды следующие:
library(lpSolveAPI)
S0=90
x=c(0,0,0,0,0,1,0,0,0,0,0)
error=make.lp(0,11)
lp.control(error, sense="min")
set.objfn(error,x)
set.type(error, 7:10, "binary")
x=rep(0,11)
for (i in 1:4){
x[i]=1
x[5]=-4
}
add.constraint(error, x, "=",0)
x=rep(0,11)
#error
x[5]=1
x[6]=-1
add.constraint(error, x, "=",S0)
x=rep(0,11)
#maximum increase
for (i in 1:3){
for (j in 7:10){´
x[i+1]=1
x[i]=-1
x[j]=-5
add.constraint(error, x, "<=", 5)
x[i]=0
x[i+1]=0
x[j]=0}}
#maximum decrease
for (i in 1:3){
for (j in 7:10){
x[i]=-1
x[i+1]=1
x[j]=5
add.constraint(error, x, ">=", -5)
x[i]=0
x[i+1]=0
x[j]=0
}}
for (i in 1:3){
for (j in 7:10){
x[i]=1
x[j]=-100
add.constraint(error, x, ">=", 0)
x[i]=0
x[j]=0}}
#STARTING VALUE
x[1]=1
add.constraint(error, x, "=", 110)
x=rep(0:11)
solve(error)
get.objective(error)
get.variables(error)
Мой вопрос заключается в том, что когда я получаю результаты, я получаю.
0
10
110 100 100 90 100 10 1 1 1 1 0
, поэтому производство 110, 100, 100 и 90 вчаса 1,2,3 и 4. Это дает среднее производство 100 и ошибку 10. Почему он производит 100 в час 3, когда он может уменьшиться до 90, а после этого 85, что даст в среднем 96,25и ошибка 6,25.