finite_mdp 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 4dea8cd1de91ae04618cf3d04df9f84f9c3e1818
4
+ data.tar.gz: 09309d55f5d88bebf5d1a2c989f4ff403a7c5b75
5
+ SHA512:
6
+ metadata.gz: f4bbba688034130bc37f7192c4a4073b246886b9e43398fa2a5f3bd85407d271b67579babd9573fbe97fcd452912765405bce2fc3a7d26760d7b3e69154dace3
7
+ data.tar.gz: 2745aa18e046181cd8f45f1cb956007be71a6dc02f3aee7a977d3607d9ae977cc7d75cbb5177b0c2e1bb330edd519c6fd59f69278cbcb6f1a300c9ebfb7a4332
@@ -51,7 +51,7 @@ class FiniteMDP::HashModel
51
51
  #
52
52
  # Possible successor states after taking the given action in the given state;
53
53
  # see {Model#next_states}.
54
- #
54
+ #
55
55
  # @param [state] state
56
56
  #
57
57
  # @param [action] action
@@ -60,7 +60,7 @@ class FiniteMDP::HashModel
60
60
  #
61
61
  def next_states state, action
62
62
  hash[state][action].keys
63
- end
63
+ end
64
64
 
65
65
  #
66
66
  # Probability of the given transition; see {Model#transition_probability}.
@@ -72,9 +72,9 @@ class FiniteMDP::HashModel
72
72
  # @param [state] next_state
73
73
  #
74
74
  # @return [Float] in [0, 1]; zero if the transition is not in the hash
75
- #
75
+ #
76
76
  def transition_probability state, action, next_state
77
- probability, reward = hash[state][action][next_state]
77
+ probability, _reward = hash[state][action][next_state]
78
78
  probability || 0
79
79
  end
80
80
 
@@ -90,7 +90,7 @@ class FiniteMDP::HashModel
90
90
  # @return [Float, nil] nil if the transition is not in the hash
91
91
  #
92
92
  def reward state, action, next_state
93
- probability, reward = hash[state][action][next_state]
93
+ _probability, reward = hash[state][action][next_state]
94
94
  reward
95
95
  end
96
96
 
@@ -1,6 +1,6 @@
1
1
  module FiniteMDP
2
2
  VERSION_MAJOR = 0
3
- VERSION_MINOR = 1
4
- VERSION_PATCH = 1
3
+ VERSION_MINOR = 2
4
+ VERSION_PATCH = 0
5
5
  VERSION = [VERSION_MAJOR, VERSION_MINOR, VERSION_PATCH].join('.')
6
6
  end
@@ -1,12 +1,8 @@
1
- # uncomment for coverage in ruby 1.9
2
- #require 'simplecov'
3
- #SimpleCov.start
4
-
5
- require 'test/unit'
1
+ require 'minitest/autorun'
6
2
  require 'finite_mdp'
7
3
  require 'set'
8
4
 
9
- class TestFiniteMDP < Test::Unit::TestCase
5
+ class TestFiniteMDP < MiniTest::Test
10
6
  include FiniteMDP
11
7
 
12
8
  def assert_close expected, actual, tol=1e-6
@@ -176,10 +172,10 @@ class TestFiniteMDP < Test::Unit::TestCase
176
172
 
177
173
  # can move north, east, south or west on the grid
178
174
  MOVES = {
179
- '^' => [-1, 0],
180
- '>' => [ 0, 1],
181
- 'v' => [ 1, 0],
182
- '<' => [ 0, -1]}
175
+ '^' => [-1, 0],
176
+ '>' => [ 0, 1],
177
+ 'v' => [ 1, 0],
178
+ '<' => [ 0, -1]}
183
179
 
184
180
  # agent can move north, south, east or west (unless it's in the :stop
185
181
  # state); if it tries to move off the grid or into an obstacle, it stays
@@ -277,7 +273,7 @@ class TestFiniteMDP < Test::Unit::TestCase
277
273
  # check policy against Figure 17.2(a)
278
274
  solver = check_grid_solutions model,
279
275
  ["> > > ",
280
- "^ ^ ",
276
+ "^ ^ ",
281
277
  "^ < < <"]
282
278
 
283
279
  # check the actual (non-pretty) policy
@@ -305,9 +301,9 @@ class TestFiniteMDP < Test::Unit::TestCase
305
301
  model.check_transition_probabilities_sum
306
302
  assert_equal Set[], model.terminal_states # no actual terminals
307
303
 
308
- check_grid_solutions model,
304
+ check_grid_solutions model,
309
305
  ["> > > ",
310
- "^ > ",
306
+ "^ > ",
311
307
  "> > > ^"]
312
308
  end
313
309
 
@@ -322,9 +318,9 @@ class TestFiniteMDP < Test::Unit::TestCase
322
318
  model.check_transition_probabilities_sum
323
319
  assert_equal Set[], model.terminal_states # no actual terminals
324
320
 
325
- check_grid_solutions model,
321
+ check_grid_solutions model,
326
322
  ["> > > ",
327
- "^ ^ ",
323
+ "^ ^ ",
328
324
  "^ > ^ <"]
329
325
  end
330
326
 
@@ -339,13 +335,13 @@ class TestFiniteMDP < Test::Unit::TestCase
339
335
  model.check_transition_probabilities_sum
340
336
  assert_equal Set[], model.terminal_states # no actual terminals
341
337
 
342
- check_grid_solutions model,
338
+ check_grid_solutions model,
343
339
  ["> > > ",
344
- "^ < ",
340
+ "^ < ",
345
341
  "^ < < v"]
346
342
  end
347
343
 
348
- class MyPoint
344
+ class MyPoint
349
345
  include FiniteMDP::VectorValued
350
346
 
351
347
  def initialize x, y
metadata CHANGED
@@ -1,45 +1,48 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: finite_mdp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
5
- prerelease:
4
+ version: 0.2.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - John Lees-Miller
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-02-13 00:00:00.000000000 Z
11
+ date: 2016-08-05 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: narray
16
- requirement: &85251730 !ruby/object:Gem::Requirement
17
- none: false
15
+ requirement: !ruby/object:Gem::Requirement
18
16
  requirements:
19
- - - ~>
17
+ - - "~>"
20
18
  - !ruby/object:Gem::Version
21
- version: 0.5.9
19
+ version: '0.6'
22
20
  type: :runtime
23
21
  prerelease: false
24
- version_requirements: *85251730
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.6'
25
27
  - !ruby/object:Gem::Dependency
26
28
  name: gemma
27
- requirement: &85251480 !ruby/object:Gem::Requirement
28
- none: false
29
+ requirement: !ruby/object:Gem::Requirement
29
30
  requirements:
30
- - - ~>
31
+ - - ">"
31
32
  - !ruby/object:Gem::Version
32
- version: 2.1.0
33
+ version: '2'
33
34
  type: :development
34
35
  prerelease: false
35
- version_requirements: *85251480
36
- description: ! 'This library provides several ways of describing a
37
-
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">"
39
+ - !ruby/object:Gem::Version
40
+ version: '2'
41
+ description: |-
42
+ This library provides several ways of describing a
38
43
  finite Markov Decision Process (MDP) model (see FiniteMDP::Model) and some
39
-
40
44
  reasonably efficient implementations of policy iteration and value iteration to
41
-
42
- solve it (see FiniteMDP::Solver).'
45
+ solve it (see FiniteMDP::Solver).
43
46
  email:
44
47
  - jdleesmiller@gmail.com
45
48
  executables: []
@@ -47,49 +50,41 @@ extensions: []
47
50
  extra_rdoc_files:
48
51
  - README.rdoc
49
52
  files:
53
+ - README.rdoc
50
54
  - lib/finite_mdp.rb
51
- - lib/finite_mdp/solver.rb
52
- - lib/finite_mdp/version.rb
53
- - lib/finite_mdp/table_model.rb
54
55
  - lib/finite_mdp/hash_model.rb
55
56
  - lib/finite_mdp/model.rb
57
+ - lib/finite_mdp/solver.rb
58
+ - lib/finite_mdp/table_model.rb
56
59
  - lib/finite_mdp/vector_valued.rb
57
- - README.rdoc
60
+ - lib/finite_mdp/version.rb
58
61
  - test/finite_mdp/finite_mdp_test.rb
59
62
  homepage: http://github.com/jdleesmiller/finite_mdp
60
63
  licenses: []
64
+ metadata: {}
61
65
  post_install_message:
62
66
  rdoc_options:
63
- - --main
67
+ - "--main"
64
68
  - README.rdoc
65
- - --title
66
- - finite_mdp-0.1.1 Documentation
69
+ - "--title"
70
+ - finite_mdp-0.2.0 Documentation
67
71
  require_paths:
68
72
  - lib
69
73
  required_ruby_version: !ruby/object:Gem::Requirement
70
- none: false
71
74
  requirements:
72
- - - ! '>='
75
+ - - ">="
73
76
  - !ruby/object:Gem::Version
74
77
  version: '0'
75
- segments:
76
- - 0
77
- hash: -310962355
78
78
  required_rubygems_version: !ruby/object:Gem::Requirement
79
- none: false
80
79
  requirements:
81
- - - ! '>='
80
+ - - ">="
82
81
  - !ruby/object:Gem::Version
83
82
  version: '0'
84
- segments:
85
- - 0
86
- hash: -310962355
87
83
  requirements: []
88
84
  rubyforge_project: finite_mdp
89
- rubygems_version: 1.8.10
85
+ rubygems_version: 2.4.5.1
90
86
  signing_key:
91
- specification_version: 3
87
+ specification_version: 4
92
88
  summary: Solve small, finite Markov Decision Process models.
93
89
  test_files:
94
90
  - test/finite_mdp/finite_mdp_test.rb
95
- has_rdoc: