Nothing
## ----setup, include = FALSE---------------------------------------------------
library(knitr)
library(rgl)
library(ggsci)
library(magrittr)
rgl::setupKnitr()
options(rgl.useNULL=TRUE)
rgl::par3d("family" = "serif")
opts_chunk$set(
collapse = TRUE,
comment = "#>",
warning=FALSE, message=FALSE, include = TRUE,
out.width = "99%", fig.width = 8, fig.align = "center", fig.asp = 0.62
)
if (!requireNamespace("rmarkdown", quietly = TRUE) || !rmarkdown::pandoc_available("1.14")) {
warning(call. = FALSE, "These vignettes assume rmarkdown and pandoc version 1.14 (or higher). These were not found. Older versions will not work.")
knitr::knit_exit()
}
## ----cache=FALSE, include=FALSE-----------------------------------------------
library(gMOIP)
## -----------------------------------------------------------------------------
A <- matrix(c(-3,2,2,4,9,10), ncol = 2, byrow = TRUE)
b <- c(3,27,90)
obj <- c(7.75, 10) # coefficients c
## -----------------------------------------------------------------------------
plotPolytope(
A,
b,
obj,
type = rep("c", ncol(A)),
crit = "max",
faces = rep("c", ncol(A)),
plotFaces = TRUE,
plotFeasible = TRUE,
plotOptimum = TRUE,
labels = "coord"
)
## -----------------------------------------------------------------------------
plotPolytope(
A,
b,
obj,
type = rep("i", ncol(A)),
crit = "max",
faces = rep("c", ncol(A)),
plotFaces = TRUE,
plotFeasible = TRUE,
plotOptimum = TRUE,
labels = "coord"
)
## -----------------------------------------------------------------------------
plotPolytope(
A,
b,
obj,
type = c("i", "c"),
crit = "max",
faces = c("c", "c"),
plotFaces = TRUE,
plotFeasible = TRUE,
plotOptimum = TRUE,
labels = "coord"
)
## -----------------------------------------------------------------------------
A <- matrix( c(
3, 2, 5,
2, 1, 1,
1, 1, 3,
5, 2, 4
), nc = 3, byrow = TRUE)
b <- c(55, 26, 30, 57)
obj <- c(20, 10, 15)
## ----webgl=TRUE---------------------------------------------------------------
view <- matrix( c(-0.412063330411911, -0.228006735444069, 0.882166087627411, 0, 0.910147845745087,
-0.0574885793030262, 0.410274744033813, 0, -0.042830865830183, 0.97196090221405,
0.231208890676498, 0, 0, 0, 0, 1), nc = 4)
loadView(v = view) # set view angle
plotPolytope(A,
b,
obj,
plotOptimum = TRUE,
labels = "n")
## ----webgl=TRUE---------------------------------------------------------------
view <- matrix( c(-0.412063330411911, -0.228006735444069, 0.882166087627411, 0, 0.910147845745087,
-0.0574885793030262, 0.410274744033813, 0, -0.042830865830183, 0.97196090221405,
0.231208890676498, 0, 0, 0, 0, 1), nc = 4)
loadView(v = view) # set view angle
plotPolytope(A,
b,
obj,
type = c("i", "i", "i"),
plotOptimum = TRUE,
labels = "n")
## ----webgl=TRUE, cache=FALSE--------------------------------------------------
view <- matrix( c(-0.412063330411911, -0.228006735444069, 0.882166087627411, 0, 0.910147845745087,
-0.0574885793030262, 0.410274744033813, 0, -0.042830865830183, 0.97196090221405,
0.231208890676498, 0, 0, 0, 0, 1), nc = 4)
loadView(v = view) # set view angle
plotPolytope(A,
b,
obj,
type = c("i", "i", "c"),
faces = c("c", "c", "c"),
plotOptimum = TRUE,
# plotFaces = FALSE,
labels = "n")
## ----2DPlotFunction-----------------------------------------------------------
plotBiObj2D <- function(A, b, obj,
type = rep("c", ncol(A)),
crit = "max",
faces = rep("c", ncol(A)),
plotFaces = TRUE,
plotFeasible = TRUE,
plotOptimum = FALSE,
labels = "numb",
addTriangles = TRUE,
addHull = TRUE)
{
p1 <- plotPolytope(A, b, type = type, crit = crit, faces = faces, plotFaces = plotFaces,
plotFeasible = plotFeasible, plotOptimum = plotOptimum, labels = labels) +
ggplot2::ggtitle("Solution space")
p2 <- plotCriterion2D(A, b, obj, type = type, crit = crit, addTriangles = addTriangles,
addHull = addHull, plotFeasible = plotFeasible, labels = labels) +
ggplot2::ggtitle("Criterion space")
gridExtra::grid.arrange(p1, p2, nrow = 1)
}
## ----2DConstraints------------------------------------------------------------
A <- matrix(c(-3,2,2,4,9,10), ncol = 2, byrow = TRUE)
b <- c(3,27,90)
## ----2DLP---------------------------------------------------------------------
obj <- matrix(
c(7, -10, # first criterion
-10, -10), # second criterion
nrow = 2)
plotBiObj2D(A, b, obj, addTriangles = FALSE)
## ----2DILPMax-----------------------------------------------------------------
obj <- matrix(c(3, -1, -2, 2), nrow = 2)
plotBiObj2D(A, b, obj, type = rep("i", ncol(A)))
## ----2DMILPMin----------------------------------------------------------------
obj <- matrix(c(3, -1, -2, 2), nrow = 2)
plotBiObj2D(A, b, obj, type = c("c", "i"), crit = "min")
## ----3DPlotFunction-----------------------------------------------------------
plotSol <- function(A, b, type = rep("c", ncol(A)),
faces = rep("c", ncol(A)),
plotFaces = TRUE, labels = "numb")
{
loadView(v = view, close = F, zoom = 0.75)
plotPolytope(A, b, type = type, faces = faces, labels = labels, plotFaces = plotFaces,
argsTitle3d = list(main = "Solution space"))
}
plotCrit <- function(A, b, obj, crit = "min", type = rep("c", ncol(A)), addTriangles = TRUE,
labels = "numb")
{
plotCriterion2D(A, b, obj, type = type, crit = crit, addTriangles = addTriangles,
labels = labels) +
ggplot2::ggtitle("Criterion space")
}
## ----Ex1Model-----------------------------------------------------------------
Ab <- matrix( c(
1, 1, 2, 5,
2, -1, 0, 3,
-1, 2, 1, 3,
0, -3, 5, 2
), nc = 4, byrow = TRUE)
A <- Ab[,1:3]
b <- Ab[,4]
obj <- matrix(c(1, -6, 3, -4, 1, 6), nrow = 2)
## ----Ex1View------------------------------------------------------------------
view <- matrix( c(-0.452365815639496, -0.446501553058624, 0.77201122045517, 0, 0.886364221572876,
-0.320795893669128, 0.333835482597351, 0, 0.0986008867621422, 0.835299551486969,
0.540881276130676, 0, 0, 0, 0, 1), nc = 4)
loadView(v = view)
## ----Ex1LPSol, webgl=TRUE, cache=FALSE----------------------------------------
plotSol(A, b)
## ----Ex1LPCrit----------------------------------------------------------------
plotCrit(A, b, obj, addTriangles = FALSE)
## ----Ex1ILPSol, webgl=TRUE, cache=FALSE---------------------------------------
plotSol(A, b, type = c("i","i","i"))
## ----Ex1ILPCrit---------------------------------------------------------------
plotCrit(A, b, obj, type = c("i","i","i"))
## ----include=F----------------------------------------------------------------
rm(list = ls(all.names = TRUE))
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.