例項——「小車上山」
步驟1,獲取環境物件
env = gym.make('mountaincar-v0')
print('觀測空間 = {}'.format(env.observation_space))
print('動作空間 = {}'.format(env.action_space))
print('觀測範圍 = {} ~ {}'.format(env.observation_space.low,
env.observation_space.high))
print('動作數 = {}'.format(env.action_space.n))
觀測空間 = box(2,) ——觀測空間為形狀為(2,)的浮點型np.array,第一維為位置x,第二維為速度
動作空間 = discrete(3) ——動作空間
觀測範圍 = [-1.2 -0.07] ~ [0.6 0.07]
動作數 = 3
步驟2,建立智慧型體——上山/下山 原理沒看懂
class bespokeagent:
def __init__(self, env):
pass
def decide(self, observation): # 決策
print('observation',observation)
position, velocity = observation
lb = min(-0.09 * (position + 0.25) ** 2 + 0.03,
0.3 * (position + 0.9) ** 4 - 0.008)
ub = -0.07 * (position + 0.38) ** 2 + 0.07
if lb < velocity < ub:
action = 2
else:
action = 0
return action # 返回動作
def learn(self, *args): # 學習
pass
agent = bespokeagent(env)
步驟3.智慧型體與環境進行互動
def play_montecarlo(env, agent, render=false, train=false):
episode_reward = 0. # 記錄回合總獎勵,初始化為0
observation = env.reset() # 重置遊戲環境,開始新回合
print('start_observation',observation)
while true: # 不斷迴圈,直到回合結束
if render: # 判斷是否顯示
env.render() # 顯示圖形介面,圖形介面可以用 env.close() 語句關閉
action = agent.decide(observation)
next_observation, reward, done, _ = env.step(action) # 執行動作
episode_reward += reward # 收集回合獎勵
if train: # 判斷是否訓練智慧型體
agent.learn(observation, action, reward, done) # 學習
if done: # 回合結束,跳出迴圈
break
observation = next_observation
return episode_reward # 返回回合總獎勵
env.seed(0) # 設定隨機數種子,只是為了讓結果可以精確復現,一般情況下可刪去
episode_reward = play_montecarlo(env, agent, render=true)
print('回合獎勵 = {}'.format(episode_reward))
env.close() # 此語句可關閉圖形介面
第一章 強化學習概述
強化學習討論的問題是乙個 智慧型體 agent 怎麼在乙個複雜不確定的環境 environment 裡面去極大化它能獲得的獎勵。示意圖由兩部分組成 agent 和 environment。在強化學習過程中,agent 跟 environment 一直在互動。agent 在環境裡面獲取到狀態,agen...
Oracle強化 第一章 PL SQL概述
1.員工表中員工的人數輸出到螢幕 2.建立臨時表temp,字段 char store varchar2 35 date store date建立匿名塊,1 把兩個變數 this is my first pl sql program current date插入到表中 2 10號部門員工姓名,參加工作...
第一章 初始C語言
目錄3.c語言的應用範圍 4.計算機能做什麼 5.c語言標準 7.使用c語言的7個步驟 8.程式設計機制 1969年至1973年間,為了移植與開發unix作業系統,由丹尼斯 里奇與肯 湯普遜,以b語言為基礎,在貝爾實驗室設計 開發出來。c語言具有高效 靈活 功能豐富 表達力強和較高的可移植性等特點,...