knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.path = "man/figures/README-", out.width = "100%" )
seqopt
is an R package for finding optimal sequences with dynamic programming.
Given a list of timepoints and corresponding lists of possible states,
seq_opt()
efficiently finds an optimal state sequence that minimises an
arbitrary transition cost function.
if (!require(devtools)) install.packages("devtools") devtools:install_github("pmcharrison/seqopt")
library(seqopt) # 3 time points, each of which can take values from 1 to 5 x <- lapply(1:3, function(x) 1:5) print(x) # Define two cost functions. # The first enforces always-increasing state values. # The second prefers small differences between successive states. cost_funs <- list( cost_fun(context_sensitive = TRUE, function(a, b) if (b <= a) Inf else 0), cost_fun(context_sensitive = TRUE, function(a, b) abs(b - a)) ) # seq_opt finds the optimal sequence satisfying these constraints. res <- seq_opt(x, cost_funs) print(unlist(res)) # Now add a cost function preferring large state values. cost_funs[[3]] <- cost_fun(context_sensitive = FALSE, function(a) - a) res <- seq_opt(x, cost_funs) print(unlist(res))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.