sawcordwell / pymdptoolbox

Markov Decision Process (MDP) Toolbox for Python
BSD 3-Clause "New" or "Revised" License
521 stars 251 forks source link

Not working when initial_value is numpy. #43

Open Al17OTON opened 1 year ago

Al17OTON commented 1 year ago

In ValueIteration, Numpy and Integer can't be compared when initial_value is given as numpy.

vi = mdptoolbox.mdp.ValueIteration(P,R,discount, initial_value=initial_values)

If initial_values is integer and greater than zero. len(integer) won't work. Or initial_values is Numpy and it's Lengths are exactly same as S (states). initial_value == 0 won't work. and will make Error. """ import mdptoolbox.example import mdptoolbox.mdp import numpy as np

P,R = mdptoolbox.example.forest()

initial_values = np.array([ # Forest have three state. 0,0,0 ])

discount = 0.96

vi = mdptoolbox.mdp.ValueIteration(P,R,discount, initial_value=initial_values)

vi.run()

print(vi.V)

expected : (5.93215488, 9.38815488, 13.38815488)

result : ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

"""