Я пытаюсь решить проблему нелинейной оптимизации, когда целевые функции нелинейны, а ограничения линейны.Я прочитал немного о пакете ROI в R, и я решил использовать то же самое.Тем не менее, я столкнулся с проблемой при решении проблемы оптимизации.
По сути, я пытаюсь минимизировать площадь под кривой спроса и предложения.Уравнение для кривых спроса и предложения определяется в коде:
Целевая функция: минимизировать (интеграл кривой предложения + интеграл кривой спроса),
с учетом ограничений q больше или равно 34155 (хранится в переменной ICR),
q больше или равно 0
и q меньше или равно 40000.
Я попытался выполнить это через пакет ROI в RStudio, и япостоянно получаю сообщение об ошибке, сообщающее, что не найден решатель.
library(tidyverse)
library(ROI)
library(rSymPy)
library(mosaicCalc)
# Initializing parameters for demand curve
A1 <- 6190735.2198302800
B1 <- -1222739.9618776600
C1 <- 103427.9556133250
D1 <- -4857.0627045073
E1 <- 136.7660814828
# Initializing parameters for Supply Curve
S1 <- -1.152
S2 <- 0.002
S3 <- a-9.037e-09
S4 <- 2.082e-13
S5 <- -1.64e-18
ICR <- 34155
demand_curve_integral <- antiD(A1 + B1*q + C1*(q^2)+ D1*(q^3) + E1*(q^4) ~q)
supply_curve_integral <- antiD(S1 + S2*(q) + S3*(q^2) + S4*(q^3) + S5*(q^4)~q)
# Setting up the objective function
obj_func <- function(q){ (18.081*demand_curve_integral(q))+supply_curve_integral(q)}
# Setting up the optimization Problem
lp <- OP(objective = F_objective(obj_func, n=1L),
constraints=L_constraint(L=matrix(c(1, 1, 1), nrow=3),
dir=c(">=", ">=", "<="),
rhs=c(ICR, 0, 40000, 1))),
maximum = FALSE)
sol <- ROI_solve(lp)
Это ошибка, которую я постоянно получаю в RStudio:
Error in ROI_solve(lp) : no solver found for this signature:
objective: F
constraints: L
bounds: V
cones: X
maximum: FALSE
C: TRUE
I: FALSE
B: FALSE
Что я должен сделать, чтобы исправить эту ошибку?