Version: | 1.0-1 |
Title: | 'Multi-Solution' Binary Linear Problem Plug-in for the 'R' Optimization Interface |
Description: | Enhances the 'R' Optimization Infrastructure ('ROI') package with the possibility to obtain multiple solutions for linear problems with binary variables. The main function is copied (with small modifications) from the relations package. |
Imports: | stats, methods, utils, slam, ROI (≥ 1.0-0) |
Suggests: | ROI.plugin.glpk |
License: | GPL-3 |
URL: | https://roigrp.gitlab.io, https://gitlab.com/roigrp/solver/ROI.plugin.msbinlp |
NeedsCompilation: | no |
Packaged: | 2023-07-06 16:07:31 UTC; f |
Author: | Kurt Hornik [aut], David Meyer [aut], Florian Schwendinger [aut, cre] |
Maintainer: | Florian Schwendinger <FlorianSchwendinger@gmx.at> |
Repository: | CRAN |
Date/Publication: | 2023-07-07 12:40:04 UTC |
Multiple Solutions - Binary LP
Description
maximize \ \ x + y
subject \ to \ \ x + y = 1
x, y \in \{0, 1\}
Examples
## Not run:
library(ROI)
op <- OP(objective = c(1, 1),
constraints = L_constraint(c(1, 1), "==", 1),
types = c("B", "B"))
x <- ROI_solve(op, solver = "msbinlp", method = "glpk", nsol_max = 2L)
x
## 2 optimal solutions found.
## The objective value is: 1.000000e+00
solution(x)
## [[1]]
## [1] 1 0
##
## [[2]]
## [1] 0 1
## End(Not run)
Multiple Solutions - Binary LP
Description
maximize \ \ - x_1 - x_2 - x_3 - x_4 - 99 x_5
subject \ to
x_1 + x_2 \leq 1
x_3 + x_4 \leq 1
x_4 + x_5 \leq 1
x_i \in \{0, 1\}
References
Matteo Fischetti and Domenico Salvagnin (2010) Pruning moves. INFORMS Journal on Computing 22.1: 108-119.
Examples
## Not run:
library(ROI)
op <- OP()
objective(op) <- L_objective(c(-1, -1, -1, -1, -99))
mat <- simple_triplet_matrix(rep(1:3, 2),
c(c(1, 3, 4), c(2, 4, 5)),
rep(1, 6))
constraints(op) <- L_constraint(mat,
dir = leq(3),
rhs = rep.int(1, 3))
types(op) <- rep("B", length(op))
x <- ROI_solve(op, solver = "msbinlp", method = "glpk", nsol_max = 2L)
x
## 2 optimal solutions found.
## The objective value is: -1.010000e+02
solution(x)
## [[1]]
## [1] 0 1 1 0 1
##
## [[2]]
## [1] 1 0 1 0 1
## End(Not run)