第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

溢出錯誤,因為我嘗試將值迭代算法與 mdptoolbox 一起使用

溢出錯誤,因為我嘗試將值迭代算法與 mdptoolbox 一起使用

冉冉說 2021-08-24 15:38:29
我為具有 4 種可能狀態(tài)和 4 種可能操作的板設置了一個簡單的 MDP。董事會和獎勵設置如下所示:這里S4是目標狀態(tài),S2是吸收狀態(tài)。我在我編寫的代碼中定義了轉移概率矩陣和獎勵矩陣,以獲得此 MDP 的最佳值函數(shù)。但是,當我運行代碼,我得到一個錯誤,指出:OverflowError: cannot convert float infinity to integer。我無法理解這樣做的原因。import mdptoolboximport numpy as nptransitions = np.array([    # action 1 (Right)    [        [0.1, 0.7, 0.1, 0.1],        [0.3, 0.3, 0.3, 0.1],        [0.1, 0.2, 0.2, 0.5],        [0.1,  0.1,  0.1,  0.7]    ],    # action 2 (Down)    [        [0.1, 0.4, 0.4, 0.1],        [0.3, 0.3, 0.3, 0.1],        [0.4, 0.1, 0.4, 0.1],        [0.1,  0.1,  0.1,  0.7]    ],    # action 3 (Left)    [        [0.4, 0.3, 0.2, 0.1],        [0.2, 0.2, 0.4, 0.2],        [0.5, 0.1, 0.3, 0.1],        [0.1,  0.1,  0.1,  0.7]    ],    # action 4 (Top)    [        [0.1, 0.4, 0.4, 0.1],        [0.3, 0.3, 0.3, 0.1],        [0.4, 0.1, 0.4, 0.1],        [0.1,  0.1,  0.1,  0.7]    ]])rewards = np.array([    [-1, -100, -1, 1],    [-1, -100, -1, 1],    [-1, -100, -1, 1],    [1, 1, 1, 1]])vi = mdptoolbox.mdp.ValueIteration(transitions, rewards, discount=0.5)vi.setVerbose()vi.run()print("Value function:")print(vi.V)print("Policy function")print(vi.policy)如果我將 的值更改discount為1from 0.5,它工作正常。值迭代不適用于折扣值0.5或任何其他十進制值的原因是什么?更新:看起來我的獎勵矩陣有問題。我無法按照我的意圖編寫它。因為如果我改變獎勵矩陣中的一些值,錯誤就會消失。
查看完整描述

1 回答

?
30秒到達戰(zhàn)場

TA貢獻1828條經(jīng)驗 獲得超6個贊

所以結果是我定義的獎勵矩陣是不正確的。根據(jù)上圖中定義的獎勵矩陣,它應該是文檔中(S,A)給出的類型,其中每一行對應一個狀態(tài),從until開始,每一列對應于從until開始的動作。新的獎勵矩陣如下所示:S1S4A1A4


#(S,A)

rewards = np.array([

    [-1, -1, -1, -1],

    [-100, -100, -100, -100],

    [-1, -1, -1, -1],

    [1, 1, 1, 1]

])

它可以正常工作。但我仍然不確定,內部發(fā)生了什么導致溢出錯誤。


查看完整回答
反對 回復 2021-08-24
  • 1 回答
  • 0 關注
  • 261 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號