Kennt jemand ein Optimierungspaket für R (ähnlich wie NUOPT für S+)?
Antworten
Zu viele Anzeigen?Ein weiteres Paket ist ompr . Ein Vorteil dieses Pakets ist, dass es viele Solver gibt, die verwendet werden können und binary
, continuous
, integer
können alle Variablen leicht hinzugefügt werden. Ein einfaches Beispiel:
library(tidyverse)
library(ompr)
library(ompr.roi)
model <- MIPModel() %>%
add_variable(x1, type = "integer") %>%
add_variable(x2, type = "integer") %>%
set_bounds(x1, lb = 0) %>%
set_bounds(x2, lb = 0) %>%
set_objective(x1 - x2, "max") %>%
add_constraint(x1 + 2*x2 <= 150) %>%
add_constraint(x1 >= 30) %>%
add_constraint(x2 >= 40)
Lösen mit glpk
:
library(ROI.plugin.glpk)
result <- solve_model(model, with_ROI(solver = "glpk", verbose = TRUE))
get_solution(result, x1)
get_solution(result, x2)
Sie kann auch mit anderen Solvern gelöst werden, wie symphony
wo die gap_limit
kann festgelegt werden, wenn das Problem komplex ist und viele Iterationen benötigt, um zu konvergieren:
library(ROI.plugin.symphony)
result <- solve_model(model, with_ROI(solver = "symphony",
verbosity=-1, gap_limit=1.5))
Ich mag Gurobi. Es ist sehr teuer für eine Lizenz, aber es kann über viele Universitäten bezogen werden. Siehe hier http://www.gurobi.com/products/modeling-languages/r
- See previous answers
- Weitere Antworten anzeigen