()
| 197 | |
| 198 | |
| 199 | def windy_grid(): |
| 200 | g = WindyGrid(3, 4, (2, 0)) |
| 201 | rewards = {(0, 3): 1, (1, 3): -1} |
| 202 | actions = { |
| 203 | (0, 0): ('D', 'R'), |
| 204 | (0, 1): ('L', 'R'), |
| 205 | (0, 2): ('L', 'D', 'R'), |
| 206 | (1, 0): ('U', 'D'), |
| 207 | (1, 2): ('U', 'D', 'R'), |
| 208 | (2, 0): ('U', 'R'), |
| 209 | (2, 1): ('L', 'R'), |
| 210 | (2, 2): ('L', 'R', 'U'), |
| 211 | (2, 3): ('L', 'U'), |
| 212 | } |
| 213 | |
| 214 | # p(s' | s, a) represented as: |
| 215 | # KEY: (s, a) --> VALUE: {s': p(s' | s, a)} |
| 216 | probs = { |
| 217 | ((2, 0), 'U'): {(1, 0): 1.0}, |
| 218 | ((2, 0), 'D'): {(2, 0): 1.0}, |
| 219 | ((2, 0), 'L'): {(2, 0): 1.0}, |
| 220 | ((2, 0), 'R'): {(2, 1): 1.0}, |
| 221 | ((1, 0), 'U'): {(0, 0): 1.0}, |
| 222 | ((1, 0), 'D'): {(2, 0): 1.0}, |
| 223 | ((1, 0), 'L'): {(1, 0): 1.0}, |
| 224 | ((1, 0), 'R'): {(1, 0): 1.0}, |
| 225 | ((0, 0), 'U'): {(0, 0): 1.0}, |
| 226 | ((0, 0), 'D'): {(1, 0): 1.0}, |
| 227 | ((0, 0), 'L'): {(0, 0): 1.0}, |
| 228 | ((0, 0), 'R'): {(0, 1): 1.0}, |
| 229 | ((0, 1), 'U'): {(0, 1): 1.0}, |
| 230 | ((0, 1), 'D'): {(0, 1): 1.0}, |
| 231 | ((0, 1), 'L'): {(0, 0): 1.0}, |
| 232 | ((0, 1), 'R'): {(0, 2): 1.0}, |
| 233 | ((0, 2), 'U'): {(0, 2): 1.0}, |
| 234 | ((0, 2), 'D'): {(1, 2): 1.0}, |
| 235 | ((0, 2), 'L'): {(0, 1): 1.0}, |
| 236 | ((0, 2), 'R'): {(0, 3): 1.0}, |
| 237 | ((2, 1), 'U'): {(2, 1): 1.0}, |
| 238 | ((2, 1), 'D'): {(2, 1): 1.0}, |
| 239 | ((2, 1), 'L'): {(2, 0): 1.0}, |
| 240 | ((2, 1), 'R'): {(2, 2): 1.0}, |
| 241 | ((2, 2), 'U'): {(1, 2): 1.0}, |
| 242 | ((2, 2), 'D'): {(2, 2): 1.0}, |
| 243 | ((2, 2), 'L'): {(2, 1): 1.0}, |
| 244 | ((2, 2), 'R'): {(2, 3): 1.0}, |
| 245 | ((2, 3), 'U'): {(1, 3): 1.0}, |
| 246 | ((2, 3), 'D'): {(2, 3): 1.0}, |
| 247 | ((2, 3), 'L'): {(2, 2): 1.0}, |
| 248 | ((2, 3), 'R'): {(2, 3): 1.0}, |
| 249 | ((1, 2), 'U'): {(0, 2): 0.5, (1, 3): 0.5}, |
| 250 | ((1, 2), 'D'): {(2, 2): 1.0}, |
| 251 | ((1, 2), 'L'): {(1, 2): 1.0}, |
| 252 | ((1, 2), 'R'): {(1, 3): 1.0}, |
| 253 | } |
| 254 | g.set(rewards, actions, probs) |
| 255 | return g |
| 256 |
no test coverage detected