## ----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 <- loadMDP(prefix) ## --------------------------------------------------------------------------------------- mdp ## --------------------------------------------------------------------------------------- getInfo(mdp, withList = F, dfLevel = "action", asStringsActions = TRUE) ## ----plotHgf, par=TRUE------------------------------------------------------------------ plot(mdp, actionColor = "label", stateLabel = "sId|label") ## ----solve1_ave, par=TRUE--------------------------------------------------------------- runPolicyIteAve(mdp,"Net reward","Duration") getPolicy(mdp) plot(mdp, actionsVisible = "policy") ## ----par=TRUE--------------------------------------------------------------------------- runPolicyIteDiscount(mdp,"Net reward","Duration", discountFactor = 0.5) getPolicy(mdp) plot(mdp, actionsVisible = "policy") ## --------------------------------------------------------------------------------------- runValueIte(mdp,"Net reward","Duration", discountFactor = 0.5, eps = 1e-10, maxIte = 1000) getPolicy(mdp)