強化學習實戰1

2021-09-16 19:52:57 字數 1562 閱讀 1750

利用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...