stepで返すstateとして、5行3列の配列、
[[1. 1. 0.]
[1. 1. 0.]
[0. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]]
この様なものの集合、要はこれが10個あるとしたら、(10,5,3)の配列をstateとして返したいのですが、observation_space、gym.spaces.Boxの設定などどうすればいいでしょうか?ちなみにこれは1か0しかとりません。例えば(2,5,3)だとしたら、
[[1. 1. 0.]
[1. 1. 0.]
[0. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]]
[[0. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]]
これが、actionによって次のstateとして、
[[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]
[0. 0. 0.]
[0. 0. 0.]]
[[1. 0. 0.]
[1. 0. 0.]
[1. 0. 0.]
[1. 0. 0.]
[1. 0. 0.]]
になったりという事です。これをどうすればうまく表すことができるでしょうか?
以上のサイトだと、
Python
1high = np.array([1.0, 1.0]) # 観測空間(state)の次元 (位置と速度の2次元) とそれらの最大値 2 self.observation_space = gym.spaces.Box(low=-high, high=high) # 最小値は、最大値のマイナスがけ
このように示されていますが、これは速度と位置だけをstateとしてstepの最後でreturnしています。このような行列をreturnしたいのですが、どうすればいいのか思いついきません。。。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
追記
少し環境が変わり、例えば0〜1の実数値をとる要素の配列、例えば
[1,0.52,0.26,0.08,0]
というような要素が5個ある配列が11個ある設定だとすると、
Python
1self._shape = (11, 5) 2 self.observation_space = gym.spaces.Box(low=0, 3 high=1, 4 shape=self._shape)
のようになるのでしょうか?
また、その際step関数としてreturnする際はどのような形で書けば良いでしょうか?
以下のような形で5×11のリストを作って行き、それを
Python
1arr = [] 2arr.append([1,0.52,0.26,0.08,0]) 3arr.append([0,0,0.2,0.18,1]) 4 ・ 5 ・ 6 ・ 7 8return arr, reward, done, {}
のようにできるのでしょうか?
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
追記
すみません、書き方が悪かったですが、追記ではもし0,1だけを取るのではなく各要素が0~1の実数値をとるならという事です!また状態の遷移に関して省略していました。
それだったら
Pyhton
1arr = np.array(arr) 2arr[arr>0.5] = 1 3arr[arr<=0.5] = 0
この部分は最後、それぞれのアクションに対して
Pyhton
1arr = np.array(arr) 2return arr, reward, done, {}
のような形でreturnしても良いですよね?
回答1件
あなたの回答
tips
プレビュー