Ich hoffe, diese Nachricht findet Sie gut.Gemischte Ganzzahl Programmierung in R - Anzeigefunktionen
Ich versuche, ein Optimierungsproblem zu lösen, das als ein Mixed Integer-Programm mit dem LpSolveAPI R-Paket formuliert wird. Es gibt jedoch Indikatorfunktionen in der Zielfunktion und in einigen Einschränkungen. Um genauer zu sein, betrachten Sie das folgende Optimierungsproblem:
min{ 2.8 * x1 + 3.2 * x2 + 3.5 * x3 +
17.5 * delta(x1) + 2.3 * delta(x2) + 5.5 * delta(x3) }
unterliegt:
0.4 * x1 + 8.7 * x2 + 4.5 * x3 <=
387 - 3 * delta(x1) - 1 * delta(x2) - 3 * delta(x3)
x1 <= 93 * delta(x1)
x2 <= 94 * delta(x2),
x3 <= 100 * delta(x3), and
x1, x2, and x3 are non-negative integers.
In diesem Problem, die alle für i in {1, 2, 3}, delta (xi) = 1 wenn xi> 0, während delta (xi) andernfalls = 0 ist.
Der R-Code, den ich bisher habe, ist:
install.packages("lpSolveAPI")
library(lpSolveAPI)
a <- c(3, 1, 3)
b <- c(0.4, 8.7, 4.5)
q <- 387
M <- c(93, 94, 100)
A <- c(17.5, 2.3, 5.5)
h <- c(2.8, 3.2, 3.5)
Fn <- function(u1, u2, u3, u4){
lprec <- make.lp(0, 3)
lp.control(lprec, "min")
set.objfn(lprec, u1)
add.constraint(lprec, u2, "<=", u3)
set.bounds(lprec, lower = rep(0, 3), upper = u4)
set.type(lprec, columns = 1:3, type = "integer")
solve(lprec)
return(list(Soln = get.variables(lprec), MinObj = get.objective(lprec)))
}
TheTest <- Fn(u1 = h, u2 = b, u3 = q, u4 = M)
Bitte, ich frage mich, ob mir jemand sagen könnte, wie Deltafunktionen in diesen R-Code zu setzen, die oben genannte Optimierungsproblem zu lösen.
Rodrigo.
Dies ist die Dirac "Delta-Funktion"? –
Oder vielleicht sein Integral. –
Es ist eine Indikatorfunktion I (.) Definiert als: I (x) = 1 wenn x in A, während I (x) = 0 sonst, wo A = (0, + unendlich). – Student1981