library(armacmp)
# taken from https://gallery.rcpp.org/articles/black-scholes-three-ways/
put_option_pricer_arma <- armacmp(function(s = type_colvec(),
k = type_scalar_numeric(),
r = type_scalar_numeric(),
y = type_scalar_numeric(),
t = type_scalar_numeric(),
sigma = type_scalar_numeric()) {
a <- Matrix::sparseVector(1:2, i = 1:2, length = 2)
b <- Matrix::sparseVector(1:2, i = 1:2, length = 2)
class(a * b)
#> [1] "dsparseVector"
#> attr(,"package")
#> [1] "Matrix"
class(a / b) # bug? numeric instead of sparseVector
#> [1] "numeric"
splice_df <- function(x, ...) {
expr <- rlang::enquo(x)
cols <- lapply(rlang::ensyms(..., .named = TRUE), as.character)
lapply(cols, function(col_name) {
rlang::quo(`[[`(!!expr, !!col_name))
})
}
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# this is just a script to test the rhxl package, I just quickly looked at the data | |
# Ethiopia Who is doing What Where - 3W December 2017 | |
# source: https://data.humdata.org/dataset/3w-december-2017 | |
url <- "https://data.humdata.org/dataset/615416d2-457b-461a-8155-090f0ced0bf8/resource/f71bf111-8706-42f4-ba46-4ce3c8c949dc/download/3w_hxl.xlsx" | |
# load the rhxl package | |
# https://github.com/dirkschumacher/rhxl | |
library(rhxl) | |
download.file(url, "file.xlsx") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Linear regression with tensorflow and R | |
library(tensorflow) | |
# Y = X * beta + epsilon | |
# => | |
# beta = (X'X)^-1X'y | |
# first we build the computational graph | |
X <- tf$placeholder(tf$float64, name = "X") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# There are essential two prominent ways to model a TSP as a MILP. One is to formulate the full model using the Miller–Tucker–Zemlin (MTZ) formulation and the other option is to use the so-called sub-tour elimination constraints .[1](https://www.unc.edu/~pataki/papers/teachtsp.pdf) | |
# | |
# The first formulation is fairly compact (quadratic many constraints and variables) but is not suitable anymore when n gets larger. The second formulation has exponential many constraints at most, but can solve larger TSPs due to the better LP relaxation. The idea of the latter approach is add constraints to the model *during* the solution process as soon as a solution was found that contains a sub-tour. For solution strategies like this solvers usually offer callbacks that let's you modify the model during the the branch-and-cut process - this is however not currently supported by `ompr`. | |
# | |
# Therefor we will use the MTZ formulation and solve a fairly small TSP. | |
library(ompr) | |
library(magrittr) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# based on a article from here https://dirkschumacher.github.io/ompr/articles/problem-graph-coloring.html | |
library(maptools) | |
library(dplyr) | |
# devtools::install_github("dirkschumacher/ompr@milp") | |
# CC by | |
map_data <- rgdal::readOGR("https://raw.githubusercontent.com/nvkelso/natural-earth-vector/master/geojson/ne_50m_admin_0_countries.geojson", "OGRGeoJSON") |
This vignettes discribes the modelling techniques available in ompr
to
make your life easier when developing a mixed integer programming model.
You can think of a MIP Model as a big constraint maxtrix and a set of
vectors. But you can also think of it as a set of decision variables, an
objective function and a number of constraints as
equations/inequalities. ompr
implements the latter approach.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# based on the formulation from here | |
# http://wwwhome.math.utwente.nl/~uetzm/do/IP-FKS.pdf | |
library(magrittr) | |
# devtools::install_github("dirkschumacher/ompr@milp") | |
library(ompr) | |
max_colors <- 10 | |
n <- 100 | |
# variables n * max_colors |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# based on a article from here https://dirkschumacher.github.io/ompr/articles/problem-graph-coloring.html | |
library(maptools) | |
library(dplyr) | |
# CC by | |
# license here https://github.com/berlinermorgenpost/Berlin-Geodaten | |
map_data <- rgdal::readOGR("https://github.com/berlinermorgenpost/Berlin-Geodaten/raw/master/berlin_bezirke.geojson", "OGRGeoJSON") | |
# this gives as an adjancy list |