# two-state POMDP
data("Tiger")
sol <- solve_POMDP(Tiger)
plot_belief_space(sol)
plot_belief_space(sol, oneD = FALSE)
plot_belief_space(sol, n = 10)
plot_belief_space(sol, n = 100, sample = "random")
# plot the belief points used by the grid-based solver
plot_belief_space(sol, sample = sol $solution$belief_points_solver)
# plot different measures
plot_belief_space(sol, what = "pg_node")
plot_belief_space(sol, what = "reward")
# three-state POMDP
# Note: If the plotting region is too small then the legend might run into the plot
data("Three_doors")
sol <- solve_POMDP(Three_doors)
sol
# plotting needs the suggested package Ternary
if ("Ternary" %in% installed.packages()) {
plot_belief_space(sol)
plot_belief_space(sol, n = 10000)
plot_belief_space(sol, what = "reward", sample = "random", n = 1000)
plot_belief_space(sol, what = "pg_node", n = 10000)
# holding tiger-left constant at .5 follows this line in the ternary plot
Ternary::TernaryLines(list(c(.5, 0, .5), c(.5, .5, 0)), col = "black", lty = 2)
# we can plot the projection for this line
plot_belief_space(sol, what = "pg_node", n = 1000, projection = c("tiger-left" = .5))
# plot the belief points used by the grid-based solver
plot_belief_space(sol, sample = sol$solution$belief_points_solver, what = "pg_node")
# plot the belief points obtained using simulated trajectories with an epsilon-greedy policy.
# Note that we only use n = 50 to save time.
plot_belief_space(sol,
sample = simulate_POMDP(sol, n = 50, horizon = 100,
epsilon = 0.1, return_beliefs = TRUE)$belief_states)
}
# plot a 3-state belief space using ggtern (ggplot2)
if (FALSE) {
library(ggtern)
samp <- sample_belief_space(sol, n = 1000)
df <- cbind(as.data.frame(samp), reward_node_action(sol, belief = samp))
df$pg_node <- factor(df$pg_node)
ggtern(df, aes(x = `tiger-left`, y = `tiger-center`, z = `tiger-right`)) +
geom_point(aes(color = pg_node), size = 2)
ggtern(df, aes(x = `tiger-left`, y = `tiger-center`, z = `tiger-right`)) +
geom_point(aes(color = action), size = 2)
ggtern(df, aes(x = `tiger-left`, y = `tiger-center`, z = `tiger-right`)) +
geom_point(aes(color = reward), size = 2)
}
Run the code above in your browser using DataLab