# cs 7642 reinforcement learning mdp finding the optimal state value function 1

Problem
Description
The game DieN is played in the following way:

You will be given a die with N sides. You will know the size of N, and can assume that N is a value greater than 1 and less than or equal to 30.
You will be given a bit mask vector isBadSide representing the sides of a die that will make you lose. The vector will be of size N, and 1 indexed. (there is no 0 side)
At any time you have the option to roll the die or to quit the game
If you decide to roll:
And you roll a number not in isBadSide, you receive that many dollars. (eg.
if you roll the number 2 and 2 is not active — meaning the second element of the vector is 0 — in isBadSide, then you receive 2 dollars)
Repeat step 4.
And you roll a number in isBadSide, then you lose all money obtained in previous rolls and the game ends.
If you decide to quit:

i. You keep all money gained from previous rolls and the game ends.
Procedure

â— For this problem, determine an optimal policy for playing the game DieN for N sides. You will be given N and the array isBadSide which indicates which sides are bad. As you will see, the optimal policy for this game will depend on your current bankroll.
â— You can try solving this problem either by creating an MDP of the game (state, action, transition, reward function, and assume a gamma of 1) and then calculating the optimal

1
state-value function or you can plug-in values and solve directly using the Bellman
Equations.
â— What is the expected amount of dollars for this game if you follow an optimal policy? That
is, what is the optimal state-value function for the initial state of the game? Provide answers for the problems you are given in the “Solve for Code” tab on the Heroku site. Your answer must be correct to 3 decimal places.
Examples
The following examples can be used to verify your calculation is correct.

â— Input: N = 21, isBadSide = {1,1,1,1,0,0,0,0,1,0,1,0,1,1,0,1,0,0,0,1,0}, Output: 7.3799
â— Input: N = 22, isBadSide = {1,1,1,1,1,1,0,1,0,1,1,0,1,0,1,0,0,1,0,0,1,0}, Output: 6.314
â— Input: N = 6, isBadSide = {1,1,1,0,0,0}, Output: 2.5833
Resources
The concepts explored in this homework are covered by:
â— Lectures

â—‹ Lesson 1: Smoov & Curly’s Bogus Journey