Вот вариант кода, который я пытаюсь оптимизировать
*
library(mopsocd)
fn1 <- function(x)
{
f1 <- 50000 * x[1] + 800 * x[2]
return(f1)
}
gn <- function(x)
{
g1 <- (x[1] * (x[2]/0.002)) - (x[1] *( (x[2]/0.002) -
( 800 / (x[2] * 20 * 1000)))) - 50000 <= 0.0
g2 <- (x[2]+x[1]) - 100 <= 0.0
return(c(g1, g2))
}
varcount <-2
fncount <- 1
lbound <- c(3,2)
ubound <- c(100,25)
optmin <- 0
ex2 <- mopsocd( fn1, gn, varcnt = varcount,
fncnt = fncount, lowerbound = lbound, upperbound = ubound,
opt = optmin, popsize=100, maxgen=25, archivesize=500)
print(ex2$numsols)
print(ex2$objfnvalues)
print(ex2$paramvalues)
*
Когда я запускаю код, я не получаю никаких сообщений об ошибках.Но оптимизатор не переходит к следующей итерации и не соблюдает ограничений.Он просто возвращает мне нижние границы переменной, поскольку это проблема минимизации.
Я совершенно новичок в кодировании.Может кто-нибудь помочь мне с кодом?
Заранее спасибо.