In [1]:
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import cm
from mpl_toolkits.mplot3d import Axes3D
import pickle
from MonteCarloControl import *

In [2]:
mc = MonteCarloControl()
mc.solve(10000000)
mc.optimal_policy()
with open("value_n0_100.obj", 'wb') as output:
    pickle.dump(mc.value, output)

with open("value_n0_100.obj", 'rb') as output:
    mc.value = pickle.load(output)


def get_stat_val(x, y):
    return mc.value[x, y]


fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

X = np.arange(0, 10, 1)
Y = np.arange(0, 21, 1)
X, Y = np.meshgrid(X, Y)

Z = get_stat_val(X, Y)
surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm, linewidth=0, antialiased=False)
plt.show()



In [3]:
mc = MonteCarloControl()
mc.solve(10000000, 500)
mc.optimal_policy()
with open("value_n0_500.obj", 'wb') as output:
    pickle.dump(mc.value, output)

with open("value_n0_500.obj", 'rb') as output:
    mc.value = pickle.load(output)


def get_stat_val(x, y):
    return mc.value[x, y]


fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

X = np.arange(0, 10, 1)
Y = np.arange(0, 21, 1)
X, Y = np.meshgrid(X, Y)

Z = get_stat_val(X, Y)
surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm, linewidth=0, antialiased=False)
plt.show()



In [ ]: