## ----setup, include=FALSE--------------------------------------------------------------- library(knitr) options( rmarkdown.html_vignette.check_title = FALSE, # formatR.arrow = TRUE, # scipen=999, # digits=5, width = 90 ) # thm <- knit_theme$get("edit-kwrite") # whitengrey, bright, print, edit-flashdevelop, edit-kwrite # knit_theme$set(thm) knit_hooks$set( par = function(before, options, envir) { if (before && options$fig.show != "none") { par( mar = c(0, 0, 0, 0), # bottom, left, top, and right oma = c(0, 0, 0, 0) ) } } ) knitr::opts_chunk$set( # collapse = TRUE, comment = "#>", fig.align = "center", fig.width = 9, fig.height = 5, fig.show = "hold", out.extra = 'style="max-width:100%;"', # tidy = TRUE, # prompt=T, # comment=NA, cache = F # background = "red" ) library(magrittr) library(dplyr) ## --------------------------------------------------------------------------------------- library(MDP2) ## ----parameters, include=FALSE--------------------------------------------------------- N <- 5 Cf <- -10 Cp <- c(0, -7, -7, -5) # use negative numbers since the MDP optimize based on rewards Q <- matrix(c( 0.90, 0.10, 0, 0, 0, 0, 0.80, 0.10, 0.05, 0.05, 0, 0, 0.70, 0.10, 0.20, 0, 0, 0, 0.50, 0.50 ), nrow = 4, byrow = T) ## ----Qtable, results='asis', echo=FALSE------------------------------------------------- rownames(Q) <- 1:4 colnames(Q) <- 1:5 knitr::kable(Q, row.names = T) ## --------------------------------------------------------------------------------------- prefix <- paste0(system.file("models", package = "MDP2"), "/hct611-1_") mdp <- load_mdp(prefix) ## --------------------------------------------------------------------------------------- mdp ## --------------------------------------------------------------------------------------- get_info(mdp, with_list = F, df_level = "action", as_strings_actions = TRUE) ## ----plotHgf, par=TRUE------------------------------------------------------------------ plot(mdp, action_color = "label", state_label = "s_id|label") ## ----solve1_ave, par=TRUE--------------------------------------------------------------- run_policy_ite_ave(mdp, "Net reward", "Duration") get_policy(mdp) plot(mdp, actions_visible = "policy") ## ----par=TRUE--------------------------------------------------------------------------- run_policy_ite_discount(mdp, "Net reward", "Duration", discount_factor = 0.5) get_policy(mdp) plot(mdp, actions_visible = "policy") ## --------------------------------------------------------------------------------------- run_value_ite(mdp, "Net reward", "Duration", discount_factor = 0.5, eps = 1e-10, max_ite = 1000) get_policy(mdp)