利用gym建立如圖所示的迷宮:
**如下:(注意這不是乙個完整的rl agent,因為現在只寫好了影象渲染引擎render(),agent是乙個類)
import gym
from gym.envs.classic_control import rendering
class grid(gym.env):
def __init__(self):
self.viewer=rendering.viewer(600,600)
def render(self):
for i in range(6):
line=rendering.line((100+80*i,100),(100+80*i,500))
line.set_color(0,0,0)
self.viewer.add_geom(line)
for i in range(6):
line=rendering.line((100,100+80*i),(500,100+80*i))
line.set_color(0,0,0)
self.viewer.add_geom(line)
l=340
r=420
b=340
t=500
cart= rendering.filledpolygon([(l,b), (l,t), (r,t), (r,b)])
self.viewer.add_geom(cart)
l=100
r=260
b=260
t=340
cart= rendering.filledpolygon([(l,b), (l,t), (r,t), (r,b)])
self.viewer.add_geom(cart)
l=260
r=500
b=100
t=180
cart= rendering.filledpolygon([(l,b), (l,t), (r,t), (r,b)])
self.viewer.add_geom(cart)
circle=rendering.make_circle(40)
trans=rendering.transform(translation=(460,300))
circle.add_attr(trans)
self.viewer.add_geom(circle)
return self.viewer.render()
if __name__ == '__main__':
t=grid()
while true:
t.render()
需要用到rendering的一些函式,rendering.line,rendering.make_circle,rendering.filledpolygon
要顯示在電腦螢幕上,則需要用到rendering.viewer()這個類的函式(在初始化函式裡已經將它例項化了)
強化學習實戰二
這篇部落格主要講解強化學習中兩種典型的問題 離散動作與連續動作,通過前面的學習我們知道離散動作問題可以用 q learning演算法 解決,而連續動作問題可以用 policy gradients演算法 解決。這篇部落格使用的專案環境 mountaincar v0 mountaincarcontinu...
強化學習1
這是第一篇強化學習的學習筆記,會覆蓋幾個基本的概念。程式本身,接受環境的訊號,作出行動,影響環境,形成乙個閉環。價值函式,通過value來評估哪一些狀態和動作是好的,選擇那些能夠提高value的動作和狀態。動作,當agent觀察到環境的狀態後,可以作出一些行動去影響環境,比如自動駕駛的汽車看到路面的...
強化學習系列1 強化學習簡介
2015年10月,alphago在和歐洲冠軍進行的圍棋賽上獲得了5 0的完勝,其後的深度強化學習也隨之火了起來。從本期開始開個新坑,一步步把強化學習的內容捋一遍。強化學習 reinforcement learning 是用來解決連續決策問題的一種方法。針對的模型是馬爾科夫決策過程 markov de...